Modul: Standard-Artikelliste Advanced V1.4

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

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von lobo » So 26. Apr 2009, 03:30

niemand eine idee? :(

Kozu
Beiträge: 42
Registriert: Mo 27. Aug 2007, 11:38
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von Kozu » Fr 22. Mai 2009, 16:24

Hallo,

habe mit der Artikelliste folgendes Problem:

Ich habe zwei Artikeltemplates: Einmal mit Bild, einmal ohne. Nun soll die Artikelliste alle Artikel beider Templates in ein und derselben Liste darstellen. Ein Bild soll in der Artikelliste nur dann angezeigt werden, wenn der Artikel auch über ein Bild verfügt. Sonst nicht. Das klappt im Prinzip, nur habe ich das Problem, dass die Artikelliste nicht nichts anzeigt, wenn der Artikel kein Bild hat, sondern das vorangegangene Feld dupliziert (hier: die Überschrift). Hat jemand eine Lösung?

Hier mal der Quelltext, der von der Artikelliste generiert wird:

Code: Alles auswählen

                <h2><a href="front_content.php?idcat=3&idart=14">Dachzeile</a></h2>
                <h1><a href="front_content.php?idcat=3&idart=14">Überschrift</a></h1>
                <img src="http://www.technikjournal.de/cms/upload/bilder/it/baum.jpg"   />

                <h2><a href="front_content.php?idcat=3&idart=15">Dachzeile</a></h2>
                <h1><a href="front_content.php?idcat=3&idart=15">Überschrift</a></h1>
                Überschrift
Kurz: Beim zweiten Teil der Artikelliste soll das Wort "Überschrift" eben nicht angezeigt werden.

Danke!

Kozu
Beiträge: 42
Registriert: Mo 27. Aug 2007, 11:38
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von Kozu » Mo 25. Mai 2009, 15:24

Hat niemand eine Idee? :(

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von derSteffen » So 7. Jun 2009, 13:05

Hallo,

gibt es eine Möglichkeit, dass man bei der Sortierung auch sagen kann - "sortiere so, wie die Kategorien angeordnet sind!" Also nicht nach Artikel-ID etc.
Ich habe nämlich in meiner Liste mehrer Kategorien angewählt bei der jeweils nur der Startartikel angezeigt wird und diese sollen jetzt einfach so in der Reihenfolge angezeigt werden, wie ich meine Kategorien auch sortiert habe.

Das hat doch bestimmt etwas mit "idtree" zu tun oder? Die Sitemap machte es ja auch so, aber leider weiß ich nicht, wie ich das in die Artikel-Liste intergrieren kann.

Desweiteren würde ich gerne versuchen wollen die Zusammenfassung auszugeben! Wie mach ich das denn?

Vielen Dank

MfG Steffen

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von derSteffen » Di 9. Jun 2009, 20:13

Mhm,

es muss doch irgenwie gehen, das Ding so sortieren zu lassen, wie auch die Kategorien angeordnet sind. Aber nicht nach idcat sondern nach idtree. Wie mach ich das. Benötige ich dafür ein neuen Radio-Button für absteigend, aufsteigend und idtree?

Code: Alles auswählen

if (($aSettings["SortDir"] != "DESC") && ($aSettings["SortDir"] == "ASC") && ($aSettings["SortDir"] != "IDTREE") ) {
   echo '             <input type="radio" name="CMS_VAR[3]" value="ASC" checked>'.mi18n("Ascending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="DESC">'.mi18n("Descending").'&nbsp; <input type="radio" name="CMS_VAR[3]" value="b.idtree">'.mi18n("idtree")."\n";
} else if (($aSettings["SortDir"] == "DESC") && ($aSettings["SortDir"] != "ASC") && ($aSettings["SortDir"] != "IDTREE")){
   echo '             <input type="radio" name="CMS_VAR[3]" value="ASC">'.mi18n("Ascending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="DESC" checked>'.mi18n("Descending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="b.idtree">'.mi18n("idtree")."\n";
}
else {
   echo '             <input type="radio" name="CMS_VAR[3]" value="ASC">'.mi18n("Ascending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="DESC">'.mi18n("Descending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="b.idtree" checked>'.mi18n("idtree")."\n";
}
Nein oder! Ich muss in der Auswahlbox den neuen Wert reinnehmen, nach dem ich nach idtree sortieren kann und dann kann ich ganz normal mit ASC und DESC sagen wie rum er sortieren soll, richtig?

WIe lautet denn der Wert für die Angabe

Code: Alles auswählen

if ($aSettings["SortBy"] == "??????") {
   echo '                <option value="??????" selected>'.mi18n("nach Kategoie-Anordnung").'</option>'."\n";
} else {
   echo '                <option value="??????????">'.mi18n("nach Kategoie-Anordnung").'</option>'."\n";
}
Danke Euch!

MfG Steffen

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von derSteffen » Di 9. Jun 2009, 21:23

Oder muss hierfür auch der Output-Code geändert werden?

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von derSteffen » Do 18. Jun 2009, 00:06

Hat keiner eine Idee, wie ich in diesem Modul sagen kann sortiere nach IDTREE oder so? :-( Ich habe schon so viel versucht, dass klappt alles nicht! Wie gesagt, die Sitemap macht es ja auch, aber ich kann nicht die Abfrage in das Artice-List-Modul integrieren!

Kann mir jemand helfen? Bitte!

MfG Steffen

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von derSteffen » Sa 20. Jun 2009, 11:33

Wird dieser thread nicht mehr bahandelt?

Oldperl
Beiträge: 4010
Registriert: Do 30. Jun 2005, 22:56
Wohnort: Franken, Bayern
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von Oldperl » Sa 20. Jun 2009, 12:30

Hallo Steffen,

doch doch, hier lesen bestimmt auch noch User, wie eigentlich im gesamten Forum. Nur bekommt man halt bei manchen Fragen nicht direkt Antwort, auch wenn man jeden Tag nachfragt.
Also hab einfach ein bisserl Geduld, manchmal dauert es halt ein paar Tage. Immer dran denken das hier Alle auch noch was Anderes zu tun haben.

Gruß aus Franken

Ortwin
*NEU* PHP 7.x Community Draft von CONTENIDO 4.9 auf github
CONTENIDO 4.9 Entwickler-Handbuch - Publikation auf medium.com zu meinem angedachten Entwickler-Buch zu CONTENIDO 4.9
ConLite 2.0, alternatives und stabiles Update von Contenido 4.8.x
phpBO Search Advanced - das neue Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog

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

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von Halchteranerin » Sa 20. Jun 2009, 20:13

derSteffen hat geschrieben:Hat keiner eine Idee, wie ich in diesem Modul sagen kann sortiere nach IDTREE oder so? :-( Ich habe schon so viel versucht, dass klappt alles nicht!
Das Modul ist hier im Thread leider nur als ZIP vorhanden, und ich habe keine Lust es herunterzuladen und auszupacken, um es sehen zu können, aber kannst du nicht einfach ein "ORDER BY idtree" in die SQL-Anweisung einbauen?
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von derSteffen » So 21. Jun 2009, 10:37

Ah, hallo Ihr Beiden,

also mit Sort by IDTREE

hatte ich keinen Erfolg.

Für die Sortierung ist im Output wahrscheinlich folgender Code zuständig:

Code: Alles auswählen

// Sort by
   $sql .= "ORDER BY ";
   $sql .= $aSettings["SortBy"]." ".$aSettings["SortDir"]." ";
Im Input hat man diesen Code (denn hatte ich schon für idtree angepasst, aber ohne Erfolg, ich weiß auch nicht ob value="b.idtree"der passende Value-Wert ist, ich hatte auch schon nur idtree versuch oder a.idtree - nichts)

Code: Alles auswählen

if (($aSettings["SortDir"] != "DESC") && ($aSettings["SortDir"] == "ASC") && ($aSettings["SortDir"] != "IDTREE") ) {
   echo '             <input type="radio" name="CMS_VAR[3]" value="ASC" checked>'.mi18n("Ascending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="DESC">'.mi18n("Descending").'&nbsp; <input type="radio" name="CMS_VAR[3]" value="b.idtree">'.mi18n("idtree")."\n";
} else if (($aSettings["SortDir"] == "DESC") && ($aSettings["SortDir"] != "ASC") && ($aSettings["SortDir"] != "IDTREE")){
   echo '             <input type="radio" name="CMS_VAR[3]" value="ASC">'.mi18n("Ascending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="DESC" checked>'.mi18n("Descending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="b.idtree">'.mi18n("idtree")."\n";
}
else {
   echo '             <input type="radio" name="CMS_VAR[3]" value="ASC">'.mi18n("Ascending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="DESC">'.mi18n("Descending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="b.idtree" checked>'.mi18n("idtree")."\n";
}
Im Output gibt es sortby und sortdir. Sortdir da müßte man ja dann sagen nach IDTREE. Die Frage ist aber auch, was man bei sortby angibt? Entweder man versucht das mit Article-ID oder man erstellt im Output auch noch einen neuen Wert für die Auswahlbox für "Sortiere nach"

Das habe ich auch mal versucht und habe das mit reingenommen! aber nichts :-(

Code: Alles auswählen

if ($aSettings["SortBy"] == "idtree") {
   echo '                <option value="idtree" selected>'.mi18n("idtree").'</option>'."\n";
} else {
   echo '                <option value="idtree">'.mi18n("idtree").'</option>'."\n";
}
Hier ist nocheinmal der komplette Input (mit einen veruschten Anpassungen)

Code: Alles auswählen

#Includes
cInclude("frontend", "includes/functions.input.helper.php");

# Initialization
$bDebug      = false;
$iDataStart  = 20;
$sSubmitLink = '<a href="javascript:if (document.tplcfgform.send) {document.tplcfgform.send.value = 0}; document.tplcfgform.submit();"><img src="images/submit.gif" /></a>';
unset ($aSettings);

# Base settings
$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["SampleCat"]          = "CMS_VALUE[12]";
$aSettings["SampleArt"]          = "CMS_VALUE[6]";
$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]";
$aSettings["Template"]           = "CMS_VALUE[99]";


# 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 (!is_numeric($aSettings["Category"]) || $aSettings["Category"] <= 0) {
   $aSettings["Category"] = 0;
}
if (!is_numeric($aSettings["SampleCat"]) || $aSettings["SampleCat"] <= 0) {
   $aSettings["SampleCat"] = $aSettings["Category"];
}
if (!is_numeric($aSettings["SampleArt"]) || $aSettings["SampleArt"] < 0) {
   $aSettings["SampleArt"] = 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"] == "") {
         $aSettings["k".$i]["ElementType"] == "Textanders";
      }       
      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"] = "";
      }
   }
}


echo '        <table cellspacing="0" cellpadding="2" border="0" width="100%">'."\n";
echo '           <tr>'."\n";
echo '              <td class="text">'.mi18n("Primary Category:").'</td>'."\n";
echo '              <td class="text">'.fncBuildCategorySelect("CMS_VAR[5]", $aSettings["Category"], 0, "").'</td>'."\n";
echo '           </tr>'."\n";
echo '           <tr>'."\n";
echo '              <td class="text" style="vertical-align: top;">'.mi18n("Additional Categories:").'</td>'."\n";
echo '              <td class="text">';
if ($aSettings["CatTypeSel"] == "none") {
   echo '<input type="radio" name="CMS_VAR[10]" value="none" checked="checked" onclick="document.getElementsByName(\'c'.$cnumber.'cbxAddCatSel\')[0].disabled = true;">'.mi18n("None").'&nbsp;';
} else {
   echo '<input type="radio" name="CMS_VAR[10]" value="none" onclick="document.getElementsByName(\'c'.$cnumber.'cbxAddCatSel\')[0].disabled = true;">'.mi18n("None").'&nbsp;';
}
if ($aSettings["CatTypeSel"] == "below") {
   echo '<input type="radio" name="CMS_VAR[10]" value="below" checked="checked" onclick="document.getElementsByName(\'c'.$cnumber.'cbxAddCatSel\')[0].disabled = true;">'.mi18n("All below primary").'&nbsp;';
} else {
   echo '<input type="radio" name="CMS_VAR[10]" value="below" onclick="document.getElementsByName(\'c'.$cnumber.'cbxAddCatSel\')[0].disabled = true;">'.mi18n("All below primary").'&nbsp;';
}
if ($aSettings["CatTypeSel"] == "selected") {
   $sDisabled = "";
   echo '<input type="radio" name="CMS_VAR[10]" value="selected" checked="checked" onclick="document.getElementsByName(\'c'.$cnumber.'cbxAddCatSel\')[0].disabled = false;">'.mi18n("Selected").'<br>';
} else {
   $sDisabled = "disabled";
   echo '<input type="radio" name="CMS_VAR[10]" value="selected" onclick="document.getElementsByName(\'c'.$cnumber.'cbxAddCatSel\')[0].disabled = false;">'.mi18n("Selected").'<br>';
}
echo fncAddMultiSelJS().fncBuildCategorySelect("c".$cnumber."cbxAddCatSel", $aSettings["AddCats"], 0, "fncUpdateSel('c".$cnumber."cbxAddCatSel', '"."CMS_VAR[11]"."');", "10", "multiple", false, 0, $sDisabled);
echo '<input type="hidden" name="CMS_VAR[11]" value="'.$aSettings["AddCats"].'"></td>'."\n";
echo '           </tr>'."\n";
echo '           <tr>'."\n";
echo '              <td class="text">'.mi18n("Article:").'</td>'."\n";
echo '              <td class="text">'.mi18n("Count (total):").'&nbsp;<input type="text" name="CMS_VAR[0]" value="'.$aSettings["ArticleCount"].'" size="3" title="'.mi18n("Set to 0 to show all articles").'">&nbsp;'."\n";
echo '                '.mi18n("Per Page:").'&nbsp;<input type="text" name="CMS_VAR[1]" value="'.$aSettings["ArticlePerPage"].'" size="3" title="'.mi18n("Set to 0 to disable page browsing").'"></td>'."\n";
echo '           </tr>'."\n";
echo '           <tr>'."\n";
echo '              <td class="text">'.mi18n("Sort by:").'</td>'."\n";
echo '              <td class="text"><select name="CMS_VAR[2]">'."\n";
if ($aSettings["SortBy"] == "" || $aSettings["SortBy"] == "CATART.idart") {
   echo '                <option value="CATART.idart" selected>'.mi18n("Article ID").'</option>'."\n";
} else {
   echo '                <option value="CATART.idart">'.mi18n("Article ID").'</option>'."\n";
}
if ($aSettings["SortBy"] == "idtree") {
   echo '                <option value="idtree" selected>'.mi18n("idtree").'</option>'."\n";
} else {
   echo '                <option value="idtree">'.mi18n("idtree").'</option>'."\n";
}
if ($aSettings["SortBy"] == "tblData.value") {
   echo '                <option value="tblData.value" selected>'.mi18n("Headline").'</option>'."\n";
} else {
   echo '                <option value="tblData.value">'.mi18n("Headline").'</option>'."\n";
}
if ($aSettings["SortBy"] == "ARTLANG.created") {
   echo '                <option value="ARTLANG.created" selected>'.mi18n("Add Date").'</option>'."\n";
} else {
   echo '                <option value="ARTLANG.created">'.mi18n("Add Date").'</option>'."\n";
}
if ($aSettings["SortBy"] == "ARTLANG.lastmodified") {
   echo '                <option value="ARTLANG.lastmodified" selected>'.mi18n("Last Modified Date").'</option>'."\n";
} else {
   echo '                <option value="ARTLANG.lastmodified">'.mi18n("Last Modified Date").'</option>'."\n";
}
if ($aSettings["SortBy"] == "ARTLANG.published") {
   echo '                <option value="ARTLANG.published" selected>'.mi18n("Published Date").'</option>'."\n";
} else {
   echo '                <option value="ARTLANG.published">'.mi18n("Published Date").'</option>'."\n";
}
if ($aSettings["SortBy"] == "ARTLANG.title") {
   echo '                <option value="ARTLANG.title" selected>'.mi18n("Page Title (Backend)").'</option>'."\n";
} else {
   echo '                <option value="ARTLANG.title">'.mi18n("Page Title (Backend)").'</option>'."\n";
}
if ($aSettings["SortBy"] == "ARTLANG.pagetitle") {
   echo '                <option value="ARTLANG.pagetitle" selected>'.mi18n("Page Title (Frontend)").'</option>'."\n";
} else {
   echo '                <option value="ARTLANG.pagetitle">'.mi18n("Page Title (Frontend)").'</option>'."\n";
}
if ($aSettings["SortBy"] == "ARTLANG.summary") {
   echo '                <option value="ARTLANG.summary" selected>'.mi18n("Summary (Backend)").'</option>'."\n";
} else {
   echo '                <option value="ARTLANG.summary">'.mi18n("Summary (Backend)").'</option>'."\n";
}
if ($aSettings["SortBy"] == "ARTLANG.artsort") {
   echo '                <option value="ARTLANG.artsort" selected>'.mi18n("Sort No.").'</option>'."\n";
} else {
   echo '                <option value="ARTLANG.artsort">'.mi18n("Sort No.").'</option>'."\n";
}
if ($aSettings["SortBy"] == "RAND()") {
   echo '                <option value="RAND()" selected>'.mi18n("Random").'</option>'."\n";
} else {
   echo '                <option value="RAND()">'.mi18n("Random").'</option>'."\n";
}
echo '              </select>'."\n";
if (($aSettings["SortDir"] != "DESC") && ($aSettings["SortDir"] == "ASC") && ($aSettings["SortDir"] != "IDTREE") ) {
   echo '             <input type="radio" name="CMS_VAR[3]" value="ASC" checked>'.mi18n("Ascending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="DESC">'.mi18n("Descending").'&nbsp; <input type="radio" name="CMS_VAR[3]" value="b.idtree">'.mi18n("idtree")."\n";
} else if (($aSettings["SortDir"] == "DESC") && ($aSettings["SortDir"] != "ASC") && ($aSettings["SortDir"] != "IDTREE")){
   echo '             <input type="radio" name="CMS_VAR[3]" value="ASC">'.mi18n("Ascending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="DESC" checked>'.mi18n("Descending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="b.idtree">'.mi18n("idtree")."\n";
}
else {
   echo '             <input type="radio" name="CMS_VAR[3]" value="ASC">'.mi18n("Ascending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="DESC">'.mi18n("Descending").'&nbsp;<input type="radio" name="CMS_VAR[3]" value="b.idtree" checked>'.mi18n("idtree")."\n";
}
echo '           </tr>'."\n";
echo '           <tr>'."\n";
echo '              <td class="text">'.mi18n("Start Article:").'</td>'."\n";
if ($aSettings["ShowStart"] != "enabled") {
   echo '              <td class="text"><input type="checkbox" name="CMS_VAR[4]" value="enabled">'.mi18n("Show").'</td>'."\n";
} else {
   echo '              <td class="text"><input type="checkbox" name="CMS_VAR[4]" value="enabled" checked>'.mi18n("Show").'</td>'."\n";
}
echo '           </tr>'."\n";
echo '        </table>'."\n";
echo '        <table cellspacing="0" cellpadding="2" border="0" width="100%">'."\n";
echo '           <tr>'."\n";
echo '              <td colspan="2" class="textw_medium" style="background-color: #a9aec2; border: 1px solid #747488;">'.mi18n("Identify elements:").'</td>'."\n";
echo '           </tr>'."\n";
echo '    <tr>
            <td class="text" style="border-left:1px solid #747488;">'.mi18n("Choose Template").':</td>
             <td class="text" style="border-right: 1px solid #747488;">
                 <select name="CMS_VAR[99]" size="1">
                    <option value="">'.mi18n("Nothing selected").'</option>';

             // $strPath_fs = $cfgClient[$client]["path"]["frontend"].'templates/';  
             $strPath_fs = '../cms/templates/';            

             $optionFields ="";
             $handle = opendir($strPath_fs);
         $files = array();
         while ($entryName = readdir($handle)) 
         {
                if (is_file($strPath_fs.$entryName)) 
        {
            $files[]=array($strPath_fs.$entryName,$entryName);
        }
             }
             closedir($handle);
             asort($files);
            while (list ($key, $val) = each ($files)) 
             {
         if ("CMS_VALUE[99]"==$val[0]) {
            $optionFields.="\n\t".'<option selected="selected" value="'.$val[0].'">'.$val[1].'</option>';
        } else {
            $optionFields.="\n\t".'<option value="'.$val[0].'">'.$val[1].'</option>';
        }

         }
   echo $optionFields.'</select><br /><br /></td>
   </tr>';
echo '           <tr>'."\n";
echo '              <td class="text" style="border-left:  1px solid #747488;">'.mi18n("Sample Category:").'</td>'."\n";
echo '              <td class="text" style="border-right: 1px solid #747488;">'.fncBuildCategorySelect("CMS_VAR[12]", $aSettings["SampleCat"], 0, "if (document.forms[0].elements['CMS_VAR[12]'].value != 'CMS_VALUE[12]') { document.forms[0].elements['CMS_VAR[6]'].disabled = true; document.forms[0].elements['CMS_VAR[7]'].disabled = true; document.forms[0].elements['CMS_VAR[8]'].disabled = true; document.forms[0].elements['CMS_VAR[9]'].disabled = true; } else { document.forms[0].elements['CMS_VAR[6]'].disabled = false; document.forms[0].elements['CMS_VAR[7]'].disabled = false; document.forms[0].elements['CMS_VAR[8]'].disabled = false; document.forms[0].elements['CMS_VAR[9]'].disabled = false;}").'&nbsp'.$sSubmitLink.'</td>'."\n";
echo '           </tr>'."\n";
echo '           <tr>'."\n";
echo '              <td class="text" style="border-left:  1px solid #747488;">'.mi18n("Sample Article:").'</td>'."\n";
if ($aSettings["SampleCat"] == 0) {
   $sDisabled = "disabled";
} else {
   $sDisabled = "";
}
echo '              <td class="text" style="border-right: 1px solid #747488;">'.fncBuildArticleSelect("CMS_VAR[6]", $aSettings["SampleCat"], $aSettings["SampleArt"], "if (document.forms[0].elements['CMS_VAR[6]'].value != 'CMS_VALUE[6]') { document.forms[0].elements['CMS_VAR[7]'].disabled = true; document.forms[0].elements['CMS_VAR[8]'].disabled = true; document.forms[0].elements['CMS_VAR[9]'].disabled = true; } else { document.forms[0].elements['CMS_VAR[7]'].disabled = false; document.forms[0].elements['CMS_VAR[8]'].disabled = false; document.forms[0].elements['CMS_VAR[9]'].disabled = false;}", $sDisabled).'&nbsp'.$sSubmitLink.'</td>'."\n";
echo '           </tr>'."\n";
echo '           <tr>'."\n";
echo '              <td class="text" style="border-left:  1px solid #747488;">'.mi18n("Headline Element:").'</td>'."\n";
echo '              <td class="text" style="border-right: 1px solid #747488;">'.fncBuildTypeSelect("CMS_VAR[7]", $aSettings["SampleArt"], $aSettings["HeadlineIdentifier"], "'1','2','3','9','17'").' '.mi18n("Length (max.):").' <input type="text" name="'."CMS_VAR[8]".'" value="'.$aSettings["HeadlineLength"].'" size="3" title="'.mi18n("Set to 0 to show all").'"></td>'."\n";
echo '           </tr>'."\n";

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++) {
      $iElementType       = $iDataStart + ($i * 5);
      $iElementIdentifier = $iElementType + 1;
      $iElementWidth      = $iElementType + 2;
      $iElementHeight     = $iElementType + 3;

      echo '           <tr>'."\n";
      echo '              <td class="text" style="border-left:  1px solid #747488;padding-left: 20px;vertical-align: top;">'.sprintf(mi18n("%s. Element:"), $i + 1).'</td>'."\n";
      echo '              <td class="text" style="border-right: 1px solid #747488;">'.mi18n("Type:").'<br />'."\n";
      echo '                <select name="'."CMS_VAR[$iElementType]".'" onchange="if (document.forms[0].elements[\''."CMS_VAR[$iElementType]".'\'].value != \''.$aSettings["k".$i]["ElementType"].'\') { document.forms[0].elements[\''."CMS_VAR[$iElementIdentifier]".'\'].disabled = true; document.forms[0].elements[\''."CMS_VAR[$iElementWidth]".'\'].disabled = true; if (document.forms[0].elements[\''."CMS_VAR[$iElementHeight]".'\']) {document.forms[0].elements[\''."CMS_VAR[$iElementHeight]".'\'].disabled = true;}} else { document.forms[0].elements[\''."CMS_VAR[$iElementIdentifier]".'\'].disabled = false; document.forms[0].elements[\''."CMS_VAR[$iElementWidth]".'\'].disabled = false; if (document.forms[0].elements[\''."CMS_VAR[$iElementHeight]".'\']) {document.forms[0].elements[\''."CMS_VAR[$iElementHeight]".'\'].disabled = false;}}"">'."\n";
      if ($aSettings["k".$i]["ElementType"] == "Text") {
         echo '                 <option value="Text" selected="selected">'.mi18n("Text").'</option>'."\n";
      } else {
         echo '                 <option value="Text">'.mi18n("Text").'</option>'."\n";
      }
      if ($aSettings["k".$i]["ElementType"] == "Textanders") {
         echo '                 <option value="Textanders" selected="selected">'.mi18n("Textanders").'</option>'."\n";
      } else {
         echo '                 <option value="Textanders">'.mi18n("Textanders").'</option>'."\n";
      }
      if ($aSettings["k".$i]["ElementType"] == "Image") {
         echo '                 <option value="Image" selected="selected">'.mi18n("Image").'</option>'."\n";
      } else {
         echo '                 <option value="Image">'.mi18n("Image").'</option>'."\n";
      }
      if ($aSettings["k".$i]["ElementType"] == "ExtractedImage") {
         echo '                 <option value="ExtractedImage" selected="selected">'.mi18n("Image from text").'</option>'."\n";
      } else {
         echo '                 <option value="ExtractedImage">'.mi18n("Image from text").'</option>'."\n";
      }
      echo '                 </select>&nbsp'.$sSubmitLink.'&nbsp;'."\n";
      echo '              </td>'."\n";
      echo '           </tr>'."\n";

      if ($i == ($aSettings["Elements"] - 1)) {
         $sBottomStyle = "border-bottom: 1px solid #747488;"; // Paint the table area closing line
      } else {
         $sBottomStyle = "";
      }

      echo '           <tr>'."\n";
      switch ($aSettings["k".$i]["ElementType"]) {
         case "Image":
            echo '              <td class="text" style="border-left:  1px solid #747488;'.$sBottomStyle.'padding-left: 20px;">&nbsp;</td>'."\n";
            echo '              <td class="text" style="border-right: 1px solid #747488;'.$sBottomStyle.'">'.mi18n("Item:").'<br />'.fncBuildTypeSelect("CMS_VAR[$iElementIdentifier]", $aSettings["SampleArt"], $aSettings["k".$i]["Identifier"], "'4'").'&nbsp;'."\n";
            echo '                 '.mi18n("Width:"). ' <input type="text" name="'."CMS_VAR[$iElementWidth]".'" value="'.$aSettings["k".$i]["ElementWidth"].'" size="4" title="'.mi18n("Set to 0 to disable resize").'">&nbsp;'."\n";
            echo '                 '.mi18n("Height:").' <input type="text" name="'."CMS_VAR[$iElementHeight]".'" value="'.$aSettings["k".$i]["ElementHeight"].'" size="4" title="'.mi18n("Set to 0 to disable resize").'"></td>'."\n";
            break;
         case "ExtractedImage":
            echo '              <td class="text" style="border-left:  1px solid #747488;'.$sBottomStyle.'padding-left: 20px;">&nbsp;</td>'."\n";
            echo '              <td class="text" style="border-right: 1px solid #747488;'.$sBottomStyle.'">'.mi18n("Item:").'<br />'.fncBuildTypeSelect("CMS_VAR[$iElementIdentifier]", $aSettings["SampleArt"], $aSettings["k".$i]["Identifier"], "'1','2','3','9','17'").'&nbsp;'."\n";
            echo '                 '.mi18n("Width:"). ' <input type="text" name="'."CMS_VAR[$iElementWidth]".'" value="'.$aSettings["k".$i]["ElementWidth"].'" size="4" title="'.mi18n("Set to 0 to disable resize").'">&nbsp;'."\n";
            echo '                 '.mi18n("Height:").' <input type="text" name="'."CMS_VAR[$iElementHeight]".'" value="'.$aSettings["k".$i]["ElementHeight"].'" size="4" title="'.mi18n("Set to 0 to disable resize").'"></td>'."\n";
            break;
         default:
            echo '              <td class="text" style="border-left:  1px solid #747488;'.$sBottomStyle.'padding-left: 20px;">&nbsp;</td>'."\n";
            echo '              <td class="text" style="border-right: 1px solid #747488;'.$sBottomStyle.'">'.mi18n("Item:").'<br />'.fncBuildTypeSelect("CMS_VAR[$iElementIdentifier]", $aSettings["SampleArt"], $aSettings["k".$i]["Identifier"], "'1','2','3','9','17'").'&nbsp;'."\n";
            echo '                 '.mi18n("Length (max.):").' <input type="text" name="'."CMS_VAR[$iElementWidth]".'" value="'.$aSettings["k".$i]["ElementWidth"].'" size="3" title="'.mi18n("Set to 0 to show all").'"></td>'."\n";
      }
      echo '           </tr>'."\n";
   }
}

echo '        </table></div>'."\n";
Zuletzt geändert von derSteffen am So 21. Jun 2009, 10:40, insgesamt 2-mal geändert.

derSteffen
Beiträge: 847
Registriert: Mi 14. Dez 2005, 16:15
Wohnort: Königs Wusterhausen bei Berlin
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von derSteffen » So 21. Jun 2009, 10:38

und Output (mit einen versuchten Anpassungen)

Code: Alles auswählen

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

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

// reset template
$tpl = new Template();
$tpl->reset();

# 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]";
$aSettings["Template"]           = "CMS_VALUE[99]";




# 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["nextstep44"])) {
   $_REQUEST["nextstep44"] = 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"] == "") {
         $aSettings["k".$i]["ElementType"] == "Textanders";
      }      
   
      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 ($aSettings["k".$i]["ElementType"] == "Textanders") {
         $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["nextstep44"];
         $lEndCount   = $_REQUEST["nextstep44"] + $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
$pcount = 0;
      foreach ($aData as $aValue) {
         $pcount++;
         $divheight = 10;
         
         $tpl->set("d",'field0',$aValue["Headline"]);
         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 != "") {
                        $htmltemp = '<img src="'.$image.'" width="'.$width.'" height="'.$height.'" alt="'.$aValue["Headline"].''.mi18n(" - to the details").'" class="full" />';
                        $tpl->set('s','minheight',$height);
                     } else {
                     $htmltemp = '';
                     };              
                  break;                  
                  default: // Everything else is treated as "Text"
                  $htmltemp = $aValue["i".$i]["Value"];
                  }
               $fieldname = "field".($i+1);
               $tpl->set("d",$fieldname,$htmltemp);
               $tpl->set("d",'link',$aValue["Link"]);
               
               $tpl->next();
               }
            }             

                
      }
   }

// reset template
// $tpl = new Template();
// $tpl->reset();
// print template
$tpl->generate("CMS_VALUE[99]");
// $tpl->generate($cfgClient[$client]["path"]["frontend"] . templates/"CMS_VALUE[99]", false, false);



# Page browsing
   # Hint: Number of max available records: $lCount
   #       Number of pages: round($lCount / $aSettings["ArticlePerPage"])
   #       First page: nextstep44=0
   #       Last page:  nextstep44=(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 style="text-align:center" id="browsing">', chr(10);
      if ($_REQUEST["nextstep44"] > 0) {
         echo '   <div id="Back">', chr(10);
         echo '      <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep44='.($_REQUEST["nextstep44"]-$aSettings["ArticlePerPage"]).'">'.mi18n("Back").'</a>', chr(10);
         echo '   </div>', chr(10);
      }
      if (($_REQUEST["nextstep44"] + $aSettings["ArticlePerPage"]) < $lCount) {
         echo '   <div id="Next">', chr(10);
         echo '      <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep44='.($_REQUEST["nextstep44"]+$aSettings["ArticlePerPage"]).'">'.mi18n("Next").'</a>', chr(10);
         echo '   </div>', chr(10);
      }
*/
##### Example: 1 2 3 4 5 6 7 ...
/*      $iPages = intval(ceil($lCount / $aSettings["ArticlePerPage"]));
      $sPageLinks = '';

      echo '   <div style="text-align:center" id="Pages">';
      for ($i = 1; $i <= $iPages; $i++) {
         $lNextStep44 = ($i - 1) * $aSettings["ArticlePerPage"];
         if ($sPageLinks != '') {
            $sPageLinks .= '&nbsp;';
         }
         if ($_REQUEST["nextstep44"] == $lNextStep44) {
            $sPageLinks .= $i."\n"; # I'm on the current page, no link
         } else {
            $sPageLinks .= '<a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep44='.$lNextStep44.'">'.$i.'</a>'."\n";
         }
      }
      echo '      '.$sPageLinks."\n";
      echo '   </div>'."\n";
*/
##### Example: Seite 1 von 7 
      $iPages = intval(ceil($lCount / $aSettings["ArticlePerPage"]));
      $sPageLinks = '';

      echo '   <div>';
      for ($i = 1; $i <= $iPages; $i++) {
         $lNextStep44 = ($i - 1) * $aSettings["ArticlePerPage"];
         if ($sPageLinks != '') {
            $sPageLinks .= '&nbsp;';
         }
         if ($_REQUEST["nextstep44"] == $lNextStep44) {
            $sPageLinks .= "Seite $i von $iPages\n"; # I'm on the current page, no link
         } 
      }
      echo '      '.$sPageLinks."\n";
      echo '   </div>'."\n";

##### Example: |< 1 ... 3 4 5 ... 8 >|

     $iPages = intval(ceil($lCount / $aSettings["ArticlePerPage"]));
     $sPageLinks = '';

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

      echo '</div>'."\n"; # Closing Browsing div
   }
}
# Clearing memory
unset ($aData);
unset ($aSettings);
unset ($i);
unset ($lCount);
unset ($bDebug);
?>
Vielleicht kann jemand da noch einmal raufscheun. Wäre wirklich sehr schön!

