Améliorer Drupal avec des fonctions et des filtres Twig personnalisés


Extensions de brindilles – Drupal
Introduction
Drupal, l’un des principaux systèmes de gestion de contenu (CMS), est réputé pour son adaptabilité et son évolutivité, offrant aux développeurs une plateforme pour créer des solutions numériques sur mesure. Au cœur de la couche thématique de Drupal se trouve Twig, un moteur de création de modèles polyvalent. Ce blog explore l’utilisation des fonctions et filtres personnalisés de Twig, expliquant comment ces extensions peuvent enrichir les projets Drupal, de la version 9 à la dernière itération, Drupal 10.
Comprendre Twig dans Drupal :
Twig, introduit dans Drupal 8 et continué jusqu’à Drupal 9 et au-delà, fournit un moyen élégant de créer des modèles. Il favorise un code propre, sécurisé et maintenable en séparant la logique de l’application de la présentation. Les modèles Twig définissent la représentation visuelle du contenu, dictant la manière dont les données sont restituées pour les utilisateurs finaux.
Bien que le noyau de Drupal offre un ensemble robuste de fonctions et de filtres Twig, les implémentations personnalisées peuvent étendre considérablement ses capacités. Explorons comment les fonctions et filtres personnalisés de Twig peuvent améliorer la couche thématique des sites Drupal.
Utiliser les fonctions et les filtres Twig : leur objectif et leurs avantages dans Drupal
- Séparation des préoccupations: Twig sépare la couche de présentation (sortie HTML) de la logique métier, garantissant un code plus propre et plus maintenable.
- Personnalisation : Alors que Drupal fournit des fonctions et des filtres de base de Twig, les filtres personnalisés permettent aux développeurs d’adapter les modèles aux besoins spécifiques du projet sans modifier le code principal.
- Réutilisabilité : Les fonctions et les filtres encapsulent une logique fréquemment utilisée ou complexe, favorisant la réutilisation du code entre les modèles et réduisant la redondance.
- Thème amélioré : Ils permettent une manipulation dynamique du contenu, comme le formatage des dates, la manipulation de chaînes ou le décodage d’URL, ce qui est crucial pour offrir une expérience personnalisée et conviviale.
Fonctions de brindilles personnalisées :
Les fonctions Twig exécutent des tâches spécifiques dans des modèles. Les fonctions personnalisées de Twig permettent aux développeurs d’encapsuler une logique complexe ou des fonctionnalités fréquemment utilisées, améliorant ainsi la réutilisabilité et la maintenabilité.
Par exemple, considérons la nécessité d’inverser la chaîne donnée. Une fonction Twig personnalisée peut rationaliser ce processus, en acceptant le paramètre sous forme de chaîne et en renvoyant une chaîne inversée.
Définissez le service pour l’extension Twig dans le fichier twig_extensions_demo.services.yml déposer:
services: twig_extensions_demo.twig_extension: class: Drupal\twig_extensions_demo\TwigExtension\CustomTwigExtensions tags: - { name: twig.extension }
Créez la classe d’extension Twig avec notre fonction personnalisée dans src/TwigExtension/CustomTwigExtensions.php:
<?php namespace Drupal\twig_extensions_demo\TwigExtension; use Twig\Extension\AbstractExtension; use Twig\TwigFunction; /** * CustomTwigExtensions provides custom twig extensions. */ class CustomTwigExtensions extends AbstractExtension { /** * Twig functions * * @return \Twig\TwigFunction[] * TwigFunction array. */ public function getFilters() { return [ new TwigFunction( 'reverseString', [$this, 'reverseString'] ), ]; } /** * Custom Twig function callback to reverse a string. * * @param string $string * The string to be reversed. * * @return string * The reversed string. */ public function reverseString($string) { return strrev($string); } }
Filtres de brindilles personnalisés :
Les filtres Twig modifient les variables ou les données dans les modèles, permettant des transformations ou un formatage dynamiques. Les filtres Twig personnalisés adaptent la présentation du contenu aux exigences spécifiques du site.
Par exemple, un filtre Twig personnalisé peut décoder les URL, transformant les caractères codés dans leur forme originale, facilitant ainsi la manipulation et la présentation des adresses Web dans vos modèles Drupal.
Créez la classe d’extension Twig avec notre filtre personnalisé dans src/TwigExtension/CustomTwigExtensions.php:
<?php namespace Drupal\twig_extensions_demo\TwigExtension; use Twig\Extension\AbstractExtension; use Twig\TwigFilter; /** * CustomTwigExtensions provides custom twig extensions. */ class CustomTwigExtensions extends AbstractExtension { /** * Twig filters * * @return \Twig\TwigFilter[] * TwigFilter array. */ public function getFilters() { return [ new TwigFilter( 'url_decode', [$this, 'urlDecoder'] ), ]; } /** * Function to decode url * * @param string $string * Html as string * * @return string * Filtered html */ public static function urlDecoder(string $string) { return urldecode($string); } }
Implémentation d’extensions Twig personnalisées :
Les fonctions et filtres Twig personnalisés sont implémentés en tant qu’extensions Twig dans Drupal. Ces extensions encapsulent une logique personnalisée, la rendant disponible pour une intégration transparente dans les modèles.
Pour utiliser ces extensions Twig personnalisées dans vos modèles Drupal :
{# Example usage of custom Twig function #} {{ reverseString('Hello World') }} {# Example usage of custom Twig filter #} {{ 'https%3A%2F%2Fexample.com%2Fpage'|urlDecoder }}
Intégration des fonctions et des filtres Twig dans les vues Drupal :
Les vues Drupal sont des outils puissants pour créer des listes et des grilles de contenu, tels que des articles, des produits ou des utilisateurs. L’intégration des fonctions et des filtres Twig dans les vues améliore leur flexibilité et leurs capacités de présentation.
Exemple de scénario :
Supposons que vous disposiez d’une vue Drupal affichant une liste d’articles et que vous souhaitiez personnaliser la façon dont certains champs sont affichés à l’aide des fonctions et des filtres Twig.
Pas:
Créez des fonctions ou des filtres Twig personnalisés :
Définissez vos fonctions ou filtres Twig personnalisés dans une classe d’extension Twig, similaire aux exemples fournis précédemment. Celles-ci peuvent inclure des fonctions permettant de formater les dates, de manipuler des chaînes ou d’appliquer une logique personnalisée spécifique à vos types de contenu.
Implémentez les extensions Twig :
Assurez-vous que vos extensions Twig sont enregistrées et disponibles sur votre site Drupal comme décrit dans le blog. Cela implique de définir le service en ‘services.yml’ et implémenter la classe d’extension Twig.
Appliquer des fonctions ou des filtres Twig dans les vues :
Dans votre configuration Drupal View :
- Modifiez le champ que vous souhaitez personnaliser (par exemple, titre de l’article, date de publication).
- Utilisez la syntaxe Twig directement dans les paramètres du champ pour appliquer votre fonction ou filtre personnalisé.
Exemple d’utilisation :
Supposons que vous ayez un filtre Twig personnalisé ‘urlDécodeur’ qui décode les URL :
{{ view.field.article_url | urlDecoder }}
Cela décoderait l’URL stockée dans le fichier ‘URL_article’ champ de votre vue.
Avantages:
- La flexibilité: Personnalisez la façon dont les champs sont rendus sans modifier les données sous-jacentes ou la configuration de la vue.
- Cohérence: Appliquez une mise en forme cohérente dans différentes vues ou types de contenu en utilisant les mêmes fonctions ou filtres Twig.
- Maintenabilité : Gardez la logique centralisée dans les extensions Twig, ce qui facilite la mise à jour et le débogage.
En incorporant les fonctions et les filtres de Twig dans les vues Drupal, les développeurs peuvent exploiter toute la puissance des capacités de création de modèles de Twig pour proposer des présentations de contenu dynamiques et personnalisées, améliorant à la fois les fonctionnalités et l’expérience utilisateur.
Conclusion:
Les fonctions et filtres personnalisés de Twig améliorent la couche de présentation des sites Drupal, favorisant un développement rationalisé et des expériences utilisateur cohérentes. En tirant parti de ces extensions, les développeurs peuvent élever leurs projets Drupal, en proposant des solutions numériques dynamiques et attrayantes.
À mesure que Drupal évolue, exploiter tout le potentiel de la personnalisation de Twig reste essentiel. En exploitant les fonctions et les filtres personnalisés de Twig, les développeurs peuvent débloquer de nouvelles possibilités, garantissant ainsi que leurs sites Drupal sont à la pointe de l’innovation et de l’expérience utilisateur.
VOUS TROUVEZ CECI UTILE ? PARTAGEZ-LE
Source link