w3concepts.alist.thumb.v1 - doppelt verwenden - geht das?

Gesperrt
DEDE
Beiträge: 314
Registriert: Do 19. Feb 2004, 16:15
Kontaktdaten:

w3concepts.alist.thumb.v1 - doppelt verwenden - geht das?

Beitrag von DEDE »

Ich bekomme da folgenden Fehler:

Fatal error: Cannot redeclare class pfadalistthumb in /www/htdocs/w0057103/contenido/includes/include.pretplcfg_edit_form.php(122) : eval()'d code on line 12

:?:
Daaank
Dede
emergence
Beiträge: 10653
Registriert: Mo 28. Jul 2003, 12:49
Wohnort: Austria
Kontaktdaten:

Beitrag von emergence »

eine klasse sowie eine funktion kann jeweils nur einmal definiert werden...
sonst kommt es zu einer fehlermeldung wie in deinem fall..

ein modul das keine überprüfung vornimmt ob die entsprechende funktion/klasse bereits existiert kann ohne weitere anpassungen nicht mehrfach verwendet werden...

die antwort lautet somit jein...
*** make your own tools (wishlist :: thx)
DEDE
Beiträge: 314
Registriert: Do 19. Feb 2004, 16:15
Kontaktdaten:

Beitrag von DEDE »

hhhhmmm ... und wie könnte ich dass dann ggf. realisieren (2. verschieden "designte" Artlists mit Thumb ...)

Ideen sehr willkommen!

Sonnigen Dank
Daniela
DEDE
Beiträge: 314
Registriert: Do 19. Feb 2004, 16:15
Kontaktdaten:

Beitrag von DEDE »

Welche Funktionen oder Klassen sollte ich denn umbenennen ... ich bin da ja durchaus kreativ, gelle ;-))

:arrow: ... dank sei emergence ... 8)

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

Beitrag von kummer »

das modul, welches zuerst eingebunden wird, muss die klassendefinition enthalten sowie die instanziierung der klasse.

das zweite modul benötigt die klassendefinition nicht mehr. also in diesem einfach weglöschen. die instanziierung muss natürlich bleiben (versteht sich von selber).

wenn du es nicht selber schaffst, dann publizier doch einfach das ganze modul so, wie du es derzeit verwendest.

gruss,
andreas
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
DEDE
Beiträge: 314
Registriert: Do 19. Feb 2004, 16:15
Kontaktdaten:

Beitrag von DEDE »

oky ... ich hab durchgeguckt und war nu nicht sicher, dass ich das Fehlerfrei modifizieren könnte, also bitte ich untertänigst ;-) um fachlichen Beistand:

Code: Alles auswählen

w3concepts.alist.thumbs.v1 (oben)
!!4.5.2 Version!!
* automatische thumbnailgenerierung, wenn ein bild im bildmodul 1 vorliegt 
* teaser wird aus der seitenzusammenfassung ungekürzt übernommen 
* titel wird dem seitentitel entnommen 
* startartikel sind ausgeblendet 
* geht bis zu 2 kategorieebenen in die tiefe 
INPUT

Code: Alles auswählen

/*********************************************** 
* CONTENIDO MODUL - INPUT 
* 
* Modulname   :       w3concepts.alist.thumb.v1 
* Author      :     Andreas Kummer 
* Copyright   :     mumprecht & kummer w3concepts 
* Created     :     07-11-2004 
* Modified    :     07-11-2004 
************************************************/ 

class pfadAlistThumb { 

   function pfadAlistThumb($pfad) { 
      $this->pfad = $pfad; 
      $this->pathlen = strlen($this->pfad); 
   } 

   function getPath($root,$level = 0) { 
      $content = $this->readDir($root); 

      foreach ($content as $file) { 
         if (is_dir($root.$file)) { 
            $verzeichnis = substr($root,$this->pathlen); 
            $returnvalue["{$verzeichnis}{$file}/"] = str_repeat(" ",$level * 5).$file; 
            $returnvalue = array_merge($returnvalue,$this->getPath($root.$file."/",$level+1)); 
         } 
      } 

      return $returnvalue; 
   } 

   function readDir($path) { 
      $handle = opendir($path); 

      while ($file = readdir ($handle)) { 
         if ($file != "." && $file != "..") $returnvalue[] = $file; 
      } 
      closedir($handle); 

      return $returnvalue; 
   } 

