[MODUL 4.4.5] - Artikelliste mit zwei Spalten, blätterbar

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

[MODUL 4.4.5] - Artikelliste mit zwei Spalten, blätterbar

Beitrag von andrej » Fr 17. Jun 2005, 11:31

Name: Artikelliste mit zwei Spalten, blätterbar
Version: mod6.v1.1
Contenido: 4.4.5
Beschreibung: Die Artikelliste beruht auf der w3concepts.alist.mod6.v1 Artikelliste von w3concepts. In derzeitigen Artikellisten, werden Artikel unter einander, einzelnt aufgelistet. Mit dieser Artikelliste ist es nun möglich, Artikel in zweispaltigem Layout auszugeben. Bilder werden bei dieser Artikelliste nicht dargestellt. Die Artikelliste wurde komplett an XHTML angepasst. Das Aussehen kann komplett über CSS gesteuert werden. Diese Artikelliste eignet sich auch sehr gut für einen Newsbereich. Da der oberste Artikel immer der aktuellste ist. So und nun viel Spaß damit.
[Wichtig] - Getestet nur unter V4.4.5. Keine Gewähr auf richtigkeit. Keine Schadenersatzansprüche.

Beispielbild - so wie ich das umgesetzt habe.
Bild

CSS

Code: Alles auswählen

#strContainer { margin: 0;  text-align: left; height: auto; width:100%; font-size: 0.7em; color: #000000; }
  div.strlinks     { border: 1px dotted #000000; padding: 7px; margin-left: 25px; bottom: 5px; top: 0px; width: 280px; height: 87px; float: left; }
  div.strrechts   { border: 1px dotted #000000; padding: 7px; margin-left: 14px; bottom: 5px; top: 0px; width: 280px; height: 87px; float: left; }
Input

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 dsdIxInput { 

   function dsdIxInput($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 dsdIxInput($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>";
Output

Code: Alles auswählen

<?php 
/************************************************************* 
* Modulname   : w3concepts.alist.mod6.v1 
* Author      : Andreas Kummer 
* Copyright   : mumprecht & kummer w3concepts 
* Created     : 08-07-2004 
* Modified    : 17-06-2005 by devstormDESIGN <info@devstorm.de> 
**************************************************************/ 
 
class dsdArtList { 

   function dsdArtList() { 

      // 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 class="strContainer">'; 
      $i = 1; 
      foreach ($this->artikel as $artikel) { 
         // Link zusammensetzen 
         $link = $sess->url("front_content.php?client=$client&lang=$lang&idcat={$artikel['idcat']}&idart={$artikel['idart']}"); 
          
         if (($i%2) == 1) { // Artikel linke Spalte -> orange Trennliene               Boxanfang 
            $returnvalue .= '<div class="strlinks">'; 
         } else { // Artikel rechts ->keine orange Trennlienie                              Boxanfang 
            $returnvalue .= '<div class="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>... Details</strong></a>';       
         } 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>... Details</strong></a>';
         } 
         $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 .= '&nbsp;'; 
      } 
      // 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 .= "<a href=\"".$sess->url("front_content.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("front_content.php?client=$client&lang=$lang&idcat=$idcat&idart=$idart&displaylimit=$displaylimit")."\">{$this->link['next']}</a>"; 
         } else { 
            $returnvalue .= '&nbsp;'; 
         } 
         $returnvalue .= ''; 
      } 
      return $returnvalue; 
   } 
} 
$dsdArtList = new dsdArtList(); 
?>

kashban
Beiträge: 44
Registriert: Fr 7. Mai 2004, 10:29
Kontaktdaten:

Thumbnails-Pfad funktioniert nicht

Beitrag von kashban » So 19. Jun 2005, 16:00

Hallo!

Tolle Idee mit diesem Modul, ungefähr was ich suche. Allerdings habe ich ein Problem: Bei der Konfiguration des Moduls (Input) lässt sich kein Thunbnail-Pfad auswählen (leere Liste), weswegen die Initialisierung des Output-Teils fehlschlägt. Woran kann das liegen? Fehlende Dateirechte evtl?

Gruß,
Jürgen

kashban
Beiträge: 44
Registriert: Fr 7. Mai 2004, 10:29
Kontaktdaten:

Fehler gefunden

Beitrag von kashban » Mo 20. Jun 2005, 13:44

Hallo!

Nach einigem Debuggen habe ich den Fehler gefunden. Ich verwende PHP 5 für mein Contenido und dort verhält sich entweder array_merge() oder readdir() anders als bei PHP4, zumindest vermute ich das. readdir() liefert nicht immer ein Array zurück und array_merge liefert dann einen Argument-Fehler.

Ich musste den Code im Input-Bereich des Moduls folgendermaßem ändern, damit die Thumbnail-Auswahl funktioniert:

Code: Alles auswählen

   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("&nbsp;",$level * 5).$file;
            $nextlevel = $this->getPath($root.$file."/",$level+1);
            if (is_array($nextlevel))
            {
              $returnvalue = array_merge($returnvalue,$this->getPath($root.$file."/",$level+1));
            }
         }
      }
      return $returnvalue;
   }
