Content-Slider auf Newsliste anwenden
von Marco Simbürger
Damit der j_slider funktioniert, muss das j_slider-Template im Seitenlayout eingebunden sein.
Zuerst erstellen Sie das News-Modul "Nachrichtenliste" unter Themes > Module. Die Einstellungen sind grundsätzlich egal. Ich würde jedoch das Nachrichtentemplate "news_latest" empfehlen, damit die News mit Bild und Teasertext angezeigt werden. Am Ende geben Sie dem Modul noch eine Klasse. z.B. news_slider
Als nächstes wechseln Sie zu "Artikel" und fügen Sie beim gewünschten Artikel ein Inhaltselement "Content-Slider (Umschlag Anfang)" ein. Darin dann das Modul "Nachrichtenliste", welches wir vorhin erstellt haben. Anschliessend den Content-Slider mit dem Inhaltselement "Content-Slider (Umschlag Ende)" abschliessen.
So, soweit so gut. Das Problem ist jetzt, dass das ganze Modul "Nachrichtenliste" geladen wird. Der Slider erkennt nur das ganze <div class="mod_newslist"> und nicht die darin enthaltenen News-Einträge mit <div class="layout_latest">.
Darum müssen wir noch das Template "mod_newslist.html5" anpassen, denn dort wird das umschliessende DIV <div class="mod_newslist"> geschrieben.
Wir schreiben eine einfache Überprüfung, ob die Klasse "news_slider" vorhanden ist. Falls ja, lassen wir das DIV <div class="mod_newslist"> einfach weg.
if(strstr($this->class, "news_slider", true)):
foreach ($this->articles as $article) echo $article;
else:
//die normale Ausgabe
endif;
Damit wird bei bei allen Newslist-Modulen, welche die Klasse "news_slider" besitzen, der ganze Block <div class="mod_newslist"> weggelassen und das j_slider JavaScript erkennt die verschiedenen Newseinträge <div class="layout_latest"> und kann diese somit in den Slider aufnehmen.
Das ganze "mod_newslist.html5" Template noch als Download:
Kommentare
Kommentar von Marc |
Hallo Marco,
vielen Dank für das Tutorial und die Idee. Mich würde es aber noch wunder nehmen, wie ich zwei Newseinträge in einem Slid anzeigen könnte.
Gruss, Marc.
Antwort von Marco Simbürger
Hallo Marc
Vielen Dank für deine Nachricht.
Damit du zwei Einträge gleichzeitig "sliden" kannst, musst du jeweils die zwei News-Beiträge in ein separates DIV wrappen. Ich habe dies für dich kurz programmiert: mod_newslist_2.zip
Ich hoffe, ich konnte dir weiterhelfen.
Gruss
Marco
Kommentar von Peter |
Ein super Beitrag. Genau das hatte ich gesucht und nun gefunden. Vielen Dank!!!!
Kommentar von Jochen |
Hallo Marco, wie muss denn das Template für Contao 4.X angepasst werden? Meine versuche es so einzuspielen haben nicht zum Erfolg geführt.
Grüße
Jochen
Antwort von Marco Simbürger
Hallo Jochen
Mit Contao 4 ist diese Anpassung noch einfacher. Im Template mod_newslist.html5 einfach die erste Zeile $this->extend('block_unsearchable'); zu $this->block('block_unsearchable'); ändern. Damit überschreibst Du das umschliessende Element.
Gruss
Marco
Einen Kommentar schreiben