Simple Tokens

Simple Tokens sind Platzhalter, die ebenso wie Insert-Tags, Inhalte ausgeben können. Der Unterschied ist jedoch, dass Simple Tokens nicht nur Inhalte ausgeben können, sondern auch Werte mit Fallabfragen und regulären Ausdrücken analysiert werden können. Simple Tokens sind seit der Version Contao 2.x fester Bestandteil von Contao. Im Gegensatz zu Insert-Tags, die global eingesetzt werden können, entscheiden bei Simple Tokens die Entwickler*innen, welche Simple Tokens zur Verfügung stehen und wo diese eingesetzt werden können. Es empfiehlt sich in die jeweilige Dokumentation der Extension hineinzusehen. Ab Contao 4.10 nutzen Simple Tokens die Symfony Expression Language, mit der die Einsatzzwecke noch erweitert werden können.

Wie verwende ich Simple Tokens?

Die Ausgabe von Simple Tokens erfolgt mit zwei umschließenden Rauten ##. Welche Werte ausgegeben werden können, ist in dem jeweiligen Backend-Modul oder Extension zu finden. Innerhalb von Fallabfragen, werden die Rauten weggelassen.

Welche Simple Tokens stehen zur Verfügung?

Simple Tokens können nur auf dafür vorgesehene Backend-Module bzw. Extensions verwendet werden. Sofern ein Simple Token nicht unterstützt wird, erfolgt eine leere Ausgabe und ein Log-Eintrag, dass ein Simple Token nicht ersetzt werden konnte.

Beispiel:

SyntaxBeschreibungModul
##tstamp##Zeitstempel
##flang##Aktuell verwendete Sprache
##domain##Aktuelle DomainNewsletter
##link##Link zum NewsletterNewsletter
##channels##Abonnierter News-ChannelNewsletter

Wo können Simple Tokens eingesetzt werden?

Weitere Einsatzzwecke:

datei_von_##tstamp##.pdf für Dateien erzeugt datei_von_1650437899.pdf

files/data/##form_broschuere##.pdf Pfad zur PDF-Datei mit individuellen Dateinamen

Es ist ebenso möglich, Simple Tokens als Fallabfrage zu verwenden. Hierzu werden Simple Tokens nicht mehr mit ## geschrieben, sondern mit öffnender und schließender Klammer {}

Beispiel für das Notification Center:

Anfrage für: ##form_herkunft##
{if form_termine != ""}
   Termin: ##form_termine##
{endif}

{if form_formtyp != "erweitert"}
  Name: ##form_name##
  E-Mail: ##form_email##
  Telefon: ##form_telefon##
{else}
  Vorname: ##form_vorname##
  Name: ##form_name##
  Straße: ##form_strasse##
  PLZ: ##form_plz##
  Ort: ##form_ort##
{endif}

Beispiel für das Newsletter-Modul:

{if flang == "en"}
  Your language is English.
{elseif == "de"}
  Deine Sprache ist Deutsch.
{else}
  Couldn't assign a language.
{endif}

Welche Operatoren können bei Bedingungen gesetzt werden?

SyntaxBeschreibung
==Expliziter Vergleich
!=Ungleich
===Strikt mit Typ-Konvertierung
!==Nicht identisch
<Kleiner als
>Größer als
<=Kleiner gleich
>=Größer gleich

Die Operatoren können mit oder ohne Leerzeichen gesetzt werden. Es funktioniert daher sowohl {if form_name != ""} als auch {if form_name!=""}.

Verbesserte Simple Tokens

Ab Contao 4.10 wurden die Simple Tokens verbessert und unterstützen nun die gesamte Symfony Expression Language. Das bedeutet, dass du UND/ODER-Anweisungen mittels && und || kombinieren kannst:

{if form_value == "foo" || form_value == "bar"}

Außerdem kannst du jetzt mit Literalen und arithmetischen Operatoren arbeiten:

{if form_value === true}
{if form_value === (42 + 15 + form_other_value)}

Dies ist äußerst praktisch bei der Arbeit mit den zusätzlichen Operatoren, die jetzt unterstützt werden:

SyntaxDescription
inArray-Vergleich (z. B. form_value in ['value1', 'value2'])
not inIdentisch mit in aber negiert
containsform_value contains 'foobar'
starts withform_value starts with 'foobar'
ends withform_value ends with 'foobar'
matchesRegulärer Ausdruck (z. B. form_value matches '^https?://' )

Es gibt noch mehr!

In der Symfony Dokumentation findest du weitere Informationen zur Expression Language Syntax.