在Plone文件夹视图中列出子文件夹的内容

时间:2011-04-02 22:49:43

标签: plone

在具有结构

的Plone网站上
root
   +-topic1
   |    +-page1
   |    +-page2
   |
   +-topic2
        +-page3
        +-page4

我希望有一个文件夹root的视图,其中列出了子文件夹的内容,例如:

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

TOPIC1

- page1
- page2

TOPIC2

- page3
- page4

以“TOPIC1”和“TOPIC2”作为标题,“page1”等链接到实际页面。

仅使用聚合topic1和topic2文件夹中的页面的集合是不够的,因为它不会生成子标题。

我已经在Plone产品库以及网络上搜索了一个提供此类视图的扩展,但没有成功。有消息称这可以通过自定义显示视图来完成,但由于我是Plone的新手,我不愿意深入研究这些。

是否有Plone产品/扩展程序可以提供子文件夹内容的这种视图?
或者是否有我不知道的内置解决方案?

3 个答案:

答案 0 :(得分:3)

我明白了。

基本上,您要做的是扩展folder_summary_view模板以包含文件夹和集合项的内容列表。

  1. 创建副本。在ZMI中,转到portal_skins/plone_content/folder_summary_view并点击自定义。转到portal_skins/custom/folder_summary_view的副本并将其重命名为(例如)list_contents

  2. 将其作为文件夹视图激活。转到portal_types/Folder并手动将list_contents添加到可用视图方法中的列表中。< / p>

  3. 确保视图仅显示文件夹和馆藏。<tal:general_check condition="python: item_type in ('Folder', 'Topic')"> GENERATE ENTRY </tal:general_check>

  4. 中包含生成条目详细信息的代码
  5. 添加用于列出商品内容的代码。您可以从portal_skins/plone_content/folder_listing窃取它,因为这已经完成了所需的操作。复制<metal:listingmacro> ... <metal:listingmacro>部分,但用此行替换folderContents中的<tal:foldercontents>定义以检索内容:

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

    (全部在一行)

    注意:item_object是外部列表中项目的名称。

    如果您现在激活list_contents作为文件夹视图,它的工作方式完全符合问题的要求。

    警告:这是一个适用于我的Plone新手的复制粘贴黑客攻击。使用风险自负。

答案 1 :(得分:2)

您也可以通过Plone-UI实现这一目标:

安装Products.ContentWellPortlets并将内容下面的两个集合portlet分配给门户网站的default-view-item(默认为f.e.'front-page')。

答案 2 :(得分:0)

您可以在此处使用Collection,并将两个路径配置为条件。 如果您愿意,可以将此集合用作“root”的默认视图。查看位于其中的默认“新闻”和“事件”文件夹和集合。

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