J'ai créé un bloc personnalisé dans le CMS Drupal. Disons qu'il s'appelle "test_block". Existe-t-il un moyen de rendre ce bloc dans un fichier modèle en utilisant le nom du bloc?
Merci,
D7:
<?php
$block = module_invoke('module_name', 'block_view', 'block_delta');
print $block['content'];
?>
'module_name' = Le nom de la machine du module (c'est-à-dire le nom du dossier du module). Cela est également vrai pour les modules de base, par exemple, "recherche", "utilisateur" et "commentaire" fonctionneraient tous ici.
'block_delta' = Le nom de la machine du bloc. Vous pouvez déterminer ce que c'est en visitant la page d'administration du bloc et en modifiant le bloc. L'URL pour modifier un bloc de formulaire Web, par exemple, serait quelque chose comme:
Drupal 7: admin/structure/block/manage/ webform / client-block-11 /configurer
Dans cet exemple, 'webform' est le nom du module, 'client-block-11' est le delta du bloc.
Les blocs personnalisés auront le nom de module "bloc" et un numéro pour un delta, que vous pouvez également trouver en modifiant le bloc.
Plus d'informations: http://drupal.org/node/26502
====== OR =============
<?php
//suppose 98 is the id of the block
$block =block_load('block',98);
$output = drupal_render(_block_get_renderable_array(_block_render_blocks(array($block))));
print $output;
?>
$block_entity = Drupal\block_content\Entity\BlockContent::load(BLOCK_ID);// BLOCK_ID
$block_view = \Drupal::entityTypeManager()->getViewBuilder('block_content')->view($block_entity, 'DISPLAY_VIEW_NAME');
$rendered_block = ['#markup' => render($block_view)];
Au niveau de votre modèle, vous devriez pouvoir faire quelque chose comme ceci:
<?php
$test_block = "test_block";
print views_embed_view($test_block);
?>
Cela affichera votre bloc dans le modèle.
Essaye ça
$block = module_invoke('block', 'block_view', 'test_block');
print render($block['content']);
Si vous demandez comment utiliser un modèle personnalisé pour ce bloc, la réponse est:
En supposant que le nom de la machine de votre bloc est test_block, puis créez un fichier appelé
block--block--test_block.tpl.php
Dans votre thème