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
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
$contentData['type']           = 'youtube';
$contentData['youtube']        = $this->raw . '?rel=0';
$contentData['youtubeOptions'] = serialize(['youtube_nocookie']);
$contentData['playerSize']     = serialize(['560', '315']);
$contentData['playerAspect']   = '16:9';

$model = new ContentModel();
$model->setRow($contentData);

$content = new ContentYouTube($model);

echo $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
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
<?php
$moduleData['type']                      = 'rocksolid_slider';
$moduleData['rsts_id']                   = $this->raw['id'];
$moduleData['rsts_import_settings']      = 1;
$moduleData['rsts_import_settings_from'] = 55;

$model = new ModuleModel();
$model->setRow($moduleData);

$module = new MadeYourDay\RockSolidSlider\Module\Slider($model);

echo $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.