Artikelliste 2x5 - mit Bild, Überschrift, zum blättern

Gesperrt
andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

Artikelliste 2x5 - mit Bild, Überschrift, zum blättern

Beitrag von andrej »

Hallo,
ich suche im grunde genommen, eine stink normale Artikelliste. Diese sollte eine Bildfunktion enhalten, eine Überschrift, eventuell ein Knopf "mehr...". Wichtig ist das die Artikelliste zu blätern ist. Und am alle wichtigsten das die Artikel neben einander dargestellt werden. Sprich der erste oben link, der zweite oben rechts, der dritte unter dem ersten, der vierte unter dem zweiten usw.

Ins gesamt sollten so 8-10 Artikel dargestellt werden.

Hat jemand von euch schon soetwas entwickelt? Bzw. ist soetwas überhaupt möglich?
kummer
Beiträge: 2423
Registriert: Do 6. Mai 2004, 09:17
Wohnort: Bern, Schweiz
Kontaktdaten:

Beitrag von kummer »

schau mal da:

http://www.gazette-berlin.de/

die erste seite wurde mit einer artikelliste erstellt.

gruss,
andreas

ps: du findest alles hier im forum...
aitsu.org :: schnell - flexibel - komfortabel :: Version 2.2.0 (since June 22, 2011) (jetzt mit dual license GPL/kommerziell)
andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

Beitrag von andrej »

verdammt, genau soetwas suche ich auch. sitze hier schon seit zwei stunden und suche dieses modul. hast du vielleicht einen link oder tipp, wo genau im forum ich es finde.

besten dank für deine auskunft :!:
andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

Beitrag von andrej »

Ich habe hier eine kleine Skizze erstellt, soetwas suche ich. Hoffe das dieses Bild mehr als tausend Worte sagt ;)

Ach ja der neueste Artikel muss immer der erste in der Liste sein.

Büdde um Hilfe.

Bild
andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

Beitrag von andrej »

Also ich habe von einem User, hier aus dem Forum ein ähnliches Modul bekommen. Es funktioniert so, wie es soll. Jedoch bekomme ich es bei mir nicht zum laufen. Der Text wird einfach nicht angezeigt, habe schon einiges probiert, aber leider klappt alles nicht. Desweiteren werden in der Errorlog Fehlermeldungen eingetragen. Kann mir jemand helfen, das ganze zu debuggen?

Hier das Modul.

Code: Alles auswählen

/** 
* INPUT
  * $Revision: 1.1 $ 
  * $Date: 2005/03/08 15:17:27 $ 
  */ 

/** 
 * Artikelliste 
 * @author Andreas Kummer 
 * @copyright Copyright © 2005, mumprecht & kummer w3concepts 
 */ 
class gazetteBerlinInput { 

