Modul: Standard-Artikelliste Advanced V1.4

mvf
Beiträge: 1758
Registriert: Mo 1. Aug 2005, 00:35
Wohnort: in der schönen Hallertau, mitten im Hopfen
Kontaktdaten:

Beitrag von mvf » Mo 14. Aug 2006, 00:07

Clawful hat geschrieben:Moin,

das Problem mit der komischen Formatierung hat sich erledigt. Lag daran, dass ich die Bilder via FTP hochgeladen hatte und nicht über die Dateiverwaltung. Dadurch wurde eine benötigte Variable vom System nicht erstellt.

Der Stil Hannover 96 ist aber durchaus noch aktuell...
wenn ich recht verstehe dann sowas wie 10 news, 3 mit bild und text der rest nur headlines?

dann gib der schleife im output nen zähler mit, wenn der >=4. eintrag dann eben neue ausgabe alà hannover
Grüsse, Guido

"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams

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

Beitrag von HerrB » Mo 14. Aug 2006, 09:35

@clawful:
Scharfes Hinsehen ... diese Stelle betrifft das (Ausgabe des Moduls):

Code: Alles auswählen

      foreach ($aData as $aValue) { 
         echo '<div>', chr(10); 
         echo '   <div id="headline">'.$aValue["Headline"].'</div>', chr(10); 
  
         if ($aSettings["Elements"] > 0) { 
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

Clawful
Beiträge: 20
Registriert: Di 8. Aug 2006, 08:50
Kontaktdaten:

Beitrag von Clawful » Di 15. Aug 2006, 07:30

Ich danke euch! Jetzt ist alles vom Format her, wie es soll!

Nun habe ich nur noch ein Problem mit dem Datum, denn es wird immer das aktuelle angezeigt, und nicht wie es soll, das Veröffentlichungsdatum des Artikels. Hier der Code, ich hoffe, ihr könnt mir helfen:

Code: Alles auswählen

$lastmod_date = strtotime($aValue["Published"]); 
$lastmod_date = date('d.m.Y ', $lastmod_date );

[...]

<td align="right"><font color="#909090" size="1">vom: '.$lastmod_date.'</font></td>

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

Beitrag von peanut » Fr 18. Aug 2006, 14:36

Hallo Herr B.

Nachdem ich deine Artikelliste voll eingebaut habe und einige Leute diese besuchen geht nun lt. meinen Serversupport der mysql Server in die Knie und die Seiten können nicht mehr aufgerufen werden.

Ein Bekannter sagte mir nun das bei dieser Liste keine sog. Indexierung vorliegen könnte und so bei jeder Abfrage erstmal alles durchsucht werden muss in der db . Ähnlich wie in einem Buch ohne Inhaltsverzeichnis, wo man dann erst alle seiten durchsuchen muss um eine Textstelle zu finden ....

Kann das sein ?

Gruss
Peanut
Version 4.6.4
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

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

Beitrag von HerrB » Fr 18. Aug 2006, 16:11

Gute Frage... Die Indizes sind ggf. in den Tabellen definiert - die verwendeten SQL-Abfragen sind aber sicherlich nicht unbedingt Index-optimiert.

Muss ich mir ansehen, braucht aber.

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

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

Beitrag von peanut » Fr 18. Aug 2006, 17:18

Hallo nochmal - na immerhin habe ich mal zum debuggen gefunden hehehe

was meinst denn ungefähr wie lange das dauern wird in Tagen / Wochen / Monaten ? Denn ich kann absolut nix machen gerade mit deiner Liste und wenn andere User auch mal ein paar hundert Artikel haben wird der mySql Server auch bei denen abrauchen ......

Dank, Dank und immer wieder Dank

Gruss
Peanut
Zuletzt geändert von peanut am Fr 18. Aug 2006, 18:34, insgesamt 1-mal geändert.
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

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

Beitrag von HerrB » Fr 18. Aug 2006, 18:05

Das kann ich nicht sagen - jedoch ist das doch recht relativ, die SQL-Abfragen sind sauber und eigentlich sollte sowas nur wenige Kategorien betreffen.

Wieviele Artikel aus wievielen Kategorien sind das denn und welche Einstellung gilt für die Auswahl der zu berücksichtigenden Kategorien?

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

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

Beitrag von peanut » Fr 18. Aug 2006, 18:29

Ich habe hier in jeder Kategorie ( 8 im ganzen + 2 alle anzeigen ) ca. 50-100 Artikel. Diese werden mit jeweils 7 verschiedenen Parametern geteasert a 5-10 Artikeln / Seite.

In den Kategorien mit wenigern geht es ab und zu aber bei der Kategorie " alles anzeigen" ( also alle Kategorien nach Preis zum Beispiel ) wird die Geschichte schon recht langsam und bricht auch leider häufig in sich zusammen :roll:

Es lief alles ok bis zu einer gewissen Grösse - dann war Ende

Ich hoffe du kannst dir ein Bild machen mit diesen Angaben ansonsten kann ich dir auch gerne die Seite schicken über PM

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

hassarabarber
Beiträge: 131
Registriert: Fr 23. Jun 2006, 11:11
Kontaktdaten:

Beitrag von hassarabarber » Do 14. Sep 2006, 14:32

Hallo Contenido Freunde

also, ich hatte das schonmal geschrieben, aber wenn ich ehrlich bin Blick ich noch nicht ganz so durch.

Es geht immer noch um das Thema - Artikel List - Text neben Bild ..... (The neverendindstory)

Es gibt (wie ich gelesen habe) verschiedene Lösungsansätze ... Mit CSS, diverse HTML-Templates ... and so one ...

Ich zb. brauche erstmal eine einfache Lösung im Output des Moduls ...

--> Die Frage: gibt es denn eine Möglichkeit das im Output des Moduls zu regeln .. ohne css :?:


werde mich dann später über eine HTML-Template-CSS-Lösung gedanken machen ... müssen! ... außer HerrB ist schneller ;-)

Hier mein aktuelles Modul - Output:

Code: Alles auswählen

<?php
# 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.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 ";

   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");
               $sTmpValue = html_entity_decode(strip_tags(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]["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 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 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');

                                       list ($width, $height, $type, $attr) = getimagesize($aData[$i]["i".$k]["WebPath"]);
                                       $aData[$i]["i".$k]["Width"]      = $width;
                                       $aData[$i]["i".$k]["Height"]     = $height;
                                    }
                                 }
                              
                                 break;
                              default:
                                 $sTmpValue = html_entity_decode(strip_tags(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["Publaished"]:         Published date of the article
      # $aValue["Category"]:          Category name
      # 
      # 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

      foreach ($aData as $aValue) {
         echo '<div>', chr(10);
         echo '<font color="#5e74ae"><b><div id="headline">'.$aValue["Headline"].'</div></b></font>', chr(10);
         echo '<br/>';
         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"];

                     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($image);
                        } else {
                           $image = $aValue["i".$i]["WebPath"];
                           
                           $width  = $aValue["i".$i]["Width"];
                           $height = $aValue["i".$i]["Height"];
                        }
                     }
                     
                     if ($image != "") {
                        echo '<a href="'.$aValue["Link"].'"><img src="'.$image.'" width="'.$width.'" height="'.$height.'" /></a>', chr(10);
                   
                     }
                     
                  break;
                  default: // Everything else is treated as "Text"
                   echo '<br/>';
                   echo '<br/>';
                   echo '       '.$aValue["i".$i]["Value"].' <a href="'.$aValue["Link"].'">'.mi18n("Mehr...").'</a>';
               
 # echo '   <div id="text"><br /></div><hr noshade="noshade" /><br />', chr(10);
}
            }
         }

         echo '</div>', chr(10);
         echo '<br/>';
         echo '<br/>';
      }
   }

   # 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: 1 2 3 4 5 6 7 ...
      $mitKomma = $lCount / $aSettings["ArticlePerPage"];
      $mitKommaInt = round($lCount / $aSettings["ArticlePerPage"]);
      if( $mitKomma > $mitKommaInt ) {
       $iPages = $mitKommaInt+1;
      } elseif( $mitKomma == $mitKommaInt ) {
       $iPages = $mitKommaInt;
      } else {
       $iPages = $mitKommaInt;
      }
      $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"; 

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


