logo

Extra Block Types (EBT) - Neue Erfahrung im Layout Builder❗

Extra Block Types (EBT) - gestylte, anpassbare Blocktypen: Diashows, Registerkarten, Karten, Akkordeons und viele andere. Eingebaute Einstellungen für Hintergrund, DOM Box, Javascript Plugins. Erleben Sie die Zukunft der Layouterstellung schon heute.

Demo EBT-Module EBT-Module herunterladen

❗Extra Absatztypen (EPT) - Erfahrung mit neuen Absätzen

Extra Paragraph Types (EPT) - analoger, auf Absätzen basierender Satz von Modulen.

Demo EPT-Module EPT-Module herunterladen

Scroll

Filter – Veränderung von Variablen in Twig-Templates

19/06/2025, by Ivan

Menu

Filter in Twig können verwendet werden, um Variablen zu verändern. Filter werden mit einem Pipe-Symbol von der Variablen getrennt. Sie können optionale Argumente in Klammern haben. Mehrere Filter können aneinandergereiht werden. Die Ausgabe eines Filters wird auf den nächsten angewendet.

Beispiel:

{{ content|safe_join(", ")|lower }}

Es kann nötig sein, ein Element vor der Filterung zu rendern:

{{ item|render|filter }}

Twig bringt viele eingebaute Filter mit, die Sie in der offiziellen Dokumentation ansehen können. Drupal verfügt über viele eigene Filter.

Drupal Spezielle Filter

Diese sind in TwigExtension::getFilters() deklariert.

Übersetzungsfilter

trans
Dieser Filter (alternativ t) leitet eine Variable durch die Drupal-Funktion t(), welche den übersetzten String zurückgibt. Dieser Filter sollte für alle manuell im Template eingefügten Interface-Strings verwendet werden, die dem Nutzer angezeigt werden.

Beispiel:

<a href="{{ url('<front>') }}" title="{{ 'Home'|t }}" rel="home" class="site-logo"></a>

placeholder
Dieser Filter escaped den Inhalt als HTML und formatiert ihn mit drupal_placeholder(), was es ermöglicht, hervorgehobenen Text darzustellen.

Beispiel:

{% trans %}Submitted on {{ date|placeholder }}{% endtrans %}

Unsichere Übersetzung
Einige Templates sind unsicher und sollten nicht verwendet werden, da sie Variablen direkt in die Übersetzung geben. Das bläht nicht nur die Liste der zu übersetzenden Strings auf, sondern stellt auch eine potenzielle Sicherheitslücke dar, besonders wenn der Output vom Nutzer eingegeben werden kann. Beispiele für falsche Übersetzungen:

{# NICHT SO MACHEN #}
{{ var1|t }}
{{ var1|placeholder }}
{% trans %}{{ var1 }}{% endtrans %}

Weitere Filter

clean_class
Dieser Filter bereitet einen String zur Verwendung als gültiger HTML-Klassenname vor. Siehe Html::getClass()

clean_id
Dieser Filter bereitet einen String zur Verwendung als gültige HTML-ID vor. Siehe Html::getID()

format_date
Dieser Filter bereitet einen Zeitstempel als formatierte Datumszeichenkette auf. Siehe DateFormatter::format()

raw
Dieser Filter sollte möglichst vermieden werden, insbesondere wenn Sie Daten ausgeben, die vom Nutzer eingegeben werden könnten. Siehe diese Seite für weitere Informationen über Autoscape in Drupal 8.

render
Dieser Filter ist eine Hülle für die Funktion render(). Er nimmt ein Render-Array und gibt das gerenderte HTML aus. Das kann nützlich sein, wenn Sie einen weiteren Filter anwenden möchten (z. B. Tag-Parsing) oder wenn Sie eine Bedingung basierend auf dem gerenderten Output prüfen wollen (z. B. wenn Sie ein nicht-leeres Render-Array haben, das einen leeren String zurückgibt). Er kann auch für Strings und bestimmte Objekte verwendet werden, hauptsächlich jene, die die Methode toString() implementieren.

safe_join
Der Filter safe_join verbindet mehrere Strings mit einem angegebenen Trenner. Siehe TwigExtension::safeJoin().

Beispiel:

{{ items|safe_join(', ') }}

Das gibt jede Zeichenkette in der Variable items aus, verbunden durch Kommas als Trenner.

without
Der Filter without erstellt eine Kopie eines Render-Arrays und entfernt darin Kind-Elemente anhand der übergebenen Schlüssel. Die Kopie kann ohne diese Elemente ausgegeben werden. Das Original-Render-Array steht weiterhin zur Verfügung und kann im Template für die vollständige Ausgabe der Kind-Elemente genutzt werden. Siehe twig_without.

Beispiele:

{{ content|without('links') }}

Das gibt alles in der Variable content aus, außer content.links.

{{ content|without('links', 'field_some_data') }}

Beispiel zum Ausschluss von zwei Elementen aus der Ausgabe. „links“ und „field_some_data“ werden ausgeschlossen.

 

Drupal’s online documentation is © 2000-2020 by the individual contributors and can be used in accordance with the Creative Commons License, Attribution-ShareAlike 2.0. PHP code is distributed under the GNU General Public License.