Aller au contenu principal
Menu
Offcanvas

Twig Snippets

Une petite sélection de code TWIG qui peuvent s'avérer pratique.

Date

Ce code ajoute un jour à votre date.

{{ yourDate|date_modify("+1 day")|date("m/d/Y") }}

URL

Récupérer l'url d'un champ "lien"

{{ node.field_my_link.0.url }}

Vérifier si une chaîne est présente dans l'url

{% if '/services/' in url %}

Template

Inclure un template d'un module dans un autre template de module

D'après la documentation TWIG :

{% include 'modules/Y/templates/twig-of-module-Y.html.twig' %}

Avec Drupal, il est préférable d'indiquer le chemin avec un twig namespace :

{% include '@mon_theme/include/exemple.html.twig' %}

Media

Récupérer l'url d'une image ou d'une vidéo d'un champ media

Fonction preprocess

function mytheme_preprocess_node(&$variables) {
 
  /** @var \Drupal\node\NodeInterface $node */
  $node = $variables['node'];
 
  $image_field = $node->get('field_background_image');
  if (!$image_field->isEmpty()) {
    $uri = $image_field->entity->get('field_media_image')->entity->uri->value;
    $variables['background_image_url'] = file_create_url($uri);
  }
}

Dans le template du node

{{ background_image_url }}

obtenir l'URL d'un champ d'image à partir d'un node référencé dans un template Twig

<img src="{{ file_url(node.field_REFERENCE.entity.field_IMAGE.entity.uri.value) }}" alt="{{ node.field_REFERENCE.entity.field_IMAGE.entity.alt.value }}" />

Remplacez field_REFERENCE' par le nom système de votre champ de référence de node et remplacez 'field_IMAGE' par le nom système de votre champ d'image.

Comment vérifier une valeur booléenne dans les templates twig ?

{% if node.field_bool.value %}
    <p>true</p>
{% endif %}

{% if user.field_bool_affichage_mail.value %}
    <p>true</p>
{% endif %}

Afficher la date de mise à jour du contenu

{{ node.changed.value|date("d/m/Y H:i") }}

Passer une chaîne en minuscule et remplacer les espaces par des tirets.

Peut-être utile pour intégrer un terme de taxonomie ou un champ texte  dans une classe ou un data attribute.

{{ content.field_step[0]|render|lower|replace({' ':'-'}) }}

 

Ajouter un commentaire

Articles similaires

Comment supprimer les changements locaux avec git que l'on n'a pas commit ?

LIRE LA SUITE