2011-04-02 15 views
6

En un sitio Plone con la estructuraAñadir contenido de las subcarpetas en una vista de carpeta Plone

root 
    +-topic1 
    | +-page1 
    | +-page2 
    | 
    +-topic2 
     +-page3 
     +-page4 

Quiero tener una vista de carpeta root que muestra el contenido de las subcarpetas, como:

[http://host/plone/root/] 

TOPIC1 

- page1 
- page2 

TOPIC2 

- page3 
- page4 

con "TOPIC1" y "TOPIC2" como títulos y "página1" etc. vinculados a las páginas reales.

Simplemente usar una colección que agregue las páginas en las carpetas tema1 y tema2 no es suficiente ya que no genera los subtítulos.

He buscado en el repositorio de productos Plone y en la web una extensión que proporciona una vista como esta, sin éxito. Hay fuentes que dicen que esto se puede hacer con vistas de visualización personalizadas, pero como soy nuevo en Plone, dudo en profundizar en la piratería.

¿Hay algún producto/extensión Plone que pueda proporcionar dicha vista en el contenido de la subcarpeta?
¿O hay incluso una solución integrada de la que no tengo conocimiento?

Respuesta

3

lo he descubierto.

Básicamente, lo que quiere hacer es extender la plantilla folder_summary_view para incluir una lista de contenido para carpetas y elementos de colección.

  1. Crear una copia. En la ZMI, vaya a portal_skins/plone_content/folder_summary_view y pulse Personalizar. Vaya a la copia al portal_skins/custom/folder_summary_view y cámbiele el nombre a (por ejemplo) list_contents.

  2. Actívelo como vista de carpeta. Vaya a portal_types/Folder y agregue manualmente list_contents a la lista en Métodos de vista disponibles.

  3. Asegúrese de que la vista solo muestre carpetas y colecciones. Ajustar el código que genera los detalles de entrada en <tal:general_check condition="python: item_type in ('Folder', 'Topic')"> GENERATE ENTRY </tal:general_check>

  4. Agregue el código para listar el contenido del artículo. Puede robarlo de portal_skins/plone_content/folder_listing ya que esto hace lo que necesita.Copiar la parte <metal:listingmacro> ... <metal:listingmacro>, pero reemplace la definición folderContents en <tal:foldercontents> con esta línea para recuperar el contenido:

folderContents folderContents|nothing; 
folderContents python:item_object.queryCatalog(**contentFilter) or 
item_object.getFolderContents(contentFilter, batch=True, b_size=limit_display or 100); 

(todo en una línea)

Nota: item_object es el nombre dado al artículo en la lista externa.

Si activa list_contents como vista de carpeta ahora, funciona exactamente como se solicita en la pregunta.

Advertencia: Esto es un copiar-pegar-cortar por un principiante de Plone que funciona para mí ™. Úselo bajo su propio riesgo.

0

Puede utilizar aquí una Colección, con las dos rutas configuradas como criterios. Y si lo desea, puede usar esta colección como vista predeterminada para "raíz". Eche un vistazo a las carpetas y colecciones predeterminadas de "noticias" y "eventos", ubicadas en él.

http://plone.org/documentation/manual/plone-4-user-manual/using-collections/adding-collections

+0

Gracias, pero hasta donde he probado, una colección simplemente agrega las páginas, no produce subtítulos ni ordena las páginas por carpeta. Este es un requisito He aclarado la pregunta anterior. – fbmd

+0

Le recomendaría que use Collections (internamente llamado ATTopic) de todos modos. Entonces es posible escribir una vista personalizada para cumplir con sus requisitos. – chrigl

+0

http://plone.org/documentation/manual/developer-manual/archetypes/a-simple-at-product/view-template – chrigl

2

También puede lograr esto simplemente a través de la interfaz de usuario de Plone-:

Instalar Products.ContentWellPortlets y asignar dos collection-portlets debajo del contenido a-vista-elemento por defecto de su portal (Fe 'de primera plana', como por defecto).

+0

Gracias, pero he abandonado a Plone desde entonces. Demasiada molestia para tareas demasiado simples. : -/ – fbmd

+0

De nada. Solo por curiosidad: ¿qué elegiste en su lugar? –

+0

Un homebrew para una solución rápida (http://pypi.python.org/pypi/pycms), y mirando a Django. :-) – fbmd

Cuestiones relacionadas