Dans Drupal 6 une vue peut être incorporée dans un nœud comme suit:
$viewName = 'LatestNews';
print views_embed_view($viewName);
Cela ne fonctionne pas pour drupal 7. Quelle est la fonction pour intégrer des vues dans drupal 7?
Dans Drupal 7, vous pouvez utiliser ce code.
Pour une page de visualisation
print views_embed_view('name_of_view','page_1', $node->nid);
Pour un bloc de vue
print views_embed_view('faculty_core','block_1', $node->nid);
Le module EVA peut également attacher des vues aux nœuds.
Pour afficher une vue dans un modèle de nœud, vous utilisez le code suivant.
// Load the view.
$view = views_get_view('machine_name_of_view');
// Set the active display.
$view->set_display('your_view_display_name');
// Set any needed argument.
$view->set_arguments(array(arg(0), arg(1)));
// Execute the view.
$view->execute();
// Render the view.
print $view->render();
Pourquoi pas:
print views_embed_view($view_machine_name, $view_display_name, $arg1, $arg2);
où $ arg, $ arg2, etc. sont facultatifs.
Ou utilisez le module Viewfield pour incorporer une vue en tant que champ.
Une solution consiste à utiliser Panelizer pour remplacer le contenu du nœud respectif.
Disons par exemple que vous avez une poignée de pages uniques qui nécessitent une vue attachée.
1) Vous pouvez utiliser le type de contenu Page ou peut-être créer un nouveau type de contenu qui sera spécifiquement panélisé.
2) Activez Panelizer pour ce type de contenu, assurez-vous de le configurer sur "Autoriser le choix d'affichage par enregistrement" de cette façon, vous pouvez configurer plusieurs affichages de panelizer qui seront adaptés à chaque page. (chaque panneau d'affichage peut avoir son propre ensemble de vues attaché)
3) À partir de là, vous créez simplement une vue (j'aime utiliser les volets de contenu pour cela) et l'ajoutez à l'affichage de contenu Panelizer de votre choix.
Cela vous permet de réutiliser un seul type de contenu qui n'a pas vraiment besoin de son propre ensemble de champs, mais qui peut potentiellement être utilisé pour référencer d'autres entités (en tant que champ) ou référencer des vues.
Ajoutez le module Paragraphs et vous avez un type de contenu Swiss Army Knife. En parlant de cela, cela ferait un nom parfait pour le type de contenu personnalisé utilisé à cet effet ... Hmm ....
Disons simplement que le premier paramètre est le nom de la vue, le deuxième nom d'affichage et après cela, vous pouvez passer des paramètres de filtre contextuels.
Pour que "$ node-nid", le troisième paramètre dépend de votre affichage ... ce qu'il attend pour le premier filtre contextuel - id n'a pas à être id de nœud. Bien sûr, vous n'êtes pas limité à un paramètre - passez autant que vous en avez en vue ... ou n'en passez aucun si votre vue n'a pas de filtres contextuels.
Un module Drupal 7 et 8 très configurable est views_field_formatter qui vous permet d'incorporer une vue en tant que formateur de champs