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.