   function gazetteBerlinInput($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 gazetteBerlinInput($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload']); 

$selected = "CMS_VALUE[0]"; 

echo "<table cellspacing=\"0\" cellpadding=\"10\" border=\"0\"><tr valign=\"top\"><td>Kategorie wählen:</td><td><select name=\"CMS_VAR[0]\">"; 

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[1]\" value=\"CMS_VALUE[1]\" size=\"3\" /></td>"; 

echo "<tr><td>Startartikel anzeigen?</td>"; 
$startartikel = "CMS_VALUE[2]"; 
if ($startartikel != '') { 
    echo "<td><input type=\"checkbox\" name=\"CMS_VAR[2]\" value=\"true\" size=\"3\" checked=\"checked\"/></td>"; 
} else { 
    echo "<td><input type=\"checkbox\" name=\"CMS_VAR[2]\" value=\"true\" size=\"3\"/></td>"; 
} 

echo "<tr><td>Anzahl angezeigte Zeichen des HTML-Textes:</td>"; 
echo "<td><input type=\"text\" name=\"CMS_VAR[3]\" value=\"CMS_VALUE[3]\" size=\"5\" /></td>"; 

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

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

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

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

echo "<tr><td>Artikel anzeigen bis:</td>"; 
echo "<td><select name=\"CMS_VAR[8]\">"; 
$ebene = "CMS_VALUE[8]"; 
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>"; 

Code: Alles auswählen

<?php 
/** 
  * Zweispaltige Liste 
  * Ordert by begin-date and creator 
  * 06.05.2005 
  */ 

/** 
 * Artikelliste (output) 
 * @author Andreas Kummer 
 * @copyright Copyright &copy; 2005, mumprecht & kummer w3concepts 
 */ 
class referenzDSD { 

   function referenzDSD() { 

      // Anfangswerte setzen 
      if (!$this->setInitValues()) 
         return false; 
          
      // Anzahl Artikel ermitteln 
      $this->anzahlArtikel = $this->getArticleCount(); 
       
      // Artikel auslesen 
      $this->artikel = $this->getArticleDetails(); 
       
      // Artikel ausgeben 
      echo $this->getList(); 
       
      // Navigation ausgeben 
      // echo $this->getNavigation();    
   } 

   function setInitValues() { 
       
      global $cfgClient, $client; 

      $this->category = "CMS_VALUE[0]"; 
      $this->articleNumber = "CMS_VALUE[1]"; 
      $this->showStartArticle = "CMS_VALUE[2]"; 
      $this->characterCount = "CMS_VALUE[3]"; 
      $this->link['previous'] = "CMS_VALUE[4]"; 
      $this->link['next'] = "CMS_VALUE[5]"; 
      $this->thumbnailDimension = "CMS_VALUE[6]"; 
      $this->thumbnailPath = "CMS_VALUE[7]"; 
      $this->layer = "CMS_VALUE[8]"; 

      // Werte aus dem Request übernehmen 
      $this->limit = (isset ($_GET['displaylimit']) && $_GET['displaylimit'] > 0) ? ($_GET['displaylimit']) : (0); 
       
      // Bilderpfade 
      $this->bildzielpfad['frontend'] = $cfgClient[$client]['path']['htmlpath'].$cfgClient[$client]['upload'].$this->thumbnailPath; 
      $this->bildzielpfad['backend'] = $cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$this->thumbnailPath; 

      // Anfangswerte setzen, bei leerer Übergabe 
      if (empty ($this->category)) 
         return false; 
      if (empty ($this->articleNumber)) 
         $this->articleNumber = 10; 
      if (empty ($this->showStartArticle)) { 
         $this->showStartArticle = 'AND d.is_start = 0'; 
      } else { 
         $this->showStartArticle = ''; 
      } 
      if (empty ($this->characterCount)) 
         $this->characterCount = 200; 
      if (empty ($this->link['previous'])) 
         $this->link['previous'] = '[:: rückwärts ]'; 
      if (empty ($this->link['next'])) 
         $this->link['next'] = '[:: vorwärts ]'; 
      if (empty ($this->thumbnailDimension)) 
         $this->thumbnailDimension = 150; 
      if (empty ($this->thumbnailPath)) 
         return false; 

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

      return true; 
   } 

   function getArticleCount() { 

      global $cfg, $lang; 

      switch ($this->layer) { 
         case -2 : 
            $sql = "" . 
                  "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 " . 
                  "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->category}" . 
                  "   AND e.online = 1 " . 
                  "   AND e.redirect = 0 " . 
                  "   AND e.external_redirect = 0 " . 
                  "   AND e.idlang = $lang " . 
                  "   {$this->showStartArticle}"; 
               break; 
         case -1 : 
            $sql = " 
                            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 
                            WHERE 
                                ( 
                                    ( 
                                        c.idcat = b.idcat 
                                        AND b.parentid = a.idcat 
                                    ) 



                                    OR 
                                    ( 
                                        c.idcat = b.idcat 
                                        AND b.idcat = a.idcat 
                                    ) 
                                ) 
                                AND a.idcat = {$this->category} 
                                AND e.online = 1 
                                AND e.redirect = 0 
                                AND e.external_redirect = 0 
                                AND e.idlang = $lang 
                                {$this->showStartArticle} 
                            "; 
            break; 
         case 0 : 
            $sql = " 
                            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 
                            WHERE 
                                ( 
                                    ( 
                                        c.idcat = b.idcat 
                                        AND b.idcat = a.idcat 
                                    ) 
                                ) 
                                AND a.idcat = {$this->category} 
                                AND e.online = 1 
                                AND e.redirect = 0 
                                AND e.external_redirect = 0 
                                AND e.idlang = $lang 
                                {$this->showStartArticle} 
                            "; 
            break; 
      } 

      $this->db->query($sql); 
      if ($this->db->next_record()) 
         return $this->db->f("anzahl"); 

      return false; 
   } 

   function getArticleDetails() { 

      global $cfg, $lang; 

      switch ($this->layer) { 
         case -2 : 
            $sql = " 
                   SELECT e.pagetitle, e.summary, c.idcat, d.idart, e.idartlang, e.created, e.lastmodified, DATE_FORMAT(e.datestart,'%d.%m.%y %H:%i') AS erstellungsdatum, IF(e.datestart > e.lastmodified, e.datestart, e.lastmodified) as sortdate 
                   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 
                   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->category} 
                       AND e.online = 1 
                       AND e.redirect = 0 
                       AND e.external_redirect = 0 
                       AND e.idlang = $lang 
                       {$this->showStartArticle} 
                   ORDER BY sortdate DESC 
                   LIMIT {$this->limit}, {$this->articleNumber} 
                   "; 
            break; 
         case -1 : 
            $sql = " 
                   SELECT e.pagetitle, e.summary, c.idcat, d.idart, e.idartlang, e.created, e.lastmodified, DATE_FORMAT(e.datestart,'%d.%m.%y %H:%i') AS erstellungsdatum, IF(e.datestart > e.lastmodified, e.datestart, e.lastmodified) as sortdate 
                   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 
                   WHERE 
                       ( 
                           ( 
                               c.idcat = b.idcat 
                               AND b.parentid = a.idcat 
                           ) 
                           OR 
                           ( 
                               c.idcat = b.idcat 
                               AND b.idcat = a.idcat 
                           ) 
                       ) 
                       AND a.idcat = {$this->category} 
                       AND e.online = 1 
                       AND e.redirect = 0 
                       AND e.external_redirect = 0 
                       AND e.idlang = $lang 
                       {$this->showStartArticle} 
                   ORDER BY sortdate DESC 
                   LIMIT {$this->limit}, {$this->articleNumber} 
                    "; 
            break; 
         case 0 : 
            $sql = " 
                   SELECT e.pagetitle, e.summary, c.idcat, d.idart, e.idartlang, e.created, e.lastmodified, DATE_FORMAT(e.datestart,'%d.%m.%y %H:%i') AS erstellungsdatum, IF(e.datestart > e.lastmodified, e.datestart, e.lastmodified) as sortdate 
                   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 
                   WHERE 
                       ( 
                           ( 
                               c.idcat = b.idcat 
                               AND b.idcat = a.idcat 
                           ) 
                       ) 
                       AND a.idcat = {$this->category} 
                       AND e.online = 1 
                       AND e.redirect = 0 
                       AND e.external_redirect = 0 
                       AND e.idlang = $lang 
                       {$this->showStartArticle} 
                      ORDER BY sortdate DESC 
                      LIMIT {$this->limit}, {$this->articleNumber} 
                      "; 
            break; 
      } 

      $this->db->query($sql); 
       
      $counter = 0; 
      while ($this->db->next_record()) { 
             
         $article[$counter]['headline'] = urldecode($this->db->f('pagetitle')); 
         $article[$counter]['text'] = $this->shortenText($this->db->f('summary'),$this->characterCount); 
          
         $this->db2->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->db->f("idartlang")." 
               AND ( 
                   b.type = 'CMS_IMG' 
               ) 
               ORDER BY b.type, a.typeid ASC"); 

         if ($this->db2->next_record()) { 
            $article[$counter]['image'] = $this->createImage(urldecode($this->db2->f('dirname')),urldecode($this->db2->f('filename'))); 
            $article[$counter]['filename'] = urldecode($this->db2->f('filename')); 
            $article[$counter]['dirname'] = urldecode($this->db2->f('dirname')); 
         } 
          
         $article[$counter]['idart'] = $this->db->f('idart'); 
         $article[$counter]['idcat'] = $this->db->f('idcat'); 
         $article[$counter]['created'] = $this->db->f('erstellungsdatum'); 

         $counter++; 
      } 
       
      return $article; 
   } 
    
   function createImage($dirname, $filename) { 

      global $cfgClient, $client; 
       
      if (empty($filename)) return ''; 
       
      $pathinfo = pathinfo($filename); 
      $basename = basename($filename,$pathinfo['extension']); 
      if ($pathinfo['extension'] == 'gif') $pathinfo['extension'] = 'png'; 

      $src_image_size = getimagesize($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename); 
       
      $this->srchoehe = $src_image_size[1]; 
      $this->srcbreite = $src_image_size[0]; 

      if ($src_image_size[0]/$this->thumbnailDimension < $src_image_size[1]/$this->thumbnailDimension) { 
         $resizeFactor = $src_image_size[1]/$this->thumbnailDimension; 
      } else { 
         $resizeFactor = $src_image_size[0]/$this->thumbnailDimension; 
      } 

      $this->bildhoehe = round($src_image_size[1]/$resizeFactor); 
      $this->bildbreite = round($src_image_size[0]/$resizeFactor); 

      $bilddateiname = "{$this->bildbreite}.{$this->bildhoehe}.$basename{$pathinfo['extension']}"; 

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

         $dst_im = imagecreatetruecolor($this->bildbreite,$this->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); 
         } elseif ($src_image_size[2] == 3) { 
            $src_im = ImageCreateFromPNG($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,$this->bildbreite,$this->bildhoehe,$src_image_size[0],$src_image_size[1]); 
          
         if ($pathinfo['extension'] == 'png') { 
            imagepng ($dst_im,$this->bildzielpfad['backend'].$bilddateiname); 
         } else { 
            imagejpeg ($dst_im,$this->bildzielpfad['backend'].$bilddateiname,100); 
         } 
         } 

      return $this->bildzielpfad['frontend'].$bilddateiname; 
   } 
    
   function shortenText($text,$length) { 
       
      $text = strip_tags(trim(urldecode($text))); 
       
      if (strlen($text) > $length) { 
         $newtext = ''; 
         $worte = explode (" ",$text); 
         $zulang = false; 
         foreach ($worte as $wort) { 
            if (strlen($newtext." ".$wort) >= $length) $zulang = true; 
            $newtext = (!$zulang)?($newtext." ".$wort):($newtext); 
         } 
         //$newtext .= "..."; 
      } else { 
            $newtext = $text; 
        } 
        
        return $newtext; 
   } 
    
   function getList() { 
       
      global $client, $lang, $sess; 
       
      if (empty($this->artikel)) return false; 
       
      // Tabelle Anfang 
      $returnvalue = '<table  cellspacing="0" cellpadding="0" width="400">'."\n"; 
       
      $i = 1; 
       
      foreach ($this->artikel as $artikel) { 
         // Link zusammensetzen 
         $link = $sess->url("index.php?client=$client&lang=$lang&idcat={$artikel['idcat']}&idart={$artikel['idart']}"); 
                   
          
         if (($i%2) == 1) { // Artikel linke Spalte -> orange Trennliene               Boxanfang 
            $returnvalue .= '<tr><td><table cellspacing="0" cellpadding="0" width="610">'."\n"; 
            $returnvalue .= '<tr><td><table cellspacing="0" cellpadding="0" width="307"><tr>'."\n"; 
      } else { // Artikel rechts ->keine orange Trennlienie                              Boxanfang 
                     $returnvalue .= '<td><table cellspacing="0" cellpadding="0" width="306"><tr>'."\n"; 
         } 
          
         // Bild links... 
         if (!empty($artikel['image'])) { 
             if (($i%4) == 3){ 
                   $returnvalue .= '<td valign="top" align="left"><a href="'.$link.'"><img src="'.$artikel['image'].'/></a></td>'."\n"; 
             } 
             if (($i%4) == 0){ 
                   $returnvalue .= '<td valign="top" align="left"><a href="'.$link.'"><img src="'.$artikel['image'].'/></a></td>'."\n"; 
             } 
         }    

          
         if (($i%4) == 3){ //Artikel links, Text rechts -> orange Trennlienie 
            // Überschrift... 
            $returnvalue .= '<td vAlign="top" align="left" width="170" ><div style="margin-bottom:1px;margin-left:3px;"><a href="'.$link.'" style="font-size: 11px;   font-weight: bold; color: #2108DE;">'.$artikel['headline']."</a></div>";    
            // Text 
            $returnvalue .= '<div style="font-size: 8pt;  font-family: Arial; margin-left:3px;">'.$artikel.'<a href="'.$link.'"><strong>... mehr</strong></a></div></td>'."\n";       
         } else { // keine orange Trennlienie 
            // Überschrift... 
            $returnvalue .= '<td vAlign="top" align="left" width="170"><div style="margin-bottom:1px;margin-left:3px;"><a href="'.$link.'" style=" font-size: 11px;   font-weight: bold; color: #2108DE;">'.$artikel['headline']."</a></div>";    
            // Text 
            $returnvalue .= '<div style="font-size: 8pt;  font-family: Arial; margin-left:3px;">'.$artikel['text'].'<a href="'.$link.'"><strong>... mehr</strong></a></div></td>'."\n";    
         } 

         // Bild rechts... 
         if (!empty($artikel['image'])) { 
             if (($i%4) == 2){ // Artikel rechts ->keine orange Trennlienie 
                   $returnvalue .= '<td valign="top" align="right"><a href="'.$link.'"><img src="'.$artikel['image'].'" style="margin-right:3px; border:none;"/></a></td>'."\n"; 
             } 
             if (($i%4) == 1){ // Artikel linke Spalte -> orange Trennliene 
                   $returnvalue .= '<td valign="top" align="right"><a href="'.$link.'"><img src="'.$artikel['image'].'" style="margin-right:3px; border:none;"/></a></td>'."\n"; 
             } 
         }    
          
         $returnvalue .= "</tr></table></td>\n";     // Boxende 
          
         if (($i%2) == 0) {      // Ende der Zeile 
            $returnvalue .= '</tr>'."\n"; 
            $returnvalue .= '</table></td></tr>'."\n"; 
            // $returnvalue .= '<tr><td colspan="2" style="border-bottom: solid 2px orange;">&nbsp;</td></tr>'; 
      } 
         $i++;          
                   
      } // Ende der Schleife: foreach 
       
      // Artikelanzahl ungerade... Lueckenfueller: Zeitungen 
      if (($i%2) == 0) { 
           $returnvalue .= '<td><table class="cellspacing="0" cellpadding="0" width="305">'; 
           $returnvalue .= '<td valign="top" align="center"></td>';                                                                           
            $returnvalue .= "</table></td>\n"; 
            $returnvalue .= '</tr>'; 
            $returnvalue .= '</table></td></tr>'."\n"; 
            // $returnvalue .= '<tr><td colspan="2" style="border-bottom: solid 2px orange;">&nbsp;</td></tr>'; 
      } 
       
      // Tabelle Ende 
      $returnvalue .= "</table>\n"; 
       
      return $returnvalue; 
   } 

   function getNavigation() { 
       
      global $sess, $client, $lang, $idcat, $idart; 
       
      $returnvalue = ''; 
       
      if ($this->limit > 0 || $this->anzahlArtikel > $this->limit + $this->articleNumber) { 
         $returnvalue .= '<div><table cellpadding="0" cellspacing="0" style="width:98%"><tr>'; 

         if ($this->limit > 0) { 
            $displaylimit = ($this->limit - $$this->articleNumber >= 0) ? ($this->limit - $this->articleNumber) : (0); 
            $returnvalue .= "<td style=\"text-align:left\"><a href=\"".$sess->url("index.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$this->link['previous']}</a></td>"; 
         } else { 
            $returnvalue .= '<td>&nbsp;</td>'; 
         } 
          
         if ($this->anzahlArtikel > $this->limit + $this->articleNumber) { 
            $displaylimit = $this->limit + $this->articleNumber; 
            $returnvalue .= "<td style=\"text-align:right\"><a href=\"".$sess->url("index.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$this->link['next']}</a></td>"; 
         } else { 
            $returnvalue .= '<td>&nbsp;</td>'; 
         } 
         $returnvalue .= '</tr></table></div>'; 
      } 
       
      return $returnvalue; 
   } 
} 

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

Beitrag von Halchteranerin »

andrej hat geschrieben:Desweiteren werden in der Errorlog Fehlermeldungen eingetragen. Kann mir jemand helfen, das ganze zu debuggen?
Es gibt Geruechte, dass man leichter debuggen kann, wenn man die Fehlermeldungen sieht. Soll man sie erraten, oder verraetst du die noch? :)
andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

Beitrag von andrej »

ach ja sorry, z.b. das

Code: Alles auswählen

[03-Jun-2005 15:04:57] PHP Warning:  Invalid argument supplied for foreach() in E:\__www\dss\contenido\includes\include.tplcfg_edit_form.php(399) : eval()'d code on line 22
zimboo
Beiträge: 171
Registriert: Fr 20. Mai 2005, 09:43
Wohnort: Köln - Rondorf
Kontaktdaten:

Beitrag von zimboo »

Hallo cummunity,

ich nutze (vielmehr will es nutzen) das selbe Modul... bei mir gibt das allerdings 'ne riesen Latte von Warnings raus und die Artikel / Bilder sind auch nciht zu sehen :cry:

Hier die Warnings:
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 366
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 366
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 369
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 372
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 373
[13-Jun-2005 10:36:59] PHP Warning: imagecreatetruecolor(): Invalid image dimensions in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 379
[13-Jun-2005 10:36:59] PHP Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 391
[13-Jun-2005 10:36:59] PHP Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 396
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 366
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 366
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 369
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 372
[13-Jun-2005 10:36:59] PHP Warning: Division by zero in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 373
[13-Jun-2005 10:36:59] PHP Warning: imagecreatetruecolor(): Invalid image dimensions in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 379
[13-Jun-2005 10:36:59] PHP Warning: imagecopyresampled(): supplied argument is not a valid Image resource in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 391
[13-Jun-2005 10:36:59] PHP Warning: imagejpeg(): supplied argument is not a valid Image resource in C:\wampp2\htdocs\tests\contenido-4.4.5\drk\front_content.php(558) : eval()'d code on line 396
Kann mir jemand helfen... es scheint nur ne kleinigkeit zu sein - jedoch finde ich mich in dem QuellCode nicht zurecht...

Achso ich nutze Contenido 4.4.5

Gruß

Jörg
Jörg Zimmermann
Köln Rondorf
andrej
Beiträge: 333
Registriert: Mi 8. Okt 2003, 09:46
Kontaktdaten:

Beitrag von andrej »

leider besteht das problem immer noch. kann vielleicht ein php prof dem dilema auf die spur kommen?

desweiteren habe ich versucht das modul als xhtml auszugeben. leider wird ab dem vierten artikel, auf der rechten seite nicht mehr skaliert. sprich die boxen auf der rechten seite stapeln sich übereinander. natürlich wird das ganze einfach nicht mehr lesbar. kann mir bitte jemand dabei helfen?

Code: Alles auswählen

<?php 
/** 
  * Zweispaltige Liste 
  * Ordert by begin-date and creator 
  * 06.05.2005 
  */ 

/** 
 * Artikelliste (output) 
 * @author Andreas Kummer 
 * @copyright Copyright &copy; 2005, mumprecht & kummer w3concepts 
 */ 
class referenzDSD { 

   function referenzDSD() { 

      // Anfangswerte setzen 
      if (!$this->setInitValues()) 
         return false; 
          
      // Anzahl Artikel ermitteln 
      $this->anzahlArtikel = $this->getArticleCount(); 
        
      // Artikel auslesen 
      $this->artikel = $this->getArticleDetails(); 
        
      // Artikel ausgeben 
      echo $this->getList(); 
        
      // Navigation ausgeben 
      // echo $this->getNavigation();    
   } 

   function setInitValues() { 
        
      global $cfgClient, $client; 

      $this->category = "CMS_VALUE[0]"; 
      $this->articleNumber = "CMS_VALUE[1]"; 
      $this->showStartArticle = "CMS_VALUE[2]"; 
      $this->characterCount = "CMS_VALUE[3]"; 
      $this->link['previous'] = "CMS_VALUE[4]"; 
      $this->link['next'] = "CMS_VALUE[5]"; 
      $this->thumbnailDimension = "CMS_VALUE[6]"; 
      $this->thumbnailPath = "CMS_VALUE[7]"; 
      $this->layer = "CMS_VALUE[8]"; 

      // Werte aus dem Request übernehmen 
      $this->limit = (isset ($_GET['displaylimit']) && $_GET['displaylimit'] > 0) ? ($_GET['displaylimit']) : (0); 
        
      // Bilderpfade 
      $this->bildzielpfad['frontend'] = $cfgClient[$client]['path']['htmlpath'].$cfgClient[$client]['upload'].$this->thumbnailPath; 
      $this->bildzielpfad['backend'] = $cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$this->thumbnailPath; 

      // Anfangswerte setzen, bei leerer Übergabe 
      if (empty ($this->category)) 
         return false; 
      if (empty ($this->articleNumber)) 
         $this->articleNumber = 10; 
      if (empty ($this->showStartArticle)) { 
         $this->showStartArticle = 'AND d.is_start = 0'; 
      } else { 
         $this->showStartArticle = ''; 
      } 
      if (empty ($this->characterCount)) 
         $this->characterCount = 200; 
      if (empty ($this->link['previous'])) 
         $this->link['previous'] = '[:: rückwärts ]'; 
      if (empty ($this->link['next'])) 
         $this->link['next'] = '[:: vorwärts ]'; 
      if (empty ($this->thumbnailDimension)) 
         $this->thumbnailDimension = 150; 
      if (empty ($this->thumbnailPath)) 
         return false; 

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

      return true; 
   } 

   function getArticleCount() { 

      global $cfg, $lang; 

      switch ($this->layer) { 
         case -2 : 
            $sql = "" . 
                  "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 " . 
                  "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->category}" . 
                  "   AND e.online = 1 " . 
                  "   AND e.redirect = 0 " . 
                  "   AND e.external_redirect = 0 " . 
                  "   AND e.idlang = $lang " . 
                  "   {$this->showStartArticle}"; 
               break; 
         case -1 : 
            $sql = " 
                            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 
                            WHERE 
                                ( 
                                    ( 
                                        c.idcat = b.idcat 
                                        AND b.parentid = a.idcat 
                                    ) 



                                    OR 
                                    ( 
                                        c.idcat = b.idcat 
                                        AND b.idcat = a.idcat 
                                    ) 
                                ) 
                                AND a.idcat = {$this->category} 
                                AND e.online = 1 
                                AND e.redirect = 0 
                                AND e.external_redirect = 0 
                                AND e.idlang = $lang 
                                {$this->showStartArticle} 
                            "; 
            break; 
         case 0 : 
            $sql = " 
                            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 
                            WHERE 
                                ( 
                                    ( 
                                        c.idcat = b.idcat 
                                        AND b.idcat = a.idcat 
                                    ) 
                                ) 
                                AND a.idcat = {$this->category} 
                                AND e.online = 1 
                                AND e.redirect = 0 
                                AND e.external_redirect = 0 
                                AND e.idlang = $lang 
                                {$this->showStartArticle} 
                            "; 
            break; 
      } 

      $this->db->query($sql); 
      if ($this->db->next_record()) 
         return $this->db->f("anzahl"); 

      return false; 
   } 

   function getArticleDetails() { 

      global $cfg, $lang; 

      switch ($this->layer) { 
         case -2 : 
            $sql = " 
                   SELECT e.pagetitle, e.summary, c.idcat, d.idart, e.idartlang, e.created, e.lastmodified, DATE_FORMAT(e.datestart,'%d.%m.%y %H:%i') AS erstellungsdatum, IF(e.datestart > e.lastmodified, e.datestart, e.lastmodified) as sortdate 
                   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 
                   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->category} 
                       AND e.online = 1 
                       AND e.redirect = 0 
                       AND e.external_redirect = 0 
                       AND e.idlang = $lang 
                       {$this->showStartArticle} 
                   ORDER BY sortdate DESC 
                   LIMIT {$this->limit}, {$this->articleNumber} 
                   "; 
            break; 
         case -1 : 
            $sql = " 
                   SELECT e.pagetitle, e.summary, c.idcat, d.idart, e.idartlang, e.created, e.lastmodified, DATE_FORMAT(e.datestart,'%d.%m.%y %H:%i') AS erstellungsdatum, IF(e.datestart > e.lastmodified, e.datestart, e.lastmodified) as sortdate 
                   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 
                   WHERE 
                       ( 
                           ( 
                               c.idcat = b.idcat 
                               AND b.parentid = a.idcat 
                           ) 
                           OR 
                           ( 
                               c.idcat = b.idcat 
                               AND b.idcat = a.idcat 
                           ) 
                       ) 
                       AND a.idcat = {$this->category} 
                       AND e.online = 1 
                       AND e.redirect = 0 
                       AND e.external_redirect = 0 
                       AND e.idlang = $lang 
                       {$this->showStartArticle} 
                   ORDER BY sortdate DESC 
                   LIMIT {$this->limit}, {$this->articleNumber} 
                    "; 
            break; 
         case 0 : 
            $sql = " 
                   SELECT e.pagetitle, e.summary, c.idcat, d.idart, e.idartlang, e.created, e.lastmodified, DATE_FORMAT(e.datestart,'%d.%m.%y %H:%i') AS erstellungsdatum, IF(e.datestart > e.lastmodified, e.datestart, e.lastmodified) as sortdate 
                   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 
                   WHERE 
                       ( 
                           ( 
                               c.idcat = b.idcat 
                               AND b.idcat = a.idcat 
                           ) 
                       ) 
                       AND a.idcat = {$this->category} 
                       AND e.online = 1 
                       AND e.redirect = 0 
                       AND e.external_redirect = 0 
                       AND e.idlang = $lang 
                       {$this->showStartArticle} 
                      ORDER BY sortdate DESC 
                      LIMIT {$this->limit}, {$this->articleNumber} 
                      "; 
            break; 
      } 

      $this->db->query($sql); 
        
      $counter = 0; 
      while ($this->db->next_record()) { 
              
         $article[$counter]['headline'] = urldecode($this->db->f('pagetitle')); 
         $article[$counter]['text'] = $this->shortenText($this->db->f('summary'),$this->characterCount); 
          
         $this->db2->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->db->f("idartlang")." 
               AND ( 
                   b.type = 'CMS_IMG' 
               ) 
               ORDER BY b.type, a.typeid ASC"); 

         if ($this->db2->next_record()) { 
            $article[$counter]['image'] = $this->createImage(urldecode($this->db2->f('dirname')),urldecode($this->db2->f('filename'))); 
            $article[$counter]['filename'] = urldecode($this->db2->f('filename')); 
            $article[$counter]['dirname'] = urldecode($this->db2->f('dirname')); 
         } 
          
         $article[$counter]['idart'] = $this->db->f('idart'); 
         $article[$counter]['idcat'] = $this->db->f('idcat'); 
         $article[$counter]['created'] = $this->db->f('erstellungsdatum'); 

         $counter++; 
      } 
        
      return $article; 
   } 
    
   function createImage($dirname, $filename) { 

      global $cfgClient, $client; 
        
      if (empty($filename)) return ''; 
        
      $pathinfo = pathinfo($filename); 
      $basename = basename($filename,$pathinfo['extension']); 
      if ($pathinfo['extension'] == 'gif') $pathinfo['extension'] = 'png'; 

      $src_image_size = getimagesize($cfgClient[$client]['path']['frontend'].$cfgClient[$client]['upload'].$dirname.$filename); 
        
      $this->srchoehe = $src_image_size[1]; 
      $this->srcbreite = $src_image_size[0]; 

      if ($src_image_size[0]/$this->thumbnailDimension < $src_image_size[1]/$this->thumbnailDimension) { 
         $resizeFactor = $src_image_size[1]/$this->thumbnailDimension; 
      } else { 
         $resizeFactor = $src_image_size[0]/$this->thumbnailDimension; 
      } 

      $this->bildhoehe = round($src_image_size[1]/$resizeFactor); 
      $this->bildbreite = round($src_image_size[0]/$resizeFactor); 

      $bilddateiname = "{$this->bildbreite}.{$this->bildhoehe}.$basename{$pathinfo['extension']}"; 

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

         $dst_im = imagecreatetruecolor($this->bildbreite,$this->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); 
         } elseif ($src_image_size[2] == 3) { 
            $src_im = ImageCreateFromPNG($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,$this->bildbreite,$this->bildhoehe,$src_image_size[0],$src_image_size[1]); 
          
         if ($pathinfo['extension'] == 'png') { 
            imagepng ($dst_im,$this->bildzielpfad['backend'].$bilddateiname); 
         } else { 
            imagejpeg ($dst_im,$this->bildzielpfad['backend'].$bilddateiname,100); 
         } 
         } 

      return $this->bildzielpfad['frontend'].$bilddateiname; 
   } 
    
