MetaModels Beispiel: FE-Template anpassen

Aus Contao Community Documentation

MetaModels (MM) bringt für die Ausgabe einer Liste ein Standard-Template mit. Mit diesem Template lassen sich alle Attribute ausgeben und prüfen. Für viele Anwendungen wird man das Template aber anpassen müssen z.B. um die HTML-Struktur umzubauen, Attribute doppelt auszugeben, bestimmte Formatierungen vorzunehmen, Daten aus weiteren MetaModels zu beziehen u.v.a.m.

Im Folgenden sollen eine Tipps den Einstieg in die Bearbeitung des Templates erleichtern.

Voraussetzung: das oder die MetaModels sind angelegt, mit einigen (Test-) Daten gefüllt und über das Content-Element "MetaModel-Liste" werden die Daten (Attribute) im Frontend (FE) ausgegeben.

1. Wo finde ich das Template?

In dem Content-Element "MetaModel-Liste" kann ein FE unter " MetaModel-Rendering" ausgewählt werden (ce_metamodel_list). An der Stelle hat man Zugriff auf die Überschrift und Paginierung der Liste - um die Ausgabe der Items zu beeinflussen, muss man einen Schritt "vorher einsteigen".

In den MetaModels-Einstellungen > Rendereinstellungen des MM > Eigenschaften (Stift) der FE-Liste kann in den "Grundeinstellungen" ein eigenes Template ausgewählt werden (metamodel_prerendered). Um ein eigens Template anzulegen, wechseln wir zu Layout > Template und legen eine Kopie von "metamodel_prerendered" an. Der Dateiname kann individuell angepasst werden - starten muss der Dateiname mit "metamodel_". Zum Beispiel kann die Datei als "metamodel_pr_spezialliste" bezeichnet werden.

Anschließend muss das erstellte Template wieder in den MetaModels-Einstellungen > Rendereinstellungen des MM > Eigenschaften (Stift) der FE-Liste > Grundeinstellungen ausgewählt werden.

Damit ist die Vorbereitung in diesem Punkt abgeschlossen und das Template kann an die individuellen Wünsche angepasst werden.

Hinweis zur Länge des Dateinamens: der Dateiname kann über das BE nur eine bestimmte Länge haben - bis Contao 3.3.x sind das 32 Zeichen und ab 3.4.x 64 Zeichen.

2. Wie sehe ich, was alles an Attributen (Werten) zur Verfügung steht?

Für das "Debugging" der Listenausgabe gibt es verschiedene Möglichkeiten - eine einfache Methode ist eine "Echo-Ausgabe" in den HTML-Quelltext. Dazu gehen wir zu den Templates und öffnen das neu angelegte Template "metamodel_pr_spezialliste".

In den Quelltext fügen wir ein "print_r" ein (Zeile 6 bis 10):

<?php $strRendersettings = isset($this->settings)? 'settings' : 'view'; ?>
<?php if (count($this->data)): ?>
 
<div class="layout_full">
 
<?php 
echo "<!-- \n";
print_r($this->items->parseAll($this->getFormat(), $this->view)); 
echo "\n -->";
?>
 
<?php foreach ($this->data as $arrItem): ?>
<div class="item <?php echo $arrItem['class']; ?>">
 
<?php foreach ($arrItem['attributes'] as $field => $strName): ?>
...

Anschließend kann die Seite in der FE-Ausgabe neu geladen und im HTML-Quelltext (Shortcut FF und IE: Strg-u) das ausgegebene Array analysiert werden. In dem Array gibt es (z.Z.) drei verschiedene Knoten, die sich anhand der Ausgabevarianten ergenen. Das sind [raw], [text] und [html5] - in [raw] werden alle vorhanden Attribute ausgegeben und in [text] und [html5] nur die vorhanden Attribute, die auf "Sichtbar" (Auge grün) gestellt sind.

Für Fragen im Forum kann die Ausgabe - oder Teile davon - gepostet werden (unbedingt als "Quelltext" formatieren) oder man stellt einen Link zur Testseite zur Verfügung mit dem Hinweis, auf die Quelltext-Ausgabe.

Ansichten
Meine Werkzeuge

Contao Community Documentation

Pelle: gibt's ein besseres Wort für "beschränkt"?
Thomas: "Kunde"

Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge