.

Modèles Drupal améliorés. Revue du module Twig Tweak.

Lorsque nous utilisons n'importe quel type de solution, nous rencontrons généralement le besoin de créer des fonctions de support génériques. Une situation similaire se produit lorsqu'on travaille avec des modèles dans Drupal 9. Si vous avez déjà créé du code personnalisé pour afficher un bloc, une vue ou des entités dans un modèle Drupal 9, et êtes intéressé par une solution prête à l'emploi et testée, cet article est fait pour vous. Nous vous présenterons le module Twig Tweak, qui fournit un certain nombre de fonctions de support.

Twig et Drupal

Twig est un moteur de modèles pour PHP, publié en 2009. Il est constamment développé. À la date de rédaction de cet article, la dernière version est la 3.4.1. Twig est une partie intégrante du framework Symfony, et donc aussi de Drupal 9. Drupal implémente à sa manière certains concepts, tels que les entités, les blocs et les vues. Pour construire le HTML final à partir des tableaux de rendu, Drupal utilise des classes internes conçues à cet effet. Twig, cependant, ne sait pas par défaut comment elles fonctionnent. Pour cette raison, il est impossible nativement de, par exemple, rendre un bloc ou une vue avec n’importe quels paramètres et n’importe où juste en utilisant le moteur Twig. Pour rendre cette opération possible, la communauté Drupal a créé le module Twig Tweak, qui introduit une liste substantielle d'extensions Twig répondant aux problèmes les plus courants spécifiques à Drupal.

Module Twig Tweak

Le module a été publié le 3 janvier 2016, et sa dernière mise à jour a eu lieu le 15 avril 2022. Twig Tweak a une version plus ancienne qui est compatible avec Drupal 8 et 9, et une plus récente qui nécessite Drupal 9. Pour des raisons évidentes (utilisation de Symfony à partir de la version 8), le module n'a pas de version pour Drupal 7.

Le module Twig Tweak fournit une collection d'extensions pour Twig qui vous permettent de, par exemple, rendre les vues, les blocs, les régions, les entités, les champs, les menus, les formulaires, les jetons, et plus encore. La liste complète des possibilités est fournie dans la fiche pratique Twig Tweak préparée par les auteurs.

Twig Tweak est actuellement utilisé par plus de 100 mille sites web. La dernière version 3.x gagne en popularité par rapport à l'ancienne version 2.x, qui connaît une légère mais continue diminution.

 

Les statistiques d'utilisation du module Twig Tweak Drupal

Source: Drupal.org

Le créateur et la principale personne qui maintient le module est l'utilisateur Chi. En raison de la popularité du module, la liste complète des personnes qui ont contribué à son développement est trop étendue pour être citée.

Installation

L'installation du module Twig Tweak est standard.

composer require drupal/twig_tweak

drush pm:enable twig_tweak

Le module n'a pas de dépendances autres que le Noyau de Drupal et ne fournit pas non plus de permissions personnalisées.

Il y a une option de configuration - twig_tweak_enable_php_filter - qui est définie dans le fichier settings.php. Elle est réglée sur TRUE / FALSE et est FALSE par défaut. Activer cette option ajoute la possibilité d'utiliser du PHP pur dans Twig. L'option est désactivée par défaut, probablement pour des raisons de sécurité.

Comment utiliser Twig Tweak

Après avoir installé le module, nous avons accès aux fonctions suivantes:

drupal_view

Affiche la vue fournie. Exemple: 

{{ drupal_view(‘view_id’, 'view_display_id’) }}

drupal_view_result

Affiche seulement le résultat de la vue fournie. Exemple: 

{{ drupal_view_result(‘view_id’, 'view_display_id’) }}

drupal_block

Affiche le bloc fourni. Exemple:

{# Bloc avec configuration par défaut. #}

{{ drupal_block('block_id') }}
{# Bloc avec configuration personnalisée. #}

{{ drupal_block('block_id', {config_id: 'foo', another_config_id: false}) }}
{# Bloc sans thématisation block.html.twig. #}

{{ drupal_block('block_id', wrapper=false) }}

drupal_region

Affiche la région fournie. Exemple:

{# Région Foo du thème par défaut. #}

{{ drupal_region(‘foo’) }}

{# Région Foo du thème Bartik. #}

{{ drupal_region('foo', 'bartik') }}

Autres fonctions dans Twig Tweak

Jetons un œil à d'autres options disponibles dans ce module:

drupal_entity - affiche les entités,

drupal_entity_form - affiche le formulaire d'entité,

drupal_field - affiche le champ,

drupal_menu - affiche le menu,

drupal_form - affiche le formulaire,

drupal_image - affiche l'image,

drupal_token - remplace le jeton,

drupal_config - affiche les configurations,

drupal_dump / dd - affiche une version lisible du contenu de la variable (utile pour le débogage),

drupal_title - affiche le titre de la page actuelle,

drupal_url - affiche l'URL,

drupal_link - affiche le lien,

drupal_messages - affiche les messages de statut,

drupal_breadcrumb - affiche les fils d'Ariane,

drupal_breakpoint - déclenche le point d'arrêt de Xdebug,

drupal_contextual_links - affiche les liens contextuels.

Filtres dans le module Twig Tweak

Voyons maintenant les filtres disponibles dans l'outil:

token_replace - remplace le jeton,

preg_replace - permet d'utiliser la fonction preg_replace dans Twig,

image_style - applique le style d'image donné,

transliterate - translittère le texte de l'Unicode vers l'US-ASCII,

check_markup - filtre le texte en fonction du style de texte spécifié dans le système,

format_size - formate le nombre donné d'octets en une représentation de caractère avec un suffixe multiple,

truncate - limite le texte donné à un nombre choisi de caractères,

view - renvoie le tableau de rendu pour l'entité ou le champ donné,

with - fonctionne à l'inverse du filtre without du core,

children - utilisé dans les champs à sélection multiple pour obtenir une liste d'éléments,

file_uri - renvoie l'URI d'un fichier média donné,

file_url - permet d'utiliser la fonction file_url dans Twig,

translation - renvoie la traduction d'une entité donnée,

cache_metadata - ajoute des métadonnées de cache au champ imprimé,

php - exécute la chaîne de caractères donnée comme code PHP.

Vous pouvez trouver une description détaillée des filtres ainsi que des exemples d'utilisation dans la fiche pratique Twig Tweak liée ci-dessus.

Module Twig Tweak - résumé

Le module Twig Tweak permet de gagner du temps et ouvre de nouvelles possibilités pour les développeurs. Les filtres et fonctions qu'il fournit sont utiles dans le travail quotidien avec Twig. Le module est très populaire, bien soutenu, et volontiers recommandé par la communauté. En tant qu'équipe de développeurs Drupal, nous recommandons d'installer et d'essayer les possibilités offertes par le module Twig Tweak.

3. Best practices for software development teams