Drupal 9 - Désactiver un bloc pour une page spécifique

Drupal propose un mécanisme en backoffice pour contrôler l'affichage des blocs, mais il est nécessaire parfois de mettre en place une logique un peu plus complexe.

Ici nous allons masquer le block "pagetitleblock_content" de la région "header" quand on est sur un nœud de type « petite_annonce » via le hook HOOK_preprocess_page :

function petites_annonces_preprocess_page(&$vars) {
  if(($node = \Drupal::routeMatch()->getParameter('node')) && $node->bundle() === 'petite_annonce') {
    if (isset($vars['page']['header']['pagetitleblock_content'])) {
      unset($vars['page']['header']['pagetitleblock_content']);
    }
  }
}

 

Contenus en rapport

snippet · 4 Oct 2016 Drupal - Afficher un bloc où l'on veut On commence par récupérer le service de gestion des blocks : Bloc « classique » On construit le bloc que l'on souhaite via son id Bloc généré par une vue Pour… snippet · 15 Oct 2020 Drupal - Afficher un formulaire dans un bloc ou un contrôleur Il est possible dans un contrôleur ou un bloc de récupérer un formulaire et de l'afficher comme n'importe quelle autre variable. À l'époque de drupal 7 on…

Commentaires (0)