Contao Insert Tags - flexibel, praktisch, gut.

Contao Insert-Tags nutzen - Tipps, Hinweise, Anleitung

Was sind Contao Insert Tags?

Grundsätzlich betrachtet sind Contao Insert Tags Ersetzungen. Sie werden als Platzhalter an verschiedenen Stellen eingesetzt. Je nach Inserttag werden dann die entsprechenden Inhalte oder Funktionen an dieser Stelle angezeigt bzw. verwendet.

Wie sieht ein Contao Insert Tag aus?

Ein Contao Insert Tag besteht immer aus aus zwei öffnenden, geschweiften Klammern und zwei schließenden, geschweiften Klammern. Dazwischen steht das entsprechende Schlüsselwort. Bei Insert Tags die Argumente benötigen, werden diese, von zwei Doppelpunkten getrennt, an das Schlüsselwort angehängt.

Beispiel für einen Contao Insert Tag

{{page::pageTitle}}

Hier wird nach den beiden geschweiften Klammern das Schlüsselwort "page" verwendet.  Alle Insert-Tags für Seiteneigenschaften haben das Schlüsselwort "page".
Getrennt durch zwei Doppelpunkte folgt das Argument, in diesem Beispiel "pageTitle". Danach wird das Tag geschlossen, durch die beiden schließenden, geschweiften Klammern.

Gruppen von Contao Insert-Tags

Die Inserttags sind in Gruppen aufgeteilt. Aktuell gibt es folgende Gruppen:

  • Link-Elemente
  • Mitgliedereigenschaften
  • Seiteneigenschaften
  • Umgebungsvariablen
  • Include-Elemente
  • Verschiedene Tags, die nicht zu den anderen Gruppen passen

Betrachten wir kurz die einzelnen Insert-Tag Gruppen und ein paar nützliche Beispiele daraus:

Contao Insert-Tag für Link-Elemente

Die Insert-Tags sind hilfreich, wenn auf andere Inhalte verlinkt werden soll. So gibt es Inserttags, die auf Seiten oder Artikel erstellen. Manche Insert Tags sind in Contao Templates sehr gut einsetzbar, beispielsweise wenn es um SEO (Suchmaschinenoptimierung) geht.

Einige hilfreiche Contao Inserttags aus diesem Bereich sind:

{{link::*}} - Bei Benutzung wird an der eingesetzten Stelle das Tag durch den gewünschten HTML-Code des Links ersetzt. Über den Parameter kann eine ID oder der Alias einer Seite eingesetzt werden. Natürlich kann auch jede "normale" URL als Parameter mitgegeben werden.

{{article::*}} - Eine sehr effiziente Möglichkeit, auf einen ganzen Contao Artikel zu verlinken. Auch hier kann über den Parameter der Artikel durch die Verwendung der ID oder dem Alias verlinkt werden.

{{link_url::*}} - Im Gegensatz zum {{link::*}} Insert Tag wird hier auf die URL einer vorhandenen internen Seite verlinkt. Die interne Seite wird wiederum als Parameter übergeben.  So könnte ein Link auf eine interne Seite mit dem Link Text "Mehr lesen" aussehen wie folgt: <a href="{{link_url::18}}">Mehr lesen</a>
Es gibt noch viele weitere Insert Tags aus diesem Bereich. Am Ende des Beitrages ist ein Link zum Contao Handbuch, welches alle Contao Insert Tags auflistet und beschreibt.

Contao Insert-Tag für Mitgliedereigenschaften

Bei Webprojekten, die einen internen Bereich haben an dem man sich anmelden muss ist es hilfreich, Eigenschaften des angemeldeten Benutzers auslesen und verwenden zu können. Im einfachsten Beispiel, dass wir alle schon einmal gesehen haben, wird der angemeldete Benutzer mit Namen auf der Startseite des internen Bereiches begrüßt. Dafür gibt es mehrere Inserttags, die dafür in Frage kommen.

{{user::*}} - Hiermit ist es möglich, nach Benutzeranmeldung den Inhalt eines bestimmten Datenbankfeldes der Tabelle tl_member auszuliefern. Über den Parameter wird der gewünschte Feldname, dessen Inhalt angezeigt werden soll, ausgewählt.

{{user::firstname}} - Hier wird das Tag durch den Vornamen des angemeldeten Frontend-Benutzers ersetzt.

Ebenso wie bei {{user::firstname}} gibt es viele weitere Möglichkeiten für spezifische Informationen des angemeldeten Benutzers. Alle weiteren Inserttags aus dieser Gruppe finden sich ebenfalls im Contao Handbuch.

Contao Insert Tags für Seiteneigenschaften

Bei SEO Maßnahmen kann durch diese Insert Tags sehr gut auf notwendige Seiteneigenschaften referenziert werden. So gibt es beispielsweise für die beiden gebräuchlichen Onpage-SEO ToDos die passenden Insert Tags:

{{page::pageTitle}} - hiermit wird der Titel der aktuellen Seite auf der das Insert Tag verwendet wird, ausgegeben.

