[Modul] ArticleListReloaded(ALR) für 4.10.x

Alles rund um Module und Plugins in CONTENIDO 4.10.
homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

[Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von homtata » Mi 24. Apr 2019, 14:29

Hallo an alle,

hier eine unter 4.10.x lauffähige Version der ALR.
Wirklich wichtig: Genaueres findet Ihr in der Zip-Datei im Unterordner /doku - bitte lest das aufmerksam durch.

Modul: Article List Reloaded

Kurzbeschreibung:
- Es werden unabhängig von den gewählten Einstellungen etliche Variablen berechnet, die dann im Smarty 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 werden nur noch Arrays und Objekte berechnet. 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.

Wichtige Infos:
- Es können jetzt auch die CMS-Typen "Date" und "Link" aus einem Artikel ausgelesen werden.
- Alle nötigen Skripte sind im Modulordner integriert; keine externen Dateien an anderen Stellen nötig.
- Das "Headline"-Feld bei "Elemente" ist kein Pflichtfeld mehr, die ALR funktioniert auch so.
- Die Elementnummer in der Konfiguration entspricht der Aufrufnummer im Smarty-Template: 1. Element ist ein Text -> §article.1_text; 2. Element ein Bild: $article.2_image

Danke an funomat für die ArticleListAdvanced als wesentliche Vorlage und etliche Leute im Forum hier für Programmierhilfen und Denkanstöße.

Bitte postet dennoch Eure Erfahrungen, das hilft mir.

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.
Das Archiv der bisherigen Arbeit an der ALR für Version 4.9.x findet hier hier:
viewtopic.php?f=99&t=34196

Letzte Änderungen/Bugfixes/Updates

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!

corr16 vom 20.04.2020:
Bug: Ein Array kam bei manchen key-Aufrufen ohne Hochkommata (vor allem bei "path") und flutete damit das Errorlog mit "constant"-Warnungen. Behoben.
Dateianhänge
article-list-reloaded.zip
corr16 vom 20.04.2020
(34.02 KiB) 153-mal heruntergeladen
Zuletzt geändert von homtata am Sa 11. Dez 2021, 15:33, insgesamt 3-mal geändert.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von Faar » Mi 24. Apr 2019, 16:49

Danke :)
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

Peer
Beiträge: 309
Registriert: Fr 9. Sep 2005, 17:22
Kontaktdaten:

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von Peer » Mi 26. Jun 2019, 20:44

Moin,

ich suche eine Möglichkeit den More Link erst einzublenden wenn der Text des Artikels mehr als 200 Zeichen hat.

Leider fehlt mir das Wissen die passende Variable zufinden bzw. zu erstellen.

Hat eventuell jemand eine Idee, wie ich das umsetzen kann?

Vielen Dank

Gruß

Peer

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von homtata » Do 27. Jun 2019, 07:33

Naja, für das "Wissen" muss man die Smarty-Template-Hilfe bemühen. In diesem Fall führt der Weg wahrscheinlich über:

Code: Alles auswählen

{if $variable|count_characters lt 200}
{/if}
... wobei $variable durch die korrekte Variable zu ersetzen ist, die den Haupttext hält und in die if-Bedingung noch das auszuführende "more" zu setzen ist.

LG

Edit: wie von Faar unten richtig angemerkt, muss es nicht "lt", sondern "gt" heißen, sorry.
Zuletzt geändert von homtata am Fr 28. Jun 2019, 09:51, insgesamt 1-mal geändert.

Faar
Beiträge: 1915
Registriert: Sa 8. Sep 2007, 16:23
Wohnort: Brandenburg
Kontaktdaten:

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von Faar » Fr 28. Jun 2019, 07:51

Moin, ich störe nur ungern aber ...
... ich tu's einfach mal :)
homtata hat geschrieben:
Do 27. Jun 2019, 07:33
Naja, für das "Wissen" muss man die Smarty-Template-Hilfe bemühen. In diesem Fall führt der Weg wahrscheinlich über:

Code: Alles auswählen

{if $variable|count_characters lt 200}
{/if}
"lt" heißt in Smarty "lower than" und bedeutet "<".
Wenn also die Anzahl Zeichen kleiner als 200 sind, soll ein more-Link gesetzt werden?
Müsste es nicht eher "gt" also "greater than" (">") heißen?
https://www.smarty.net/docsv2/de/langua ... ion.if.tpl

Alternativ könnte man mit "truncate" arbeiten:
https://www.smarty.net/docsv2/de/langua ... uncate.tpl
Beispiel:

Code: Alles auswählen

<a href='guckst du hier' >{$variable|truncate:200:"more"}</a>
Wobei es auch möglich sein sollte, den Anker zwischen die " um das Wort more zu setzen.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.

