En Drupal 6, una vista se puede incrustar en un nodo de la siguiente manera:
$viewName = 'LatestNews';
print views_embed_view($viewName);
Esto no funciona para drupal 7. ¿Cuál es la función para incrustar vistas en drupal 7?
En Drupal 6, una vista se puede incrustar en un nodo de la siguiente manera:
$viewName = 'LatestNews';
print views_embed_view($viewName);
Esto no funciona para drupal 7. ¿Cuál es la función para incrustar vistas en drupal 7?
Respuestas:
En Drupal 7 puedes usar este código.
Para ver una página
print views_embed_view('name_of_view','page_1', $node->nid);
Para un bloque de vista
print views_embed_view('faculty_core','block_1', $node->nid);
Para mostrar una vista en una plantilla de nodo, utilice el siguiente código.
// 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();
pre_execute()
antes execute()
.
Por qué no:
print views_embed_view($view_machine_name, $view_display_name, $arg1, $arg2);
donde $ arg, $ arg2, etc. son opcionales.
O utilice el módulo Viewfield para incrustar una vista como campo.
Una solución es usar Panelizer para anular el contenido del nodo respectivo.
Digamos, por ejemplo, que tiene un puñado de páginas únicas que necesitan una vista adjunta.
1) Puede usar el tipo de contenido de la página o tal vez crear un nuevo tipo de contenido que se panelizará específicamente.
2) Habilite Panelizer para ese tipo de contenido, asegúrese de configurarlo en "Permitir opción de visualización por registro" de esa manera puede configurar múltiples pantallas de panelizador que se adaptarán a cada una fuera de la página. (cada pantalla del panelizador puede tener su propio conjunto de vistas adjuntas)
3) Desde aquí, simplemente crea una vista (me gusta usar los paneles de contenido para esto) y la agrega a la pantalla de contenido del Panelizador de su elección.
Esto le permite reutilizar un solo tipo de contenido que realmente no necesita su propio conjunto de campos, pero que podría usarse para hacer referencia a otras entidades (como un campo) o para hacer referencia a vistas.
Agregue los párrafos módulo y tendrá un tipo de contenido de navaja suiza. Hablando de eso, sería un nombre perfecto para el tipo de contenido personalizado utilizado para este propósito ... Hmm ...
Mencionemos que el primer parámetro es el nombre de la vista, el segundo nombre para mostrar y luego puede pasar los parámetros del filtro contextual.
De modo que "$ node-nid", el tercer parámetro depende de su vista ... lo que espera para el primer filtro contextual: la identificación no tiene que ser la identificación del nodo. Por supuesto, no está limitado a un parámetro: pase tantos como tenga a la vista ... o no pase ninguno si su vista no tiene filtros contextuales.
Un módulo Drupal 7 y 8 muy configurable es views_field_formatter que le permite incrustar una vista como formateador de campos