{{page::description}} - hiermit wird die Description der aktuellen Seite angezeigt.

Ob in Templates oder Erweiterungen die SEO-Funktionen beinhalten, sind diese Insert Tags hilfreich.

Contao Insert Tags für Umgebungsvariablen

Hier finden sich Insert Tags, die im Bereich Technik, bzw. Backend-Entwicklung nützlich sein können.  Beispielsweise:

{{env::ip}} - bei Verwendung dieses Insert Tags wird die IP-Adresse des aktuellen Besuchers angezeigt.

Contao Insert Tags für Include-Elemente

Hier ist ein sehr mächtiges Werkzeug. Beispielweise könnte es sein, dass bestimmte Texte mehrfach verwendet werden sollen. Die zugehörigen Artikel können mit dem passenden Insert Tag problemlos mehrfach an der gewünschte Stelle ausgeliefert werden:

{{insert_article::*}} - Über den Parameter wird die gewünschte Artikle-ID bzw. der gewünschte Artikel-Alias übergeben, der an der gewünschte Stelle ausgegeben werden soll.

Verschiedene Contao Insert Tags

Hier findet sich im Contao Handbuch die Aufzählung mit allen, weiter nutzbaren Insert Tags. Der Flexibilität wird fast keine Grenze gesetzt. Hier ist  interessantes Beispiel:

{{email::*}} - ein sehr hilfreiches Tag, wenn man die E-Mail Adresse angeben muss, wie es beispielsweise im Impressum oder der Datenschutzerklärung gefordert wird. Als Parameter wird die anzuzeigende E-Mail Adresse übergeben. Diese wird zwar angezeigt aber kodiert. Dadurch wird Spamharvestern das Leben erheblich schwerer gemacht, an die E-Mail Adressen zu gelangen.

Kann man Contao Insert Tags auch selbst machen?

Aber sicher. Eigene Contao Inserttags sind vergleichsweise einfach zu erstellen. Natürlich geht es nicht ohne Programmierkenntnisse in Contao. Wer die hat kann das ganz einfach machen. Das nachfolgende Beispiel funktioniert ab Contao 4.9

Im Root-Verzeichnis der Contao-Installation die Datei src/EventListener/MyCustomTagListener.php anlegen.

Die erstellte Datei muss folgenden Code beinhalten:

namespace App\EventListener;
use Contao\CoreBundle\ServiceAnnotation\Hook;

/**
 * @Hook("replaceInsertTags")
 */
class MyCustomTagListener
{
    public function __invoke(string $tag)
    {
        if ('mytag' === $insertTag) {
            return 'mytag replacement';
        }
        return false;
    }
}

Anschließend per Contao-Manager den Cache leeren und danach die Autoload von Composer neu generieren lassen. Dann kann der Insert Tag einfach per {{mytag}} verwendet werden.

Weitere Infos dazu finden sich im Contao Entwickler-Handbuch.

Sind Contao Insert Tags verschachtelbar?

Ja, Contao Inserttags können verschachtelt werden. Als Bedingung gilt, dass die jeweiligen Insert Tags eine ID oder einen Alias als Ausgabe haben. Ist das gewährleistet, sieht eine Verschachtelung etwa so aus:

{{link_url::{{page::id}}}}#sprungmarke - hier werden zwei Tags gemeinsam verwendet. link_url und page::id. Dazu kommt eine Sprungmarke, die angesprungen werden soll. Dieses Technik kommt besonders häufig bei Onepagern zum Einsatz.

Mehr Informationen zu Contao Insert Tags

Im Contao Handbuch gibt es eine vollständige Liste aller verfügbaren Contao Insert Tags mit kurzen Erläuterungen dazu. Es ist ein sehr gutes Nachschlagewerk für die tägliche Arbeit mit Contao.

Contao Insert Tags sind flexibel und können sehr viel Komfort- und Funktionsgewinn ausmachen. Einer der Gründe, warum wir uns entschieden haben, Contao als unser CMS zu verwenden.

Hier geht es zum Contao Handbuch und der Insert Tag Übersicht.

Zusammenfassung zu Contao Insert Tags

Contao Insert Tags sind ein flexibles Inhaltselement. Man kann sie bereits beim Seitenlayout oder im Modul berücksichtigen und beispielsweise in der Template Datei einbinden. Durch die Vielzahl an Insert Tags, kann man sie auch bei vielen anderen Aufgabenstellungen einbinden. Sie ersetzen die oft mehrfache Eingabe von gleichen Informationen. Tag auswählen, an gewünschte Stelle gehen, einbinden und dabei noch Arbeit sparen. Das geht mit den Contao Inserttags.

Viel Erfolg.

Über den Autor

Benny Born

Benny ist Full Stack Developer mit über 20 Jahren Erfahrung. Egal ob komplexe, serverseitige Applikationen oder Umsetzung von ansprechenden Layouts. „Geht nicht, gibt's nicht”, so sein Motto. Wo andere Probleme sehen findet er Lösungen.