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