
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:

Comentarios
Ejemplos de utilización de vistas embebidas
Vie, 04/18/2008 - 19:33 — mirenMuy 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
Enviar un comentario nuevo