[Drupal 7]
J'ai un bloc que j'ai créé dans les vues appelé "handy_tips-block_1".
Maintenant, je veux l'insérer dans le champ corporel de mon nœud.
Comment puis-je faire cela?
J'ai trouvé un guide sur ici , qui suggère d'utiliser le code suivant:
<?php
print $block = module_invoke('views', 'block_view', 'handy_tips-block_1');
print render($block['content']['#content']);
?>
Cependant, tout ce qui est imprimé, ce sont les mots "Array". (J'ai activé le filtre d'entrée PHP pour le corps).
Remarque: dans le code publié, j'ai également essayé de remplacer les "vues" par divers éléments tels que "bloquer". J'ai utilisé 'handy_tips-block_1' comme ID, car c'est ce qui est affiché sur le lien de configuration de la page d'administration des blocs.
La sortie est "tableau" car en effet c'est un tableau, alors je suppose que vous voulez imprimer votre tableau pour voir quels champs vous pouvez utiliser:
print_r($block);
print_r($block['content']['#content']);
print_r(render($block['content']['#content']);
À propos de l'affichage d'une vue, vous pouvez utiliser cette ligne de code dans votre modèle pour appeler une vue:
echo views_embed_view('view-name', $display_id = 'display-name');
par exemple, dans mon node.tl.php, je veux insérer une vue appelée test view
et je veux utiliser son affichage Block avec le nom de la machine block_test
, alors je peux utiliser:
echo views_embed_view('test_view', $display_id = 'block_test');
(N'oubliez pas d'utiliser nom de la machine de votre vue et nom de la machine de votre écran).
J'espère que ces informations vous seront utiles.
Ma façon préférée d'incorporer des vues dans des fichiers de modèle est avec la fonction views_embed_view () .
C'est vraiment facile à utiliser:
<?php print views_embed_view('view-name', 'display-name','arguments'); ?>
Je recommande d'utiliser soit le module Entity Views Attachment , qui vous permet d'insérer une vue dans votre module comme s'il s'agissait d'un champ, soit le module Display Suite qui vous permet de personnaliser la disposition de votre nœud et y insérez toutes sortes de blocs.
Je me rends compte que c'est un vieux fil maintenant, mais je le cherchais aussi et j'ai trouvé le module BlockReference . Il vous permet d'associer un bloc à un nœud en tant que champ.
Ça marche un régal!