MetaModels/Snippets: Unterschied zwischen den Versionen

Aus Contao Community Documentation

K (= Wert vorbelegen)
K (GeShi)
 
(6 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 ===
  
 
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 ==
 +
 
 +
=== 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, 19: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

noch 4 mal das Wort Abstraktion und ich beginne Zigaretten zu rauchen...

Martin Mildner
Navigation
Verstehen
Verwenden
Entwickeln
Verschiedenes
Werkzeuge