da sich gezeigt hat, dass die leicht angepasste Version der Article List Advanced (ALA) mehr Macken hat unter CON49 als uns lieb sein kann, hab ich mich doch dran gesetzt, den ganzen Code nochmal durchzugehen und in wesentlichen Teilen umzugestalten oder neu zu programmieren.
Die ALR fühlt sich ähnlich an wie die ALA, hat aber doch einige wesentliche Änderungen und Umstellungen durchlaufen.
Wirklich wichtig: Genaueres findet Ihr in der Zip-Datei im Unterordner /doku - bitte lest das aufmerksam durch.
Modul: Article List Reloaded
Kurzbeschreibung:
- Es werden jetzt auch unabhängig von den gewählten Einstellungen etliche Variablen berechnet, die dann im Dokument zur Verfügung stehen.
- Die Konfiguration befüllt lediglich einige Standardvariablen auf Wunsch mit wechselnden Inhalten und legt einige Formate fest, die auf die entsprechenden Variablen angewendet werden.
- So lässt sich später das Template sehr flexibel gestalten: mit sich dynamisch anpassbaren und/oder statischen Variablen.
- Im Modul wird nicht mehr die HTML-Ausgabe berechnet, sondern nur noch Arrays und Objekte. Alles weitere regelt die Smarty-Template-Vorlage.
- Dies gilt sowohl für die übergeordneten Artikelvariablen wie auch für die Elemente und die Pagination.
- Alle derzeit möglichen Variablen finden sich am Ende des Smarty-Templates, ebenso ein einfaches Listenbeispiel.
Wichtigste Neuerungen:
- Es können jetzt auch CMS_Date-Typen aus einem Artikel ausgelesen werden.
- Alle nötigen Skripte sind im Modulordner integriert; keine externen Dateien an anderen Stellen mehr nötig.
- Die Konfigurationsseite funktioniert weiterhin als Akkordeon, aber diese Funktion kann temporär abgeschaltet werden = weniger Klicks beim Einrichten.
- Das "Headline"-Feld bei "Elemente" ist kein Pflichtfeld mehr, die ALR funktioniert auch so.
- Die Elementnummer in der Konfiguration entspricht jetzt der Aufrufnummer im Smarty-Template: 1. Element ist ein Text -> §article.1_text; 2. Element ein Bild: $article.2_image
- Anders als die ALA für CON4.9 sollte das Element "Image" und "Image aus Text" jetzt funktionieren, und auch der Mehrfacheinsatz des Moduls in einem Artikel sollte unproblematisch sein.
- Der Inputbereich ist komplett neu geschrieben, daher sind anfangs Bugs und leichte Unstimmigkeiten nicht auszuschließen. Meldet Euch einfach!
Danke an funomat für die ALA als wesentliche Vorlage und etliche Leute im Forum hier für Programmierhilfen und Denkanstöße.
Ich poste das Modul jetzt in einem vielleicht noch eher frühen bis mittleren Stadium ohne extensive Tests im Vorfeld, da einige User es offensichtlich gern einsetzen würden. Bitte postet dennoch Eure Erfahrungen, das würde mir helfen.
LG
Viktor
Änderungshistorie
Alle Änderungen am Modul VOR der aktuellsten Version sind ab sofort in der revisions.txt in der gezippten Download-Datei enthalten, um diese Seite übersichtlicher zu halten.
Letzte Änderungen/Bugfixes/Updates
corr16 vom 20.04.2020:
Infos zum Update sowie das Update selbst stehen im Forum der 4.10.x zur Verfügung.
corr15 vom 24.04.2019:
Bug: Es wird getestet, ob das Tagging-Plugin aktiv ist oder nicht. Das verhindert Fehlermeldungen im Errorlog.
Feature-Update: zusätzlicher Content-Typ "Link", danke an Chris8408 fürs coden!
Wichtige Info zum Einsatz ab PHP7.0!!
Die Konfigurationsansicht wird wegen einer überflüssigen Zeile zerschossen. Bitte im u.g. Block im Inputbereich die erste der beiden $select-Anweisungen wie gezeigt auskommentieren oder löschen.
Code: Alles auswählen
// construct the additional categories select
$fillrow = array();
$table = new cHTMLTable();
//first row with categories
$tr = new cHTMLTableRow();
$td = new cHTMLTableData();
$td->setContent("");
$fillrow[] = $td;
$td = new cHTMLTableData();
//$select = new cHTMLSelectElement();
$select = fncBuildCategorySelect("adddir".$cnumber, "CMS_VALUE[106]" , 0, "fncUpdateSel( 'adddir".$cnumber."', '"."CMS_VAR[106]"."');", "10", "multiple", false, 0, false);
$input = new cHTMLHiddenField("CMS_VAR[106]", "CMS_VALUE[106]");
$td->setContent(fncAddMultiSelJS().$select.$input);
$td->setClass("silverline");
$fillrow[] = $td;
$tr->setContent($fillrow);
$filltable[] = $tr;