MetaModels/Snippets
Aus Contao Community Documentation
Inhaltsverzeichnis
Snippets
Eine Sammlung hilfreicher Codeschnipsel für MetaModels
Darstellung im Frontend
Individueller Detaillink
Mit einem Eintrag in die /system/langconfig.php ist es möglich, jedem MetaModel einen individuell angepassten Detaillink zu geben.
Beispiel:
$GLOBALS['TL_LANG']['MSC']['mm_meinmetamodel']['details'] = 'Mein Linktext';
Wert vorbelegen
Mit einem Eintrag in die /system/config/dcaconfig.php kann man Werte für Eingabefelder im Backend vorbelegen - beispielsweise ein Datiumsfeld mit dem aktúellen Datum:
$GLOBALS['TL_DCA']['mm_meinmetamodel']['fields']['meinattribut']['default'] = time();
Templates
Links im Template zusammenbauen
Oft kommt es vor, dass man Detaillinks anpassen möchte - zum Beispiel im Multidomainkontext, oder falls man von der Übersichtsseite eines MetaModels A auf die Detailseite des Metamodels B springen möchte.
Grundsätzlich stehen in Contao dazu eine Reihe von Systemvariablen oder Insert-Tags zur Verfügung, die mann ggf. auch noch mit eigenen Insert-Tags (oder selbstdefinierten Variablen) erweitern kann. Einen Detailink kann man daher auch gut aufbauen, wenn man das Feld Alias eines referenzierten Metamodels nutzt.
Grundaufbau eines Links könnte dann sein:
<a href="{{env::url}}/<sprachvariable>/<pfad/zur/detailseite>/<Alias-von-MetaModel-2>.<?php echo $GLOBALS['TL_CONFIG']['urlSuffix']; ?> />Linktext</a>
Im Zusammenspiel beispielsweise mit der Erweiterung Inherit_Insert_Tags kann man dabei Variablen für das Sprachkürzel definieren oder einen individuellen Link zum Unterverzeichnis erstellen. Das Beispiel sieht dann wie folgt aus:
<a href="{{env::url}}/{{iit::langvar}}/{{iit::detailpath}}/<?php echo $tags['mein_aliastag']; ?>.<?php echo $GLOBALS['TL_CONFIG']['urlSuffix']; ?> />Linktext</a>