Twig Template Sprache¶
Die Template Sprache Twig wird in vielen Bereichen von Warexo verwendet um Variable Daten in das System einzuspeisen.
Achtung
Warexo unterstützt aktuell Twig in Version 1.24
Variablen¶
Warexo übergibt je nach Kontext verschiedenste Variablen die verwendet werden können. Variablen können Attribute oder Unterelemente enthalten die angesprochen werden können.
Sie können mit der Punkt Notation (.) oder mit der Subscript Syntax ([]) arbeiten, wir empfehlen aus Lesbarkeitsgründen die Punkt Notation zu verwenden:
{{ foo.bar }}
{{ foo['bar'] }}
Wenn das Attribut ein Sonderzeichen verwendet können Sie die attribute Funktion verwenden:
{# Equivalent für das nicht funktionierende foo.data-foo #}
{{ attribute(foo, 'data-foo') }}
Bitte beachten Sie dass die geschweiften Klammern nicht Teil der Variable sind sondern der Ausgabefunktion. Wenn Sie Variablen innerhalb von Tags verwenden setzen Sie keine geschweiften Klammern außen herum.
Variablen erzeugen und ändern¶
Sie können Variablen einen Wert zuweisen, verwenden Sie hierzu den set Tag:
{% set foo = 'foo' %}
{% set foo = [1, 2] %}
{% set foo = {'foo': 'bar'} %}
Filter¶
Variablen können mit Filtern modifiziert werden. Filter werden von der Variable mit dem Pipe Symbol (|) abgegrenzt und können optionale Argumente haben. Filter können verkettet werden. Die Ausgabe eines Filters wird an den nächsten Filter weiter gereicht.
Dieses Beispiel entfernt alle HTML Tags aus der Variable name und schreibt den jeweils ersten Buchstaben groß:
{{ name|striptags|title }}
Filter mit Argumenten schließen die Argumente in Hochkommas ein. Dieses Beispiel verkettet alle Elemente in der Variable list mit einem Komma:
{{ list|join(', ') }}
Um einen Filter auf eine code Stelle anzuwenden schließen Sie diese in den filter Tag ein:
{% filter upper %}
Dieser Text wird in Großbuchstaben ausgegeben
{% endfilter %}
Mehr Informationen zu Filtern finden Sie in der Twig Dokumentation.
Verfügbare Filter¶
cursign - Währungszeichen, z.B. {{offer.currency|cursign}}
d - Datum, z.B. {{order.created|d}}
m - Preisformatierung, z. B. {{offer.sum|m}}
q - Formatierung für Mengen (ganze Zahlen werden ohne Komma dargestellt), z. B. {{item.quantity|q}}
unitname - Übersetzung der Mengeneinheit, z.B. {{product.unitName|unitname}}
basename - PHP-Funktion basename
json_decode - PHP-Funktion json_decode
base64 - PHP-Funktion base64_encode
daysago - Zeitdifferenz in Tagen. z.B. Bestellung wurde vor {{order.created|daysago}} angelegt
number_spellout - Zahl ausschreiben
Funktionen¶
Funktionen können aufgerufen werden um Inhalte zu generieren. Funktionen werden mit ihrem Namen gefolgt von runden Klammern (()) aufgerufen und können Argumente haben.
Die range Funktion zum Beispiel erzeugt eine Liste mit ganzzahligen Werten in einem Bereich
{% for i in range(0, 3) %}
{{ i }},
{% endfor %}
Mehr Informationen zu den integrierten Twig Funktionen finden Sie in der Twig Dokumentation.
Kontrollstrukturen¶
Eine Kontrollstruktur bezeichnet alles dass den Fluss eines Programms beeinflusst - Bedingungen (z.B. if/elseif/else), for-Schleifen sowie Dinge wie Blöcke. Kontrollstrukturen sind immer in {% ... %} eingeschlossen.
Um zum Beispiel eine Liste mit Bestellnummern in der Variable orders zu erzeugen, verwenden Sie den for Tag:
{% for order in orders %}
{{ order.orderNumber }},
{% endfor %}
Der if Tag kann verwendet werden um einen Ausdruck zu prüfen:
{% if orders|length > 0 %}
Folgende Bestellungen sind vorhanden:
{% for order in orders %}
{{ order.orderNumber }},
{% endfor %}
{% endif %}
Mehr Informationen zu den integrierten Twig Tags finden Sie in der Twig Dokumentation.