MetaModels/Snippets: Unterschied zwischen den Versionen
Aus Contao Community Documentation
Lucina (Diskussion | Beiträge) (Werte im DCA vorbelegen) |
Lucina (Diskussion | Beiträge) K (GeShi) |
||
(7 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 13: | Zeile 13: | ||
Beispiel: | Beispiel: | ||
− | + | <syntaxhighlight lang="php">$GLOBALS['TL_LANG']['MSC']['mm_meinmetamodel']['details'] = 'Mein Linktext';</syntaxhighlight> | |
− | === Wert vorbelegen == | + | === Wert vorbelegen === |
− | Mit einem Eintrag in die /system/config/dcaconfig.php kann man Werte | + | 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: |
− | + | <syntaxhighlight lang="php">$GLOBALS['TL_DCA']['mm_meinmetamodel']['fields']['meinattribut']['default'] = time();</syntaxhighlight> | |
+ | |||
+ | == 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: | ||
+ | |||
+ | <syntaxhighlight lang="php"><a href="{{env::url}}/<sprachvariable>/<pfad/zur/detailseite>/<Alias-von-MetaModel-2>.<?php echo $GLOBALS['TL_CONFIG']['urlSuffix']; ?> />Linktext</a></syntaxhighlight> | ||
+ | |||
+ | 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: | ||
+ | |||
+ | <syntaxhighlight lang="php"><a href="{{env::url}}/{{iit::langvar}}/{{iit::detailpath}}/<?php echo $tags['mein_aliastag']; ?>.<?php echo $GLOBALS['TL_CONFIG']['urlSuffix']; ?> />Linktext</a></syntaxhighlight> | ||
+ | |||
+ | === Bildunterschrift (Caption) in einer Galerie mit ausgeben === | ||
+ | |||
+ | Will man die Bildunterschriften aus der Dateiverwaltung in einer Galerie mit ausgeben, kann man folgende Ergänzung im Template "mm_attr_file.html5" eintragen: | ||
+ | |||
+ | <syntaxhighlight lang="php"><?php if (is_array($this->src)): ?> | ||
+ | <ul> | ||
+ | <?php foreach($this->src as $arrFile): | ||
+ | $strTitle = ($arrFile['title']) ? $arrFile['title'] : (($arrFile['alt']) ? $arrFile['alt'] : $arrFile['file']); | ||
+ | $strAlt = ($arrFile['caption']) ? $arrFile['caption'] : ''; | ||
+ | ?> | ||
+ | <li class="<?php echo $arrFile['class']; ?>"> | ||
+ | <?php if ($this->settings->get('file_showLink')): ?> | ||
+ | <?php if ($this->settings->get('file_showImage')): ?> | ||
+ | <a class="cboxElement" data-lightbox="<?php echo $arrFile['lb']; ?>" title="<?php echo $strTitle; ?>" href="<?php echo $arrFile['file']; ?>"> | ||
+ | <?php else: ?> | ||
+ | <a title="<?php echo $strTitle; ?>" href="<?php echo $arrFile['url']; ?>"> | ||
+ | <?php endif; ?> | ||
+ | <?php endif; ?> | ||
+ | |||
+ | <?php if ($this->settings->get('file_showImage')): ?> | ||
+ | <?php if ($arrFile['isGdImage']): ?> | ||
+ | <?php echo $this->generateImage($arrFile['src'], $strAlt); ?> | ||
+ | <?php endif; ?> | ||
+ | <?php else: ?> | ||
+ | <img src="<?php echo $arrFile['icon']; ?>" alt="<?php echo $strAlt; ?>" /> <?php echo $strTitle; ?> <span class="size"><?php echo $arrFile['sizetext']; ?></span> | ||
+ | <?php endif; ?> | ||
+ | |||
+ | <?php if ($this->settings->get('file_showLink')): ?> | ||
+ | </a> | ||
+ | <?php endif; ?> | ||
+ | <figcaption><?php echo $arrFile['caption']; ?></figcaption> | ||
+ | |||
+ | </li> | ||
+ | <?php endforeach; ?> | ||
+ | </ul> | ||
+ | <?php endif; ?> | ||
+ | </syntaxhighlight> | ||
+ | |||
+ | Dieser Codesnippet '''<figcaption><?php echo $arrFile['caption']; ?></figcaption>''' wird vor dem schliessenden li integriert. | ||
+ | Nun werden die Bildunterschriften in der Galerie mit ausgegeben. |
Aktuelle Version vom 2. September 2014, 17:50 Uhr
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>
Bildunterschrift (Caption) in einer Galerie mit ausgeben
Will man die Bildunterschriften aus der Dateiverwaltung in einer Galerie mit ausgeben, kann man folgende Ergänzung im Template "mm_attr_file.html5" eintragen:
<?php if (is_array($this->src)): ?> <ul> <?php foreach($this->src as $arrFile): $strTitle = ($arrFile['title']) ? $arrFile['title'] : (($arrFile['alt']) ? $arrFile['alt'] : $arrFile['file']); $strAlt = ($arrFile['caption']) ? $arrFile['caption'] : ''; ?> <li class="<?php echo $arrFile['class']; ?>"> <?php if ($this->settings->get('file_showLink')): ?> <?php if ($this->settings->get('file_showImage')): ?> <a class="cboxElement" data-lightbox="<?php echo $arrFile['lb']; ?>" title="<?php echo $strTitle; ?>" href="<?php echo $arrFile['file']; ?>"> <?php else: ?> <a title="<?php echo $strTitle; ?>" href="<?php echo $arrFile['url']; ?>"> <?php endif; ?> <?php endif; ?> <?php if ($this->settings->get('file_showImage')): ?> <?php if ($arrFile['isGdImage']): ?> <?php echo $this->generateImage($arrFile['src'], $strAlt); ?> <?php endif; ?> <?php else: ?> <img src="<?php echo $arrFile['icon']; ?>" alt="<?php echo $strAlt; ?>" /> <?php echo $strTitle; ?> <span class="size"><?php echo $arrFile['sizetext']; ?></span> <?php endif; ?> <?php if ($this->settings->get('file_showLink')): ?> </a> <?php endif; ?> <figcaption><?php echo $arrFile['caption']; ?></figcaption> </li> <?php endforeach; ?> </ul> <?php endif; ?>
Dieser Codesnippet <figcaption><?php echo $arrFile['caption']; ?></figcaption> wird vor dem schliessenden li integriert. Nun werden die Bildunterschriften in der Galerie mit ausgegeben.