Modul: Standard-Artikelliste Advanced V1.4

eiterer
Beiträge: 104
Registriert: Sa 7. Jul 2007, 14:52
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von eiterer » Fr 13. Mär 2009, 20:21

Hallo.
Zuerst: Danke für das Modul. Ist echt hammer.

Ich will nun, dass es hardcodiert ist, sprich, dass der "normale" Benutzer die Daten nicht mehr eingeben muss und diese bei der Konfiguration nicht aufscheint.
Die Daten habe ich bis auf folgende alle hinterlegen können:
Bild
da diese variabel erstellt werden. Lt. Code dürften diese die Felder "CMS_VAR[20]" und "CMS_VAR[21]" sein. Finde diese allerdings nirgends im Modul.
Könnt ihr mir bitte sagen, wie ich dies hardcodiert hinterlegen kann, dass diese variablen Felder mit konstanten Werten befüllt werden?
DANKE

Hier noch der Ausgabecode des Modules (V1.4):

Code: Alles auswählen

<?php
# Initialization
$bDebug     = false;
$iDataStart = 20;
$lCount     = 0;

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

# Base settings
unset ($aSettings);
$aSettings = array();
$aSettings["ArticleCount"]       = "3";
$aSettings["ArticlePerPage"]     = "3";
$aSettings["SortBy"]             = "ARTLANG.published";
$aSettings["SortDir"]            = "DESC";
$aSettings["ShowStart"]          = "enabled";
$aSettings["Category"]           = "98";
$aSettings["HeadlineIdentifier"] = "tblData.idtype = '1' AND tblData.typeid = '1'";
$aSettings["HeadlineLength"]     = "20";
$aSettings["Elements"]           = "1";
$aSettings["CatTypeSel"]         = "selected";
$aSettings["AddCats"]            = "76";

# 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["Published"]:         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="#000000"> <div id="headline">'.$aValue["Headline"].'</div> </font>', chr(10);

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

   # 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 ... 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 '      &nbsp;<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);
?>

idea-tec
Beiträge: 1242
Registriert: Do 19. Sep 2002, 14:41
Wohnort: Dichtelbach
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von idea-tec » Sa 14. Mär 2009, 18:04

Na dann fangen wir mal an, und ich antworte mit dem Verständnis, dass du die Werte fest Vorgeben möchtest UND dass ein Redakteur sie in der Kategorien-Konfig erst gar nicht zu sehen bekommt

Outputbereich:
hier wird übergeben ob zusätzliche Elemente angezeigt werden sollen

Code: Alles auswählen

$aSettings["Elements"]           = "CMS_VALUE[9]";
bedeutet, dass bei dir, wenn ich den Screenshot mit meiner Brille richtig lese eine "1" als Wert besitzt
Dann kannst du hier direkt eine 1 einsetzen:

Code: Alles auswählen

//$aSettings["Elements"]           = "CMS_VALUE[9]";
$aSettings["Elements"]           = 1;
Dann wird hier abgefragt ob $aSettings>0 ist und entsprechende Variable gesetzt:

Code: Alles auswählen

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"] = "";
      }
   }
}
Um nun herauszufinden was du wo FEST im Output vorgeben kannst/musst, würde ich mir dieses hier in der oberen Schleife mal ausgeben lassen:

Code: Alles auswählen

      $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]";
echo "Werte: ".$aSettings["k".$i]["ElementType"]."|".$aSettings["k".$i]["Identifier"]."|".$aSettings["k".$i]["ElementWidth"]."|".$aSettings["k".$i]["ElementHeight"]."<br>";
danach einfach die Werte entsprechend zuordnen, z.B.: $aSettings["k0"]["ElementType"] = "Image";
-------------------------------------------------------------------------------------------------------------------------------------

Zum Unterbinden der Anzeige in der Kategorien-Konfig
Diese Zeile(n) suchen und entsprechend auskommentieren (denk an die for-Schleife, da ich hier nicht den ganzen Code gepostet Habe), sollte hin hauen:

Code: Alles auswählen