   function shortenText($text,$length) { 
        
      $text = strip_tags(trim(urldecode($text))); 
        
      if (strlen($text) > $length) { 
         $newtext = ''; 
         $worte = explode (" ",$text); 
         $zulang = false; 
         foreach ($worte as $wort) { 
            if (strlen($newtext." ".$wort) >= $length) $zulang = true; 
            $newtext = (!$zulang)?($newtext." ".$wort):($newtext); 
         } 
         //$newtext .= "..."; 
      } else { 
            $newtext = $text; 
        } 
        
        return $newtext; 
   } 
    
   function getList() { 
        
      global $client, $lang, $sess; 
        
      if (empty($this->artikel)) return false; 
        
      // Tabelle Anfang 
      $returnvalue = '<div id="strContainer">'.""; 
      $i = 1; 
      foreach ($this->artikel as $artikel) { 
         // Link zusammensetzen 
         $link = $sess->url("index.php?client=$client&lang=$lang&idcat={$artikel['idcat']}&idart={$artikel['idart']}"); 
          
         if (($i%2) == 1) { // Artikel linke Spalte -> orange Trennliene               Boxanfang 
            $returnvalue .= '<div id="strlinks">'.""; 
         } else { // Artikel rechts ->keine orange Trennlienie                              Boxanfang 
            $returnvalue .= '<div id="strrechts">'.""; 
         } 
         
         
         //Artikel links, Text rechts -> orange Trennlienie
         if (($i%4) == 3){  
            // Überschrift... 
            $returnvalue .= '<strong><a href="'.$link.'"><img src="images/layout/pfeil.gif"/>&nbsp;'.$artikel['headline']."</a></strong><br/>";    
            // Text 
            $returnvalue .= $artikel['text'].'<a href="'.$link.'"><strong>... weitere Informationen</strong></a><br/><br/>';       
         } else { // keine orange Trennlienie 
            // Überschrift... 
            $returnvalue .= '<strong><a href="'.$link.'"><img src="images/layout/pfeil.gif"/>&nbsp;'.$artikel['headline'].'</a></strong><br/>';    
            // Text 
            $returnvalue .= $artikel['text'].'<a href="'.$link.'"><strong>... weitere Informationen</strong></a><br/><br/>';
         } 
        
         // Bild links... 
         if (!empty($artikel['image'])) { 
             if (($i%4) == 3){ 
                   $returnvalue .= '<center><a href="'.$link.'"><img class="strBild" src="'.$artikel['image'].'"/></a></center>'.""; 
             } 
             if (($i%4) == 0){ 
                   $returnvalue .= '<center><a href="'.$link.'"><img class="strBild" src="'.$artikel['image'].'"/></a></center>'."";
             } 
         }    
         
         // Bild rechts... 
         if (!empty($artikel['image'])) { 
             if (($i%4) == 2){ // Artikel rechts ->keine orange Trennlienie 
                   $returnvalue .= '<center><a href="'.$link.'"><img src="'.$artikel['image'].'"/></a></center>'.""; 
             } 
             if (($i%4) == 1){ // Artikel linke Spalte -> orange Trennliene 
                   $returnvalue .= '<center><a href="'.$link.'"><img src="'.$artikel['image'].'"/></a></center>'.""; 
             } 
         }    
         
         
         
         $returnvalue .= "</div>";     // Ende f&uuml;r eine Darstellung des Artikels 
          
         if (($i%2) == 0) {      // Ende der Zeile 
            $returnvalue .= "<br/>"; 
      } 
         $i++;          
                    
      } // Ende der Schleife: foreach 
        
      // Artikelanzahl ungerade... Lueckenfueller: Zeitungen 
      if (($i%2) == 0) { 
           $returnvalue .= ''; 
      } 
        
      // Tabelle Ende 
      $returnvalue .= "</div>"; 
        
      return $returnvalue; 
   } 

   function getNavigation() { 
        
      global $sess, $client, $lang, $idcat, $idart; 
        
      $returnvalue = ''; 
        
      if ($this->limit > 0 || $this->anzahlArtikel > $this->limit + $this->articleNumber) { 
         $returnvalue .= '&nbsp;'; 

         if ($this->limit > 0) { 
            $displaylimit = ($this->limit - $$this->articleNumber >= 0) ? ($this->limit - $this->articleNumber) : (0); 
            $returnvalue .= "<div><a href=\"".$sess->url("index.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$this->link['previous']}</a>"; 
         } else { 
            $returnvalue .= '&nbsp;'; 
         } 
          
         if ($this->anzahlArtikel > $this->limit + $this->articleNumber) { 
            $displaylimit = $this->limit + $this->articleNumber; 
            $returnvalue .= "<a href=\"".$sess->url("index.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$this->link['next']}</a>"; 
         } else { 
            $returnvalue .= '&nbsp;'; 
         } 
         $returnvalue .= ''; 
      } 
        
      return $returnvalue; 
   } 
} 

$referenzDSD = new referenzDSD(); 
?>

Code: Alles auswählen

#strContainer {margin: 0;  text-align: left; height: auto; text-align: justify;}
#strlinks        {position: relative; border: 1px solid blue; padding: 8px; margin-left: 0px; top: 0px; width: 480px; height: 390px; }
#strrechts      {position: absolute; border: 1px solid blue; padding: 8px; margin-left: 313px; top: 30px; width: 480px; height: 390px; }
Gesperrt