Twig Filter und Funktionen
In dieser Dokumentation haben Sie vielleicht bemerkt, dass Zweigfilter wie |e und |raw verwendet werden, wenn wir in unseren Beispielen auf YAML-Felder verweisen. Hier ist ein kurzes Beispiel:
{% if particle.headline %}<h1 class="font-family-bloody">{{ particle.headline|raw }}</h1>{% endif %}
Diese Zeile stammt aus unserem Leitfaden zum Hinzufügen und Anwenden von Schriften. Es erkennt, ob das Headline-Feld eines Partikels einen eingestellten Wert hat, und wenn ja, zeigt es es in seinem rohen HTML-Format an.
Dies ermöglicht es dem Benutzer, HTML wie < style="color:red">Titel einzugeben und einen roten Titel am Frontend anzuzeigen, anstatt in seine literalen Zeichen übersetzt zu werden.
In Gantry werden diese Elemente standardmäßig escaped. Dies ist eine Sicherheitsvorkehrung, da es Inline-HTML aus diesen Feldern nur auf Felder beschränkt, für die Sie es absichtlich aktiviert haben. Wenn Sie gerendertes HTML für ein Feld öffnen möchten, müssen Sie den Filter |raw hinzufügen.
Hilfreiche Ressourcen
Die umfangreiche Twig-Dokumentation von SensioLabs umfasst Filter umfassend. Wir haben nur ein paar der über 30 offiziell in Twig unterstützten Personen abgedeckt.
Sie werden noch detailliertere Dokumentationen zu jedem Filter finden, einschließlich der Frage, wie und wann er verwendet wird. Wir empfehlen, mit der Lektüre über Flucht und Rohmaterial zu beginnen, da diese sowohl in unserer Dokumentation als auch im Hydrogen Theme häufig verwendet werden.
Benutzerdefinierte Twigfilter
Gantry 5 beinhaltet eine Reihe von verschiedenen Twig-Filtern, die speziell auf Gantry zugeschnitten sind. Sie ermöglichen es Ihnen, mehr aus Gantry herauszuholen und einige der leistungsstarken Funktionen zu nutzen.
Filter | Description | Parameters |
---|---|---|
fieldName | Used internally in the Gantry administrator. It converts field names for the form. | |
html | Finds streams and converts them into real URLs. | domain timestamp_age |
url | Takes a stream and converts it to a real URL. | |
trans | Translates the string. | |
repeat | Repeats whatever you put in it by the assigned count. | count |
json_decode | Basically the same as json_decode() in php. |
assoc depth options |
values | Returns all the values from the array and indexes the array numerically. | |
base64 | Encodes the string into a base64 format. | |
imagesize | Grabs the image dimensions and outputs it in HTML tag format. | |
truncate_text | Strips text out of HTML tags and truncates text to a provided number of characters. | limit |
truncate_html | Truncates text to a provided number of characters, preserving HTML. | limit |
Beispiele
Feldname
Input (Twig):
< input type="text" name="{{ 'particles.date.format'|fieldName }}"/>
Output (HTML):
< input type="text" name="particles[date][format]"/>
html
Input (Twig):
{{ '<img src="/"/>'|html }}
Output:
<img src="/templates/g5_hydrogen/images/foo.jpg"/>
url
Input (Twig):
<img src="{{ 'gantry-theme://images/foo.jpg'|url }}"/>
Output (HTML):
<img src="/templates/g5_hydrogen/images/foo.jpg"/>
trans
Input (Twig):
<h1>{{ 'GANTRY5_PLATFORM_STYLES'|trans }}</h1>
Output (HTML):
<h1>Styles</h1>
repeat
Input (Twig):
{{ '.'|repeat(3) }}
Output (HTML):
...
values
Input (Twig):
{% set array = {one: 'foo', two: 'bar'} %}
{% set values = array|values %}
{{ array|json_encode }} => {{ values|json_encode }}
Output (HTML):
{"one":"foo",""two":"bar"} => ["foo","bar"]
imagesize
Input (Twig):
<img src="/{{ 'gantry-theme://images/foo.jpg'|url }}" {{ 'gantry-theme://images/foo.jpg'|imagesize }}/>
Output (HTML):
<img src="/templates/g5_hydrogen/images/foo.jpg" width="100" height="50" />
Benutzerdefinierte Twig-Funktionen
Genau wie bei Twig Filters - Gantry 5 hat auch eine Reihe von benutzerdefinierten Twig-Funktionen, die Sie in Vorlagen und Partikeln verwenden können. Hier ist eine kurze Liste:
Funktion | Beschreibung | Parameter |
---|---|---|
nested | Liefert den Wert durch die Verwendung der Punktnotation für verschachtelte Arrays/Objekte. | |
colorContrast | Bei einer Farbe gibt es eine passende helle oder dunkle Farbe für einen besseren Kontrast zurück. | |
get_cookie | Ruft ein Cookie von der aktuellen Anfrage ab. | |
preg_match | Sucht den Betreff nach einer Übereinstimmung mit dem regulären Ausdruck, der im Muster angegeben ist. | pattern subject |
url | Nimmt einen Stream und konvertiert ihn in eine echte URL. | |
json_decode | Im Grunde genommen dasselbe wie json_decode() in PHP. | assoc depth options |
imagesize | Ergreift die Bildabmessungen und gibt sie im HTML-Tag-Format aus. |