Saltar al contenido

Drupal – ¿Cómo muestro programáticamente un bloque de vista?

Luego de consultar especialistas en esta materia, programadores de varias ramas y maestros dimos con la respuesta a la cuestión y la plasmamos en esta publicación.

Solución:

Utilizar views_embed_view():

echo views_embed_view('view_machine_name', 'block_1');

Puede encontrar el nombre para mostrar haciendo clic en la pestaña y verificar su nombre en la barra de direcciones de su navegador: #views-tab-block_1 te dio block_1.

Si desea pasar un parámetro a la vista, use:

echo views_embed_view('view_machine_name', 'block_1', $param);

Por ejemplo:

echo views_embed_view('view_machine_name', 'block_1', $node->nid);

o:

echo views_embed_view('view_machine_name', 'block_1', $nid, $uid);

la respuesta de tostinni es la correcta en la mayoría de los casos. Sin embargo, si desea incluir el título Ver, es un poco más feo.

Desde el views_embed_view() documentación:

Tenga en cuenta que esta función NO muestra el título de la vista. Si desea hacer eso, deberá hacer lo que hace esta función manualmente, cargando la vista, obteniendo la vista previa y luego obteniendo $view->get_title().

Por ejemplo:

$name = 'view_machine_name';
$display_id = 'block_1';
$view = views_get_view($name);
if (!$view || !$view->access($display_id)) 
  return;

$view_content = $view->preview($display_id);
$title = $view->get_title();

Actualizado: @rojosnow señaló que los documentos señalan que debe obtener la vista previa antes de vocación get_title() así que he invertido esas dos líneas.

Más adelante puedes encontrar las crónicas de otros gestores de proyectos, tú también tienes el poder dejar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *