Seite 1 von 1

Content_Teaser Title doppelt

Verfasst: Di 22. Mär 2016, 16:36
von Faar
Hallo liebes Contenido Team,

ihr habt in der Klasse cContentTypeTeaser den TITLE doppelt drin, beziehungsweise benützt den Platzhalter {TITLE} doppelt.
Wiederum im HTML-Template jedoch nur einmal.
http://api.contenido.org/latest/source- ... easer.html

In Zeile 261 wird der Titel des Teaser dem Template aufgelegt:

Code: Alles auswählen

261:         $template->set('s', 'TITLE', $this->_settings['teaser_title']);
Dieses Title ist quasi die Überschrift für den gesamten Teaser, aber der Platzhalter befindet sich gar nicht im Teaser-Template.
Dort steht zwar auch ein Platzhalter {TITLE}, aber dieser wird von jenem Code belegt:

Code: Alles auswählen

428:             $template->set('d', 'TITLE', $title);
Das ist nun jedoch die Überschrift, die aus dem jeweiligen Artikel ausgelesen wird und sich innerhalb der Teaser-Schleife befindet.
Fügt man nun außerhalb des Schleifen-Blocks im Template noch ein {TITLE} hinzu, dann wird auch der Teaser-Titel angezeigt.

Warum benützt Ihr für zwei verschiedene Dinge die gleiche Bezeichnung? :motz:

Re: Content_Teaser Title doppelt

Verfasst: Di 22. Mär 2016, 17:37
von Oldperl
Servus Frank,

das 1. Vorkommen in Zeile 261 setzt eine statische Variable (1. Param = s) und das 2. Vorkommen eine dynamische Variable (1. Param = d)
Allein dadurch hast du schon 2 verschiedene Punkte an denen diese, und zwar nur dort, vorkommen können. Der 1. Platzhalter nämlich ausserhalb der Schleife und immer mit dem gleichen Wert (aus Zeile 261) und der 2. Platzhalter dynamisch aus dem Artikel generiert und immer mit anderem Inhalt in der Schleife des Templates.

Gruß aus Franken

Ortwin

Re: Content_Teaser Title doppelt

Verfasst: Di 22. Mär 2016, 20:49
von Faar
Moin Ortwin,

das stimmt schon was du sagst und es funktioniert inzwischen ja auch so.

Aber das erklärt noch nicht, warum zwei identische Platzhalter im Code benützt werden, aber im HTML-Template dann einer der beiden, nämlich der statische, vergessen wird.
Ich halte das für einen schlechten Programmierstil, wenn beides gleich benannt wird, obwohl es verschiedene Dinge sind.
Und vermutlich dadurch ist im Stadard-Template von diesem Modul auch der Platzhalter für die statische Variable vergessen worden.
Und genau darum wahrscheinlich steht auch in der Dokumentation nichts darüber:
forum.contenido.org/posting.php?mode=reply&f=92&t=36758
Weil keiner merkt, dass die Teaser-Bezeichnung keinen Platzhalter mehr hat und nie angezeigt wird, merkt auch keiner, dass in der Doku darüber auch nichts mehr steht.
Und wirklich, wer außer uns wenigen schaut sich die Klasse an, um zu sehen was die wirklich alles kann?

Grüß dich,
Frank

Re: Content_Teaser Title doppelt

Verfasst: Mi 23. Mär 2016, 13:06
von Oldperl
Mahlzeit Frank,

oh da hätte ich schon ein paar "Erklärungen" für, aber die Schluck ich mal lieber runter. Generell ist das aber halt oft so bei einem solchen Open-Source-System an dem schon so viele verschiedene Entwickler gearbeitet haben. Dafür gibt es normalerweise eine Coding Convention.

Gruß aus Franken

Ortwin

Re: Content_Teaser Title doppelt

Verfasst: Do 2. Jun 2016, 10:50
von frederic.schneider_4fb
Das Problem ist notiert!