diefl
Beiträge: 34
Registriert: Mi 29. Jun 2005, 16:04
Kontaktdaten:

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von diefl » Do 12. Sep 2019, 12:33

Hallo,

ich habe das Modul installiert - das funktioniert auch soweit, allerdings bekomme ich im Frontend nur temporär eine Ausgabe, wenn ich den Code neu generieren lasse oder den Code-Cache lösche.

Im Errolog finde ich folgende EInträge:

Code: Alles auswählen

[12-Sep-2019 13:15:56 Europe/Berlin] PHP Deprecated:  Function create_function() is deprecated in /homepages/21/d515921042/htdocs/2019-biotechnologie/contenido/includes/frontend/include.front_content.php(762) : eval()'d code on line 110
[12-Sep-2019 13:15:58 Europe/Berlin] PHP Deprecated:  Function create_function() is deprecated in /homepages/21/d515921042/htdocs/2019-biotechnologie/contenido/includes/frontend/include.front_content.php(762) : eval()'d code on line 110
[12-Sep-2019 13:21:30 Europe/Berlin] PHP Deprecated:  Function create_function() is deprecated in /homepages/21/d515921042/htdocs/2019-biotechnologie/contenido/includes/frontend/include.front_content.php(762) : eval()'d code on line 94
[2019-09-12 13:21:30] Error: "Error: Can't include php/class.datetimereplacelang.php" at cInclude() called in include.front_content.php(762) : eval()'d code(156)
	cInclude() called in file include.front_content.php(762) : eval()'d code(156)
	eval() called in file include.front_content.php(762)
	include() called in file front_content.php(43)
Auf einer anderen Seite mit der gleichen Systemumgebung läuft es problemlos.
Es wäre toll, wenn ihr mir weiterhelfen könntet

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von homtata » Do 12. Sep 2019, 13:37

Angenommen, das Ding läuft in einer 4.10.0 mit PHP7.2 auf beiden Servern - ist denn wirklich überall der gleiche Dateistand bzgl. des Moduls? Bitte daran denken, dass auch Dateien in die includes-Ordner usw. verschoben werden müssen, falls es sich ggf. um eine Update-Version von Contenido handelt, wo alte Dateistände benutzt wurden.

diefl
Beiträge: 34
Registriert: Mi 29. Jun 2005, 16:04
Kontaktdaten:

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von diefl » Do 12. Sep 2019, 14:43

Danke, sehr guter Hinweis , hab den Fehler gefunden - das Modul selbst funktioniert einwandfrei, mein Fehler

Ich hatte in der config.php nach einem Update vergessen den frontend-Pfad zu korrigieren..

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

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von peanut » Sa 11. Dez 2021, 12:59

Hallo

Ich hab eine Neuinstallation 4.10.1 mit PHP 7x. Das error log läuft mit dem hier geposteten Modul voll. Wohl auch mit dieser constant path fehlende Hochzeichen Sache.

Wo finde ich denn die Corr16 ? Scheinbar wird hier die Corr15 verlinkt, wie man lesen kann.

Vielen Dank für einen kleinen Tipp.
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von homtata » Sa 11. Dez 2021, 15:29

Holldrihö! Keine Ahnung, was mir damals passiert ist, als ich den Post überarbeitet habe - ich habe corr16 jetzt im ersten Post mit dazugestellt, dann kannst du die Version herunterladen. Danke für den Hinweis!

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

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von peanut » Sa 11. Dez 2021, 15:52

Super Sache. Leider geht es immer noch nicht bei mir. Hab mal alles doppelt bereinigt im Backend aber bringt noch immer diese errors.

[11-Dec-2021 14:47:41 UTC] PHP Warning: Use of undefined constant idcat - assumed 'idcat' (this will throw an Error in a future version of PHP) in /var/www/clients/web/contenido/includes/frontend/include.front_content.php(762) : eval()'d code on line 283
[11-Dec-2021 14:47:41 UTC] PHP Warning: Use of undefined constant parent - assumed 'parent' (this will throw an Error in a future version of PHP) in /var/www/clients/web/contenido/includes/frontend/include.front_content.php(762) : eval()'d code on line 283
[11-Dec-2021 14:47:41 UTC] PHP Warning: Use of undefined constant name - assumed 'name' (this will throw an Error in a future version of PHP) in /var/www/clients/web/contenido/includes/frontend/include.front_content.php(762) : eval()'d code on line 283
[11-Dec-2021 14:47:41 UTC] PHP Warning: Use of undefined constant link - assumed 'link' (this will throw an Error in a future version of PHP) in /var/www/clients/web/contenido/includes/frontend/include.front_content.php(762) : eval()'d code on line 283

Jemand eine Idee woran das liegen könnte ?
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von homtata » Sa 11. Dez 2021, 18:23