beste Grüße vince

hassarabarber
Beiträge: 131
Registriert: Fr 23. Jun 2006, 11:11
Kontaktdaten:

Beitrag von hassarabarber » Mo 18. Sep 2006, 10:09

... kann mir keiner zu diesem Thema nen "Wink mit dem Zaunpfahl" geben :?:



beste grüße vince

peawee
Beiträge: 2
Registriert: Di 19. Sep 2006, 09:58
Kontaktdaten:

Standard-Artikelliste Advanced 1.4 Template Version

Beitrag von peawee » Di 19. Sep 2006, 11:46

Hallo zusammen,

Bin noch ganz neu hier im Forum, kenne Contenido erst seit drei Monaten und habe streng genau genommen keine Ahnung von PHP, oder MySQL...

und trotzdem meine Frage: Kann mir bitte jemand beim folgenden Problem helfen? :oops:

Ich benutze die Template Version der Standard-Artikelliste Advanced 1.4 von Oldperl. Klappt soweit tauch alles wunderbar, das einzige womit ich nicht zurecht komme, ist die Anpassung des Layouts der Artikel. Ich würde es gerne haben, dass die einzelnen Artikel folgendermassen aussehen:

Bild


Tatsächlich sieht ein einzelner Arikel im Moment aber noch so aus:

