articlelistadvanced - bildbeschreibung

Gesperrt
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

articlelistadvanced - bildbeschreibung

Beitrag von kloevekorn »

Liebe Leute,

ich versuche, die Article List Advanced dazu zu bewegen, die Bildbeschreibung aus der con_upl (Feld "description") anzuzeigen.

Der Platzhalter {CAPTION} im Template bleibt leer (das Bild wird selbstredend ausgegeben. Hat jemand bitte einen Tipp, wie ich das hinbekomme?

Ganz unten poste ich den gesamten Output-Code (ich verwende die Template-Version), oben die Ausschnitte, an denen ich mich versucht habe. Alles, was mit description und $caption ist, ist von mir. Der Code ist wohl recht unlesbar geworden ... aber vielleicht kann man ja den Fehler in den etwas übersichtlicheren Code-Ausschnitten identifizieren?

Ich bedanke mich für eure Ideen.

Zeile 240ff:

Code: Alles auswählen

 if ($aSettings["Elements"] > 0) { 
                  for ($k = 0; $k < $aSettings["Elements"]; $k++) { 
                     $aData[$i]["i".$k]               = array(); 
                     $aData[$i]["i".$k]["Value"]      = ""; 
                     $aData[$i]["i".$k]["ServerPath"] = ""; 
                     $aData[$i]["i".$k]["WebPath"]    = ""; 
                     
$aData[$i]["i".$k]["Description"]   = ""; /*neu - Description fürs Bild zurücksetzen*/

                     $aData[$i]["i".$k]["Width"]      = 0; 
                     $aData[$i]["i".$k]["Height"]     = 0; 

Code: Alles auswählen

# Note: The TypeIdentifier for one item may be the same as for another item. 
                     #       Therefore, we are storing the content everywhere as needed 
                     for ($k = 0; $k < $aSettings["Elements"]; $k++) { 
                        if ($sTypeIdentifier == $aSettings["k".$k]["Identifier"]) { 
                           switch (TRUE) { 
                              case ($aSettings["k".$k]["ElementType"] == "Image" || $aSettings["k".$k]["ElementType"] == "ExtractedImage"): 
                                 $sql = ""; 
                                 if ($aSettings["k".$k]["ElementType"] == "Image") { 
$sql =  "SELECT dirname, filename, description FROM ".$cfg["tab"]["upl"]." "; /*neu*/
                                    $sql .= "WHERE idupl = '".$db3->f('value')."'"; 
                                 } else {
                                    $sTmpValue = urldecode($db3->f('value')); 
    
                                    $regEx = "/<img[^>]*?>.*?/i"; 
                                    $match = array (); 
                                    preg_match($regEx, $sTmpValue, $match); 
      
                                    $regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i"; 
                                    $img = array (); 
                                    preg_match($regEx, $match[0], $img); 
                                    $img_src = preg_split("/\//", $img[0]); 
                                    
                                    $img_name = $img_src[count($img_src) - 1]; 
                                    $img_name = preg_replace("/\"/", "", $img_name); 
                                  

                               
    
                                    if (strlen($name) > 0) { 
$sql =  "SELECT dirname, filename, description FROM ".$cfg["tab"]["upl"]." "; /*neu*/
                                       $sql .= "WHERE LOWER(filename) = '$name'"; 
                                       // $sql .= "WHERE filename REGEXP '$name'"; // Old: for 'banner.jpg' 'merlin_banner.jpg' is also returned 
                                    }  

Code: Alles auswählen

  if ($sql != "") { 
                                    $db4->query($sql); 
                                  
                                    if ($db4->next_record()) { 
                                       $aData[$i]["i".$k]["ServerPath"] = $cfgClient[$client]["upl"]["path"].$db4->f('dirname').$db4->f('filename'); 
                                       $aData[$i]["i".$k]["WebPath"]    = $cfgClient[$client]["upl"]["htmlpath"].$db4->f('dirname').$db4->f('filename');    
$aData[$i]["i".$k]["Description"]    = $db4->f('description'); 

                                       list ($width, $height, $type, $attr) = getimagesize($aData[$i]["i".$k]["ServerPath"]);
                                       $aData[$i]["i".$k]["Width"]      = $width; 
                                       $aData[$i]["i".$k]["Height"]     = $height; 
                                    } 
Zeile 388ff:

Code: Alles auswählen

/*ACHTUNG: HEADLINE KANN AUCH MIT LINK AUSGEGEBEN WERDEN:*/
        $artlist_headline = $aValue["Headline"];
        $artlist_pagetitel = $aValue["Pagetitle"]; 
        $artlist_summary = $aValue["Summary"]; 

$aText = array(); 
$iTextElement = 0;
         if ($aSettings["Elements"] > 0) { 
            for ($i = 0; $i < $aSettings["Elements"]; $i++) { 
               switch (TRUE) { 
                  case ($aSettings["k".$i]["ElementType"] == "Image" || $aSettings["k".$i]["ElementType"] == "ExtractedImage"): 
                     $image = $aValue["i".$i]["WebPath"]; 
                      $caption = $aValue["i".$i]["description"]; 
                     $width  = $aValue["i".$i]["Width"]; 
                     $height = $aValue["i".$i]["Height"];


                     if ($aSettings["k".$i]["ElementWidth"] > 0 && $aSettings["k".$i]["ElementHeight"] > 0) { 
                        # Check, if resize necessary 
                        if ($aValue["i".$i]["ServerPath"] != "" && file_exists($aValue["i".$i]["ServerPath"]) && 
                            ($aValue["i".$i]["Width"] > $aSettings["k".$i]["ElementWidth"] || 
                             $aValue["i".$i]["Height"] > $aSettings["k".$i]["ElementHeight"])) { 
                           # Scale image 
                           $image = capiImgScale($aValue["i".$i]["ServerPath"], $aSettings["k".$i]["ElementWidth"], $aSettings["k".$i]["ElementHeight"], false, false, 10, false); 
                            
                  #Get dimensions of the image 
                           list ($width, $height, $type, $attr) = getimagesize(str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $image)); 
                        } else { 
                           $image = $aValue["i".$i]["WebPath"]; 
$caption = $aValue["i".$i]["Description"]; /*NEU*/
                           $width  = $aValue["i".$i]["Width"]; 
                           $height = $aValue["i".$i]["Height"]; 
                        } 
                     }  
Zeile 453:

Code: Alles auswählen

 $tpl->set('d', 'CAPTION',  $caption);
Der gesamte Output:

Code: Alles auswählen

<?php $image="";
### Version mit korrigiertem GetImageSize Fehler 
# Initialization 
$bDebug     = false; 
$iDataStart = 20; 
$lCount     = 0; 

unset ($aData); 
$aData = array(); 

# Base settings 
unset ($aSettings); 
$aSettings = array(); 
$aSettings["ArticleCount"]       = "CMS_VALUE[0]"; 
$aSettings["ArticlePerPage"]     = "CMS_VALUE[1]"; 
$aSettings["SortBy"]             = "CMS_VALUE[2]"; 
$aSettings["SortDir"]            = "CMS_VALUE[3]"; 
$aSettings["ShowStart"]          = "CMS_VALUE[4]"; 
$aSettings["Category"]           = "CMS_VALUE[5]"; 
$aSettings["HeadlineIdentifier"] = "CMS_VALUE[7]"; 
$aSettings["HeadlineLength"]     = "CMS_VALUE[8]"; 
$aSettings["Elements"]           = "CMS_VALUE[9]"; 
$aSettings["CatTypeSel"]         = "CMS_VALUE[10]"; 
$aSettings["AddCats"]            = "CMS_VALUE[11]"; 

# Checking base settings 
if (!is_numeric($aSettings["ArticleCount"]) || $aSettings["ArticleCount"] < 0) { 
   $aSettings["ArticleCount"] = 5; 
} 
if (!is_numeric($aSettings["ArticlePerPage"]) || $aSettings["ArticlePerPage"] < 0) { 
   $aSettings["ArticlePerPage"] = 0; // Deactivating page browsing 
} 
if ($aSettings["ArticlePerPage"] == 0 || !is_numeric($_REQUEST["nextstep"])) { 
   $_REQUEST["nextstep"] = 0; 
} 
if (!is_numeric($aSettings["Category"]) || $aSettings["Category"] <= 0) { 
   $aSettings["Category"] = 0; 
} 
if (strlen($aSettings["HeadlineIdentifier"]) > 50) { 
   $aSettings["HeadlineIdentifier"] = ""; 
} 
if (!is_numeric($aSettings["HeadlineLength"]) || $aSettings["HeadlineLength"] < 0) { 
   $aSettings["HeadlineLength"] = 0; 
} 
if (!is_numeric($aSettings["Elements"]) || $aSettings["Elements"] < 0) { 
   $aSettings["Elements"] = 0; 
} 
if ($aSettings["CatTypeSel"] == "" || ($aSettings["AddCats"] == "" && $aSettings["CatTypeSel"] == "selected")) { 
   $aSettings["CatTypeSel"] = "none"; 
} 

# Detail settings 
if ($aSettings["Elements"] > 0) { 
   for ($i = 0; $i < $aSettings["Elements"]; $i++) { 
      $iElementType       = $iDataStart + ($i * 5); 
      $iElementIdentifier = $iElementType + 1; 
      $iElementWidth      = $iElementType + 2; 
      $iElementHeight     = $iElementType + 3; 

      $aSettings["k".$i] = array(); 
      $aSettings["k".$i]["ElementType"]    = "CMS_VALUE[$iElementType]"; // Text, Image, ExtractedImage 
      $aSettings["k".$i]["Identifier"]     = "CMS_VALUE[$iElementIdentifier]"; 
      $aSettings["k".$i]["ElementWidth"]   = "CMS_VALUE[$iElementWidth]"; // Textlength or ImageWidth 
      $aSettings["k".$i]["ElementHeight"]  = "CMS_VALUE[$iElementHeight]"; 

      # Check detail settings 
      if ($aSettings["k".$i]["ElementType"] == "") { 
         $aSettings["k".$i]["ElementType"] == "Text"; 
      } 
      if ($aSettings["k".$i]["ElementType"] == "Text") { 
         $aSettings["ElementHeight"] = 0; 
         if (!is_numeric($aSettings["k".$i]["ElementWidth"]) || $aSettings["k".$i]["ElementWidth"] < 0) { 
            $aSettings["k".$i]["ElementWidth"] = 50; 
         } 
      } else if (!is_numeric($aSettings["k".$i]["ElementWidth"]) || $aSettings["k".$i]["ElementWidth"] <= 0 || 
                 !is_numeric($aSettings["k".$i]["ElementHeight"]) || $aSettings["k".$i]["ElementHeight"] <= 0) { 
         $aSettings["k".$i]["ElementWidth"] = 0; 
         $aSettings["k".$i]["ElementHeight"] = 0; 
      } 
      if (strlen($aSettings["Identifier"]) > 50) { 
         $aSettings["Identifier"] = ""; 
      } 
   } 
} 

unset ($iDataStart); 
unset ($iElementType); 
unset ($iElementIdentifier); 
unset ($iElementWidth); 
unset ($iElementHeight); 

if ($aSettings["Category"] !== "0" && $aSettings["HeadlineIdentifier"] !== "") { 
   if (!is_object($db2)) { 
      $db2 = new DB_Contenido; 
   } 

   # Specifying search categories 
   $sSelCats = "'".$aSettings["Category"]."'"; 
   # Adding categories "below" primary category 
   switch ($aSettings["CatTypeSel"]) { 
      case "below": 
         $lCatLevel = -1; 
         $sql  = "SELECT a.idcat AS idcat, b.level AS level FROM ".$cfg["tab"]["cat"]." a, ".$cfg["tab"]["cat_tree"]." b "; 
         $sql .= "WHERE a.idcat = b.idcat ORDER BY b.idtree"; 

         $db2->query($sql); 
         while($db2->next_record()) { 
            if ($db2->f("idcat") == $aSettings["Category"]) { 
               $lCatLevel = $db2->f("level"); 
            } else if ($lCatLevel > -1 && $db2->f("level") > $lCatLevel) { 
               $sSelCats .= ",'".$db2->f("idcat")."'"; 
            } else if ($db2->f("level") <= $lCatLevel) { 
               break; 
            } 
         } 
         break; 
      case "selected": 
         $aCats = explode(",",$aSettings["AddCats"]); 
         foreach ($aCats as $value) { 
            if (is_numeric($value)) { 
               $sSelCats .= ",'".$value."'"; 
            } 
         } 
         break; 
      default: 
   } 

   $sql  = "SELECT tblData.value AS headline, ARTLANG.pagetitle AS pagetitle, ARTLANG.summary AS summary, ARTLANG.idart AS id, ARTLANG.lastmodified AS lastmodified, " ; 
   $sql .= "ARTLANG.created AS created, ARTLANG.published AS published, CATLANG.name AS category, "; 
   $sql .= "ARTLANG.idartlang AS idartlang, CATART.idcat AS idcat, CATART.idcatart AS idcatart FROM "; 
   $sql .= $cfg["tab"]["cat_art"]." AS CATART, "; 
  $sql .= $cfg["tab"]["art_lang"]." AS ARTLANG, "; 
   $sql .= $cfg["tab"]["cat_lang"]." AS CATLANG, "; 
   $sql .= $cfg["tab"]["content"]." AS tblData "; 

  $sql .= "WHERE CATART.idcat IN (".$sSelCats.") AND ARTLANG.idlang = '".$lang."' "; 

 $sql .= "AND tblData.idartlang = ARTLANG.idartlang "; 
 $sql .= "AND CATLANG.idlang = ARTLANG.idlang "; 
 

 
 
		$sql .= "AND CATLANG.idcat = CATART.idcat "; 
		$sql .= "AND ARTLANG.idart = CATART.idart "; 
		sql .= "AND CATART.is_start = '0' "; 


   if ($aSettings["ShowStart"] == "enabled") { 
      if ($cfg["is_start_compatible"] != true) { 
         $sql .= "AND CATART.is_start = '0' "; 
      } else { 
         $sql .= "AND tblData.idartlang != CATLANG.startidartlang "; 
      } 
   } 

   $sql .= "AND ARTLANG.online = '1' "; 
   $sql .= "AND ".$aSettings["HeadlineIdentifier"]." "; 

   // Sort by 
   $sql .= "ORDER BY "; 
   $sql .= $aSettings["SortBy"]." ".$aSettings["SortDir"]." "; 

   // LIMIT 
   if ($aSettings["ArticleCount"] > 0) { 
      $sql .= "LIMIT 0, ".$aSettings["ArticleCount"]; 
   } 

   // execute query 
   $db2->query($sql); 
   $lCount = $db2->num_rows(); 

   if ($lCount > 0) { 
      if (!is_object($db3)) { 
         $db3 = new DB_Contenido; 
      } 
      if (!is_object($db4)) { 
         $db4 = new DB_Contenido; 
      } 
      if ($aSettings["ArticlePerPage"] > 0) { 
         $lStartCount = $_REQUEST["nextstep"]; 
         $lEndCount   = $_REQUEST["nextstep"] + $aSettings["ArticlePerPage"]; 
         if ($lEndCount > $lCount) { 
            $lEndCount = $lCount; 
         } 
      } else { 
         $lStartCount = 0; 
         $lEndCount   = $lCount; 
      } 

      $lRow = 0; 
      $i    = 0; 
      while ($db2->next_record()) { 
         if ( $aSettings["ShowStart"] == "enabled" || 
             ($aSettings["ShowStart"] != "enabled" && $db2->f("idartlang") != $lStartIDArtLang)) { 
            if ($lRow >= $lStartCount && $lRow < $lEndCount) { 
               $aData[$i]                        = array(); 
               $aData[$i]["Category"]            = urldecode($db2->f("category")); 
               $aData[$i]["Link"]                = $sess->url("front_content.php?idcat=".$db2->f("idcat")."&idart=".$db2->f("id"));; 
               $aData[$i]["LastModified"]        = $db2->f("lastmodified"); 
               $aData[$i]["Created"]             = $db2->f("created"); 
               $aData[$i]["Published"]           = $db2->f("published"); 
               # nachstehende Daten   Summary   eingefügt 
               $aData[$i]["Summary"]           = $db2->f("summary"); 
               # nachstehende Daten   pagetitle  eingefügt 
               $aData[$i]["Pagetitle"]           = $db2->f("pagetitle"); 

               $sTmpValue = html_entity_decode(urldecode($db2->f('headline'))); 
               if ($aSettings["HeadlineLength"] > 0 && strlen($sTmpValue) > $aSettings["HeadlineLength"]) { 
                  # Cutting text but preserving words and entities 
                  $sTmpValue = htmlentities(capiStrTrimAfterWord($sTmpValue, $aSettings["HeadlineLength"])."..."); 
               } 
               $aData[$i]["Headline"] = $sTmpValue; 

               if ($aSettings["Elements"] > 0) { 
                  for ($k = 0; $k < $aSettings["Elements"]; $k++) { 
                     $aData[$i]["i".$k]               = array(); 
                     $aData[$i]["i".$k]["Value"]      = ""; 
                     $aData[$i]["i".$k]["ServerPath"] = ""; 
                     $aData[$i]["i".$k]["WebPath"]    = ""; 
                     
$aData[$i]["i".$k]["Description"]   = ""; /*neu - Description fürs Bild zurücksetzen*/

                     $aData[$i]["i".$k]["Width"]      = 0; 
                     $aData[$i]["i".$k]["Height"]     = 0; 
                  } 
                
                  $sql =  "SELECT tblData.value AS value, tblData.idtype AS idtype, tblData.typeid AS typeid FROM "; 
                  $sql .= $cfg["tab"]["cat_art"]." AS tblCatArt, "; 
                  $sql .= $cfg["tab"]["art_lang"]." AS tblArtLang, "; 
                  $sql .= $cfg["tab"]["content"]." AS tblData "; 
                  $sql .= "WHERE tblData.idartlang = tblArtLang.idartlang AND "; 
                  $sql .= "tblArtLang.idlang = '".$lang."' AND "; 
                  $sql .= "tblArtLang.idart = tblCatArt.idart AND "; 
                  $sql .= "tblCatArt.idcatart = '".$db2->f("idcatart")."' AND ("; 
                
                  $sql_items = ""; 
                  for ($k = 0; $k < $aSettings["Elements"]; $k++) { 
                     if ($aSettings["k".$k]["Identifier"] != "") { 
                        if ($sql_items != "") { 
                           $sql_items .= " OR (".$aSettings["k".$k]["Identifier"].")"; 
                        } else { 
                           $sql_items = "(".$aSettings["k".$k]["Identifier"].")"; 
                        } 
                     } 
                  } 
                  $sql .= $sql_items.")"; 
                  
                  if ($bDebug) { 
                     echo "<pre>".$sql."</pre>", chr(10); 
                  } 

                  // execute query 
                  $db3->query($sql); 
                  
                  while ($db3->next_record()) { 
                     $sTypeIdentifier = "tblData.idtype = '".$db3->f('idtype')."' AND tblData.typeid = '".$db3->f('typeid')."'"; 
                      
                     # Note: The TypeIdentifier for one item may be the same as for another item. 
                     #       Therefore, we are storing the content everywhere as needed 
                     for ($k = 0; $k < $aSettings["Elements"]; $k++) { 
                        if ($sTypeIdentifier == $aSettings["k".$k]["Identifier"]) { 
                           switch (TRUE) { 
                              case ($aSettings["k".$k]["ElementType"] == "Image" || $aSettings["k".$k]["ElementType"] == "ExtractedImage"): 
                                 $sql = ""; 
                                 if ($aSettings["k".$k]["ElementType"] == "Image") { 
                                    $sql =  "SELECT dirname, filename, description FROM ".$cfg["tab"]["upl"]." "; /*neu*/
                                    $sql .= "WHERE idupl = '".$db3->f('value')."'"; 
                                 } else { 
                                    $sTmpValue = urldecode($db3->f('value')); 
    
                                    $regEx = "/<img[^>]*?>.*?/i"; 
                                    $match = array (); 
                                    preg_match($regEx, $sTmpValue, $match); 
      
                                    $regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i"; 
                                    $img = array (); 
                                    preg_match($regEx, $match[0], $img); 
                                    $img_src = preg_split("/\//", $img[0]); 
                                    
                                    $img_name = $img_src[count($img_src) - 1]; 
                                    $img_name = preg_replace("/\"/", "", $img_name); 
                                  

                               
    
                                    if (strlen($name) > 0) { 
                                       $sql =  "SELECT dirname, filename, description FROM ".$cfg["tab"]["upl"]." "; /*neu*/
                                       $sql .= "WHERE LOWER(filename) = '$name'"; 
                                       // $sql .= "WHERE filename REGEXP '$name'"; // Old: for 'banner.jpg' 'merlin_banner.jpg' is also returned 
                                    } 
                                 } 
                              
                                 if ($bDebug) { 
                                    echo "<pre>".$sql."</pre>"; 
                                 } 
                              
                                 // execute query 
                                 if ($sql != "") { 
                                    $db4->query($sql); 
                                  
                                    if ($db4->next_record()) { 
                                       $aData[$i]["i".$k]["ServerPath"] = $cfgClient[$client]["upl"]["path"].$db4->f('dirname').$db4->f('filename'); 
                                       $aData[$i]["i".$k]["WebPath"]    = $cfgClient[$client]["upl"]["htmlpath"].$db4->f('dirname').$db4->f('filename'); 
                                       $aData[$i]["i".$k]["Description"]    = $db4->f('description'); 

                                       list ($width, $height, $type, $attr) = getimagesize($aData[$i]["i".$k]["ServerPath"]);
                                       $aData[$i]["i".$k]["Width"]      = $width; 
                                       $aData[$i]["i".$k]["Height"]     = $height; 
                                    } 
                                 } 
                              
                                 break; 
                              default: 
                                 $sTmpValue = html_entity_decode(urldecode($db3->f('value'))); 
                                 if ($aSettings["k".$k]["ElementWidth"] > 0 && strlen($sTmpValue) > $aSettings["k".$k]["ElementWidth"]) { 
                                    # Cutting text but preserving words and entities 
                                    $sTmpValue = htmlentities(capiStrTrimAfterWord($sTmpValue, $aSettings["k".$k]["ElementWidth"])."..."); 
                                 } 
                                 $aData[$i]["i".$k]["Value"] = $sTmpValue; 
                           } 
                        } 
                     } 
                  } 
               } 
               $i++; 
            } else if ($lRow == $lEndCount) { 
               break; 
            } 
            $lRow++; 
         } 
      } 
      # Clearing memory 
      unset ($db2); 
      unset ($db3); 
      unset ($db4); 
      unset ($sql); 
      unset ($lStartIDArtLang); 
      unset ($lStartCount); 
      unset ($lEndCount); 

     
## 
/* Init Template 
*/ 

if (!is_object($tpl)) { 
   $tpl = new Template; 
} 
$tpl->reset(); 
$template = "ala_obst.html"; 



$newsheadline = " "; 
$tpl->set('s', 'TITLE', $newsheadline); 


      foreach ($aData as $aValue) { 
       //  echo '<div id="artlist">', chr(10); 


/*ACHTUNG: HEADLINE KANN AUCH MIT LINK AUSGEGEBEN WERDEN:*/
        $artlist_headline = $aValue["Headline"];
        $artlist_pagetitel = $aValue["Pagetitle"]; 
        $artlist_summary = $aValue["Summary"]; 

$aText = array(); 
$iTextElement = 0;
         if ($aSettings["Elements"] > 0) { 
            for ($i = 0; $i < $aSettings["Elements"]; $i++) { 
               switch (TRUE) { 
                  case ($aSettings["k".$i]["ElementType"] == "Image" || $aSettings["k".$i]["ElementType"] == "ExtractedImage"): 
                     $image = $aValue["i".$i]["WebPath"]; 
                      $caption = $aValue["i".$i]["description"]; 
                     $width  = $aValue["i".$i]["Width"]; 
                     $height = $aValue["i".$i]["Height"]; 

                     if ($aSettings["k".$i]["ElementWidth"] > 0 && $aSettings["k".$i]["ElementHeight"] > 0) { 
                        # Check, if resize necessary 
                        if ($aValue["i".$i]["ServerPath"] != "" && file_exists($aValue["i".$i]["ServerPath"]) && 
                            ($aValue["i".$i]["Width"] > $aSettings["k".$i]["ElementWidth"] || 
                             $aValue["i".$i]["Height"] > $aSettings["k".$i]["ElementHeight"])) { 
                           # Scale image 
                           $image = capiImgScale($aValue["i".$i]["ServerPath"], $aSettings["k".$i]["ElementWidth"], $aSettings["k".$i]["ElementHeight"], false, false, 10, false); 
                            
                  #Get dimensions of the image 
                           list ($width, $height, $type, $attr) = getimagesize(str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $image)); 
                        } else { 
                           $image = $aValue["i".$i]["WebPath"]; 
       $caption = $aValue["i".$i]["Description"]; /*NEU - kritische Stelle*/
                           $width  = $aValue["i".$i]["Width"]; 
                           $height = $aValue["i".$i]["Height"]; 
                        } 
                     } 
                      
                     if ($image != "") { 

        $artlist_image = '<img src="'.$image.'" width="'.$width.'" height="'.$height.'" alt="'.$caption.'" />'; 
                     } 
                      
                     break; 
                  default: // Everything else is treated as "Text" 
#####
                     # echo '   <div id="artlist_text">'.$aValue["i".$i]["Value"].'</div>', chr(10); 
                        #$artlist_text =  $aValue["i".$i]["Value"]; 
                        if ($artlist_summary == "") { 
                                $artlist_text =  $aValue["i".$i]["Value"]; 
                        } else { 
                                $artlist_text = $artlist_summary; 
                        } 
                        $aText[$iTextElement] = $artlist_text; 
                        $iTextElement++;
                      #echo $artlist_text; 

##### 
               } 
            } 
         } 
##### 
        $artlist_more = '<a href="'.$aValue["Link"].'">'.$artlist_headline.'</a>'; 
      //   echo '</div>', chr(10); 

##### 
         $tpl->set('d', 'PAGETITEL', $artlist_pagetitel); 
         $tpl->set('d', 'HEADLINE', $artlist_headline); 
         $tpl->set('d', 'IMAGE',  $artlist_image); 
 $tpl->set('d', 'CAPTION',  $caption);
         $tpl->set('d', 'MORE', $artlist_more); 
         for ($i = 0; $i < $iTextElement; $i++) { 
   $tpl->set('d', 'TEXT' . $i,  $aText[$i]);} 

       $tpl->next(); 
      } 
   } 

$tpl->generate('templates/'.$template); 


   # Page browsing 
   # Hint: Number of max available records: $lCount 
   #       Number of pages: round($lCount / $aSettings["ArticlePerPage"]) 
   #       First page: nextstep=0 
   #       Last page:  nextstep=(round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"]; 
   #                   (I have to admit that I'm not sure about the last page formula ... ;-) ) 
   if ($aSettings["ArticlePerPage"] > 0) { 
      # Example: Back and Next 
      echo '<div id="browsing">', chr(10); 
      if ($_REQUEST["nextstep"] > 0) { 
         echo '   <div id="Back">', chr(10); 
         echo '      <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.($_REQUEST["nextstep"]-$aSettings["ArticlePerPage"]).'">'.mi18n("Back").'</a>', chr(10); 
     //    echo '   </div>', chr(10); 
      } 
      if (($_REQUEST["nextstep"] + $aSettings["ArticlePerPage"]) < $lCount) { 
         echo '   <div id="Next">', chr(10); 
         echo '      <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.($_REQUEST["nextstep"]+$aSettings["ArticlePerPage"]).'">'.mi18n("Next").'</a>', chr(10); 
        // echo '   </div>', chr(10); 
      } 

      # Example: 1 2 3 4 5 6 7 ... 
      $iPages = intval($lCount / $aSettings["ArticlePerPage"]); 
      $sPageLinks = ''; 

      echo '   <div id="Pages">'; 
      for ($i = 1; $i <= $iPages; $i++) { 
         $lNextStep = ($i - 1) * $aSettings["ArticlePerPage"]; 
         if ($sPageLinks != '') { 
            $sPageLinks .= '&nbsp;'; 
         } 
         if ($_REQUEST["nextstep"] == $lNextStep) { 
            $sPageLinks .= $i."\n"; # I'm on the current page, no link 
         } else { 
            $sPageLinks .= '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>'."\n"; 
         } 
      } 
      echo '      '.$sPageLinks."\n"; 
      //echo '   </div>'."\n"; 

      # Example: |< 1 ... 3 4 5 ... 8 >| 
      $iPages = intval($lCount / $aSettings["ArticlePerPage"]); 
      $sPageLinks = ''; 

      echo '   <div id="Pages">'."\n"; 
      echo '      <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep=0">|<</a>'."\n"; 
      for ($i = 1; $i <= $iPages; $i++) { 
         $lNextStep = ($i - 1) * $aSettings["ArticlePerPage"]; 
         if ($i == 1 || $i == $iPages) { 
            if ($sPageLinks != '') { 
               $sPageLinks .= '&nbsp;'; 
            } 
            if ($_REQUEST["nextstep"] == $lNextStep) { 
               $sPageLinks .= $i."\n"; # I'm on the current page, no link 
            } else { 
               $sPageLinks .= '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>'."\n"; 
            } 
         } else if ($_REQUEST["nextstep"] == $lNextStep) { 
            $sPageLinks .= '&nbsp;'.$i."\n"; # I'm on the current page, no link 
         } else if ($_REQUEST["nextstep"] == ($lNextStep + $aSettings["ArticlePerPage"])) { 
            # Front 
            $sPageLinks .= '&nbsp;<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>'."\n"; 
         } else if ($_REQUEST["nextstep"] == ($lNextStep - $aSettings["ArticlePerPage"])) { 
            # Back 
            $sPageLinks .= '&nbsp;<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>'."\n"; 
         } else if ($_REQUEST["nextstep"] == ($lNextStep - (2 * $aSettings["ArticlePerPage"])) || 
                    $_REQUEST["nextstep"] == ($lNextStep + (2 * $aSettings["ArticlePerPage"]))) { 
            $sPageLinks .= '...'; 
         } 
      } 
      echo '      '.$sPageLinks."\n"; 
      echo '      <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.(round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"].'">>|</a>'."\n"; 
      // echo '   </div>'."\n"; 

    //  echo '</div>'."\n"; # Closing Browsing div 
   } 
} 
# Clearing memory 
unset ($aData); 
unset ($aSettings); 
unset ($i); 
unset ($lCount); 
unset ($bDebug); 


?>
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

Geschafft. Ich bin mir nicht ganz sicher, woran es lag, möglicherweise nur an der Groß- und Kleinschreibung. Der Code ist sowieso grauenvoll anzusehen.

Es funktioniert jetzt aber so, wie ich mir es vorstelle. Ich denke, es müsste als Ersatz für die normale ALA-Advanced (Template-Version) taugen.

Also wer es braucht, soll es nehmen.

Wer weiß, warum Leerschritte in der Bildbeschreibung zu "+" werden?? Deshalb habe ich ein preg_replace für $caption gemacht.

Ins HTML-Template muss ein {CAPTION}

Code: Alles auswählen

<?php 

if (CMS_VALUE[78]=='ja'){

echo '<div id="aufmacher">';
if (!$edit){
    echo "<img src=\"CMS_IMG[1]\" alt=\"\" title=\"\" />";
    }
     else 
       {if ("CMS_IMG[1]"!=""){
        echo "<img src=\"CMS_IMG[1]\" alt=\"\" />";
    }
    echo "CMS_IMGEDIT[1]";}
echo '</div><!--e class image-->';

  echo "<h1>"."CMS_HEAD[1]"."</h1>";
    echo "<h2>"."CMS_HEAD[2]"."</h2>";
    echo "CMS_HTML[1]";
    }

$image="";
### Version mit korrigiertem GetImageSize Fehler 
# Initialization 
$bDebug     = false; 
$iDataStart = 20; 
$lCount     = 0; 

unset ($aData); 
$aData = array(); 

# Base settings 
unset ($aSettings); 
$aSettings = array(); 
$aSettings["ArticleCount"]       = "CMS_VALUE[0]"; 
$aSettings["ArticlePerPage"]     = "CMS_VALUE[1]"; 
$aSettings["SortBy"]             = "CMS_VALUE[2]"; 
$aSettings["SortDir"]            = "CMS_VALUE[3]"; 
$aSettings["ShowStart"]          = "CMS_VALUE[4]"; 
$aSettings["Category"]           = "CMS_VALUE[5]"; 
$aSettings["HeadlineIdentifier"] = "CMS_VALUE[7]"; 
$aSettings["HeadlineLength"]     = "CMS_VALUE[8]"; 
$aSettings["Elements"]           = "CMS_VALUE[9]"; 
$aSettings["CatTypeSel"]         = "CMS_VALUE[10]"; 
$aSettings["AddCats"]            = "CMS_VALUE[11]"; 

# Checking base settings 
if (!is_numeric($aSettings["ArticleCount"]) || $aSettings["ArticleCount"] < 0) { 
   $aSettings["ArticleCount"] = 5; 
} 
if (!is_numeric($aSettings["ArticlePerPage"]) || $aSettings["ArticlePerPage"] < 0) { 
   $aSettings["ArticlePerPage"] = 0; // Deactivating page browsing 
} 
if ($aSettings["ArticlePerPage"] == 0 || !is_numeric($_REQUEST["nextstep"])) { 
   $_REQUEST["nextstep"] = 0; 
} 
if (!is_numeric($aSettings["Category"]) || $aSettings["Category"] <= 0) { 
   $aSettings["Category"] = 0; 
} 
if (strlen($aSettings["HeadlineIdentifier"]) > 50) { 
   $aSettings["HeadlineIdentifier"] = ""; 
} 
if (!is_numeric($aSettings["HeadlineLength"]) || $aSettings["HeadlineLength"] < 0) { 
   $aSettings["HeadlineLength"] = 0; 
} 
if (!is_numeric($aSettings["Elements"]) || $aSettings["Elements"] < 0) { 
   $aSettings["Elements"] = 0; 
} 
if ($aSettings["CatTypeSel"] == "" || ($aSettings["AddCats"] == "" && $aSettings["CatTypeSel"] == "selected")) { 
   $aSettings["CatTypeSel"] = "none"; 
} 

# Detail settings 
if ($aSettings["Elements"] > 0) { 
   for ($i = 0; $i < $aSettings["Elements"]; $i++) { 
      $iElementType       = $iDataStart + ($i * 5); 
      $iElementIdentifier = $iElementType + 1; 
      $iElementWidth      = $iElementType + 2; 
      $iElementHeight     = $iElementType + 3; 

      $aSettings["k".$i] = array(); 
      $aSettings["k".$i]["ElementType"]    = "CMS_VALUE[$iElementType]"; // Text, Image, ExtractedImage 
      $aSettings["k".$i]["Identifier"]     = "CMS_VALUE[$iElementIdentifier]"; 
      $aSettings["k".$i]["ElementWidth"]   = "CMS_VALUE[$iElementWidth]"; // Textlength or ImageWidth 
      $aSettings["k".$i]["ElementHeight"]  = "CMS_VALUE[$iElementHeight]"; 

      # Check detail settings 
      if ($aSettings["k".$i]["ElementType"] == "") { 
         $aSettings["k".$i]["ElementType"] == "Text"; 
      } 
      if ($aSettings["k".$i]["ElementType"] == "Text") { 
         $aSettings["ElementHeight"] = 0; 
         if (!is_numeric($aSettings["k".$i]["ElementWidth"]) || $aSettings["k".$i]["ElementWidth"] < 0) { 
            $aSettings["k".$i]["ElementWidth"] = 50; 
         } 
      } else if (!is_numeric($aSettings["k".$i]["ElementWidth"]) || $aSettings["k".$i]["ElementWidth"] <= 0 || 
                 !is_numeric($aSettings["k".$i]["ElementHeight"]) || $aSettings["k".$i]["ElementHeight"] <= 0) { 
         $aSettings["k".$i]["ElementWidth"] = 0; 
         $aSettings["k".$i]["ElementHeight"] = 0; 
      } 
      if (strlen($aSettings["Identifier"]) > 50) { 
         $aSettings["Identifier"] = ""; 
      } 
   } 
} 

unset ($iDataStart); 
unset ($iElementType); 
unset ($iElementIdentifier); 
unset ($iElementWidth); 
unset ($iElementHeight); 

if ($aSettings["Category"] !== "0" && $aSettings["HeadlineIdentifier"] !== "") { 
   if (!is_object($db2)) { 
      $db2 = new DB_Contenido; 
   } 

   # Specifying search categories 
   $sSelCats = "'".$aSettings["Category"]."'"; 
   # Adding categories "below" primary category 
   switch ($aSettings["CatTypeSel"]) { 
      case "below": 
         $lCatLevel = -1; 
         $sql  = "SELECT a.idcat AS idcat, b.level AS level FROM ".$cfg["tab"]["cat"]." a, ".$cfg["tab"]["cat_tree"]." b "; 
         $sql .= "WHERE a.idcat = b.idcat ORDER BY b.idtree"; 

         $db2->query($sql); 
         while($db2->next_record()) { 
            if ($db2->f("idcat") == $aSettings["Category"]) { 
               $lCatLevel = $db2->f("level"); 
            } else if ($lCatLevel > -1 && $db2->f("level") > $lCatLevel) { 
               $sSelCats .= ",'".$db2->f("idcat")."'"; 
            } else if ($db2->f("level") <= $lCatLevel) { 
               break; 
            } 
         } 
         break; 
      case "selected": 
         $aCats = explode(",",$aSettings["AddCats"]); 
         foreach ($aCats as $value) { 
            if (is_numeric($value)) { 
               $sSelCats .= ",'".$value."'"; 
            } 
         } 
         break; 
      default: 
   } 

   $sql  = "SELECT tblData.value AS headline, ARTLANG.pagetitle AS pagetitle, ARTLANG.summary AS summary, ARTLANG.idart AS id, ARTLANG.lastmodified AS lastmodified, " ; 
   $sql .= "ARTLANG.created AS created, ARTLANG.published AS published, CATLANG.name AS category, "; 
   $sql .= "ARTLANG.idartlang AS idartlang, CATART.idcat AS idcat, CATART.idcatart AS idcatart FROM "; 
   $sql .= $cfg["tab"]["cat_art"]." AS CATART, "; 
  $sql .= $cfg["tab"]["art_lang"]." AS ARTLANG, "; 
   $sql .= $cfg["tab"]["cat_lang"]." AS CATLANG, "; 
   $sql .= $cfg["tab"]["content"]." AS tblData "; 

  $sql .= "WHERE CATART.idcat IN (".$sSelCats.") AND ARTLANG.idlang = '".$lang."' "; 

 $sql .= "AND tblData.idartlang = ARTLANG.idartlang "; 
 $sql .= "AND CATLANG.idlang = ARTLANG.idlang "; 
 

 
 
     $sql .= "AND CATLANG.idcat = CATART.idcat "; 
 $sql .= "AND ARTLANG.idart = CATART.idart "; 
   

            $sql .= "AND CATART.is_start = '0' "; 


   if ($aSettings["ShowStart"] == "enabled") { 
      if ($cfg["is_start_compatible"] != true) { 
         $sql .= "AND CATART.is_start = '0' "; 
      } else { 
         $sql .= "AND tblData.idartlang != CATLANG.startidartlang "; 
      } 
   } 

   $sql .= "AND ARTLANG.online = '1' "; 
   $sql .= "AND ".$aSettings["HeadlineIdentifier"]." "; 

   // Sort by 
   $sql .= "ORDER BY "; 
   $sql .= $aSettings["SortBy"]." ".$aSettings["SortDir"]." "; 

   // LIMIT 
   if ($aSettings["ArticleCount"] > 0) { 
      $sql .= "LIMIT 0, ".$aSettings["ArticleCount"]; 
   } 

   // execute query 
   $db2->query($sql); 
   $lCount = $db2->num_rows(); 

   if ($lCount > 0) { 
      if (!is_object($db3)) { 
         $db3 = new DB_Contenido; 
      } 
      if (!is_object($db4)) { 
         $db4 = new DB_Contenido; 
      } 
      if ($aSettings["ArticlePerPage"] > 0) { 
         $lStartCount = $_REQUEST["nextstep"]; 
         $lEndCount   = $_REQUEST["nextstep"] + $aSettings["ArticlePerPage"]; 
         if ($lEndCount > $lCount) { 
            $lEndCount = $lCount; 
         } 
      } else { 
         $lStartCount = 0; 
         $lEndCount   = $lCount; 
      } 

      $lRow = 0; 
      $i    = 0; 
      while ($db2->next_record()) { 
         if ( $aSettings["ShowStart"] == "enabled" || 
             ($aSettings["ShowStart"] != "enabled" && $db2->f("idartlang") != $lStartIDArtLang)) { 
            if ($lRow >= $lStartCount && $lRow < $lEndCount) { 
               $aData[$i]                        = array(); 
               $aData[$i]["Category"]            = urldecode($db2->f("category")); 
               $aData[$i]["Link"]                = $sess->url("front_content.php?idcat=".$db2->f("idcat")."&idart=".$db2->f("id"));; 
               $aData[$i]["LastModified"]        = $db2->f("lastmodified"); 
               $aData[$i]["Created"]             = $db2->f("created"); 
               $aData[$i]["Published"]           = $db2->f("published"); 
               # nachstehende Daten   Summary   eingefügt 
               $aData[$i]["Summary"]           = $db2->f("summary"); 
               # nachstehende Daten   pagetitle  eingefügt 
               $aData[$i]["Pagetitle"]           = $db2->f("pagetitle"); 

               $sTmpValue = html_entity_decode(urldecode($db2->f('headline'))); 
               if ($aSettings["HeadlineLength"] > 0 && strlen($sTmpValue) > $aSettings["HeadlineLength"]) { 
                  # Cutting text but preserving words and entities 
                  $sTmpValue = htmlentities(capiStrTrimAfterWord($sTmpValue, $aSettings["HeadlineLength"])."..."); 
               } 
               $aData[$i]["Headline"] = $sTmpValue; 

               if ($aSettings["Elements"] > 0) { 
                  for ($k = 0; $k < $aSettings["Elements"]; $k++) { 
                     $aData[$i]["i".$k]               = array(); 
                     $aData[$i]["i".$k]["Value"]      = ""; 
                     $aData[$i]["i".$k]["ServerPath"] = ""; 
                     $aData[$i]["i".$k]["WebPath"]    = ""; 
$aData[$i]["i".$k]["Description"]    = ""; 

                     $aData[$i]["i".$k]["Width"]      = 0; 
                     $aData[$i]["i".$k]["Height"]     = 0; 
                  } 
                
                  $sql =  "SELECT tblData.value AS value, tblData.idtype AS idtype, tblData.typeid AS typeid FROM "; 
                  $sql .= $cfg["tab"]["cat_art"]." AS tblCatArt, "; 
                  $sql .= $cfg["tab"]["art_lang"]." AS tblArtLang, "; 
                  $sql .= $cfg["tab"]["content"]." AS tblData "; 
                  $sql .= "WHERE tblData.idartlang = tblArtLang.idartlang AND "; 
                  $sql .= "tblArtLang.idlang = '".$lang."' AND "; 
                  $sql .= "tblArtLang.idart = tblCatArt.idart AND "; 
                  $sql .= "tblCatArt.idcatart = '".$db2->f("idcatart")."' AND ("; 
                
                  $sql_items = ""; 
                  for ($k = 0; $k < $aSettings["Elements"]; $k++) { 
                     if ($aSettings["k".$k]["Identifier"] != "") { 
                        if ($sql_items != "") { 
                           $sql_items .= " OR (".$aSettings["k".$k]["Identifier"].")"; 
                        } else { 
                           $sql_items = "(".$aSettings["k".$k]["Identifier"].")"; 
                        } 
                     } 
                  } 
                  $sql .= $sql_items.")"; 
                  
                  if ($bDebug) { 
                     echo "<pre>".$sql."</pre>", chr(10); 
                  } 

                  // execute query 
                  $db3->query($sql); 
                  
                  while ($db3->next_record()) { 
                     $sTypeIdentifier = "tblData.idtype = '".$db3->f('idtype')."' AND tblData.typeid = '".$db3->f('typeid')."'"; 
                      
                     # Note: The TypeIdentifier for one item may be the same as for another item. 
                     #       Therefore, we are storing the content everywhere as needed 
                     for ($k = 0; $k < $aSettings["Elements"]; $k++) { 
                        if ($sTypeIdentifier == $aSettings["k".$k]["Identifier"]) { 
                           switch (TRUE) { 
                              case ($aSettings["k".$k]["ElementType"] == "Image" || $aSettings["k".$k]["ElementType"] == "ExtractedImage"): 
                                 $sql = ""; 
                                 if ($aSettings["k".$k]["ElementType"] == "Image") { 
                                    $sql =  "SELECT dirname, filename, description FROM ".$cfg["tab"]["upl"]." "; 
                                    $sql .= "WHERE idupl = '".$db3->f('value')."'"; 
                                 } else { 
                                    $sTmpValue = urldecode($db3->f('value')); 
    
                                    $regEx = "/<img[^>]*?>.*?/i"; 
                                    $match = array (); 
                                    preg_match($regEx, $sTmpValue, $match); 
      
                                    $regEx = "/(src)(=)(['\"]?)([^\"']*)(['\"]?)/i"; 
                                    $img = array (); 
                                    preg_match($regEx, $match[0], $img); 
                                    $img_src = preg_split("/\//", $img[0]); 
                                    

                                    
                                    $img_name = $img_src[count($img_src) - 1]; 
                                    $img_name = preg_replace("/\"/", "", $img_name); 
                                    #Don't know what is happening here, exactly... 
                                    # $img_split = preg_split("/\./", $img_name); 
                                    # $img_type = $img_split[count($img_split) - 1]; 
                                    # $img_split2 = preg_split("/_/", $img_split[0]); 

                                    $name = strtolower($img_name); 

                                    #Don't know what is happening here, exactly... 
                                    #if (count($img_split2) > 1) { 
                                    #   $img_x = $img_split2[count($img_split2) - 1]; 
                                    #   $img_y = $img_split2[count($img_split2) - 2]; 
    
                                    #   if (is_numeric($img_x) AND is_numeric($img_y)) { 
                                    #      $suffix = "_".$img_x."_".$img_y.".".$img_type; 
                                    #      $name = preg_replace("/$suffix/", "", $img_name); 
                                    #      $name = $name.".[a-zA-Z]{3}"; 
                                    #   } 
                                    #} 
    
                                    if (strlen($name) > 0) { 
                                       $sql =  "SELECT dirname, filename, description FROM ".$cfg["tab"]["upl"]." "; 
                                       $sql .= "WHERE LOWER(filename) = '$name'"; 
                                       // $sql .= "WHERE filename REGEXP '$name'"; // Old: for 'banner.jpg' 'merlin_banner.jpg' is also returned 
                                    } 
                                 } 
                              
                                 if ($bDebug) { 
                                    echo "<pre>".$sql."</pre>"; 
                                 } 
                              
                                 // execute query 
                                 if ($sql != "") { 
                                    $db4->query($sql); 
                                  
                                    if ($db4->next_record()) { 
                                       $aData[$i]["i".$k]["ServerPath"] = $cfgClient[$client]["upl"]["path"].$db4->f('dirname').$db4->f('filename'); 
                                       $aData[$i]["i".$k]["WebPath"]    = $cfgClient[$client]["upl"]["htmlpath"].$db4->f('dirname').$db4->f('filename'); 
$aData[$i]["i".$k]["Description"]    = $db4->f('description'); 

                                    list ($width, $height, $type, $attr) = getimagesize($aData[$i]["i".$k]["ServerPath"]);
                                       $aData[$i]["i".$k]["Width"]      = $width; 
                                       $aData[$i]["i".$k]["Height"]     = $height; 
                                    } 
                                 } 
                              
                                 break; 
                              default: 
                                 $sTmpValue = html_entity_decode(urldecode($db3->f('value'))); 
                                 if ($aSettings["k".$k]["ElementWidth"] > 0 && strlen($sTmpValue) > $aSettings["k".$k]["ElementWidth"]) { 
                                    # Cutting text but preserving words and entities 
                                    $sTmpValue = htmlentities(capiStrTrimAfterWord($sTmpValue, $aSettings["k".$k]["ElementWidth"])."..."); 
                                 } 
                                 $aData[$i]["i".$k]["Value"] = $sTmpValue; 
                           } 
                        } 
                     } 
                  } 
               } 
               $i++; 
            } else if ($lRow == $lEndCount) { 
               break; 
            } 
            $lRow++; 
         } 
      } 
      # Clearing memory 
      unset ($db2); 
      unset ($db3); 
      unset ($db4); 
      unset ($sql); 
      unset ($lStartIDArtLang); 
      unset ($lStartCount); 
      unset ($lEndCount); 

      # Output data 
      # Every output manipulation should be done here... 
      # 
      # Base information: 
      # $aSettings["Elements"]:       Number of expected, additional elements from each article 
      # $aSettings["ArticlePerPage"]: Number of articles per page (0: show all) 
      # $aSettings["k".$i]["ElementType"]:   Per Element: Type of Element: Text, Image or ExtractedImage 
      # $aSettings["k".$i]["ElementWidth"]:  Per Element: Text length or image width (-> recycling ...) 
      # $aSettings["k".$i]["ElementHeight"]: Per Element: Image width 
      # 
      # Per article: 
      # $aValue["Headline"]:          Content of article element specified as containing the headline information 
      # $aValue["Link"]:              Relative link to get to the listed article 
      # $aValue["LastModified"]:      Last modified date of the article 
      # $aValue["Created"]:           Created date of the article 
      # $aValue["Published"]:         Published date of the article 
      # $aValue["Category"]:          Category name 
      # $aValue["Summary"]:          summary Zusammenfassung 
      # $aValue["Pagetitle"]:          Seitentitel pagetitle 
      # 
      # Per article additional element: 
      # $aValue["i".$i]["Value"]:      Text (only for text elements, otherwise "") 
      # $aValue["i".$i]["WebPath"]:    HTTP... path to image 
      # $aValue["i".$i]["ServerPath"]: /server/... path to image 
      # $aValue["i".$i]["Width"]:      >Original< image width 
      # $aValue["i".$i]["Height"]:     >Original< image height 

## 
/* Init Template 
*/ 

if (!is_object($tpl)) { 
   $tpl = new Template; 
} 
$tpl->reset(); 
$template = "ala_obst.html"; 

## 

##### 
$newsheadline = " "; 
$tpl->set('s', 'TITLE', $newsheadline); 

##### 

      foreach ($aData as $aValue) { 
       //  echo '<div id="artlist">', chr(10); 
        # echo '   <div id="headline">'.$aValue["Category"].": ".$aValue["Headline"].'</div>', chr(10); 
        # echo '   <div id="artlist_headline">'.$aValue["Headline"].'</div>', chr(10); 
        # echo '   <div id="artlist_headline"><a href="'.$aValue["Link"].'">'.$aValue["Headline"].'</a></div>', chr(10); 

##### 

/*ACHTUNG: HEADLINE KANN AUCH MIT LINK AUSGEGEBEN WERDEN:*/
        $artlist_headline = /*'<a href="'.$aValue["Link"].'">'.*/$aValue["Headline"]/*.'</a>'*/;/*Headline ohne Link bitte */
        # echo $artlist_headline; 
##### 
        $artlist_pagetitel = $aValue["Pagetitle"]; 
        #echo $artlist_pagetitel; 
##### 
         # echo '   <div id="artlist_zusammen">'.$aValue["Summary"].'</div>', chr(10); 
          $artlist_summary = $aValue["Summary"]; 
         # echo $artlist_summary; 

##### 
$aText = array(); 
$iTextElement = 0;
         if ($aSettings["Elements"] > 0) { 
            for ($i = 0; $i < $aSettings["Elements"]; $i++) { 
               switch (TRUE) { 
                  case ($aSettings["k".$i]["ElementType"] == "Image" || $aSettings["k".$i]["ElementType"] == "ExtractedImage"): 
                     $image = $aValue["i".$i]["WebPath"]; 
     
                     $width  = $aValue["i".$i]["Width"]; 
                     $height = $aValue["i".$i]["Height"]; 
$caption = $aValue["i".$i]["Description"];

                     if ($aSettings["k".$i]["ElementWidth"] > 0 && $aSettings["k".$i]["ElementHeight"] > 0) { 
                        # Check, if resize necessary 
                        if ($aValue["i".$i]["ServerPath"] != "" && file_exists($aValue["i".$i]["ServerPath"]) && 
                            ($aValue["i".$i]["Width"] > $aSettings["k".$i]["ElementWidth"] || 
                             $aValue["i".$i]["Height"] > $aSettings["k".$i]["ElementHeight"])) { 
                           # Scale image 
                           $image = capiImgScale($aValue["i".$i]["ServerPath"], $aSettings["k".$i]["ElementWidth"], $aSettings["k".$i]["ElementHeight"], false, false, 10, false); 
$caption = $aValue["i".$i]["Description"];
	                    #Get dimensions of the image 
                           list ($width, $height, $type, $attr) = getimagesize(str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $image)); 
                        } else { 
                           $image = $aValue["i".$i]["WebPath"]; 
$caption =  $aValue["i".$i]["Description"]; 
                           $width  = $aValue["i".$i]["Width"]; 
                           $height = $aValue["i".$i]["Height"]; 
                        } 
                     } 
                      
                     if ($image != "") { 
                     $caption = preg_replace("/\+/"," ",$caption);
        $artlist_image = '<img src="'.$image.'" width="'.$width.'" height="'.$height.'" alt="'.$caption.'" />'; 
                     } 
                      
                     break; 
                  default: // Everything else is treated as "Text" 

                     # echo '   <div id="artlist_text">'.$aValue["i".$i]["Value"].'</div>', chr(10); 
                        #$artlist_text =  $aValue["i".$i]["Value"]; 
                        if ($artlist_summary == "") { 
                                $artlist_text =  $aValue["i".$i]["Value"]; 
                        } else { 
                                $artlist_text = $artlist_summary; 
                        } 
                        $aText[$iTextElement] = $artlist_text; 
                        $iTextElement++;
                      #echo $artlist_text; 


               } 
            } 
         } 

        $artlist_more = '<a href="'.$aValue["Link"].'">'.$artlist_headline.'</a>'; 
      //   echo '</div>', chr(10); 

##### 
         $tpl->set('d', 'PAGETITEL', $artlist_pagetitel); 
         $tpl->set('d', 'HEADLINE', $artlist_headline); 
         $tpl->set('d', 'IMAGE',  $artlist_image); 
$tpl->set('d', 'CAPTION',  $caption); 

         $tpl->set('d', 'MORE', $artlist_more); 
         for ($i = 0; $i < $iTextElement; $i++) { 
   $tpl->set('d', 'TEXT' . $i,  $aText[$i]);} 

       $tpl->next(); 
##### 

      } 
   } 

$tpl->generate('templates/'.$template); 


   # Page browsing 
   # Hint: Number of max available records: $lCount 
   #       Number of pages: round($lCount / $aSettings["ArticlePerPage"]) 
   #       First page: nextstep=0 
   #       Last page:  nextstep=(round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"]; 
   #                   (I have to admit that I'm not sure about the last page formula ... ;-) ) 
   if ($aSettings["ArticlePerPage"] > 0) { 
      # Example: Back and Next 
      echo '<div id="browsing">', chr(10); 
      if ($_REQUEST["nextstep"] > 0) { 
         echo '   <div id="Back">', chr(10); 
         echo '      <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.($_REQUEST["nextstep"]-$aSettings["ArticlePerPage"]).'">'.mi18n("Back").'</a>', chr(10); 
     //    echo '   </div>', chr(10); 
      } 
      if (($_REQUEST["nextstep"] + $aSettings["ArticlePerPage"]) < $lCount) { 
         echo '   <div id="Next">', chr(10); 
         echo '      <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.($_REQUEST["nextstep"]+$aSettings["ArticlePerPage"]).'">'.mi18n("Next").'</a>', chr(10); 
        // echo '   </div>', chr(10); 
      } 

      # Example: 1 2 3 4 5 6 7 ... 
      $iPages = intval($lCount / $aSettings["ArticlePerPage"]); 
      $sPageLinks = ''; 

      echo '   <div id="Pages">'; 
      for ($i = 1; $i <= $iPages; $i++) { 
         $lNextStep = ($i - 1) * $aSettings["ArticlePerPage"]; 
         if ($sPageLinks != '') { 
            $sPageLinks .= '&nbsp;'; 
         } 
         if ($_REQUEST["nextstep"] == $lNextStep) { 
            $sPageLinks .= $i."\n"; # I'm on the current page, no link 
         } else { 
            $sPageLinks .= '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>'."\n"; 
         } 
      } 
      echo '      '.$sPageLinks."\n"; 
      //echo '   </div>'."\n"; 

      # Example: |< 1 ... 3 4 5 ... 8 >| 
      $iPages = intval($lCount / $aSettings["ArticlePerPage"]); 
      $sPageLinks = ''; 

      echo '   <div id="Pages">'."\n"; 
      echo '      <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep=0">|<</a>'."\n"; 
      for ($i = 1; $i <= $iPages; $i++) { 
         $lNextStep = ($i - 1) * $aSettings["ArticlePerPage"]; 
         if ($i == 1 || $i == $iPages) { 
            if ($sPageLinks != '') { 
               $sPageLinks .= '&nbsp;'; 
            } 
            if ($_REQUEST["nextstep"] == $lNextStep) { 
               $sPageLinks .= $i."\n"; # I'm on the current page, no link 
            } else { 
               $sPageLinks .= '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>'."\n"; 
            } 
         } else if ($_REQUEST["nextstep"] == $lNextStep) { 
            $sPageLinks .= '&nbsp;'.$i."\n"; # I'm on the current page, no link 
         } else if ($_REQUEST["nextstep"] == ($lNextStep + $aSettings["ArticlePerPage"])) { 
            # Front 
            $sPageLinks .= '&nbsp;<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>'."\n"; 
         } else if ($_REQUEST["nextstep"] == ($lNextStep - $aSettings["ArticlePerPage"])) { 
            # Back 
            $sPageLinks .= '&nbsp;<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>'."\n"; 
         } else if ($_REQUEST["nextstep"] == ($lNextStep - (2 * $aSettings["ArticlePerPage"])) || 
                    $_REQUEST["nextstep"] == ($lNextStep + (2 * $aSettings["ArticlePerPage"]))) { 
            $sPageLinks .= '...'; 
         } 
      } 
      echo '      '.$sPageLinks."\n"; 
      echo '      <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.(round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"].'">>|</a>'."\n"; 
      // echo '   </div>'."\n"; 

    //  echo '</div>'."\n"; # Closing Browsing div 
   } 
} 
# Clearing memory 
unset ($aData); 
unset ($aSettings); 
unset ($i); 
unset ($lCount); 
unset ($bDebug); 


?>
HerrB
Beiträge: 6935
Registriert: Do 22. Mai 2003, 12:44
Wohnort: Berlin
Kontaktdaten:

Beitrag von HerrB »

Der Code ist sowieso grauenvoll anzusehen.
Fühl Dich gehauen... :wink:
Wer weiß, warum Leerschritte in der Bildbeschreibung zu "+" werden?
Hier, ich, ich!

Weil alle Daten urlencoded in der DB gespeichert werden, d.h. Du musst sie auch mit urldecode wieder auslesen (nur preg_replace genügt nicht...).

Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!

Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
kloevekorn
Beiträge: 199
Registriert: Mo 31. Okt 2005, 15:26
Wohnort: Hamburg
Kontaktdaten:

Beitrag von kloevekorn »

Möööönsch HerrB - der Code ist deshalb grauenvoll anzusehen, weil da schon so viele Leute, darunter üble Pfuscher wie ich, drin rumgemurkst haben.

urldecode will ich denn mal nehmen.

danke.
Gesperrt