Drupal 7 - Afficher un bloc où l'on veut

Posté le Jeudi 8 octobre 2015 - 18:04
Dernière mise à jour le Vendredi 26 janvier 2018 - 18:35

Afficher un block créé via l'administration

$identifiant = 1; //c'est l'identifiant du bloc visible dans l'url lors de sa modification
$block = block_load('block', $identifiant);

$monBlock = _block_get_renderable_array(_block_render_blocks(array($block)));

//Code pour afficher le block
//Peut aussi être passé à un template via theme()
print render($monBlock); 

Afficher un block créé dans un module

$module = 'mon_module' //Le nom du module définissant le bloc
$identifiant = 'mon_bloc'; //le nom "machine" du bloc, défini dans HOOK_block_info()

$block = block_load($module, $identifiant);
$monBlock = _block_get_renderable_array(_block_render_blocks(array($block)));

//Code pour afficher le block
//Peut aussi être passé à un template via theme()
print render($monBlock); 

Afficher un block créé dans views

Note : pour cela il est préférable d'utiliser le type d'affichage "Embed" ou "Intégré" de Views, qui est fait pour ça.

$nom_vue = 'mon_bloc'; //le nom "machine" de la vue
$nom_affichage = 'block1' //le nom "machine" de l'affichage ("Display")

$block = block_load('views', $nom_vue.'-'.$nom_affichage);
$monBlock = _block_get_renderable_array(_block_render_blocks(array($block)));

//Code pour afficher le block
//Peut aussi être passé à un template via theme()
print render($monBlock); 

 

 

Commentaires

ggive

Posté le Vendredi 9 octobre 2015 - 09:44

Salut Kevin,
Merci pour ce super post dont je vais m'empresser de tester et utiliser au besoin.

Ajouter un commentaire

Ne sera pas publié

HTML restreint

  • Balises HTML autorisées : <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...