Modul: Standard-Artikelliste Advanced V1.4
Re: Modul: Standard-Artikelliste Advanced V1.4
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:
Kurz: Beim zweiten Teil der Artikelliste soll das Wort "Überschrift" eben nicht angezeigt werden.
Danke!
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
Danke!
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Modul: Standard-Artikelliste Advanced V1.4
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
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
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Modul: Standard-Artikelliste Advanced V1.4
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?
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
Danke Euch!
MfG Steffen
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").' <input type="radio" name="CMS_VAR[3]" value="DESC">'.mi18n("Descending").' <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").' <input type="radio" name="CMS_VAR[3]" value="DESC" checked>'.mi18n("Descending").' <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").' <input type="radio" name="CMS_VAR[3]" value="DESC">'.mi18n("Descending").' <input type="radio" name="CMS_VAR[3]" value="b.idtree" checked>'.mi18n("idtree")."\n";
}
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";
}
MfG Steffen
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Modul: Standard-Artikelliste Advanced V1.4
Oder muss hierfür auch der Output-Code geändert werden?
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Modul: Standard-Artikelliste Advanced V1.4
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
Kann mir jemand helfen? Bitte!
MfG Steffen
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
-
- Beiträge: 4315
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Hat sich bedankt: 3 Mal
- Danksagung erhalten: 4 Mal
- Kontaktdaten:
Re: Modul: Standard-Artikelliste Advanced V1.4
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
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
ConLite 3.0.0-dev, alternatives und stabiles Update von Contenido 4.8.x unter PHP 8.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
Re: Modul: Standard-Artikelliste Advanced V1.4
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?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!
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!
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Modul: Standard-Artikelliste Advanced V1.4
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:
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)
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
Hier ist nocheinmal der komplette Input (mit einen veruschten Anpassungen)
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"]." ";
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").' <input type="radio" name="CMS_VAR[3]" value="DESC">'.mi18n("Descending").' <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").' <input type="radio" name="CMS_VAR[3]" value="DESC" checked>'.mi18n("Descending").' <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").' <input type="radio" name="CMS_VAR[3]" value="DESC">'.mi18n("Descending").' <input type="radio" name="CMS_VAR[3]" value="b.idtree" checked>'.mi18n("idtree")."\n";
}
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";
}
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").' ';
} else {
echo '<input type="radio" name="CMS_VAR[10]" value="none" onclick="document.getElementsByName(\'c'.$cnumber.'cbxAddCatSel\')[0].disabled = true;">'.mi18n("None").' ';
}
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").' ';
} else {
echo '<input type="radio" name="CMS_VAR[10]" value="below" onclick="document.getElementsByName(\'c'.$cnumber.'cbxAddCatSel\')[0].disabled = true;">'.mi18n("All below primary").' ';
}
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):").' <input type="text" name="CMS_VAR[0]" value="'.$aSettings["ArticleCount"].'" size="3" title="'.mi18n("Set to 0 to show all articles").'"> '."\n";
echo ' '.mi18n("Per Page:").' <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").' <input type="radio" name="CMS_VAR[3]" value="DESC">'.mi18n("Descending").' <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").' <input type="radio" name="CMS_VAR[3]" value="DESC" checked>'.mi18n("Descending").' <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").' <input type="radio" name="CMS_VAR[3]" value="DESC">'.mi18n("Descending").' <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;}").' '.$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).' '.$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").'"> '.$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> '.$sSubmitLink.' '."\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;"> </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'").' '."\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").'"> '."\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;"> </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'").' '."\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").'"> '."\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;"> </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'").' '."\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.
-
- Beiträge: 847
- Registriert: Mi 14. Dez 2005, 16:15
- Wohnort: Königs Wusterhausen bei Berlin
- Kontaktdaten:
Re: Modul: Standard-Artikelliste Advanced V1.4
und Output (mit einen versuchten Anpassungen)
Vielleicht kann jemand da noch einmal raufscheun. Wäre wirklich sehr schön!
Danke
MfG Steffen
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 .= ' ';
}
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 .= ' ';
}
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").' |‹</a> '."\n";
for ($i = 1; $i <= $iPages; $i++) {
$lNextStep44 = ($i - 1) * $aSettings["ArticlePerPage"];
if ($i == 1 || $i == $iPages) {
if ($sPageLinks != '') {
$sPageLinks .= ' ';
}
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 .= ' '.$i."\n"; # I'm on the current page, no link
} else if ($_REQUEST["nextstep44"] == ($lNextStep44 + $aSettings["ArticlePerPage"])) {
# Front
$sPageLinks .= ' <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep44='.$lNextStep44.'">'.$i.'</a>'."\n";
} else if ($_REQUEST["nextstep44"] == ($lNextStep44 - $aSettings["ArticlePerPage"])) {
# Back
$sPageLinks .= ' <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 ' <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep44='.(round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"].'">›| '.mi18n("End").'</a>'."\n";
echo ' '."\n";
echo '</div>'."\n"; # Closing Browsing div
}
}
# Clearing memory
unset ($aData);
unset ($aSettings);
unset ($i);
unset ($lCount);
unset ($bDebug);
?>
Danke
MfG Steffen
Re: Modul: Standard-Artikelliste Advanced V1.4
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
Ich verwende diesen Output und meine Modizierung habe ich wieder raus genommen...
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
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?$sql .= "AND CATART.is_start = '1' ";
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 .= ' ';
}
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 .= ' ';
}
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 .= ' '.$i."\n"; # I'm on the current page, no link
} else if ($_REQUEST["nextstep"] == ($lNextStep + $aSettings["ArticlePerPage"])) {
# Front
$sPageLinks .= ' <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>'."\n";
} else if ($_REQUEST["nextstep"] == ($lNextStep - $aSettings["ArticlePerPage"])) {
# Back
$sPageLinks .= ' <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.$lNextStep.'">'.$i.'</a>'."\n";
} else if ($_REQUEST["nextstep"] == ($lNextStep - (2 * $aSettings["ArticlePerPage"])) ||
$_REQUEST["nextstep"] == ($lNextStep + (2 * $aSettings["ArticlePerPage"]))) {
$sPageLinks .= '...';
}
}
echo ' '.$sPageLinks."\n";
echo ' <a href="front_content.php?idcat='.$idcat.'&idart='.$idart.'&nextstep='.(round($lCount / $aSettings["ArticlePerPage"]) - 1) * $aSettings["ArticlePerPage"].'">>|</a>'."\n";
echo ' </div>'."\n";
echo '</div>'."\n"; # Closing Browsing div
}
}
# Clearing memory
unset ($aData);
unset ($aSettings);
unset ($i);
unset ($lCount);
unset ($bDebug);
?>
-
- Beiträge: 5478
- Registriert: Di 2. Mär 2004, 21:11
- Wohnort: Halchter, wo sonst? ;-)
- Kontaktdaten:
Re: Modul: Standard-Artikelliste Advanced V1.4
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.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' ";
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!