Danke

MfG Steffen

saschar
Beiträge: 141
Registriert: Mo 21. Okt 2002, 14:37
Wohnort: Dornbirn, A
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von saschar » Sa 27. Jun 2009, 09:18

Hallo.
Wie kann man die "Standard-Artikelliste Advanced V1.4" so modifizieren, dass sie nur die Startartikel ausgibt.
Es geht darum, dass ich gerne auf der Startseite eine Übersicht – von ausgwählten Kategorien – die Startartikeln ausgeben möchte.

Ich dachte ich könne im Output einfach etwas abändern im Sinne von
$sql .= "AND CATART.is_start = '1' ";
Das hat aber nicht funktioniert und als ich dann über phpmyadmin die Tabelle angesehen habe, ist mir aufgefallen, das in der Tabelle con_cat_art bei keiner Zeile in der betreffenden Spalte ein 1 steht. Wo wird denn der Startartikel abgespeichert? Oder zumindest die Info dazu?

Ich verwende diesen Output und meine Modizierung habe ich wieder raus genommen...

Code: Alles auswählen

<?php
### 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.title AS title, 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.title AS titel, 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 = '1' ";

      } 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("title");

               $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]["ServerPath"]);
                                       $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
      # $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 = "artlist_advanced.html";
//$template = "mat.html";
$template = "CMS_VALUE[99]";

