FE-Templates über Content-Elemente erstellen
CE YouTube
Bei komplexeren Ausgaben wie z. B. bei dem CE YouTube gibt es neben der YT-ID noch verschiedene weitere
Parameter, die eingestellt bzw. ausgegeben werden können. Man kann über das MM-Template diese CEs einbinden
und für die Ausgabe verwenden. Die Einbindung der CEs kann sowohl im Template der Rendersettings
(metamodels_prerendered.html5
) als auch in den Templates der Attribute (mm_attr_*.html5
) erfolgen
Folgend soll das Vorgehen anhand des CE Youtube verdeutlicht werden. Man legt ein Attribut Text an, in dem
die YT-ID gespeichert wird. Zudem erstellt man sich ein neue Template mm_attr_text_video_yt.html5
, welches
bei den Attributseinstellungen in den Rendersettings ausgewählt wird.
In dem Template folgenden Code eingeben:
1<?php
2$contentData['type'] = 'youtube';
3$contentData['youtube'] = $this->raw . '?rel=0';
4$contentData['youtubeOptions'] = serialize(['youtube_nocookie']);
5$contentData['playerSize'] = serialize(['560', '315']);
6$contentData['playerAspect'] = '16:9';
7
8$model = new ContentModel();
9$model->setRow($contentData);
10
11$content = new ContentYouTube($model);
12
13echo $content->generate();
Damit ist das Grundgerüst schon fertig gestellt und kann nach Bedarf weiter ausgebaut werden. Die möglichen Parameter kann man aus den Element-Klassen von Contao ermitteln - z. B. ContentYouTube.
Die Parameter können wie in dem Beispiel fest eingetragen werden - möglich wäre aber auch, Werte aus weiteren Attributen
einzubinden über $this->row['yt_aspect']
im Attribut-Template oder $arrItem['text']['yt_aspect']
im Template der
Rendersettings.
Bei den Rendersettings wäre auch eine Eingabe über die Parameter des CE/FE-Modul möglich - siehe Individuelle Parameter für die MM-Listenausgabe im Frontend.
Für eine kompakte Darstellung und Eingabe in der Eingabemaske, könnte man sich auch mit dem MCW-Attribut eine einzeilige „Multi-Eingabe“ erstellen - siehe Attribut für Multi-Column-Wizard.
FE-Modul RockSolid Slider
Möchte man vorgefertigte Slider wie beim RockSolid Slider als Inhalt in MM ausgeben, gibt es wie immer verschiedene Wege - folgend einer als Anregung:
Zunächst wird ein Slider z. B. als Bilderslider über den entsprechenden Navigationspunkt im BE angelegt und die
gewünschten Bilder ausgewählt. Zur Vereinfachung der Konfigurationseinstellungen legt man weiterhin ein FE-Modul
vom Typ „RockSolid Slider“ an und nimmt dort die gewünschten Einstellungen zu Größe, Animation, Navigation usw. vor
- die ID des FE-Moduls z. B. 55
wird dann im Template noch benötigt.
In MM legt man ein Attribut vom Typ Einzelauswahl [Select] mit den folgenden Einstellungen an:
Quelltabelle: tl_rocksolid_slider
ID-Spalte: id
Werte-Spalte: name
Alias-Spalte: id
Auswahl-Sortierung: name
Damit kann später ein Slider in der Eingabemaske ausgewählt werden - in der Eingabemaske wird natürlich das Attribut auch eingebunden.
Zudem wird ein eigenes Template z. B. mm_attr_select_rst_slider.html5
mit folgendem Inhalt angelegt:
1<?php
2$moduleData['type'] = 'rocksolid_slider';
3$moduleData['rsts_id'] = $this->raw['id'];
4$moduleData['rsts_import_settings'] = 1;
5$moduleData['rsts_import_settings_from'] = 55;
6
7$model = new ModuleModel();
8$model->setRow($moduleData);
9
10$module = new MadeYourDay\RockSolidSlider\Module\Slider($model);
11
12echo $module->generate();
Der Typ muss unbedingt angegeben werden, damit die passenden CSS-Klassen für den Slider in den Quelltext kommen; die
55
ist die Modul-ID der Einstellungen.
In den Rendersettings für die Ausgabe wird das Attribut ebenfalls eingebunden und bei den Attributseinstellungen das
Template mm_attr_select_rst_slider
ausgewählt.
Wie man die Parameter dynamisch in das Template bekommt, ist im oberen Abschnitt beschrieben und kann hier analog erfolgen.