So, nachdem ich noch Schoenheitsfehler in der von mir angepassten Version fand, kommt hier die korrigierte Version. Da bei mir auf dem Server das exif-Zeug nicht funktioniert, ueberpruefe ich nur darauf, ob ein Unterverzeichnis namens 'thumbs' existiert, und dieses wird bei der Erzeugung der Galerie nicht beruecksichtigt (nur die darin enthaltenen Dateien!). Die Verzeichnisse koennen per Pulldown-Menue ausgewaehlt werden. Die Version sollte auch fuer mehrere Mandanten funktionieren, zumindest tut sie das bei mir.
Code: Alles auswählen
/***********************************************
* CONTENIDO MODUL - INPUT
*
* Modulname : w3concepts.picgallery.v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 06-15-2004
* Modified : 06-18-2004
*************************************************/
$selected = "CMS_VALUE[0]";
$path1 = "CMS_VALUE[1]";
$path2 = "CMS_VALUE[2]";
echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">";
echo "
<tr>
<td>
Bilderverzeichnis:
</td>
<td>
";
// hier die Auswahl der Verzeichnisse
function get_dir_array($dir){
global $i,$dirs_array;
$current_dir = opendir($dir);
while($entryname = readdir($current_dir)){
if(is_dir("$dir/$entryname") and ($entryname != "." and $entryname!="..")){
get_dir_array("${dir}/${entryname}");
$dirs_array[$i] = "${dir}/${entryname}";
$i++;
}
}
closedir($current_dir);
return $dirs_array;
}
$i = 0;
$path = substr_replace($cfgClient[$client]["path"]["upload"], "", strrpos($cfgClient[$client]["path"]["upload"], "/"));
$verz_liste = get_dir_array($path);
echo "<select name=\"CMS_VAR[1]\" value=\"CMS_VALUE[1]\">";
foreach ( $verz_liste as $verz ){
$verz = eregi_replace ($cfgClient[$client]['path']['frontend'], "", $verz);
if ( $path1 == $verz ){ $wwi = "selected"; }
else { $wwi = ""; }
echo "<option value=\"$verz\" $wwi>$verz</option>";
}
echo "</select>";
echo "
</td>
</tr>
<tr>
<td>
Thumbnailverzeichnis:
</td>
<td> ";
echo "<select name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\">";
foreach ( $verz_liste as $verz ){
$verz = eregi_replace ($cfgClient[$client]['path']['frontend'], "", $verz);
if ( $path2 == $verz ){ $wwi = "selected"; }
else { $wwi = ""; }
echo "<option value=\"$verz\" $wwi>$verz</option>";
}
echo "</select>";
echo "
</td>
</tr>";
echo "<tr><td>Thumbnailbreite (Max.):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\" size=\"5\" /></td>";
echo "<tr><td>Thumbnailhöhe (Max.):</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\" size=\"5\" /></td>";
echo "<tr><td>Anzahl Spalten:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\" size=\"5\" /></td>";
echo "<tr><td>Anzahl Zeilen:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[6]\" value=\"CMS_VALUE[6]\" size=\"5\" /></td>";
echo "<tr><td>Text für Previous-Link:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[7]\" value=\"CMS_VALUE[7]\" size=\"15\" /></td>";
echo "<tr><td>Text für Next-Link:</td>";
echo "<td><input type=\"text\" name=\"CMS_VAR[8]\" value=\"CMS_VALUE[8]\" size=\"15\" /></td>";
echo "</table>";
Code: Alles auswählen
<?php
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : w3concepts.picgallery.v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 06-15-2004
* Modified : 06-18-2004
************************************************/
// konfiguration
$pic['bilderpfad'] = "CMS_VALUE[1]"."/";
$pic['thumbnailpfad'] = "CMS_VALUE[2]"."/";
$pic['absbilderpfad'] = $cfgClient[$client]["path"]["frontend"].$pic['bilderpfad'];
$pic['absthumbnailpfad'] = $cfgClient[$client]["path"]["frontend"].$pic['thumbnailpfad'];
$pic['htmlthumbnailpfad'] = $cfgClient[$client]["path"]["htmlpath"].$pic['thumbnailpfad'];
$pic['htmlbilderpfad'] = $cfgClient[$client]["path"]["htmlpath"].$pic['bilderpfad'];
$pic['breite'] = "CMS_VALUE[3]";
if ($pic['breite'] == '') $pic['breite'] = 100;
$pic['hoehe'] = "CMS_VALUE[4]";
if ($pic['hoehe'] == '') $pic['hoehe'] = 100;
$pic['spalten'] = "CMS_VALUE[5]";
if ($pic['spalten'] == '') $pic['spalten'] = 3;
$pic['zeilen'] = "CMS_VALUE[6]";
if ($pic['zeilen'] == '') $pic['zeilen'] = 3;
$pic['anzahl'] = $pic['spalten'] * $pic['zeilen'];
$pic['previous'] = "CMS_VALUE[7]";
if ($pic['previous'] == '') $pic['previous'] = '[:: rückwärts ]';
$pic['next'] = "CMS_VALUE[8]";
if ($pic['next'] == '') $pic['next'] = '[ vorwärts ::]';
// einlesen des bildverzeichnisses
$handle=opendir($pic['absbilderpfad']);
while ($file = readdir ($handle)) {
if ($file != "." && $file != ".." &&$file !="thumbs") {
$bild[] = $file;
}
}
closedir($handle);
sort($bild);
$current = $_GET['tran'];
if ($current == '') $current = 0;
$next = $current + ($pic['spalten'] * $pic['zeilen']);
if ($next >= count($bild)) $next = false;
$previous = $current - ($pic['spalten'] * $pic['zeilen']);
if ($previous < 0) $previous = false;
echo '<p><table cellpadding="0" cellpacing="0" class="bildergalerie">';
for ($i=0;$i<$pic['zeilen'];$i++) {
echo '<tr class="zeile">';
for ($j=0;$j<$pic['spalten'];$j++) {
echo '<td class="zelle">';
$bildnummer = $i * $pic['spalten'] + $j + $current;
if ($bildnummer < count($bild)) {
// bildmasse ermitteln
$src_image_size = getimagesize("{$pic['absbilderpfad']}{$bild[$bildnummer]}");
// prüfen, ob thumbnail bereits vorhanden ist
if (!file_exists("{$pic['absthumbnailpfad']}{$pic['breite']}.{$pic['hoehe']}.{$bild[$bildnummer]}.jpg")) {
// ermitteln ob das bild auf bestimmte höhe oder bestimmte breite zu reduzieren ist
// sowie ermitteln, um welchen faktor das bild zu verkleinern ist
if ($src_image_size[0]/$src_image_size[1] > $pic['breite']/$pic['hoehe']) {
$verkleinerungsfaktor = $pic['breite']/$src_image_size[0];
} else {
$verkleinerungsfaktor = $pic['hoehe']/$src_image_size[1];
}
// berechnen der thumbnailgrösse
$bildhoehe = round($src_image_size[1] * $verkleinerungsfaktor);
$bildbreite = round($src_image_size[0] * $verkleinerungsfaktor);
// thumbnail erstellen
$dst_im = imagecreatetruecolor($bildbreite,$bildhoehe);
if ($src_image_size[2] == 1) {
$src_im = imagecreatefromGIF("{$pic['absbilderpfad']}{$bild[$bildnummer]}");
} elseif ($src_image_size[2] == 2) {
$src_im = @ImageCreateFromJPEG("{$pic['absbilderpfad']}{$bild[$bildnummer]}");
} else {
$src_im = @imagecreatefromgd("{$pic['absbilderpfad']}{$bild[$bildnummer]}");
}
imagecopyresampled ($dst_im,$src_im,0,0,0,0,$bildbreite,$bildhoehe,$src_image_size[0],$src_image_size[1]);
imagejpeg ($dst_im,"{$pic['absthumbnailpfad']}{$pic['breite']}.{$pic['hoehe']}.{$bild[$bildnummer]}.jpg",100);
}
// bildpfad an browser ausgeben
echo "<a href=\"#\" onClick=\"window.open('{$cfgClient[$client]["path"]["htmlpath"]}popupviewer.php?uri={$pic['htmlbilderpfad']}{$bild[$bildnummer]}','bild','width={$src_image_size[0]},height={$src_image_size[1]},top=10,left=10,scrollbars=no,topmargin=0,leftmargin=0');bild.document.body.style.margin=0;\">";
echo "<img src=\"{$pic['htmlthumbnailpfad']}{$pic['breite']}.{$pic['hoehe']}.{$bild[$bildnummer]}.jpg\"/ border=\"0\">";
echo "</a>";
}
echo '</td>';
}
echo '</tr>';
}
echo '</table></p>';
echo '<table class="bildergalerie"><tr class="zeile"><td class="zelle">';
if ($next !== false) {
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&tran=$next");
echo "<a href=\"$link\">{$pic['next']}</a>";
}
echo '</td><td class="zelle">';
if ($previous !== false) {
$link = $sess->url("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&tran=$previous");
echo "<a href=\"$link\">{$pic['previous']}</a>";
}
echo '</td></tr></table>';
?>
Gruss
Christa