Translate to

Buscar

6 de junio de 2011

Mostrando nodos con bloques asociados

Lo que se requiere es mostrar páginas, cada una de las cuales tiene un banner superior y un banner lateral.

Además, que ambos banners sean fácilmente editables.

Quizás se pueda resolver con relativa facilidad usando Panels, pero tengo problemas usando ese módulo en un servicio de hosting que limita la memoria para PHP a 32 MB.

Idea
Que los banners sean nodos asociados a un tipo principal (usando CCK, node reference). La presentación sería usando bloques. Los bloques que contienen a los nodos se definirían usando Views.

Implementación
  1. Las páginas son nodos de tipo page.
  2. Creo el tipo de contenido banner_superior.
    En mi caso, contiene un CCK imagefield.
  3. Creo una vista que provee una lista de nodos de tipo banner_superior.
    No es necesario definir un display, como se verá en el paso 4.
  4. En el tipo de contenido page, agrego el campo field_page_banner_superior, de tipo node reference, con widget tipo select.
    En la configuración de este campo, indico que el select use los valores que devuelve la vista definida en el paso 3.
  5. Creo una vista para mostrar el banner superior en un display de tipo block.
    Tomo como base para la vista el nodo de tipo page.
    En Relationships, defino una relación de page con banner_superior a través del campo field_page_banner_superior.
    Esto permite que en Fields se puedan agregar los campos de banner_superior (indicando, al seleccionar el campo que se use la relación).
    Si han definido algunos nodos de prueba de tipo banner_superior, el preview listará todos ellos. En Arguments indico que se tome como argumento por default el url del nodo que se esté mostrando.
    Aunque no se muestre ningún campo del nodo page, el argumento permite que se muestre el node reference correspondiente a un nodo page determinado.
  6. En la configuración de bloques, coloco el banner superior en la región content-top.
  7. Creo el tipo de contenido banner_lateral y procedo del modo similar a banner_superior, colocando al final el banner en la región lateral derecha.

No hay comentarios:

Publicar un comentario

Más artículos