Cet article a été écrit il y a plus de quatre ans, son contenu n'est peut-être plus d'actualité.
On commence par récupérer le service de gestion des blocks :
$block_manager = \Drupal::service('plugin.manager.block');Bloc « classique »
On construit le bloc que l'on souhaite via son id
$block_array = $block_manager->createInstance('system_breadcrumb_block', []);Bloc généré par une vue
Pour un bloc généré via une vue il faut utiliser le format
views_block:ID_VUE-ID_AFFICHAGEpar exemple :
$block_array = $block_manager->createInstance('views_block:articles_recents-block_1', []);Bloc formulaire exposé d'une vue
Pour un formulaire exposé (dans le cas d'une vue de recherche par exemple :
views_exposed_filter_block:ID_VUE-ID_AFFICHAGEpar exemple :
$block_array = $block_manager->createInstance('views_exposed_filter_block:recherche-page', []);Génération du bloc
On génère le renderable array :
$block_renderable = $block_array->build()et voila, plus qu'à l'afficher dans un template.
En plus court cela peut donner ça :
$block_manager = \Drupal::service('plugin.manager.block');
$variables['breadcrumbs']= [
'#type' => 'container',
"element-content" => $block_manager->createInstance('system_breadcrumb_block', [])->build(),
];et dans le template twig :
{{ breadcrumbs }}
Commentaires (0)