
Vistas embebidas
Cuando hay dos tipos de contenidos relacionados entre ellos, muchas veces nos gustaría que en el mismo nodo se pudiese ver también algunos datos de los relacionados.
Ésto se puede conseguir de varias formas, empezando por las vistas con argumentos y usando éstas en los paneles.. lo único que conlleva al problema de ir creando menús y paneles a medida.. Por lo que la mejor idea es la de las vistas embebidas.
Pasos para crear vistas embebidas (en este ejemplo el tipo de contentido "reunión" dependerá de "proyecto"):
- Crear el tipo de contenido proyecto.
- Crear el tipo de contenido reunión, y un campo tipo nodereference hacia "proyecto".
- Crear la vista de las reuniones, la que se unirá a los nodos tipo proyecto:
- Tipo página
- Cómo se quiera mostrar los datos, resumen, lista..
- Argumentos: el campo nodereference
- Filtro: Tipo de contenido- reunión
- Crear un node-proyectos.tpl.php e introducir el siguiente código
<?php
// cargar los 'metadata'
global $current_view;
// define el nid del nodo como el argumento
$current_view->args[0]=$node->nid;
// selecciona la vista para la view1
$view1 = views_get_view('nombre_de_la_vista');
// Añade clase
print '<div class="clase_vista">';
// El titulo de la vista incrustada
print '<h2>' . 'Título' . '</h2>';
// envia los argumentos de la vista y pinta el resultado en el contenido
$vista = (views_build_view('embed', $view1, $current_view->args, false,
false));
if ($vista) { print $vista; }
else { print 'No hay ...'; }
print '</div>';
?>
Y ya está, y de esta forma se pueden incrustar todas las vistas que se desean en los tipos de contenidos
En los casos en los que se añadan bastantes vistas (un ejemplo reuniones, documentos, tareas..) para poder acceder rápidamente al apartado que nos interese recomendamos la utilización de anclas.
Al comienzo del documento se pondrian los enlaces:
<div class="proyectos_anclas" >
<a href="#documentos">Documentos</a>
<a href="#tareas">Tareas</a>
<a href="#reuniones">Reuniones</a>
<a href="#bonos">Bonos</a>
</div>
y por encima del código de la vista se pondría la llamada
?> <div class="proyectos_anclas_titulos"> <a name="tareas">Tareas</a> </div> <?php
Basado en el artículo:
context-sensitive embedded views
Ejemplo:
Todavía estamos montando esta cocina con Drupal, así que probablemente más de un detalle esté sin acabar en esta web
Buscar
Navegación del libro
Tags de ARTÍCULOS
Inicio de sesión
Navegación
Nuevos
- fernando
- dsevila
- zialdoka
- ek10
- juanramonperez
Comentarios
soy novata
soy novata endrupal y no comprendo como hacer para poder ver post relacioandos al post que se está leyendo en drupal. Lo que usted indica es con el modulo views?
Ejemplos de utilización de vistas embebidas
Muy bueno el artículo Bea, un día que no estoy en la ofi y receta sorpresa, :).
Igual podrías añadir una capturilla de pantalla para mostrar cómo queda, ¿no? Lo digo porque como el ejemplo es del gestor de proyectos con drupal que venimos utilizando en Investic, pues no podemos mostrarlo directamente.
Otro ejemplo donde hemos utilizado vistas embebidas en el node-tipodecontenido.tpl.php es el sistema de blogs del Canalextremadura http://tv.canalextremadura.es/participa/blogs
ummm, a ver si localizo algún que otro ejemplo