Publié le

Afficher un bloc Drupal sur toutes les pages sauf pour certains types de contenus

Par défaut, les condition de visibilité des blocs Drupal sur les Types de contenus permettent de choisir sur quels type de contenus on affiche un bloc, et donc réciproquement ceux sur lesquels ils ne s'affichent pas.

Même si ce fonctionnement paraît tout à fait logique à première vue, il ne permet de filtrer que les types de contenus et non les pages générées à partir de routes programmatiques (celles issues de vues par exemple). Il devient alors compliqué de créer une condition du type "Afficher le bloc sur toutes les pages du site sauf sur le type de contenu Article".

Un petit module a été créé pour répondre à ce besoin, j'ai nommé le module Block Visibility Conditions.

Une fois celui-ci installé et configuré, un nouvel onglet de visibilité Not Node Type apparaît lors de la configuration d'un bloc permettant ainsi d'inverser la condition et d'exclure uniquement le type de contenu Article pour reprendre l'exemple précédent. Le bloc s'affichera donc désormais sur toutes les pages du site, même celles générées programmatiquement sauf sur le/les types de contenu sélectionnés.