Bild


Leider habe ich bisher nur Antworten zu der Ursprünglichen Version von Herr B gefunden, die auf die echos im Output verweisen. Da es in der Template Version von Oldperl allerdings keine echos mehr im Output gibt, habe ich keine Ahnung wo ich was tuen muss um die gewünschen Änderungen herbei zu führen.
Ich wäre äusserst Dankbar wen mir jemand sagen könnte wie ich es hinbekomme Bild und Text voneinander zu trennen und in unterschiedlichen Spalten aus gegeben bekomme, oder mir eventuell sogar den HTML Code für das Template posten könnte.

Vielen Dank für Eure Aufmerksamkeit!
MfG, Peawee

_________________
Nach der Kirche ist man schlauer...

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Re: Standard-Artikelliste Advanced 1.4 Template Version

Beitrag von Dodger77 » Di 19. Sep 2006, 13:04

peawee hat geschrieben:Leider habe ich bisher nur Antworten zu der Ursprünglichen Version von Herr B gefunden, die auf die echos im Output verweisen. Da es in der Template Version von Oldperl allerdings keine echos mehr im Output gibt, habe ich keine Ahnung wo ich was tuen muss um die gewünschen Änderungen herbei zu führen.
Ich wäre äusserst Dankbar wen mir jemand sagen könnte wie ich es hinbekomme Bild und Text voneinander zu trennen und in unterschiedlichen Spalten aus gegeben bekomme, oder mir eventuell sogar den HTML Code für das Template posten könnte.
Die templatebasierte Variante von oldperl benutzt 2 HTML-Templates, die du im Backend unter "Style -> HTML-Editor" anschauen und direkt bearbeiten kannst. Die beiden Dateien heißen "teaser_advanced.html" und "teaser_advanced_element.html".
Der Rest ist einfach ein wenig HTML. Wichtig ist, dass die Platzhalter (z.B. "{HEADLINE}" in den HTML-Templates erhalten bleiben.

peawee
Beiträge: 2
Registriert: Di 19. Sep 2006, 09:58
Kontaktdaten:

Beitrag von peawee » Di 19. Sep 2006, 23:12

Hi Dodger77,
danke für Deine schnelle Antwort. Habe mir also mal die beiden Templates angesehen, "teaser_advanced.html", sowie "teaser_advanced_element.html" und musste leider feststellen, dass ich auch hier mit meinen bemitleidenswerten HTML-Kentnissen keinen Schritt weiter komme, da ich das Zusammespiel zwischen den im Output Code verwendeten Variabeln und den Templates nicht verstehe...:cry:

Problem Fall 1:
In der Datei "teaser_advanced_element.html" wird nur der Platzhalter {CONTENT_ELEMENT} verwendet, der das Bild und gleichzeitig den Text in den selben Container einfügt. Die Ausgabe diser beiden Elemente würde ich gerne voneinander trennen, also das Bild links und den Text rechts in jeweils verschiedenen Spalten. Im Output konnte ich die entsprechende Stelle, mangelns an PHP-Kentnissen, allerdings nicht ausfindig machen, und habe abgesehen davon auch keine Ahnung, welche Änderungen vorzunehmen wären.

Problem Fall 2:
In der Spalte in der sich der Text befindet, soll ausserdem die Headline rein und darüber stehen, und unter dem Text soll das "More..." stehen.
Zusätzlich sollen die Hedline und das Bild mit dem gleichen Link wie "More" versehen sein.
Unter dem letzten Artikel dann wie entsprechen eingestellt die Blätterfunktion.


Sorry, aber ich würde bestimmt nicht Nerven, wenn ich nur ansatzweise selber mit dem Thema klar kommen würde. Stattdessen Stehe ich wie der Ochse vorm Scheunentor, und verstehen nix. Denn scheinbar ist es nicht alleine damit getan nur die HTML-Dateien zu bearbeiten, und mit dem Output-Code komme ich nicht zurecht, da ich kein PHP kann.
Würde mich sehr über Hilfe freuen.

Thank you for notice this!
MfG, Peawee

_________________
Nach der Kirche ist man schlauer...

effex
Beiträge: 55
Registriert: So 13. Mär 2005, 14:03
Kontaktdaten:

Beitrag von effex » Do 21. Sep 2006, 09:59

Vielen Dank für diese wunderbare Artikelliste HerrB!

Da es ja bekanntlich keine dummen Fragen gibt, möchte ich mal eine stellen.

Ich benutze diese Artikelliste als eine Art Navigation. Die Artikelliste ist bei mir auf allen Artikelseiten sichtbar. Für die Anzeige eines aktiven Zustandes des jeweils aufgerufenen Artikels, benötige ich die Möglichkeit diesen mittels CSS zu definieren.

Da ich ein absoluter PHP-Laie bin habe ich mal folgende Änderung im Ausgabebereich für die Textpassagen versucht:

Code: Alles auswählen

if ($_REQUEST["Link"] == $aData["idart"]) {
            echo '   <div id="Headlineactive">'.'<a href="'.$aValue["Link"].'">'.$aValue["Headline"].'<br>'.$aValue["Category"].'</a>'.'</div>'.'<div id="Artikellistenabstand">'.'</div>', chr(10);         
                            } else { 
         						echo '   <div id="headline">'.'<a href="'.$aValue["Link"].'">'.$aValue["Headline"].'<br>'.$aValue["Category"].'</a>'.'</div>'.'<div id="Artikellistenabstand">'.'</div>', chr(10);
Dieses führt natürlich nur dazu, dass alle Artikel in der Liste jetzt das Aussehen der div id 'Headlineactive' haben.

Also: Was kann ich machen, damit der Zustand 'Headlineactive' nur dann angezeigt wird, wenn ich mich in diesem Artikel befinde. Während alle anderen in der Liste den Zustand 'Headline' behalten?

Ich hoffe ich habe mich klar genug ausgedrückt ;-)

Dodger77
Beiträge: 3626
Registriert: Di 12. Okt 2004, 20:00
Wohnort: Voerde (Niederrhein)
Kontaktdaten:

Beitrag von Dodger77 » Do 21. Sep 2006, 10:07

effex hat geschrieben:

Code: Alles auswählen

if ($_REQUEST["Link"] == $aData["idart"]) {
Probier doch mal statt dessen:

Code: Alles auswählen

if ($idart == $aData["idart"]) {

Gesperrt