Artikel
von Patrick Froch

Contao: Erstellen eines InsertTags

Nach dem es in den letzten Wochen um eigene Menüpunkte, Auflistungen, Detailseiten und Bilder ging, kümmern wir uns heute um das Erstellen von InsertTags. Will man z.B. bei einem angemeldeten Benutzer die Zeit seit der letzten Anmeldung in Minuten ausgeben, kann dies ganz einfach mit einem eigenen InsertTag umgesetzt werden.

Dateistruktur

Für die Erstellung eines einfachen InsertTags, benötigen wir nur drei Dateien.

Autoload

Damit unsere Klasse für die Ersetzung des Tags auch gefunden wird, benötigen wir natürlich den obligatorischen Autoload-Eintrag in der Datei system/easy_inserttag/config/autoload.php.

Der Name des Ordners für die Erweiterung (hier "easy_inserttag") kann natürlich beliebig gewählt werden. Auch der Name der Klasse (hier "InsertTagHelper") ist frei wählbar.

Hook

Nun müssen wir die Methode für die Ersetzung als Hook registrieren.

Das war auch schon die ganze Vorbereitung.

Klasse

In Zeile 14 wird geprüft, ob es sich um unseren Tag handelt und ob ein Benutzer angemeldet ist. In Zeile 15 holen wir uns eine Instanz des FontendUser-Objekts. In Zeile 16 wird die Zeit seit dem letzten Login in Minuten berechnet und in Zeile 17 formatiert. Das Ergebnis wird in Zeile 18 zurückgegeben. Handelt es sich nicht um unseren Tag, oder ist kein Frontend-Benutzer angemeldet, wird in Zeile 21 false zurückgegeben. Dies erwartet Contao, da ein Tag nur einmal ersetzt werden kann.

Ausgabe

Für die Ausgabe habe ich einfach ein Modul vom Type "Eigener HTML-Code" mit folgendem Inhalt erstellt und in die Seitenleiste des Seitenlayouts eingebunden.

>

Das Ergebnis könnte dann z.B. so aussehen:

Ersetzter InsertTag

Das war schon die ganze Magie beim Erstellen eines eigenen InsertTags. Die Tags lassen sich vielfältig einsetzen und man kann damit sehr flexible Lösungen erstellen. Wer hier seine Phantasie spielen lässt, wird sicher einige interessante Anwendungen finden.

Zurück

Einen Kommentar schreiben

Kommentar von Christian |

Hallo Patrick,

das sind sehr schöne HowTos die du veröffentlichst.
Vielen Dank für deine Mühe.

Treffen wir uns auf der Contao Konferenz?

Viele Grüße
Christian

Antwort von Patrick Froch

Hallo Christian,

vielen Dank für das Lob. Ich werde auf jeden Fall auf der Konferenz sein, dass lasse ich mir nicht entgehen. ;)

Viele Grüße,
Patrick

Bitte rechnen Sie 4 plus 4.