Funktionen – in Twig-Templates
Twig bietet eine Reihe praktischer Funktionen, die direkt in Templates verwendet werden können.
Der Drupal-Kern fügt einige benutzerdefinierte, Drupal-spezifische Funktionen hinzu. Diese sind in der TwigExtension-Klasse definiert.
Sie können auch eigene Twig-Funktionen in einem benutzerdefinierten Modul (aber nicht im Theme) definieren. Ein Beispiel, wie das gemacht wird, finden Sie in der Datei core/modules/system/tests/modules/twig_extension_test/src/TwigExtension/TestExtension.php.
attach_library($library)
Bindet eine Asset-Bibliothek an das Template an.
{{ attach_library('classy/node') }}
create_attribute($attributes)
Erstellen Sie neue Attribute-Objekte mit der Funktion create_attribute() innerhalb eines Twig-Templates. Diese Objekte können genauso manipuliert werden wie andere Attribute-Objekte, die im Twig-Template verfügbar sind.
Siehe Änderungseintrag: https://www.drupal.org/node/2818293
{% set my_attribute = create_attribute() %} {% set my_classes = [ 'kittens', 'llamas', 'puppies', ] %} <div{{ my_attribute.addClass(my_classes).addAttribute('id', 'myUniqueId') }}> {{ content }} </div> <div{{ create_attribute({'class': ['region', 'region--header']}) }}> {{ content }} </div>
file_url($uri)
Diese Hilfsfunktion nimmt einen Dateipfad (URI) und erzeugt daraus einen relativen URL-Pfad zur Datei.
{{ file_url(node.field_example_image.entity.uri.value) }}
link($text, $uri, $attributes)
Diese Hilfsfunktion nimmt als ersten Parameter text und als zweiten Parameter uri.
Beispiele:
{{ link(item.title, item.uri, { 'class':['foo', 'bar', 'baz']} ) }}
path($name, $parameters, $options)
Erzeugt einen [relativen] URL-Pfad anhand des Routennamens und der Parameter.
{# Link zur Frontpage-View. #} <a href="{{ path('view.frontpage.page_1') }}">{{ 'Alle Inhalte anzeigen'|t }}</a> {# Link zur Benutzer-Entity/Profile-Seite. #} <a href="{{ path('entity.user.canonical', {'user': user.id}) }}">{{ 'Benutzerprofil anzeigen'|t }}</a> {# Link zur Node-Seite. #} <a href="{{ path('entity.node.canonical', {'node': node.id}) }}">{{ 'Node-Seite anzeigen'|t }}</a>
Die Funktionen url und path sind eng verwandt mit denen aus \Symfony\Bridge\Twig\Extension\RoutingExtension.
url($name, $parameters, $options)
Erstellt eine absolute URL basierend auf dem Routennamen und den Parametern:
<a href="{{ url('view.frontpage.page_1') }}">{{ 'Alle Inhalte anzeigen'|t }}</a>
Erstellt eine absolute URL für die aktuelle URL:
<a href="{{ url('<current>') }}">{{ 'Neu laden'|t }}</a>
Erstellt eine absolute URL zur Startseite:
<a href="{{ url('<front>') }}">{{ 'Startseite'|t }}</a>
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.