Imagen de bea

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"):

  1. Crear el tipo de contenido proyecto.
  2. Crear el tipo de contenido reunión, y un campo tipo nodereference hacia "proyecto".
  3. 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
  4. 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:
Ejemplo vistas embebidas

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

Todavía estamos montando esta cocina con Drupal, así que probablemente más de un detalle esté sin acabar en esta web

Inicio de sesión

Navegación

Comentarios recientes

Nuevos

  • fernando
  • dsevila
  • zialdoka
  • ek10
  • juanramonperez