logo

Extra Block Types (EBT) - Nieuwe Layout Builder ervaring❗

Extra Block Types (EBT) - gestileerde, aanpasbare bloktypes: Slideshows, Tabs, Cards, Accordions en vele andere. Ingebouwde instellingen voor achtergrond, DOM Box, javascript-plugins. Ervaar vandaag al de toekomst van layout building.

Demo EBT-modules Download EBT-modules

❗Extra Paragraph Types (EPT) - Nieuwe Paragraphs ervaring

Extra Paragraph Types (EPT) - analoge op paragrafen gebaseerde set modules.

Demo EPT-modules Download EPT-modules

Scroll
02/10/2025, by Ivan

Menu

Twig biedt een aantal handige functies die je direct in sjablonen kunt gebruiken.

Lijst met Twig-functies

De Drupal-core voegt enkele extra functies toe die specifiek zijn voor Drupal. Deze zijn gedefinieerd in de TwigExtension-klasse.

Je kunt ook je eigen Twig-functies definiëren in een custom module (maar niet in een thema). Voor een voorbeeld zie het bestand core/modules/system/tests/modules/twig_extension_test/src/TwigExtension/TestExtension.php.

attach_library($library)

Voegt een asset-library toe aan het sjabloon.

{{ attach_library('classy/node') }}

create_attribute($attributes)

Maak nieuwe Attribute-objecten aan met de functie create_attribute() binnen een Twig-sjabloon. Deze objecten kunnen op dezelfde manier worden gemanipuleerd als andere Attribute-objecten die beschikbaar zijn in een Twig-sjabloon.

Zie de change record: 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)

Deze helperfunctie neemt een URI van een bestand en genereert een relatieve URL naar het bestand.

{{ file_url(node.field_example_image.entity.uri.value) }}

link($text, $uri, $attributes)

Deze helperfunctie neemt als eerste parameter de tekst en als tweede de uri.

Voorbeeld:

{{ link(item.title, item.uri, { 'class':['foo', 'bar', 'baz']} ) }}

path($name, $parameters, $options)

Genereert een relatieve URL met de opgegeven routenaam en parameters.

{# Link naar de voorpagina-view. #}
<a href="{{ path('view.frontpage.page_1') }}">{{ 'View all content'|t }}</a>

{# Link naar gebruikersprofiel. #}
<a href="{{ path('entity.user.canonical', {'user': user.id}) }}">{{ 'View user profile'|t }}</a>

{# Link naar node-pagina. #}
<a href="{{ path('entity.node.canonical', {'node': node.id}) }}">{{ 'View node page'|t }}</a>

De functies url en path zijn gebaseerd op de implementatie in \Symfony\Bridge\Twig\Extension\RoutingExtension.

url($name, $parameters, $options)

Genereert een absolute URL op basis van routenaam en parameters:

<a href="{{ url('view.frontpage.page_1') }}">{{ 'View all content'|t }}</a>

Genereer een absolute URL voor de huidige pagina:

<a href="{{ url('<current>') }}">{{ 'Reload'|t }}</a>

Genereer een absolute URL voor de frontpagina:

<a href="{{ url('<front>') }}">{{ 'Home'|t }}</a>