Blog Drupal
Drupal est un système de gestion de contenu (CMS) puissant et facilement modifiable qui permet aux utilisateurs de créer et gérer du contenu sur un ou plusieurs sites web. Il est open source et utilisé par des millions de personnes et organisations. Il bénéficie d’une très grande communauté de développeurs et d'utilisateurs. Découvrez sur ce blog des articles sur les modules Drupal, des astuces et du code pour optimiser et ajouter des fonctionnalités à Drupal.
Catégories
Ajouter une meta description à une seule route générée par un module Drupal.
Si vous créez une route avec un module drupal, vous pouvez avoir besoin d'ajouter un meta description à cette page. Vous pouvez utiliser le hook hook_page_attachments()
Comment supprimer les erreurs de validation avec un bouton de retour sur un formulaire multistep Drupal ?
Si on crée un formulaire en ajax et multistep, on peut rencontrer un problème avec le bouton retour à l'étape précédente qui va provoquer un problème de validation.
Comment exclure le node actuel d'une vue de liste avec view
Dans certaines situations, par exemple avec un bloc view qui va lister des contenus similaires au contenu qui est actuellement affiché comme un bloc “articles dans la même catégorie”, on peut avoir besoin d’exclure le contenu actuel (node) de la liste de view. En effet, il n’est pas nécessaire de l’afficher dans la liste car l'utilisateur est déjà sur ce contenu.
Intégrer un Popin sur votre site Drupal
Vous pouvez avoir parfois besoin d’afficher un popin pour annoncer un événement, une information importante pour les utilisateurs ou proposer un formulaire d'inscription dès l’ouverture d’une page web.
Comment obtenir une suggestion de template twig pour un bloc personnalisé (custom block) ?
Par défaut, Drupal 9 n'a pas de suggestion de template twig pour les types de blocs personnalisés. On peut utiliser un hook pour obtenir une suggestion facilement.
Comment améliorer l’ergonomie du module Paragraph dans le back office ?
Le module paragraphe permet d'améliorer la gestion des contenus sur Drupal. Par défaut, l'affichage des paragraphes peut poser des problèmes d’ergonomie (page d’édition très longue, pas de vue d’ensemble des paragraphes, difficulté pour ordonner, etc). Voilà une solution pour améliorer la présentation des paragraphes.
Créer des pages d'inscription spécifiques à un rôle.
Le module Multiple Registration permet d'utiliser différents formulaires d'inscription en fonction des rôles.
Comment ne pas afficher un contenu sur sa propre page (full view mode) ?
Vous avez peut-être un type de contenu qui ne devrait jamais être affiché sur sa propre page, comme un type de contenu d'image affiché dans un carrousel. Rabbit Hole peut empêcher ce nœud d'être accessible sur sa propre page, via node/xxx.
Comment créer des permissions personnalisées sur Drupal ?
On peut avoir besoin de créer des permissions qui n'existent pas nativement sur Drupal ou qui ne sont pas assez précises. Par exemple, Drupal va proposer une permission qui englobe plusieurs fonctionnalités alors que l’on veut en proposer une seule. Le module custom permissions permet de gérer précisément les permissions.
Ultimate Cron
Drupal à un système de CRON natif mais il ne permet pas de gérer les tâches CRON individuellement ou par groupe. Le module Ultimate Cron permet de lancer une tâche ou un groupe de tâches CRON à des moments différents.
Twig Snippets
Une petite sélection de code TWIG qui peuvent s'avérer pratique.
Renommer le dossier public "web" en htdocs, public_html ou autre
Le dossier qui contient le site est nommé web. Il peut arriver que l’on nous demande de le renommer. Voilà comment faire par exemple si ce dossier doit être renommé en htdocs.
Comment faire un hook sur un formulaire de paragraph
Découvrez comment faire un hook sur un formulaire du module paragraph dans le BO ou en front pour ajouter des class, un placeholder, etc. La méthode est identique aux hooks pour les formulaires de la Form API mais le hook est spécifique à ce module.
Comment supprimer tous les termes d’une taxonomie
On peut avoir besoin de supprimer tous les termes d’une taxonomie, soit pour les remplacer par une nouvelle liste de termes, soit en cours de développement pour refaire un import.
Comment assigner un rôle automatiquement à la création d’un utilisateur ?
On peut avoir besoin d’assigner un rôle automatiquement aux utilisateurs qui s’inscrivent sur un site Drupal. Cela évite d'avoir à le faire dans l’admin si le compte doit être validé et cela permet aux utilisateurs d'avoir le bon rôle si le compte est activé automatiquement.
Form API snippet
La Form API Drupal permet de générer des formulaires sous forme de tableau PHP. Vous n’avez pas à coder vos éléments directement en HTML. Cette API très puissante permet de réaliser des formulaires complexes et sur mesure.
Comment personnaliser la destination vers laquelle un utilisateur est redirigé après s'être identifié ?
Découvrez plusieurs solutions pour rediriger les utilisateurs vers des pages spécifiques (front ou admin).
Twig Snippet Paragraphs
Quelques snippets twigs utils pour créer des template de paragraph
Comment améliorer l’ergonomie du back office Drupal avec le module « Save & Edit »
Le module Save & Edit est un module qui facilite la mise à jour des contenus en permettant aux contributeurs de rester sur la page d’édition après avoir enregistré les modifications. Très pratique, il permet de gagner du temps et limite le nombre de clics.
Comment effectuer les mises à jour d'entités en attente après la version 8.7 ?
Comment appliquer les mises à jour de schéma d'entité en attente ?
Comment charger localement les librairies Webforms pour éviter les problèmes avec AJAX ?
Comment résoudre le problème des bibliothèques Webforms chargées via CDN qui ne fonctionnent pas comme prévu via Ajax.
Comment forcer la redirection vers https avec le module : HTTPS and WWW Redirect
Le module permet de forcer la redirection https et vers le domaine avec ou sans les www. Il évite d’avoir à modifier le fichier htacess à chaque mise à jour de Drupal.
Comment réparer un bloc cassé ou manquant ?
Recreate Block Content permet d'éviter l'erreur "Ce bloc est défectueux ou manquant. Le contenu est manquant ou vous devez peut-être activer le module d'origine."
Lire les données EXIF pour faire pivoter les images qui ont une clé d'orientation définie
Le module EXIF Orientation corrige l’orientation après l’upload d’une image.
Obtenir l'URL d'une image dans un template twig paragraph Drupal
Parfois, il peut être utile d'accéder à l'URI brut ou à l'URL du fichier d'une image envoyée avec un champ de référence media dans Drupal 8.
Sauvegarder automatiquement votre base de données avec Backup and Migrate
Sauvegardez et restaurez votre base de données Drupal MySQL, votre code et vos fichiers ou migrez un site entre des environnements avec le module Backup and Migrate
Modifier la balise meta viewport sur Drupal 8
Vous pouvez désactiver les capacités de zoom sur les appareils mobiles en ajoutant user-scalable = no à la balise Meta. Voilà comment le réaliser sur Drupal très facilement.
Better Exposed Filters
Better Exposed Filters remplace les filtres exposés aux utilisateurs dans Views.
Comment utiliser des tokens dans des champs Drupal 9 ?
Le module Token Filter permet d'insérer des tokens dans les champs texte des types de contenu (ou d’autres entités) sur Drupal 9.
Optimisation des images Drupal : lazy loading + WebP
Une amélioration très importantes des performances d'un site peut être réalisée en apportant une grande attention au format et au poids des images.
Comment supprimer tous les utilisateurs ou tous les contenus sur Drupal ?
Delete All est un module Drupal 8 / 9 pour développeur qui peut-être utile si vous avez besoin de supprimer tous vos contenus ou tous vos utilisateurs ou seulement une partie en fonction du type de contenu ou du type de rôle utilisateur.
Comment supprimer les changements locaux avec git que l'on n'a pas commit ?
Pour supprimer les changements locaux avec git que vous n'avez pas commit, vous pouvez utiliser la commande git checkout
. Cette commande vous permet de revenir à une version précédente de votre répertoire de travail.