if ($aSettings["Elements"] == 0) {
   $sBottomStyle = "border-bottom: 1px solid #747488;"; // Paint the table area closing line
} else {
   $sBottomStyle = "";
}
echo '           <tr>'."\n";
echo '              <td class="text" style="border-left:  1px solid #747488;'.$sBottomStyle.'">'.mi18n("Additional elements:").'</td>'."\n";
echo '              <td class="text" style="border-right: 1px solid #747488;'.$sBottomStyle.'"><input type="text" name="CMS_VAR[9]" value="'.$aSettings["Elements"].'" size="3" title="'.mi18n("Set to a value above 0 to specify text or images as additional elements").'">&nbsp'.$sSubmitLink.'</td>'."\n";
echo '           </tr>'."\n";

if ($aSettings["Elements"] > 0) {
   for ($i = 0; $i < $aSettings["Elements"]; $i++) {
Sollte ich irgendwo irgendwas falsch verstanden oder vergessen haben, möge man mir das aktuell verzeihen, ich bin nicht wirklich in der Lage mich zu konzentrieren und benötige so ca. 8 Packungen Tempo-Taschentücher/Tag
MfG, Karsten
Nicht Können bedeutet nicht, dass man etwas nicht beherrscht, sondern lediglich, dass man sich nicht traut es zu tun ;-)
| Internet | Ihr Logo deutschlandweit auf T-Shirts |
Diplomatie: Jemanden so in die Hölle zu schicken, dass er sich auf die Reise freut!!! ;-)

eiterer
Beiträge: 104
Registriert: Sa 7. Jul 2007, 14:52
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von eiterer » Sa 14. Mär 2009, 20:50

VIELEN DANK idea-tec!!

So ganz verstanden habe ich es nicht (for-Schleife), bin aber trotzdem dank deiner Hilfe zum Ziel gekommen.

Ich habe einfach, aus dem Teil, den du mir gezeigt hast, wie folgt ausgebessert:

Code: Alles auswählen

      $aSettings["k".$i] = array();
      $aSettings["k".$i]["ElementType"]    = "Text"; // Text, Image, ExtractedImage
      $aSettings["k".$i]["Identifier"]     = "tblData.idtype = '2' AND tblData.typeid = '1'";
      $aSettings["k".$i]["ElementWidth"]   = "40"; // Textlength or ImageWidth
      $aSettings["k".$i]["ElementHeight"]  = "CMS_VALUE[$iElementHeight]";
:D
DANKE :mrgreen: :D :wink:

lobo
Beiträge: 10
Registriert: Di 17. Mär 2009, 03:49
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von lobo » So 12. Apr 2009, 22:47

super modul, vielen dank dafür.
ich dieses modul etwas umbauen, bzw das datum. gibt es eine möglichkeit datum, monat und jahr einzeln auszugeben? so das ich im template nicht mit {DATE} das datum abrufe, sondern mit {DAY}{MONTH}{YEAR}?

würde mich riesig freuen wenn mir jemand helfen könnte.

lobo
Beiträge: 10
Registriert: Di 17. Mär 2009, 03:49
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von lobo » Di 14. Apr 2009, 17:28

hat niemand einen tipp für mein kleines datumformatierungsproblem? wäre nett wenn mir jemand helfen könnte.

GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von GaMbIt_ » Di 14. Apr 2009, 17:45

Wo wird denn {DATE} gesetzt?
Natürlich kann man in einem Template auch andere Bezeichner verwenden...

Zeig doch mal den Codeabschnitt im Modul wo {DATE} gesetzt wird...
Nützliche Contenido Infos gibts hier: Contenido Wiki

lobo
Beiträge: 10
Registriert: Di 17. Mär 2009, 03:49
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von lobo » Di 14. Apr 2009, 18:57

GaMbIt_ hat geschrieben:Wo wird denn {DATE} gesetzt?
Natürlich kann man in einem Template auch andere Bezeichner verwenden...

Zeig doch mal den Codeabschnitt im Modul wo {DATE} gesetzt wird...
naja ich nutze bei meiner ausgabe eines artikels folgendes schemata
headline, txt, link zum artikel, datum.

für headline, txt und link zum artikel gibts ja im template einen platzhalter. bei date habe ich einen selbst eingefügt (ins template).
nur wird das datum als xx.xx.xxxx ausgegeben, da ich aber die einzelnen elemente anders gestallten möchte, bräuchte ich eine ausgabe speziel für den tag, monat, und jahr...daher die idee mit {DAY}, {MONTH}, { YEAR}

das modul gibt jedoch das datum als "komplettpaket" aus, statt gesplittet. ich hoffe ich konnte es verständlich erklären.

GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von GaMbIt_ » Di 14. Apr 2009, 19:15

Jepp.. hab Dich schon verstanden.. zeig mal Deinen Code wo Du {DATE} befüllst...
Nützliche Contenido Infos gibts hier: Contenido Wiki

lobo
Beiträge: 10
Registriert: Di 17. Mär 2009, 03:49
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von lobo » Di 14. Apr 2009, 21:33

verstehe zwar nicht ganz wozu, aber hier der code

Code: Alles auswählen

<!-- BEGIN:BLOCK -->
<h3 class="date">{DATE}<span>{HEADLINE}</span></h3>
<p>{TEXT} {MORE}</p>
<!-- END:BLOCK -->
code aus der advanced_list.html - etwas umgeändert halt.

GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von GaMbIt_ » Di 14. Apr 2009, 21:44

Nein...

Nicht die Stelle im Modultemplate... sondern die Stelle im Modul wo Du den Bezeichner im Modul setzt...

da sollte sowas stehen wie $tmpl->templateSet(b, DATE, xx); ... oder so ähnlich...
Nützliche Contenido Infos gibts hier: Contenido Wiki

lobo
Beiträge: 10
Registriert: Di 17. Mär 2009, 03:49
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von lobo » Di 14. Apr 2009, 22:36

hehe schon kompliziert ;)
ne du im modul selbst habe ich absolut nichts geändert, nur im template date testweise eingefügt, und siehe da es wurde eine datum ausgegeben. daher auch die frage ob es irgendwie möglich wäre das ganze zu splitten. ach ja ich habe die hier angebotene 1.6er version.

GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von GaMbIt_ » Di 14. Apr 2009, 22:53

Du hast also auf gut Glück den Bezeichner {DATE} eingefügt... und weisst nicht mal wie der zusammengesetzt wird...

Hmmm...

Wo gibts denn die 1.6er Version?
Nützliche Contenido Infos gibts hier: Contenido Wiki

lobo
Beiträge: 10
Registriert: Di 17. Mär 2009, 03:49
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von lobo » Di 14. Apr 2009, 23:24

eine seite vorher, hier der direkte downloadlink: http://www.handgewickelte-glasperlen.de ... ist1.6.zip
naja so ganz auf gut glück nicht, das modul kann ja datum ausgeben, wenn es eingestellt ist. jedoch hat es bei mir nicht funktioniert, also schaute ich den output an was da so passiert. mit meinen begrenzten php kenntnissen entdeckte ich dann die {date} geschichte, die ich ins template einfügte und es auf anhieb funktionierte.

ps: modul ohne etwas doku sind eine kleine katastrophe ;)

GaMbIt_
Beiträge: 674
Registriert: Do 16. Mär 2006, 16:17
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von GaMbIt_ » Mi 15. Apr 2009, 00:16

Ahhhrrgghh.. genau diesen Codeschnipsel brauch ich... wo wird denn im Output {date} gesetzt...
Nützliche Contenido Infos gibts hier: Contenido Wiki

lobo
Beiträge: 10
Registriert: Di 17. Mär 2009, 03:49
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von lobo » Mi 15. Apr 2009, 01:34

also ich würde sagen wohl an dieser stellen, ich hoffe ich irre ich nicht.

Code: Alles auswählen

if("CMS_VALUE[97]"=="create")
{
    $tmp_artlist_Date = strtotime($aValue["Created"]);
}
else
{
    $tmp_artlist_Date = strtotime($aValue["Published"]);
}

    if("CMS_VALUE[98]"!="-1")
    {
        $artlist_lastmod = date('CMS_VALUE[98]', $tmp_artlist_Date);
        if(strlen($artlist_lastmod)>12)$artlist_lastmod=$artlist_lastmod." Uhr";
    }
    else
        $artlist_lastmod = "";
         
         $tpl->set('d', 'PAGETITEL', $artlist_pagetitel);
         $tpl->set('d', 'HEADLINE', $artlist_headline);
         $tpl->set('d', 'DATE', $artlist_lastmod);
         $tpl->set('d', 'IMG',  $artlist_image);
         $tpl->set('d', 'TEXT',  $artlist_text);
         $tpl->set('d', 'MORE', $artlist_more);

       $tpl->next();

      }
   }

$tpl->generate("CMS_VALUE[99]");

Gesperrt