##

#####
$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);

#####
        $artlist_pagetitle = '<a class="start" href="'.$aValue["Link"].'" style="padding-top: 5px; line-height: 12px">'.$aValue["Pagetitle"].'</a>';
        $artlist_headline = '<a class="start" href="'.$aValue["Link"].'" >'.$aValue["Headline"].'</a>';
        //$artlist_headline = '<h1 style="font-size: 14px; padding:0; line-height: 14px ">'.$aValue["Headline"].'</h1>';
        # 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;

#####
         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(str_replace($cfgClient[$client]["path"]["htmlpath"], $cfgClient[$client]["path"]["frontend"], $image));
                        } else {
                           $image = $aValue["i".$i]["WebPath"];
                           
                           $width  = $aValue["i".$i]["Width"];
                           $height = $aValue["i".$i]["Height"];
                        }
                     }
                     
                     if ($image != "") {
#####

                       # echo '   <div id="artlist_image"><img src="'.$image.'" width="'.$width.'" height="'.$height.'" border="0"/></div>', chr(10);
        $artlist_image = '<a href="'.$aValue["Link"].'"><img src="'.$image.'" width="'.$width.'" height="'.$height.'" border="0" abc/></a>';
        //$artlist_image = 'background-image: url('.$image.'); background-repeat: no-repeat;background-position: 5px 110px';


         #echo $artlist_image;
#####
                     }
                     
                     break;
                  default: // Everything else is treated as "Text"
#####-A
                     # 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;
                        }
                      #echo $artlist_text;

#####
               }
            }
         }
#####
         #echo '<a href="'.$aValue["Link"].'">'.mi18n("More...").'</a>', chr(10);
        $artlist_more = '<a href="'.$aValue["Link"].'">'.mi18n("More...").'</a>';
         #echo $artlist_more;
         #echo '</div>', chr(10);
echo 'CMS_VALUE[4]';
#####
         $tpl->set('d', 'PAGETITLE', $artlist_pagetitle);
         $tpl->set('d', 'HEADLINE', $artlist_headline);
         $tpl->set('d', 'IMAGE',  $artlist_image);
         $tpl->set('d', 'TEXT',  $artlist_text);
         $tpl->set('d', 'MORE', $artlist_more);

       $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 '      &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);
?>

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

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von Halchteranerin » Sa 27. Jun 2009, 10:18

saschar hat geschrieben:Wie kann man die "Standard-Artikelliste Advanced V1.4" so modifizieren, dass sie nur die Startartikel ausgibt.
[...]
Ich dachte ich könne im Output einfach etwas abändern im Sinne von
$sql .= "AND CATART.is_start = '1' ";
Für welche Contenido-Version überhaupt? Das mit dem Startartikel hat sich bei neueren Contenido-Versionen geändert, wenn du nach "Startartikel" im Forum suchst, dürftest du fündig werden.
Bitte keine unaufgeforderten Privatnachrichten mit Hilfegesuchen schicken. WENN ich helfen kann, dann mache ich das im Forum, da ich auch alle Postings lese. PN werden nicht beantwortet!

saschar
Beiträge: 141
Registriert: Mo 21. Okt 2002, 14:37
Wohnort: Dornbirn, A
Kontaktdaten:

Re: Modul: Standard-Artikelliste Advanced V1.4

Beitrag von saschar » Sa 27. Jun 2009, 10:19

Hallo.
Für die Version 4.8.10

SG
Sascha

Gesperrt