   function makeSelect($preselection) { 
      $pfad = $this->getPath($this->pfad); 

      foreach ($pfad as $key => $value) { 
         echo "$key :: $value<br/>\n"; 
         if ($preselection == $key) { 
            echo "<option value=\"$key\" selected=\"selected\">$value</option>"; 
         } else { 
            echo "<option value=\"$key\">$value</option>"; 
         } 
      } 
   } 
} 

$pfad = new pfadAlistThumb($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload']); 

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">"; 

echo "<tr><td>Thumbnailpfad:</td>"; 
echo "<td><select size=\"1\" name=\"CMS_VAR[0]\" />"; 
$pfad->makeSelect("CMS_VALUE[0]"); 
echo "</td>"; 

echo "<tr valign=\"top\"><td>Kategorie wählen:</td><td><select name=\"CMS_VAR[1]\">"; 
$selected = "CMS_VALUE[1]"; 

if($selected!="0" && $selected!=""){ 
    echo"<option value=\"0\">--- kein ---</option>"; 
} else { 
    echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>"; 
} 

$sql = " 
    SELECT a.idcat, a.level, c.name 
    FROM {$cfg['tab']['cat_tree']} AS a, 
         {$cfg['tab']['cat']} AS b, 
         {$cfg['tab']['cat_lang']} AS c 
    WHERE 
        a.idcat = b.idcat 
        AND b.idcat = c.idcat 
        AND c.idlang='$lang' 
        AND b.idclient='$client' 
        AND c.visible = 1 
    ORDER BY a.idtree 
    "; 

$db->query($sql); 

while ($db->next_record()) { 
    $spaces = "|"; 
    $levels = $db->f("level"); 
    for ($i = 0; $i < $levels; $i ++) { 
        $spaces = $spaces . "--"; 
    } 
    $spaces .= ">"; 

    if ($selected == $db->f("idcat")) { 
        echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 
    } else { 
        echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 
    } 
} 

echo "</select></td></tr>"; 

echo "<tr><td>Anzahl Artikel je Seite:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\" size=\"3\" /></td>"; 

echo "<tr><td>Text für Previous-Link:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\" size=\"15\" /></td>"; 

echo "<tr><td>Text für Next-Link:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\" size=\"15\" /></td>"; 

echo "<tr><td>Thumbnail-Breite:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\" size=\"5\" /></td>"; 

echo "<tr><td>Artikel anzeigen bis:</td>"; 
echo "<td><select name=\"CMS_VAR[6]\">"; 
$ebene = "CMS_VALUE[6]"; 
for ($i=0;$i>-3;$i--) { 
    if ($i == $ebene) { 
        echo"<option value=\"$i\" selected=\"selected\">Ebene $i</option>"; 
    } else { 
        echo"<option value=\"$i\">Ebene $i</option>"; 
    } 
} 

echo "</table>";
OUTPUT

Code: Alles auswählen

<?php 
/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname   :     w3concepts.alist.mod4.v1 
* Author      :     Andreas Kummer 
* Copyright   :     mumprecht & kummer w3concepts 
* Created     :     06-21-2004 
* Modified    :     06-21-2004 
************************************************/ 

class alistThumbs { 

   function alistThumbs() { 

      // Initialwerte festlegen 
      $this->setIniValues(); 

      // Datenbankverbindung herstellen 
      $this->db  = new DB_Contenido; 
      $this->db2  = new DB_Contenido; 

      // Anzahl Artikel ermitteln 
      $this->anzahl_artikel = $this->getNumberOfArticles(); 

      // Artikel auslesen 
      $this->getArticles(); 

      // Artikel ausgeben 
      $this->showArticles(); 

      // Navigation ausgeben 
      $this->showNavigation(); 
   } 

   function setIniValues() { 
       
      $bildzielpfad = "CMS_VALUE[0]"; 
      $this->bildzielpfad['frontend'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['htmlpath'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$bildzielpfad; 
      $this->bildzielpfad['backend'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['frontend'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$bildzielpfad; 

      $this->categorie = "CMS_VALUE[1]"; 

      $this->angezeigte_anzahl = "CMS_VALUE[2]"; 
      if ($this->angezeigte_anzahl == '') $this->angezeigte_anzahl = 10; 

      $this->navigationslink['previous'] = "CMS_VALUE[3]"; 
      if ($this->navigationslink['previous'] == '') $this->navigationslink['previous'] = '[:: rückwärts ]'; 

      $this->navigationslink['next'] = "CMS_VALUE[4]"; 
      if ($this->navigationslink['next'] == '') $this->navigationslink['next'] = '[ vorwärts ::]'; 

      $this->ebene = "CMS_VALUE[6]"; 

      $this->bildbreite = "CMS_VALUE[5]"; 

      $this->limit = (isset($_GET['displaylimit']) && $_GET['displaylimit'] > 0)?($_GET['displaylimit']):(0); 
   } 

   function createImage($dirname, $filename) { 

      global $cfg, $cfgClient, $client; 

      $bilddateiname = "{$this->bildbreite}_$filename.jpg"; 

                if (!file_exists("{$this->bildzielpfad['backend']}$bilddateiname")) { 

         $src_image_size = getimagesize($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename); 

         $bildhoehe = round($src_image_size[1] * $this->bildbreite / $src_image_size[0]); 
         if ($bildhoehe > $this->bildbreite) { 
            $bildhoehe = $this->bildbreite; 
            $bildbreite = round($src_image_size[0] * $bildhoehe / $src_image_size[1]); 
         } else { 
            $bildbreite = $this->bildbreite; 
         }       

                    $dst_im = imagecreatetruecolor($bildbreite,$bildhoehe); 

                    if ($src_image_size[2] == 1) { 
                        $src_im = imagecreatefromGIF($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename); 
                    } elseif ($src_image_size[2] == 2) { 
                        $src_im = ImageCreateFromJPEG($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename); 
                    } else { 
                        $src_im = imagecreatefromgd($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename); 
                    } 
                    
                    imagecopyresampled ($dst_im,$src_im,0,0,0,0,$bildbreite,$bildhoehe,$src_image_size[0],$src_image_size[1]); 
                    imagejpeg ($dst_im,$this->bildzielpfad['backend'].$bilddateiname,100); 
                } 

      return $this->bildzielpfad['frontend'].$bilddateiname; 
   } 

   function showNavigation() { 

      global $sess, $client, $lang, $idcat, $idart, $cfgClient; 

      if ($this->limit > 0 || $this->anzahl_artikel > $this->limit + $this->angezeigte_anzahl) { 
         // echo '<table cellpadding="0" cellspacing="0" border="3"><tr>'; 
          
         if ($this->limit > 0) { 
            $displaylimit = ($this->limit - $this->angezeigte_anzahl >= 0)?($this->limit - $this->angezeigte_anzahl):(0); 
            echo "<P style=\"width:100%;text-align:left\"><a href=\"".$sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\" class=\"back\">{$this->navigationslink['previous']}</a></P>"; 
         } else { 
            // echo '<td>&nbsp;</td>'; 
         } 

         if ($this->anzahl_artikel > $this->limit + $this->angezeigte_anzahl) { 
            $displaylimit = $this->limit + $this->angezeigte_anzahl; 
            echo "<P style=\"width:100%;text-align:right\"><a href=\"".$sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\" class=\"back\">{$this->navigationslink['next']}</a></P>"; 
         } else { 
            // echo '<td>&nbsp;</td>'; 
         } 
         // echo '</tr></table></p>'; 
      } 
   } 

   function getNumberOfArticles() { 

      global $cfg, $lang; 

      switch ($this->ebene) { 
         case -2: 
            $this->db->query(" 
               SELECT count(*) AS anzahl 
               FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.parentid = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang = e.idartlang 
               "); 
            break; 
         case -1: 
            $this->db->query(" 
               SELECT count(*) AS anzahl 
                  FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.idcat = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang = e.idartlang 
               "); 
            break; 
         case 0: 
            $this->db->query(" 
               SELECT count(*) AS anzahl 
               FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang = e.idartlang 
               "); 
            break; 
      } 

      $this->db->next_record(); 
      return $this->db->f('anzahl'); 
   } 

   function getArticles() { 

      global $cfg, $lang; 

      switch ($this->ebene) { 
         case -2: 
            $this->db->query(" 
               SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idartlang, e.summary, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum 
               FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.parentid = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang = e.idartlang 
               ORDER BY e.created DESC 
               LIMIT {$this->limit}, {$this->angezeigte_anzahl} 
               "); 
            break; 
         case -1: 
            $this->db->query(" 
               SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idartlang, e.summary, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum 
               FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.idcat = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang = e.idartlang 
               ORDER BY e.created DESC 
               LIMIT {$this->limit}, {$this->angezeigte_anzahl} 
               "); 
            break; 
         case 0: 
            $this->db->query(" 
               SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idartlang, e.summary, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum 
               FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang = e.idartlang 
               ORDER BY e.created DESC 
               LIMIT {$this->limit}, {$this->angezeigte_anzahl} 
               "); 
            break; 
      } 

      $counter = 0; 
      while ($this->db->next_record()) { 
         $this->articles[$counter]['name'] = $this->db->f('name'); 
         $this->articles[$counter]['pagetitle'] = $this->db->f('pagetitle'); 
         $this->articles[$counter]['idcat'] = $this->db->f('idcat'); 
         $this->articles[$counter]['idart'] = $this->db->f('idart'); 
         $this->articles[$counter]['idartlang'] = $this->db->f('idartlang'); 
         $this->articles[$counter]['created'] = $this->db->f('erstellungsdatum'); 
         $this->articles[$counter]['summary'] = $this->db->f('summary'); 

         $counter++; 
      } 

      for ($i=0;$i<count($this->articles);$i++) { 
         $this->db->query(" 
            SELECT a.value, a.typeid, b.type, c.filename, c.dirname 
            FROM {$cfg['tab']['content']} AS a 
            LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype 
            LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl 
            WHERE 
            a.idartlang = {$this->articles[$i]['idartlang']} 
            AND b.type = 'CMS_IMG' 
            AND a.typeid = 1  
            "); 
         if ($this->db->next_record()) { 
            $this->articles[$i]['picture'] = $this->createImage($this->db->f('dirname'),$this->db->f('filename')); 
         } 
      } 
   } 

   function showArticles() { 

      global $sess, $cfgClient, $client, $lang, $edit; 

      if (count($this->articles) == 0 || $edit) { 
          
         echo "<div class=\"text\">CMS_HTML[10]</div>"; 
      } else { 

       //echo '<table width="340" cellspacing="0" cellpadding="0" border=\"0\">'; 
    
         for ($i=0;$i<count($this->articles);$i++) { 
            list($key,$artikel) = each($this->articles); 

            $link = $sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?idcat={$artikel['idcat']}&idart={$artikel['idart']}"); 
    
            // Titelzeile ausgeben

            echo "<div class=\"CssNewSection\">\n<div class=\"CssColumnTriple\">\n"; 
            if (!empty($artikel['picture'])) { 
    
               // Zusammenfassung und Bild ausgeben 
               echo "<img src=\"{$artikel['picture']}\" border=\"0\"/>\n<h1>{$artikel['pagetitle']}</h1>\n<p>\n{$artikel['summary']} &nbsp; &nbsp; <a href=\"$link\" class=\"CssAnkerDetail\">Mehr ...</A>\n<p>\n<br class=\"clear\" />\n</div>\n</div>"; 
            } else { 
    
               // Zusammenfassung ausgeben 
               echo "<h1>{$artikel['pagetitle']}</h1><p>{$artikel['summary']} &nbsp; &nbsp; <a href=\"$link\" class=\"CssAnkerDetail\">Mehr ...</A><p><br class=\"clear\" /></div></div>"; 
            } 

            if ($i < count($this->articles) -1) { 
               echo ''; 
            } 
          
         } 

//         echo ''; 
      } 
   } 
} 

$alistThumbs = new alistThumbs(); 
?>
Gruss und Dank ... die Sonne scheint

Dede
DEDE
Beiträge: 314
Registriert: Do 19. Feb 2004, 16:15
Kontaktdaten:

so, mein Lösungsansatz tut noch nicht ganz ... aber fast

Beitrag von DEDE »

Ich bekam Hilfe ... doch ich steck noch ein bisserl fest.
Setze ich nur jeweils ein Moduk auf derselben Seite ein, geht es. Sowohl das geänderte (Klassen) als auch das Original.

Setze ich beide ein, kommen Fehler.

INPUT

Code: Alles auswählen

/*********************************************** 
* CONTENIDO MODUL - INPUT 
* 
* Modulname   :       w3concepts.alist.thumb.v1 
* Author      :     Andreas Kummer 
* Copyright   :     mumprecht & kummer w3concepts 
* Created     :     07-11-2004 
* Modified    :     07-11-2004 
************************************************/ 
if(!class_exists(pfadAlistThumb)) 
{
class pfadAlistThumb 
{ 

   function pfadAlistThumb($pfad) 
   {
   $this->pfad = $pfad; 
   $this->pathlen = strlen($this->pfad); 
   } 

   function getPath($root,$level = 0) 
   { 
      $content = $this->readDir($root); 

      if(is_array($content)) {
      foreach ($content as $file) 
 	  { 
         if (is_dir($root.$file)) 
		 	{ 
            $verzeichnis = substr($root,$this->pathlen); 
            $returnvalue["{$verzeichnis}{$file}/"] = str_repeat("&nbsp;",$level * 5).$file; 
            $returnvalue = array_merge($returnvalue,$this->getPath($root.$file."/",$level+1)); 
         	} 
       } 
       }

      return $returnvalue; 
   	} 

   function readDir($path) 
        { 
      	$handle = opendir($path); 

      	while ($file = readdir ($handle)) 
	  	{ 
         if ($file != "." && $file != "..") $returnvalue[] = $file; 
      	} 
      	closedir($handle); 

      	return $returnvalue; 
  		} 

   function makeSelect($preselection) 
   { 
      	$pfad = $this->getPath($this->pfad); 

      	if(is_array($pfad)) {
          foreach ($pfad as $key => $value) 
        { 
        echo "$key :: $value<br/>\n"; 
        if ($preselection == $key) 
		{ 
        echo "<option value=\"$key\" selected=\"selected\">$value</option>"; 
        } 
		else 
		{ 
        echo "<option value=\"$key\">$value</option>"; 
        } 
        } 
        }
   } 
} 
}

$pfad = new pfadAlistThumb($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload']); 

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\">"; 

echo "<tr><td>Thumbnailpfad:</td>"; 
echo "<td><select size=\"1\" name=\"CMS_VAR[0]\" />"; 
$pfad->makeSelect("CMS_VALUE[0]"); 
echo "</td>"; 

echo "<tr valign=\"top\"><td>Kategorie wählen:</td><td><select name=\"CMS_VAR[1]\">"; 
$selected = "CMS_VALUE[1]"; 

if($selected!="0" && $selected!=""){ 
    echo"<option value=\"0\">--- kein ---</option>"; 
} else { 
    echo"<option selected=\"selected\" value=\"0\">--- kein ---</option>"; 
} 

$sql = " 
    SELECT a.idcat, a.level, c.name 
    FROM {$cfg['tab']['cat_tree']} AS a, 
         {$cfg['tab']['cat']} AS b, 
         {$cfg['tab']['cat_lang']} AS c 
    WHERE 
        a.idcat = b.idcat 
        AND b.idcat = c.idcat 
        AND c.idlang='$lang' 
        AND b.idclient='$client' 
        AND c.visible = 1 
    ORDER BY a.idtree 
    "; 

$db->query($sql); 

while ($db->next_record()) { 
    $spaces = "|"; 
    $levels = $db->f("level"); 
    for ($i = 0; $i < $levels; $i ++) { 
        $spaces = $spaces . "--"; 
    } 
    $spaces .= ">"; 

    if ($selected == $db->f("idcat")) { 
        echo "<option selected=\"selected\" value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 
    } else { 
        echo "<option value=\"". $db->f("idcat") ."\">". $spaces . $db->f("name") ."</option>"; 
    } 
} 

echo "</select></td></tr>"; 

echo "<tr><td>Anzahl Artikel je Seite:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[2]\" value=\"CMS_VALUE[2]\" size=\"3\" /></td>"; 

echo "<tr><td>Text für Previous-Link:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\" size=\"15\" /></td>"; 

echo "<tr><td>Text für Next-Link:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[4]\" value=\"CMS_VALUE[4]\" size=\"15\" /></td>"; 

echo "<tr><td>Thumbnail-Breite:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[5]\" value=\"CMS_VALUE[5]\" size=\"5\" /></td>"; 

echo "<tr><td>Artikel anzeigen bis:</td>"; 
echo "<td><select name=\"CMS_VAR[6]\">"; 
$ebene = "CMS_VALUE[6]"; 
for ($i=0;$i>-3;$i--) { 
    if ($i == $ebene) { 
        echo"<option value=\"$i\" selected=\"selected\">Ebene $i</option>"; 
    } else { 
        echo"<option value=\"$i\">Ebene $i</option>"; 
    } 
} 

echo "</table>";
Output

Code: Alles auswählen

<?php 
/*********************************************** 
* CONTENIDO MODUL - OUTPUT 
* 
* Modulname   :     w3concepts.alist.mod4.v1 
* Author      :     Andreas Kummer 
* Copyright   :     mumprecht & kummer w3concepts 
* Created     :     06-21-2004 
* Modified    :     06-21-2004 
************************************************/ 
error_reporting(E_ALL);

if(!class_exists('alistThumbs')) {
class alistThumbs { 

   function alistThumbs() { 

      // Initialwerte festlegen 
      $this->setIniValues(); 

      // Datenbankverbindung herstellen 
      $this->db  = new DB_Contenido; 
      $this->db2  = new DB_Contenido; 

      // Anzahl Artikel ermitteln 
      $this->anzahl_artikel = $this->getNumberOfArticles(); 

      // Artikel auslesen 
      $this->getArticles(); 

      // Artikel ausgeben 
      $this->showArticles(); 

      // Navigation ausgeben 
      $this->showNavigation(); 
   } 

   function setIniValues() { 
        
      $bildzielpfad = "CMS_VALUE[0]"; 
      $this->bildzielpfad['frontend'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['htmlpath'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$bildzielpfad; 
      $this->bildzielpfad['backend'] = $GLOBALS['cfgClient']["{$GLOBALS['client']}"]['path']['frontend'].$GLOBALS['cfgClient']["{$GLOBALS['client']}"]['upload'].$bildzielpfad; 

      $this->categorie = "CMS_VALUE[1]"; 

      $this->angezeigte_anzahl = "CMS_VALUE[2]"; 
      if ($this->angezeigte_anzahl == '') $this->angezeigte_anzahl = 10; 

      $this->navigationslink['previous'] = "CMS_VALUE[3]"; 
      if ($this->navigationslink['previous'] == '') $this->navigationslink['previous'] = '[:: rückwärts ]'; 

      $this->navigationslink['next'] = "CMS_VALUE[4]"; 
      if ($this->navigationslink['next'] == '') $this->navigationslink['next'] = '[ vorwärts ::]'; 

      $this->ebene = "CMS_VALUE[6]"; 

      $this->bildbreite = "CMS_VALUE[5]"; 

      $this->limit = (isset($_GET['displaylimit']) && $_GET['displaylimit'] > 0)?($_GET['displaylimit']):(0); 
   } 

   function createImage($dirname, $filename) { 

      global $cfg, $cfgClient, $client; 

      $bilddateiname = "{$this->bildbreite}_$filename.jpg"; 

                if (!file_exists("{$this->bildzielpfad['backend']}$bilddateiname")) { 

         $src_image_size = getimagesize($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename); 

         $bildhoehe = round($src_image_size[1] * $this->bildbreite / $src_image_size[0]); 
         if ($bildhoehe > $this->bildbreite) { 
            $bildhoehe = $this->bildbreite; 
            $bildbreite = round($src_image_size[0] * $bildhoehe / $src_image_size[1]); 
         } else { 
            $bildbreite = $this->bildbreite; 
         }        

                    $dst_im = imagecreatetruecolor($bildbreite,$bildhoehe); 

                    if ($src_image_size[2] == 1) { 
                        $src_im = imagecreatefromGIF($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename); 
                    } elseif ($src_image_size[2] == 2) { 
                        $src_im = ImageCreateFromJPEG($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename); 
                    } else { 
                        $src_im = imagecreatefromgd($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename); 
                    } 
                    
                    imagecopyresampled ($dst_im,$src_im,0,0,0,0,$bildbreite,$bildhoehe,$src_image_size[0],$src_image_size[1]); 
                    imagejpeg ($dst_im,$this->bildzielpfad['backend'].$bilddateiname,100); 
                } 

      return $this->bildzielpfad['frontend'].$bilddateiname; 
   } 

   function showNavigation() { 

      global $sess, $client, $lang, $idcat, $idart, $cfgClient; 

      if ($this->limit > 0 || $this->anzahl_artikel > $this->limit + $this->angezeigte_anzahl) { 
         // echo '<table cellpadding="0" cellspacing="0" border="3"><tr>'; 
          
         if ($this->limit > 0) { 
            $displaylimit = ($this->limit - $this->angezeigte_anzahl >= 0)?($this->limit - $this->angezeigte_anzahl):(0); 
            echo "<P style=\"width:100%;text-align:left\"><a href=\"".$sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\" class=\"back\">{$this->navigationslink['previous']}</a></P>"; 
         } else { 
            // echo '<td>&nbsp;</td>'; 
         } 

         if ($this->anzahl_artikel > $this->limit + $this->angezeigte_anzahl) { 
            $displaylimit = $this->limit + $this->angezeigte_anzahl; 
            echo "<P style=\"width:100%;text-align:right\"><a href=\"".$sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\" class=\"back\">{$this->navigationslink['next']}</a></P>"; 
         } else { 
            // echo '<td>&nbsp;</td>'; 
         } 
         // echo '</tr></table></p>'; 
      } 
   } 

   function getNumberOfArticles() { 

      global $cfg, $lang; 

      switch ($this->ebene) { 
         case -2: 
            $this->db->query(" 
               SELECT count(*) AS anzahl 
               FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.parentid = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang != e.idartlang 
               "); 
            break; 
         case -1: 
            $this->db->query(" 
               SELECT count(*) AS anzahl 
                  FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.idcat = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang != e.idartlang 
               "); 
            break; 
         case 0: 
            $this->db->query(" 
               SELECT count(*) AS anzahl 
               FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON b.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang != e.idartlang 
               "); 
            break; 
      } 

      $this->db->next_record(); 
      return $this->db->f('anzahl'); 
   } 

   function getArticles() { 

      global $cfg, $lang; 

      switch ($this->ebene) { 
         case -2: 
            $this->db->query(" 
               SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idartlang, e.summary, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum 
               FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.parentid = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang != e.idartlang 
               ORDER BY e.created DESC 
               LIMIT {$this->limit}, {$this->angezeigte_anzahl} 
               "); 
            break; 
         case -1: 
            $this->db->query(" 
               SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idartlang, e.summary, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum 
               FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.idcat = b.idcat 
                     AND b.parentid = a.idcat 
                  ) 
                  OR 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang != e.idartlang 
               ORDER BY e.created DESC 
               LIMIT {$this->limit}, {$this->angezeigte_anzahl} 
               "); 
            break; 
         case 0: 
            $this->db->query(" 
               SELECT f.name, e.pagetitle, c.idcat, d.idart, e.idartlang, e.summary, e.created, DATE_FORMAT(e.created,'%d.%m.%y') AS erstellungsdatum 
               FROM 
                  {$cfg['tab']['cat']} AS a, 
                  {$cfg['tab']['cat']} AS b, 
                  {$cfg['tab']['cat']} AS c 
               LEFT JOIN {$cfg['tab']['cat_art']} AS d ON c.idcat = d.idcat 
               LEFT JOIN {$cfg['tab']['art_lang']} AS e ON d.idart = e.idart 
               LEFT JOIN {$cfg['tab']['cat_lang']} AS f ON (f.idcat = d.idcat AND f.idlang = $lang) 
               WHERE 
               ( 
                  ( 
                     c.idcat = b.idcat 
                     AND b.idcat = a.idcat 
                  ) 
               ) 
               AND a.idcat = {$this->categorie} 
               AND e.online = 1 
               AND e.redirect = 0 
               AND e.external_redirect = 0 
               AND e.idlang = $lang 
               AND f.startidartlang != e.idartlang 
               ORDER BY e.created DESC 
               LIMIT {$this->limit}, {$this->angezeigte_anzahl} 
               "); 
            break; 
      } 

      $counter = 0; 
      while ($this->db->next_record()) { 
         $this->articles[$counter]['name'] = $this->db->f('name'); 
         $this->articles[$counter]['pagetitle'] = $this->db->f('pagetitle'); 
         $this->articles[$counter]['idcat'] = $this->db->f('idcat'); 
         $this->articles[$counter]['idart'] = $this->db->f('idart'); 
         $this->articles[$counter]['idartlang'] = $this->db->f('idartlang'); 
         $this->articles[$counter]['created'] = $this->db->f('erstellungsdatum'); 
         $this->articles[$counter]['summary'] = $this->db->f('summary'); 

         $counter++; 
      } 

      for ($i=0;$i<count($this->articles);$i++) { 
         $this->db->query(" 
            SELECT a.value, a.typeid, b.type, c.filename, c.dirname 
            FROM {$cfg['tab']['content']} AS a 
            LEFT JOIN {$cfg['tab']['type']} AS b ON a.idtype = b.idtype 
            LEFT JOIN {$cfg['tab']['upl']} AS c ON a.value = c.idupl 
            WHERE 
            a.idartlang = {$this->articles[$i]['idartlang']} 
            AND b.type = 'CMS_IMG' 
            AND a.typeid = 1  
            "); 
         if ($this->db->next_record()) { 
            $this->articles[$i]['picture'] = $this->createImage($this->db->f('dirname'),$this->db->f('filename')); 
         } 
      } 
   } 

   function showArticles() { 

      global $sess, $cfgClient, $client, $lang, $edit; 

      if (count($this->articles) == 0 || $edit) { 
          
         echo "<div class=\"text\">CMS_HTML[10]</div>"; 
      } else { 

       //echo '<table width="340" cellspacing="0" cellpadding="0" border=\"0\">'; 
    
         for ($i=0;$i<count($this->articles);$i++) { 
            list($key,$artikel) = each($this->articles); 

            $link = $sess->url($cfgClient[$client]['path']['htmlpath']."front_content.php?idcat={$artikel['idcat']}&idart={$artikel['idart']}"); 
    
            // Titelzeile ausgeben 

            echo "<div class=\"CssNewSection\">\n<div class=\"CssColumnTriple\">\n"; 
            if (!empty($artikel['picture'])) { 
    
               // Zusammenfassung und Bild ausgeben 
               echo "<img src=\"{$artikel['picture']}\" border=\"0\"/>\n<h1>{$artikel['pagetitle']}</h1>\n<p>\n{$artikel['summary']} &nbsp; &nbsp; <a href=\"$link\" class=\"CssAnkerDetail\">Mehr ...</A>\n<p>\n<br class=\"clear\" />\n</div>\n</div>"; 
            } else { 
    
               // Zusammenfassung ausgeben 
               echo "<h1>{$artikel['pagetitle']}</h1><p>{$artikel['summary']} &nbsp; &nbsp; <a href=\"$link\" class=\"CssAnkerDetail\">Mehr ...</A><p><br class=\"clear\" /></div></div>"; 
            } 

            if ($i < count($this->articles) -1) { 
               echo ''; 
            } 
          
         } 

//         echo ''; 
      } 
   } 
} 
}
$alistThumbs = new alistThumbs(); 
?>
[14-Aug-2005 23:38:23] PHP Warning: Invalid argument supplied for foreach() in /www/htdocs/w0057103/contenido/includes/include.tplcfg_edit_form.php(423) : eval()'d code on line 22
[14-Aug-2005 23:38:23] PHP Warning: Invalid argument supplied for foreach() in /www/htdocs/w0057103/contenido/includes/include.tplcfg_edit_form.php(423) : eval()'d code on line 22
[14-Aug-2005 23:38:20] PHP Warning: Invalid argument supplied for foreach() in /www/htdocs/w0057103/contenido/includes/include.tplcfg_edit_form.php(423) : eval()'d code on line 22
[14-Aug-2005 23:38:20] PHP Warning: Invalid argument supplied for foreach() in /www/htdocs/w0057103/contenido/includes/include.tplcfg_edit_form.php(423) : eval()'d code on line 22
[14-Aug-2005 23:38:12] PHP Warning: Invalid argument supplied for foreach() in /www/htdocs/w0057103/contenido/includes/include.tplcfg_edit_form.php(423) : eval()'d code on line 22
[14-Aug-2005 23:38:12] PHP Warning: Invalid argument supplied for foreach() in /www/htdocs/w0057103/contenido/includes/include.tplcfg_edit_form.php(423) : eval()'d code on line 22
[14-Aug-2005 23:38:02] PHP Warning: Invalid argument supplied for foreach() in /www/htdocs/w0057103/contenido/includes/include.pretplcfg_edit_form.php(122) : eval()'d code on line 22
[14-Aug-2005 23:38:02] PHP Warning: Invalid argument supplied for foreach() in /www/htdocs/w0057103/contenido/includes/include.pretplcfg_edit_form.php(122) : eval()'d code on line 22
[14-Aug-2005 23:37:47] PHP Warning: Invalid argument supplied for foreach() in /www/htdocs/w0057103/contenido/includes/include.pretplcfg_edit_form.php(122) : eval()'d code on line 22
[14-Aug-2005 23:37:47] PHP Warning: Invalid argument supplied for foreach() in /www/htdocs/w0057103/contenido/includes/include.pretplcfg_edit_form.php(122) : eval()'d code on line 22
Ideen???? HEEEELP ;-)))


Dede
Gesperrt