Seite 5 von 18

Re: Glarie funktioniert (fast)

Verfasst: Mi 13. Okt 2004, 12:41
von Halchteranerin
Aixtraweb hat geschrieben:bei mir funktioniert (fast) alles, doch das Modul produziert keine Thumbnails bei mir woran kann das liegen?
steht etwas im errorlog? vielleicht 'falsche' gdlib-Version?

Ach ja, zu meiner vorigen Frage: in meinem errorlog steht 'natuerlich' nichts. :(

Re: Glarie funktioniert (fast)

Verfasst: Mi 13. Okt 2004, 14:28
von Aixtraweb
Halchteranerin hat geschrieben: steht etwas im errorlog? vielleicht 'falsche' gdlib-Version?
Version 1.62 oder höher habe ich von meinem Provider erfahren. Im Errorlog steht leider nichts.

Gruss
Jörg

Verfasst: Mi 13. Okt 2004, 15:09
von Halchteranerin
'oder hoeher' ist ein bisschen vage. Ich weiss, dass es zwischen 1.6x und 2.x Unterschiede gibt, und das hat mit dieser Thumbnailerstellung zu tun, die Befehle heissen naemlich unterschiedlich. Entweder suchst du selbst im Forum danach (such nach Bildergallerie oder Bildergalerie, in einem der Threads steht's dann), oder du wartest, bis sich Andreas Kummer meldet, der muesste es aus dem Kopf wissen. :wink:

Verfasst: Do 14. Okt 2004, 07:26
von Halchteranerin
Ich Depp ... mein Problem mit den nicht angezeigten Bildbeschreibungen hat sich erledigt: ich hatte die Beschreibung nicht bei den Originalbildern sondern bei den Thumbnails angegeben. Morgens kann ich wohl klarer denken. :wink:

@Joerg: mir ist eingefallen, dass es irgendwas mit imageresize und imageresample war. Vielleicht versuchst du mal, je nachdem, was zur Zeit im Modul drin steht (ich habe gerade nicht nachgeschaut), das eine durchs andere zu ersetzen.

Verfasst: Di 19. Okt 2004, 09:23
von uups
kummer hat geschrieben:am besten mit css. einfach im bestehenden css, welches über das layout eingebunden wird für die bilder ganz allgemein angeben:

Code: Alles auswählen

img {border:0}
oder dann - als alternative - im quellcode des moduls bei der ausgabe der thumbnails beim image-tag das attribut border auf null setzen. das wäre dann allerdings nicht die wirklich elegante lösung.

Eigentlich wollte ich die "nicht wirklich elegante Lösung" wählen. Oder noch besser die eigene Class für Rahmen verwenden. Leider habe ich nicht wirklich den Platz im Outputbereich des Moduls gefunden??

Uups...

Verfasst: Di 19. Okt 2004, 09:46
von kummer
das kommt auch nicht in den code, sondern nur in deine css-klasse. das gilt dann für das ganze dokument.

Verfasst: Di 19. Okt 2004, 09:54
von uups
kummer hat geschrieben:das kommt auch nicht in den code, sondern nur in deine css-klasse. das gilt dann für das ganze dokument.
Sorry, ich habe mich wohl falsch ausgedrückt!!

Ich will nicht, dass ALLE Bilder auf der Website ohne Rahmen dargestellt werden, sondern nur die Tumbnails der Galerie.

Noch besser wäre es, wenn ich meine bereits bestehende CSS-Klasse "rahmen" verwenden könnte! Deshalb denke ich, dass dies (evtl. in einem div-Tag) wohl irgendwo im Modul platziert werden müsste.

Ich weiss nur leider nicht wo? Oder leige ich falsch?

Uups...

Verfasst: Di 19. Okt 2004, 10:01
von kummer
das kommt nich in ein div, sondern direkt in das img-tag. am besten du durchsuchst den code nach 'img'. wenn du dann ein echo (oder ein print) findest, in dem ein img ausgegeben wird, fügst du einfach deine klasse dort ein.

IE Fehler Bild undefiniert

Verfasst: So 24. Okt 2004, 14:37
von Rolf Herrmann
kummer hat geschrieben:das kommt nich in ein div, sondern direkt in das img-tag. am besten du durchsuchst den code nach 'img'. wenn du dann ein echo (oder ein print) findest, in dem ein img ausgegeben wird, fügst du einfach deine klasse dort ein.
Hallo Habe den Fehler der sich im IE zeigt gefunden und behoben. Jetzt läuft die Galreie auch mit dem IE ohne Javascriptfehler.

Gruss Rolf

IE Javascript-Fehlermeldung

Verfasst: So 24. Okt 2004, 20:19
von hubert
Herr Rolf, ich habe die Javaskript-Fehlermeldung im IE6 auch " 'bild' ist undefiniert" - es ist der "Fenstername", NUR wo ändere ich den???

Ist es möglich, die Fehlerbehebung hier zu posten?

Danke!

lg, Hubert

bildergalerie von Kummer

Verfasst: Mo 25. Okt 2004, 06:50
von Rolf Herrmann
Ja ich kan euch die Änderung dafür geben. Aber wie gesagt. Erst immer Sichern.

in der Ausgabe von w3concepts.gallery.v1 22.09.04:

gibt es die funktion:

function showGallery() {

$cellwidth = floor(100/$this->tableSize['cols']);
echo "<table width=\"100%\">\n";
for ($i = 0;$i < $this->tableSize['rows'];$i++) {
$beschreibung = null;

diese bitte Austauschen mit DIESER FUNKTION:

function showGallery() {
echo "<script language=\"javascript\">\n";
echo "function open_window(URL, NAME, ADD) {\n";
echo " F1= window.open(URL, NAME, ADD);\n";
echo "}\n</script>\n";
$cellwidth = floor(100/$this->tableSize['cols']);
echo "<table width=\"100%\">\n";
for ($i = 0;$i < $this->tableSize['rows'];$i++) {
$beschreibung = null;

Wie ihr ja sehen könnt, sind dort 4 Zeilen neu eingefügt. Bei mir funktioniert es wunderbar.

Und das Borderproblem könnt ihr hier lösen

in der Ausgabe // referenz zurück geben

return "<a href=\"javascript:open_window('{$this->path['html']}popupviewer.php?uri={$this->path['upload']}{$this->path['pictures']}{$this->picture[$this->showNextPictureSeq]}','bild','width={$originalsize[0]},height={$originalsize[1]},top=10,left=10,scrollbars=no,topmargin=0,leftmargin=0');\"><img src=\"{$this->htmlpath}{$size['filename']}\" width=\"{$size['width']}\" border=\0\ height=\"{$size['height']}\" /></a>";

So und nun hoffe ich das es bei Euch auch klappt. Ich übernehme keine Garantie.

Gruss Rolf

HILFE: Javaskript-Fehler im Browser MSIE6

Verfasst: Mo 25. Okt 2004, 13:43
von hubert
Danke Rolf, nur leider lösen deine "Erweiterungen" der showGallery() bei mir das Problem der Fehlermeldung beim Browser IE60 immr noch nicht.

Vielleicht hat jemand eine Lösung:

klicke ich im IE60 auf ein Thumbnailbild, öffnet sich das Bild in Orginalgröße in einem eignen Fenster, nur steht in der Statuszeile des ersten Fensters: "Fehler auf der Seite: Zeile:1 Zeichen:184 (je nach Thumbnail) Fehler: 'bild' ist undefiniert code:0 url:"pfad von front_content.php""

Lieber Andreas KUMMER, hast du da eine Idee, wie ich dem Fenster den Namen "bild" beibringe?????

Danke!

lg, Hubert

Re: HILFE: Javaskript-Fehler im Browser MSIE6

Verfasst: Mo 25. Okt 2004, 13:58
von Rolf Herrmann
hubert hat geschrieben:Danke Rolf, nur leider lösen deine "Erweiterungen" der showGallery() bei mir das Problem der Fehlermeldung beim Browser IE60 immr noch nicht.

Vielleicht hat jemand eine Lösung:

klicke ich im IE60 auf ein Thumbnailbild, öffnet sich das Bild in Orginalgröße in einem eignen Fenster, nur steht in der Statuszeile des ersten Fensters: "Fehler auf der Seite: Zeile:1 Zeichen:184 (je nach Thumbnail) Fehler: 'bild' ist undefiniert code:0 url:"pfad von front_content.php""

Lieber Andreas KUMMER, hast du da eine Idee, wie ich dem Fenster den Namen "bild" beibringe?????

Danke!

lg, Hubert
versuch es mal mit diesen Code in den Output.
<?
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : w3concepts.gallery.v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 30-08-2004
* Modified : 30-08-2004
************************************************/

class gallery {

function gallery() {
// initialwerte setzen
$this->setInitValues();

// aussteigen, falls initialwerte nicht sinnvoll
if (!$this->checkInitValues()) return false;

// quellverzeichnis auslesen
$this->readDir();

// zeiger für showNextPicture setzen
if (empty($_REQUEST['pos'])) {
$this->showNextPictureSeq = -1;
} else {
$this->showNextPictureSeq = $_REQUEST['pos'] - 1;
}

// datenbankzugriff initialisieren
$this->db = new DB_Contenido;

// galerie ausgeben
$this->showGallery();

// gegebenenfalls navigation ausgeben
$this->showNavigation();

}

function setInitValues() {
// konfigurationswerte aus dem input-script
// übernehmen
$this->path['pictures'] = "CMS_VALUE[0]";
$this->path['thumbs'] = "CMS_VALUE[1]";
$this->path['upload'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'];
$this->path['html'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['htmlpath'];
$this->abspath['pictures'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['frontend'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$this->path['pictures'];
$this->abspath['thumbs'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['frontend'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$this->path['thumbs'];
$this->htmlpath = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['htmlpath'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'];
$this->thumbnailSize['width'] = "CMS_VALUE[2]";
$this->thumbnailSize['height'] = "CMS_VALUE[3]";
$this->tableSize['cols'] = "CMS_VALUE[4]";
$this->tableSize['rows'] = "CMS_VALUE[5]";
$this->link['previous'] = "CMS_VALUE[6]";
$this->link['next'] = "CMS_VALUE[7]";
}

function checkInitValues() {
// prüfen, ob es sich bei den übergebenen pfaden
// um tatsächlich vorhandene pfade im dateisystem
// handelt. gegebenenfalls wird eine ausgabe
// an den browser vorgenommen und false zurückgegeben.
if (!chdir($this->abspath['pictures'])) {
echo "<p>Das Verzeichnis '{$this->abspath['pictures']}' existiert im Dateisystem
des Servers nicht. Entweder müssen Sie es noch anlegen oder die
Konfiguration Ihres Modules anpassen.</p>";
return false;
}
if (!chdir($this->abspath['thumbs'])) {
echo "<p>Das Verzeichnis '{$this->abspath['thumbs']}' existiert im Dateisystem
des Servers nicht. Entweder müssen Sie es noch anlegen oder die
Konfiguration Ihres Modules anpassen.</p>";
return false;
}

if ($this->thumbnailSize['width'] == '') $this->thumbnailSize['width'] = 100;
if ($this->thumbnailSize['height'] == '') $this->thumbnailSize['height'] = 100;

if ($this->tableSize['cols'] == '') $this->tableSize['cols'] = 3;
if ($this->tableSize['rows'] == '') $this->tableSize['rows'] = 3;

if ($this->link['previous'] == '') $this->link['previous'] = '[:: rückwärts ]';
if ($this->link['next'] == '') $this->link['next'] = '[ vorwärts ::]';


// rückgabe im erfolgsfall
return true;
}

function readDir() {
$dir = opendir($this->abspath['pictures']);
while ($file = readdir($dir)) {
$bildinfo = @getimagesize($this->abspath['pictures'].$file);
if (!empty($bildinfo)) {
$picture[] = $file;
}
}
rsort($picture);
closedir($dir);

foreach ($picture as $picture2) {
if (!empty($picture2)) $this->picture[] = $picture2;
}
}

function showNextPicture() {
// zeiger um eins erhöhen
$this->showNextPictureSeq++;

// wenn keine bild mehr vorhanden ist, false zurück geben
if ($this->showNextPictureSeq >= count($this->picture)) return '';

// thumbnail generieren falls erforderlich
$size = $this->generateThumb($this->picture["{$this->showNextPictureSeq}"]);

// originalgrösse des bildes ermitteln
$originalsize = getimagesize($this->abspath['pictures'].$this->picture["{$this->showNextPictureSeq}"]);

// referenz zurück geben
//return "<a href="#" onClick="window.open('{$this->path['html']}popupviewer.php?uri={$this->path['upload']}{$this->path['pictures']}{$this->picture[$this->showNextPictureSeq]}','bild','width={$originalsize[0]},height={$originalsize[1]},top=10,left=10,scrollbars=no,topmargin=0,leftmargin=0');bild.document.body.style.margin=0;"><img src="{$this->htmlpath}{$size['filename']}" width="{$size['width']}" height="{$size['height']}" /></a>";
// return "<a href="javascript:window.open('{$this->path['html']}popupviewer.php?uri={$this->path['upload']}{$this->path['pictures']}{$this->picture[$this->showNextPictureSeq]}','bild','width={$originalsize[0]},height={$originalsize[1]},top=10,left=10,scrollbars=no,topmargin=0,leftmargin=0');bild.document.body.style.margin=0;"><img src="{$this->htmlpath}{$size['filename']}" width="{$size['width']}" border=\0\ height="{$size['height']}" /></a>";
return "<a href="javascript:open_window('{$this->path['html']}popupviewer.php?uri={$this->path['upload']}{$this->path['pictures']}{$this->picture[$this->showNextPictureSeq]}','bild','width={$originalsize[0]},height={$originalsize[1]},top=10,left=10,scrollbars=no,topmargin=0,leftmargin=0');"><img src="{$this->htmlpath}{$size['filename']}" width="{$size['width']}" border=\0\ height="{$size['height']}" /></a>";
}

function generateThumb($filename) {

$src_image_size = getimagesize($this->abspath['pictures'].$filename);

// prüfen, ob thumbnail bereits vorhanden ist
if (!file_exists("{$this->abspath['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.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] > $this->thumbnailSize['width']/$this->thumbnailSize['height']) {
$verkleinerungsfaktor = $this->thumbnailSize['width']/$src_image_size[0];
} else {
$verkleinerungsfaktor = $this->thumbnailSize['height']/$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("{$this->abspath['pictures']}$filename");
} elseif ($src_image_size[2] == 2) {
$src_im = @ImageCreateFromJPEG("{$this->abspath['pictures']}$filename");
} else {
$src_im = @imagecreatefromgd("{$this->abspath['pictures']}$filename");
}
imagecopyresampled ($dst_im,$src_im,0,0,0,0,$bildbreite,$bildhoehe,$src_image_size[0],$src_image_size[1]);
imagejpeg ($dst_im,"{$this->abspath['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg",100);

$size['width'] = $bildbreite;
$size['height'] = $bildhoehe;
} else {
$thumbnailsize = getimagesize("{$this->abspath['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg");
$size['width'] = $thumbnailsize[0];
$size['height'] = $thumbnailsize[1];
}

$size['filename'] = "{$this->path['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg";

return $size;
}

function getDescription() {

$sql = "SELECT description FROM {$GLOBALS['cfg']['tab']['upl']}
WHERE
filename = '{$this->picture[$this->showNextPictureSeq]}'
AND dirname = '{$this->path['pictures']}'
";

$this->db->query($sql);
$this->db->next_record();

return $this->db->f("description");;
}

function showGallery() {
echo "<script language="javascript">\n";
echo "function open_window(URL, NAME, ADD) {\n";
echo " F1= window.open(URL, NAME, ADD);\n";
echo "}\n</script>\n";
$cellwidth = floor(100/$this->tableSize['cols']);
echo "<table width="100%">\n";
for ($i = 0;$i < $this->tableSize['rows'];$i++) {
$beschreibung = null;

echo "<tr>\n";
for ($j = 0;$j < $this->tableSize['cols'];$j++) {
echo "<td align="left" valign="top" width="$cellwidth%">\n".$this->showNextPicture()."\n</td>\n";
$beschreibung[] = $this->getDescription();
}
echo "</tr>\n";

echo "<tr>\n";
for ($j = 0;$j < $this->tableSize['cols'];$j++) {
echo "<td align="left" valign="top" width="$cellwidth%" style="padding-bottom:10px; font-style: italic;">\n{$beschreibung[$j]}\n</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
}

function showNavigation() {

if ($this->tableSize['cols'] * $this->tableSize['rows'] < count($this->picture)) {
echo "<table width="100%">\n<tr>\n";

if (!empty($_REQUEST['pos'])) {
$pos = ($this->showNextPictureSeq <= $this->tableSize['cols'] * $this->tableSize['rows']) ? (0) : ($this->showNextPictureSeq - (2 * $this->tableSize['cols'] * $this->tableSize['rows']) + 1);
$pos = ($pos < 0) ? (0) : ($pos);
$link = $GLOBALS['sess']->url("front_content.php?client={$GLOBALS['client']}&lang={$GLOBALS['lang']}&idcat={$GLOBALS['idcat']}&idart={$GLOBALS['idart']}&pos=$pos");
echo "<td style="text-align:left; width:33%"><a href="$link">{$this->link['previous']}</a></td>";
} else {
echo "<td style="text-align:left; width:33%">&nbsp;</td>";
}

echo "<td align="center" width="33%">&nbsp;</td>";

if ($this->showNextPictureSeq + 1 < count($this->picture)) {
$pos = $this->showNextPictureSeq + 1;
$link = $GLOBALS['sess']->url("front_content.php?client={$GLOBALS['client']}&lang={$GLOBALS['lang']}&idcat={$GLOBALS['idcat']}&idart={$GLOBALS['idart']}&pos=$pos");
echo "<td style="text-align:right; width:33%"><a href="$link">{$this->link['next']}</a></td>";
} else {
echo "<td style="text-align:right; width:33%">&nbsp;</td>";
}

echo "</tr>\n</table>\n";
}
}

}

$gallery = new gallery();
?>

Re: HILFE: Javaskript-Fehler im Browser MSIE6

Verfasst: Mo 25. Okt 2004, 14:04
von Rolf Herrmann
hubert hat geschrieben:Danke Rolf, nur leider lösen deine "Erweiterungen" der showGallery() bei mir das Problem der Fehlermeldung beim Browser IE60 immr noch nicht.

Vielleicht hat jemand eine Lösung:

klicke ich im IE60 auf ein Thumbnailbild, öffnet sich das Bild in Orginalgröße in einem eignen Fenster, nur steht in der Statuszeile des ersten Fensters: "Fehler auf der Seite: Zeile:1 Zeichen:184 (je nach Thumbnail) Fehler: 'bild' ist undefiniert code:0 url:"pfad von front_content.php""

Lieber Andreas KUMMER, hast du da eine Idee, wie ich dem Fenster den Namen "bild" beibringe?????

Danke!

lg, Hubert
versuch es mal mit diesen Code in den Output.
<?
/***********************************************
* CONTENIDO MODUL - OUTPUT
*
* Modulname : w3concepts.gallery.v1
* Author : Andreas Kummer
* Copyright : mumprecht & kummer w3concepts
* Created : 30-08-2004
* Modified : 30-08-2004
************************************************/

class gallery {

function gallery() {
// initialwerte setzen
$this->setInitValues();

// aussteigen, falls initialwerte nicht sinnvoll
if (!$this->checkInitValues()) return false;

// quellverzeichnis auslesen
$this->readDir();

// zeiger für showNextPicture setzen
if (empty($_REQUEST['pos'])) {
$this->showNextPictureSeq = -1;
} else {
$this->showNextPictureSeq = $_REQUEST['pos'] - 1;
}

// datenbankzugriff initialisieren
$this->db = new DB_Contenido;

// galerie ausgeben
$this->showGallery();

// gegebenenfalls navigation ausgeben
$this->showNavigation();

}

function setInitValues() {
// konfigurationswerte aus dem input-script
// übernehmen
$this->path['pictures'] = "CMS_VALUE[0]";
$this->path['thumbs'] = "CMS_VALUE[1]";
$this->path['upload'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'];
$this->path['html'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['htmlpath'];
$this->abspath['pictures'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['frontend'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$this->path['pictures'];
$this->abspath['thumbs'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['frontend'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$this->path['thumbs'];
$this->htmlpath = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['htmlpath'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'];
$this->thumbnailSize['width'] = "CMS_VALUE[2]";
$this->thumbnailSize['height'] = "CMS_VALUE[3]";
$this->tableSize['cols'] = "CMS_VALUE[4]";
$this->tableSize['rows'] = "CMS_VALUE[5]";
$this->link['previous'] = "CMS_VALUE[6]";
$this->link['next'] = "CMS_VALUE[7]";
}

function checkInitValues() {
// prüfen, ob es sich bei den übergebenen pfaden
// um tatsächlich vorhandene pfade im dateisystem
// handelt. gegebenenfalls wird eine ausgabe
// an den browser vorgenommen und false zurückgegeben.
if (!chdir($this->abspath['pictures'])) {
echo "<p>Das Verzeichnis '{$this->abspath['pictures']}' existiert im Dateisystem
des Servers nicht. Entweder müssen Sie es noch anlegen oder die
Konfiguration Ihres Modules anpassen.</p>";
return false;
}
if (!chdir($this->abspath['thumbs'])) {
echo "<p>Das Verzeichnis '{$this->abspath['thumbs']}' existiert im Dateisystem
des Servers nicht. Entweder müssen Sie es noch anlegen oder die
Konfiguration Ihres Modules anpassen.</p>";
return false;
}

if ($this->thumbnailSize['width'] == '') $this->thumbnailSize['width'] = 100;
if ($this->thumbnailSize['height'] == '') $this->thumbnailSize['height'] = 100;

if ($this->tableSize['cols'] == '') $this->tableSize['cols'] = 3;
if ($this->tableSize['rows'] == '') $this->tableSize['rows'] = 3;

if ($this->link['previous'] == '') $this->link['previous'] = '[:: rückwärts ]';
if ($this->link['next'] == '') $this->link['next'] = '[ vorwärts ::]';


// rückgabe im erfolgsfall
return true;
}

function readDir() {
$dir = opendir($this->abspath['pictures']);
while ($file = readdir($dir)) {
$bildinfo = @getimagesize($this->abspath['pictures'].$file);
if (!empty($bildinfo)) {
$picture[] = $file;
}
}
rsort($picture);
closedir($dir);

foreach ($picture as $picture2) {
if (!empty($picture2)) $this->picture[] = $picture2;
}
}

function showNextPicture() {
// zeiger um eins erhöhen
$this->showNextPictureSeq++;

// wenn keine bild mehr vorhanden ist, false zurück geben
if ($this->showNextPictureSeq >= count($this->picture)) return '';

// thumbnail generieren falls erforderlich
$size = $this->generateThumb($this->picture["{$this->showNextPictureSeq}"]);

// originalgrösse des bildes ermitteln
$originalsize = getimagesize($this->abspath['pictures'].$this->picture["{$this->showNextPictureSeq}"]);

// referenz zurück geben
//return "<a href="#" onClick="window.open('{$this->path['html']}popupviewer.php?uri={$this->path['upload']}{$this->path['pictures']}{$this->picture[$this->showNextPictureSeq]}','bild','width={$originalsize[0]},height={$originalsize[1]},top=10,left=10,scrollbars=no,topmargin=0,leftmargin=0');bild.document.body.style.margin=0;"><img src="{$this->htmlpath}{$size['filename']}" width="{$size['width']}" height="{$size['height']}" /></a>";
// return "<a href="javascript:window.open('{$this->path['html']}popupviewer.php?uri={$this->path['upload']}{$this->path['pictures']}{$this->picture[$this->showNextPictureSeq]}','bild','width={$originalsize[0]},height={$originalsize[1]},top=10,left=10,scrollbars=no,topmargin=0,leftmargin=0');bild.document.body.style.margin=0;"><img src="{$this->htmlpath}{$size['filename']}" width="{$size['width']}" border=\0\ height="{$size['height']}" /></a>";
return "<a href="javascript:open_window('{$this->path['html']}popupviewer.php?uri={$this->path['upload']}{$this->path['pictures']}{$this->picture[$this->showNextPictureSeq]}','bild','width={$originalsize[0]},height={$originalsize[1]},top=10,left=10,scrollbars=no,topmargin=0,leftmargin=0');"><img src="{$this->htmlpath}{$size['filename']}" width="{$size['width']}" border=\0\ height="{$size['height']}" /></a>";
}

function generateThumb($filename) {

$src_image_size = getimagesize($this->abspath['pictures'].$filename);

// prüfen, ob thumbnail bereits vorhanden ist
if (!file_exists("{$this->abspath['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.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] > $this->thumbnailSize['width']/$this->thumbnailSize['height']) {
$verkleinerungsfaktor = $this->thumbnailSize['width']/$src_image_size[0];
} else {
$verkleinerungsfaktor = $this->thumbnailSize['height']/$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("{$this->abspath['pictures']}$filename");
} elseif ($src_image_size[2] == 2) {
$src_im = @ImageCreateFromJPEG("{$this->abspath['pictures']}$filename");
} else {
$src_im = @imagecreatefromgd("{$this->abspath['pictures']}$filename");
}
imagecopyresampled ($dst_im,$src_im,0,0,0,0,$bildbreite,$bildhoehe,$src_image_size[0],$src_image_size[1]);
imagejpeg ($dst_im,"{$this->abspath['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg",100);

$size['width'] = $bildbreite;
$size['height'] = $bildhoehe;
} else {
$thumbnailsize = getimagesize("{$this->abspath['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg");
$size['width'] = $thumbnailsize[0];
$size['height'] = $thumbnailsize[1];
}

$size['filename'] = "{$this->path['thumbs']}{$this->thumbnailSize['width']}.{$this->thumbnailSize['height']}.$filename.jpg";

return $size;
}

function getDescription() {

$sql = "SELECT description FROM {$GLOBALS['cfg']['tab']['upl']}
WHERE
filename = '{$this->picture[$this->showNextPictureSeq]}'
AND dirname = '{$this->path['pictures']}'
";

$this->db->query($sql);
$this->db->next_record();

return $this->db->f("description");;
}

function showGallery() {
echo "<script language="javascript">\n";
echo "function open_window(URL, NAME, ADD) {\n";
echo " F1= window.open(URL, NAME, ADD);\n";
echo "}\n</script>\n";
$cellwidth = floor(100/$this->tableSize['cols']);
echo "<table width="100%">\n";
for ($i = 0;$i < $this->tableSize['rows'];$i++) {
$beschreibung = null;

echo "<tr>\n";
for ($j = 0;$j < $this->tableSize['cols'];$j++) {
echo "<td align="left" valign="top" width="$cellwidth%">\n".$this->showNextPicture()."\n</td>\n";
$beschreibung[] = $this->getDescription();
}
echo "</tr>\n";

echo "<tr>\n";
for ($j = 0;$j < $this->tableSize['cols'];$j++) {
echo "<td align="left" valign="top" width="$cellwidth%" style="padding-bottom:10px; font-style: italic;">\n{$beschreibung[$j]}\n</td>\n";
}
echo "</tr>\n";
}
echo "</table>\n";
}

function showNavigation() {

if ($this->tableSize['cols'] * $this->tableSize['rows'] < count($this->picture)) {
echo "<table width="100%">\n<tr>\n";

if (!empty($_REQUEST['pos'])) {
$pos = ($this->showNextPictureSeq <= $this->tableSize['cols'] * $this->tableSize['rows']) ? (0) : ($this->showNextPictureSeq - (2 * $this->tableSize['cols'] * $this->tableSize['rows']) + 1);
$pos = ($pos < 0) ? (0) : ($pos);
$link = $GLOBALS['sess']->url("front_content.php?client={$GLOBALS['client']}&lang={$GLOBALS['lang']}&idcat={$GLOBALS['idcat']}&idart={$GLOBALS['idart']}&pos=$pos");
echo "<td style="text-align:left; width:33%"><a href="$link">{$this->link['previous']}</a></td>";
} else {
echo "<td style="text-align:left; width:33%">&nbsp;</td>";
}

echo "<td align="center" width="33%">&nbsp;</td>";

if ($this->showNextPictureSeq + 1 < count($this->picture)) {
$pos = $this->showNextPictureSeq + 1;
$link = $GLOBALS['sess']->url("front_content.php?client={$GLOBALS['client']}&lang={$GLOBALS['lang']}&idcat={$GLOBALS['idcat']}&idart={$GLOBALS['idart']}&pos=$pos");
echo "<td style="text-align:right; width:33%"><a href="$link">{$this->link['next']}</a></td>";
} else {
echo "<td style="text-align:right; width:33%">&nbsp;</td>";
}

echo "</tr>\n</table>\n";
}
}

}

$gallery = new gallery();
?>

Und schau mal unter diesem Link.

http://www.wondernet24.de/cms/front_con ... =122&pos=0

Gruss ROlf

Verfasst: Mo 25. Okt 2004, 14:06
von Aixtraweb
Halchteranerin hat geschrieben:@Joerg: mir ist eingefallen, dass es irgendwas mit imageresize und imageresample war. Vielleicht versuchst du mal, je nachdem, was zur Zeit im Modul drin steht (ich habe gerade nicht nachgeschaut), das eine durchs andere zu ersetzen.
Ich habe erstmal eine andere Galerie mittels IFRAME eingebunden und meinen Provider gebeten die GDLIB zu Updaten, denn im Errorlog stand was von need GDLIB 2 or higher!

Lieben Dank nochmal für Deinen Hinweis!