Ich schau später nochmal, ob es am ALR liegt und ich Stellen übersehen habe. Der Fehler besagt, dass Schlüssel im Array falsch ohne Hochkommas aufgerufen werden, also [idcat] statt ["idcat"].

homtata
Beiträge: 1142
Registriert: Mi 14. Jan 2004, 14:41
Kontaktdaten:

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von homtata » Sa 11. Dez 2021, 21:11

Also anhand der angemeckerten Key-Namen kann ich nach kurzer Prüfung fast ausschließen, dass es das ALR-Modul ist. Ich erzeuge z.B. nirgends ein Array mit einem Key "parent". Welche anderen Module sind denn noch in der Vorlage des Artikels drin? Es könnte auch ein anderes Modul sein, das diese Warnungen ausgibt. Sowas wie ein SplitNavigation oder ähnliches.

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

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von peanut » So 12. Dez 2021, 12:37

Ja da brat mir doch einer einen Storch. Tatsächlich war es die Breadcrumb Navigation aus einer 4.9er die den Fehler verursacht hat. Immerhin ist nun die aktuelle Version 16 online :-)

Danke dir für den Tipp.
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

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

Re: [Modul] ArticleListReloaded(ALR) für 4.10.x

Beitrag von peanut » Mo 9. Mai 2022, 10:41

Mir ist eben aufgefallen, das es "innerhalb" dem Headline h2 Tag ein <p> Tag automatisch generiert, was natürlich nicht konform ist. Komischerweise wird immer ein <p> Tag generiert. Auch wenn das h2 draussen ist.

Dann scheint es ein PHP 7.4 Problem zu geben. Das Thema mit den Brackets und den eckigen Klammern. Wurde schon mal angesprochen in der includes Liste. Doch auch da war nicht offensichtlich welche Teile exakt editiert werden müssen.

PHP Deprecated: Array and string offset access syntax with curly braces is deprecated in /contenido/classes/class.htmlparser.php on line 479

Wenn mal jemand Zeit hat wäre es super diese neue .php Datei hier irgendwo zu posten. Ich denke mal das es noch mehr gibt was geändert werden muss als die eine Zeile.

Dann bekomme ich noch diese Fehlermeldung wenn ich die Listen speichere. Ich habe die Liste mehrmals eingebaut in einer Vorlage, was ja ach eigentlich geht oder muss ich da noch was ändern damit man die mehrmals einsetzten kann ?

Code: Alles auswählen

[2022-05-09 10:15:10] Warning: "Database failure: 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AS a WHERE a.parentid = 0' at line 1) - /contenido/main.php?area=tpl_cfg&frame=4&idtpl=25&contenido=7ic3ku8rhjrnk86s132s71h5jf SELECT a.idpica_alloc as idpica_alloc FROM  AS a WHERE a.parentid = 0
" at reportHalt() [class.db.driver.handler.php(1013)]
	reportHalt() called in file class.db.driver.handler.php(985)
	halt() called in file class.db.driver.handler.php(705)
	query() called in file include.pretplcfg_edit_form.php(74) : eval()'d code(174)
	eval() called in file include.pretplcfg_edit_form.php(74)
	include_once() called in file main.php(202)

[09-May-2022 10:15:10 UTC] PHP Warning:  Database failure: 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AS a WHERE a.parentid = 0' at line 1) - /contenido/main.php?area=tpl_cfg&frame=4&idtpl=25&contenido=7ic3ku8rhjrnk86s132s71h5jf SELECT a.idpica_alloc as idpica_alloc FROM  AS a WHERE a.parentid = 0
 in /contenido/includes/functions.general.php on line 1547
[2022-05-09 10:15:10] Warning: "Database failure: 1064 (You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'AS a WHERE a.parentid = 0' at line 1) - /contenido/main.php?area=tpl_cfg&frame=4&idtpl=25&contenido=7ic3ku8rhjrnk86s132s71h5jf SELECT a.idpica_alloc as idpica_alloc FROM  AS a WHERE a.parentid = 0
" at reportHalt() [class.db.driver.handler.php(1013)]
	reportHalt() called in file class.db.driver.handler.php(985)
	halt() called in file class.db.driver.handler.php(705)
	query() called in file include.pretplcfg_edit_form.php(74) : eval()'d code(174)
	eval() called in file include.pretplcfg_edit_form.php(74)
	include_once() called in file main.php(202)
Immer heiter weiter :-)
Zuletzt geändert von Oldperl am Mo 16. Mai 2022, 14:05, insgesamt 1-mal geändert.
Grund: Für Code/Logs bitte den entsprechenden BBCode nutzen. Danke! (Oldperl)
du liest nie ein Buch und weisst weise der Bildung auszuweichen ....

Antworten