Bildergalerie w3concepts.gallery.v1 :: neues Modul

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Re: Glarie funktioniert (fast)

Beitrag von Halchteranerin » Mi 13. Okt 2004, 12:41

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. :(

Aixtraweb
Beiträge: 100
Registriert: Do 23. Sep 2004, 10:55
Wohnort: Herzogenrath
Kontaktdaten:

Re: Glarie funktioniert (fast)

Beitrag von Aixtraweb » Mi 13. Okt 2004, 14:28

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
Mit freundlichen Grüßen
Jörg Knörchen

Meine Hobby-Webseite:
www.mein-foto-abc.de : contenido 4.6.15 - I love it! : www.yogie.de : www.bastelstun.de

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Mi 13. Okt 2004, 15:09

'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:

Halchteranerin
Beiträge: 5478
Registriert: Di 2. Mär 2004, 21:11
Wohnort: Halchter, wo sonst? ;-)
Kontaktdaten:

Beitrag von Halchteranerin » Do 14. Okt 2004, 07:26

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.

uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Beitrag von uups » Di 19. Okt 2004, 09:23

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...

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Di 19. Okt 2004, 09:46

das kommt auch nicht in den code, sondern nur in deine css-klasse. das gilt dann für das ganze dokument.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

uups
Beiträge: 116
Registriert: Fr 16. Jan 2004, 09:08
Kontaktdaten:

Beitrag von uups » Di 19. Okt 2004, 09:54

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...

kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer » Di 19. Okt 2004, 10:01

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.
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)

Rolf Herrmann
Beiträge: 101
Registriert: Fr 6. Aug 2004, 12:44
Kontaktdaten:

IE Fehler Bild undefiniert

Beitrag von Rolf Herrmann » So 24. Okt 2004, 14:37

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

hubert
Beiträge: 25
Registriert: Fr 14. Nov 2003, 18:59
Wohnort: Innsbruck
Kontaktdaten:

IE Javascript-Fehlermeldung

Beitrag von hubert » So 24. Okt 2004, 20:19

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

Rolf Herrmann
Beiträge: 101
Registriert: Fr 6. Aug 2004, 12:44
Kontaktdaten:

bildergalerie von Kummer

Beitrag von Rolf Herrmann » Mo 25. Okt 2004, 06:50

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

hubert
Beiträge: 25
Registriert: Fr 14. Nov 2003, 18:59
Wohnort: Innsbruck
Kontaktdaten:

HILFE: Javaskript-Fehler im Browser MSIE6

Beitrag von hubert » Mo 25. Okt 2004, 13:43

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

Rolf Herrmann
Beiträge: 101
Registriert: Fr 6. Aug 2004, 12:44
Kontaktdaten:

Re: HILFE: Javaskript-Fehler im Browser MSIE6

Beitrag von Rolf Herrmann » Mo 25. Okt 2004, 13:58

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();
?>

Rolf Herrmann
Beiträge: 101
Registriert: Fr 6. Aug 2004, 12:44
Kontaktdaten:

Re: HILFE: Javaskript-Fehler im Browser MSIE6

Beitrag von Rolf Herrmann » Mo 25. Okt 2004, 14:04

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

Aixtraweb
Beiträge: 100
Registriert: Do 23. Sep 2004, 10:55
Wohnort: Herzogenrath
Kontaktdaten:

Beitrag von Aixtraweb » Mo 25. Okt 2004, 14:06

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!
Mit freundlichen Grüßen
Jörg Knörchen

Meine Hobby-Webseite:
www.mein-foto-abc.de : contenido 4.6.15 - I love it! : www.yogie.de : www.bastelstun.de

Gesperrt