MetaModels/Snippets: Unterschied zwischen den Versionen

Aus Contao Community Documentation

(Snippets)
K (GeShi)
 
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 13: Zeile 13:
 
Beispiel:
 
Beispiel:
  
'''$GLOBALS['TL_LANG']['MSC']['mm_meinmetamodel']['details'] = 'Mein Linktext';'''
+
<syntaxhighlight lang="php">$GLOBALS['TL_LANG']['MSC']['mm_meinmetamodel']['details'] = 'Mein Linktext';</syntaxhighlight>
  
 
=== Wert vorbelegen ===
 
=== Wert vorbelegen ===
Zeile 19: Zeile 19:
 
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:
 
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();'''
+
<syntaxhighlight lang="php">$GLOBALS['TL_DCA']['mm_meinmetamodel']['fields']['meinattribut']['default'] = time();</syntaxhighlight>
  
 
== Templates ==
 
== Templates ==
Zeile 31: Zeile 31:
 
Grundaufbau eines Links könnte dann sein:
 
Grundaufbau eines Links könnte dann sein:
  
<nowiki><a href="{{env::url}}/<sprachvariable>/<pfad/zur/detailseite>/<Alias-von-MetaModel-2>.<?php echo $GLOBALS['TL_CONFIG']['urlSuffix']; ?> />Linktext</a></nowiki>
+
<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:
 
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:
  
<nowiki><a href="{{env::url}}/{{iit::langvar}}/{{iit::detailpath}}/<?php echo $tags['mein_aliastag']; ?>.<?php echo $GLOBALS['TL_CONFIG']['urlSuffix']; ?> />Linktext</a></nowiki>
+
<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 ===
 
=== Bildunterschrift (Caption) in einer Galerie mit ausgeben ===
Zeile 42: Zeile 41:
 
Will man die Bildunterschriften aus der Dateiverwaltung in einer Galerie mit ausgeben, kann man folgende Ergänzung im Template "mm_attr_file.html5" eintragen:
 
Will man die Bildunterschriften aus der Dateiverwaltung in einer Galerie mit ausgeben, kann man folgende Ergänzung im Template "mm_attr_file.html5" eintragen:
  
<nowiki><?php if (is_array($this->src)): ?>
+
<syntaxhighlight lang="php"><?php if (is_array($this->src)): ?>
 
<ul>
 
<ul>
 
<?php foreach($this->src as $arrFile):  
 
<?php foreach($this->src as $arrFile):  
Zeile 74: Zeile 73:
 
</ul>
 
</ul>
 
<?php endif; ?>
 
<?php endif; ?>
</nowiki>
+
</syntaxhighlight>
  
 
Dieser Codesnippet '''<figcaption><?php echo $arrFile['caption']; ?></figcaption>''' wird vor dem schliessenden li integriert.
 
Dieser Codesnippet '''<figcaption><?php echo $arrFile['caption']; ?></figcaption>''' wird vor dem schliessenden li integriert.
 
Nun werden die Bildunterschriften in der Galerie mit ausgegeben.
 
Nun werden die Bildunterschriften in der Galerie mit ausgegeben.

Aktuelle Version vom 2. September 2014, 17:50 Uhr


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.

Ansichten
Meine Werkzeuge

Contao Community Documentation

Chuck Norris würde Contao 3 in einer Stunde ganz neu schreiben, wobei er die ersten 50 Minuten Sex mit 3 Blondinen hätte.

Leo Unglaub
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge