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
On commence par récupérer le service de gestion des blocks :
$block_manager = \Drupal::service('plugin.manager.block');
On construit le bloc que l'on souhaite via son id
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.
Ajouter un commentaire