Eigene insert tags erstellen: Unterschied zwischen den Versionen
Aus Contao Community Documentation
Xtra (Diskussion | Beiträge) K (tippfehler im source, stub an Anfang verschoben) |
K (Typos) |
||
Zeile 6: | Zeile 6: | ||
|Version=ab 2.9 | |Version=ab 2.9 | ||
}} | }} | ||
− | Unter Insert-Tags versteht man in Contao | + | Unter Insert-Tags versteht man in Contao spezielle Platzhalter, die beim Laden der Webseite durch bestimmte Inhalte ersetzt werden. Dies können zum Beispiel der aktuelle Benutzername, ein Datum oder ein Link sein. Der Contao-Core bietet eine ganze Reihe verschiedener Insert-Tags, welche auf der Projekthomepage dokumentiert sind (siehe [http://www.contao.org/inserttags.html Contao Insert-Tags]). |
== Aufbau eines Insert-Tags == | == Aufbau eines Insert-Tags == | ||
− | Insert-Tags werden generell in zwei | + | Insert-Tags werden generell in zwei geschwungenen Klammern verpackt. <nowiki>{{var::value}}</nowiki> Des weiteren sind Insert-Tags meistens zweigeteilt. Die Wertepaare sind durch zwei Doppelpunkte getrennt. Der erste Teil ist entweder die Kategoriezugehörigkeit des Insert-Tags oder der Name des Tags. Der zweite Teil ist meistens ein Parameter, um die gewünschte Rückgabe noch zu verfeinern. Ein Beispiel verdeutlicht dies: <nowiki>{{link::*}}</nowiki> Dieser Insert Tag würde einen Link zur Seite * (muss durch die ID der Seite ersetzt werden) im richtigen URL Format generieren. |
== Eigene Insert-Tags erstellen == | == Eigene Insert-Tags erstellen == | ||
Seit TYPOlight Version 2.6 kann man Contao durch eigene Insert-Tags erweitern. Dazu wurde der Hook replaceInsertTags zur Verfügung gestellt. Der Ablauf ist nun folgender. | Seit TYPOlight Version 2.6 kann man Contao durch eigene Insert-Tags erweitern. Dazu wurde der Hook replaceInsertTags zur Verfügung gestellt. Der Ablauf ist nun folgender. | ||
− | # Contao parsed einen Seitenaufruf und | + | # Contao parsed einen Seitenaufruf und stößt dabei auf ein Insert-Tag |
# Contao probiert dieses Insert-Tag mit den Core-Möglichkeiten zu ersetzen | # Contao probiert dieses Insert-Tag mit den Core-Möglichkeiten zu ersetzen | ||
# Wenn Contao das Insert-Tag nicht kennt, wird es an den Hook replaceInsertTags weitergereicht. Dieser Hook erhält das unbekannte Insert-Tag als Parameter. Nun kann der Entwickler prüfen ob er das unbekannte Insert-Tag ersetzen möchte und wenn ja, gibt er einen beliebigen Content zurück. | # Wenn Contao das Insert-Tag nicht kennt, wird es an den Hook replaceInsertTags weitergereicht. Dieser Hook erhält das unbekannte Insert-Tag als Parameter. Nun kann der Entwickler prüfen ob er das unbekannte Insert-Tag ersetzen möchte und wenn ja, gibt er einen beliebigen Content zurück. | ||
Zeile 23: | Zeile 23: | ||
Als erstes muss der Hook registriert werden. | Als erstes muss der Hook registriert werden. | ||
// config.php | // config.php | ||
− | // | + | // Registrieren des Hooks replaceInsertTags |
$GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('MyClass', 'myReplaceInsertTags'); | $GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('MyClass', 'myReplaceInsertTags'); | ||
− | Nach der Registrierung des Hooks muss eine Klasse erstellt werden welche eine Methode zur Ersetzung beinhaltet. | + | Nach der Registrierung des Hooks muss eine Klasse erstellt werden, welche eine Methode zur Ersetzung beinhaltet. |
//MyClass.php | //MyClass.php | ||
class MyClass extends Frontend | class MyClass extends Frontend | ||
Zeile 43: | Zeile 43: | ||
} | } | ||
} | } | ||
− | In der Methode myReplaceInsertTags muss man zuerst prüfen ob man für den unbekannten Insert-Tag zuständig ist. Wenn man einen zweigeteilten Insert-Tag verwendet splittet man den Tag anhand des :: (explode) Die geschweiften Klammern werden bereits von Contao entfernt und müssen daher nicht mehr entfernt werden. | + | In der Methode myReplaceInsertTags muss man zuerst prüfen, ob man für den unbekannten Insert-Tag zuständig ist. Wenn man einen zweigeteilten Insert-Tag verwendet, splittet man den Tag anhand des :: (explode). Die geschweiften Klammern werden bereits von Contao entfernt und müssen daher nicht mehr entfernt werden. |
// der Schluss ist irgend wie noch nicht richtig Formuliert, ich kann leider nicht mehr, bin total übermüdet.... | // der Schluss ist irgend wie noch nicht richtig Formuliert, ich kann leider nicht mehr, bin total übermüdet.... |
Version vom 8. Juli 2010, 02:42 Uhr
Unvollständiger Artikel: dieser Artikel ist noch nicht sauber bearbeitet.
Bitte erweitere ihn und entferne erst anschliessend diesen Hinweis. |
betrifft | |
---|---|
TYPOlight Version | ab 2.6 |
Contao Version | ab 2.9 |
Unter Insert-Tags versteht man in Contao spezielle Platzhalter, die beim Laden der Webseite durch bestimmte Inhalte ersetzt werden. Dies können zum Beispiel der aktuelle Benutzername, ein Datum oder ein Link sein. Der Contao-Core bietet eine ganze Reihe verschiedener Insert-Tags, welche auf der Projekthomepage dokumentiert sind (siehe Contao Insert-Tags).
Aufbau eines Insert-Tags
Insert-Tags werden generell in zwei geschwungenen Klammern verpackt. {{var::value}} Des weiteren sind Insert-Tags meistens zweigeteilt. Die Wertepaare sind durch zwei Doppelpunkte getrennt. Der erste Teil ist entweder die Kategoriezugehörigkeit des Insert-Tags oder der Name des Tags. Der zweite Teil ist meistens ein Parameter, um die gewünschte Rückgabe noch zu verfeinern. Ein Beispiel verdeutlicht dies: {{link::*}} Dieser Insert Tag würde einen Link zur Seite * (muss durch die ID der Seite ersetzt werden) im richtigen URL Format generieren.
Eigene Insert-Tags erstellen
Seit TYPOlight Version 2.6 kann man Contao durch eigene Insert-Tags erweitern. Dazu wurde der Hook replaceInsertTags zur Verfügung gestellt. Der Ablauf ist nun folgender.
- Contao parsed einen Seitenaufruf und stößt dabei auf ein Insert-Tag
- Contao probiert dieses Insert-Tag mit den Core-Möglichkeiten zu ersetzen
- Wenn Contao das Insert-Tag nicht kennt, wird es an den Hook replaceInsertTags weitergereicht. Dieser Hook erhält das unbekannte Insert-Tag als Parameter. Nun kann der Entwickler prüfen ob er das unbekannte Insert-Tag ersetzen möchte und wenn ja, gibt er einen beliebigen Content zurück.
- Wenn der Entwickler nichts mit dem unbekannten Insert-Tag anfangen kann, so muss false zurück gegeben werden.
Codebeispiel
In diesem Code-Beispiel soll der Insert-Tag {{foo::bar}} ersetzt werden. Als erstes muss der Hook registriert werden.
// config.php // Registrieren des Hooks replaceInsertTags $GLOBALS['TL_HOOKS']['replaceInsertTags'][] = array('MyClass', 'myReplaceInsertTags');
Nach der Registrierung des Hooks muss eine Klasse erstellt werden, welche eine Methode zur Ersetzung beinhaltet.
//MyClass.php class MyClass extends Frontend { public function myReplaceInsertTags($strTag) { $arrSplit = explode('::', $strTag); if ($arrSplit[0] == 'foo') { // replace your Insert Tag return 'mein content; } return false; } }
In der Methode myReplaceInsertTags muss man zuerst prüfen, ob man für den unbekannten Insert-Tag zuständig ist. Wenn man einen zweigeteilten Insert-Tag verwendet, splittet man den Tag anhand des :: (explode). Die geschweiften Klammern werden bereits von Contao entfernt und müssen daher nicht mehr entfernt werden.
// der Schluss ist irgend wie noch nicht richtig Formuliert, ich kann leider nicht mehr, bin total übermüdet....