4.8.14 - mit AMR und w3concepts.gallery.v1

Gesperrt
rw72
Beiträge: 253
Registriert: Do 22. Jan 2004, 16:24
Kontaktdaten:

4.8.14 - mit AMR und w3concepts.gallery.v1

Beitrag von rw72 »

Hallo,

ich habe heute ein Update von 4.8.12 auf die 4.8.14 durchgeführt.
Jetzt wird immer beim Menupunkt Bildergalerie in der URL ?error=1
Wenn ich AMR deaktivere funktioniert es - bei der 4.8.12 hat es noch funktioniert.
Die restlichen Seiten funktionieren.

Im Errorlog ist nichts zu sehen.

Kennt jemand das Problem? Und wie kann ich es beseitigen?

Danke
Ralf

Hier der Code des Moduls

Code: Alles auswählen

<?php
/*********************************************** 
* 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[]= array();
            $picture[] = $file; 
         } 
      } 
      sort($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']}\" 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 urldecode($this->db->f("description")); 
   } 

   function showGallery() { 

      $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%\" class=\"text\">\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;\" class=\"text\">\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(); 
?>
Viele Grüße
Ralf
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: 4.8.14 - mit AMR und w3concepts.gallery.v1

Beitrag von xmurrix »

Hallo rw72,

habe mir das gerade angesehen, im Modulcode wird das Script popupviewer.php, das im Mandantenverzeichnis liegt, referenziert.

Falls du die restriktive .htaccess aus dem AMR-Plugin verwendest, musst du dafür eine Ausnahme in der .htaccess einbauen. Füge einfach unterhalb von "Exclude some files and directories from rewriting" folgende Zeile hinzu:

Code: Alles auswählen

RewriteRule ^cms/popupviewer.php.*$ - [L]
Das sollte das Problem lösen.

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
rw72
Beiträge: 253
Registriert: Do 22. Jan 2004, 16:24
Kontaktdaten:

Re: 4.8.14 - mit AMR und w3concepts.gallery.v1

Beitrag von rw72 »

Hallo,

danke für den Tip.
Aber das hilft ja erst bei der Bilderansicht.
Aber es funktioniert leider nicht - die Bildergalerie wird nicht angezeigt. Also ich komme nicht so weit das ich ein Bild überhaupt anklicken kann.

Grüße
Ralf
Viele Grüße
Ralf
xmurrix
Beiträge: 3215
Registriert: Do 21. Okt 2004, 11:08
Wohnort: Augsburg
Hat sich bedankt: 4 Mal
Danksagung erhalten: 16 Mal
Kontaktdaten:

Re: 4.8.14 - mit AMR und w3concepts.gallery.v1

Beitrag von xmurrix »

Hallo rw72,

die w3concepts.gallery.v1 funktioniert auch mit dem AMR-Plugin, ich kann da keine Probleme erkennen.
Wenn der Artikel nicht angezeigt wird, hat es vermutlich einen anderen Grund. An der Kombination Bildergalerie + AMR-Plugin liegt das nicht.

Kann man sich das irgendwo live ansehen?

Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
rw72
Beiträge: 253
Registriert: Do 22. Jan 2004, 16:24
Kontaktdaten:

Re: 4.8.14 - mit AMR und w3concepts.gallery.v1

Beitrag von rw72 »

Hallo,

ja an der Gallery hängt es nicht.
Es liegt wohl irgendwo im Modul_rewrite. Denn ich habe noch eine andere Seite die nicht geht.

Danke
Viele Grüße
Ralf
Gesperrt