Gruß,
Jürgen

peanut
Beiträge: 246
Registriert: Do 25. Nov 2004, 19:34
Kontaktdaten:

mit bild ?

Beitrag von peanut » Do 14. Jul 2005, 14:26

Hallo Leute genau sowas habe ich gesucht nur jetzt sollten noch bilder angezeigt werden von den mitgelieferten modulen von Contenido

Wäre echt super wenn es sowas gäbe

Gruss an alle
Peanut
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

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

Beitrag von andrej » Do 14. Jul 2005, 16:00

tuh dir keinen zwang an, pass es einfach an. nimmt die originalsourcen von diesem modul, die sourcen von dem überarbeiten modul, und füge die grafikelemente da ein wo du es gerne hättest.

peanut
Beiträge: 246
Registriert: Do 25. Nov 2004, 19:34
Kontaktdaten:

Beitrag von peanut » Do 14. Jul 2005, 16:34

ja wenn es denn so einfach wäre hätte ich es schon gemacht .... ich bin aber leider nur grafiker ....

Evtl. bist du ja so lieb und postest die lösung hier einfach mal auch für andere nicht coder

Danke für deine Bemühungen

Ein Sandkorn kann die Welt verändern .:))
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

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

Beitrag von andrej » Do 14. Jul 2005, 17:02

ich bin auch kein coder, sondern eher ein grafiker. habe im moment viel zutun, werde aber versuchen bei gelegendheit die sachen einzubauen.

peanut
Beiträge: 246
Registriert: Do 25. Nov 2004, 19:34
Kontaktdaten:

Beitrag von peanut » So 17. Jul 2005, 10:40

joho ich melde mich nochmal eben ... Folgendes Problem taucht bei mir auf:

Ich habe nun das Modul ohne Bilder getestet ( das von ganz oben hier in dem Posting) und muss sagen sehr schön - geht alles aussser die Blätter Funktion - da kommt nüscht

Jemand eine Idee warum das so ist ?

ich habe 3 artikel in einem ordner und lasse mir 2 anzeigen dann sollte doch eigentlich ein "weiter" text kommen damit man den 3. auch lesen kann oder ??? ( werden nat. mehr Artikel in der Zukunft )

Ich hänge fest bitte um eine kurze Hilfe

Gruss an alle fleissigen Bienchen
Peanut
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

kashban
Beiträge: 44
Registriert: Fr 7. Mai 2004, 10:29
Kontaktdaten:

Beitrag von kashban » So 17. Jul 2005, 11:00

Hm, ich habe die Blätterfunktion noch nicht getestet und das Modul auch schon soweit verändert, dass es so ohne weiteres nicht mehr vergleichbar ist... Muss mir den Code nochmal ansehen.

peanut
Beiträge: 246
Registriert: Do 25. Nov 2004, 19:34
Kontaktdaten:

Beitrag von peanut » So 17. Jul 2005, 12:45

super , vielen vielen Dank
evtl. auch gleich mit der Bild Funktion ? hehe
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

Gesperrt