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

fbm*_*bmd 6 plone

在具有结构的Plone站点上

root
   +-topic1
   |    +-page1
   |    +-page2
   |
   +-topic2
        +-page3
        +-page4
Run Code Online (Sandbox Code Playgroud)

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

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

TOPIC1

- page1
- page2

TOPIC2

- page3
- page4
Run Code Online (Sandbox Code Playgroud)

以"TOPIC1"和"TOPIC2"作为标题,"page1"等链接到实际页面.

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

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

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

fbm*_*bmd 3

我想到了。

\n\n

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

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

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

  4. \n
  5. 确保视图仅显示文件夹和集合。将生成条目详细信息的代码包装在<tal:general_check condition="python: item_type in (\'Folder\', \'Topic\')"> GENERATE ENTRY </tal:general_check>

  6. \n
  7. 添加用于列出项目内容的代码。您可以从中窃取它,portal_skins/plone_content/folder_listing因为这已经完成了所需的工作。复制该<metal:listingmacro> ... <metal:listingmacro>部分,但用此行替换folderContents定义<tal:foldercontents>以检索内容:

  8. \n
\n\n

\n\n

folderContents folderContents|nothing;\nfolderContents python:item_object.queryCatalog(**contentFilter) or\nitem_object.getFolderContents(contentFilter, batch=True, b_size=limit_display or 100);\n
Run Code Online (Sandbox Code Playgroud)\n\n

(全部排成一行)

\n\n

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

\n\n

如果您现在激活list_contents为文件夹视图,它的工作原理与问题中的要求完全一样。

\n\n

警告:这是 Plone 新手的复制粘贴黑客行为,适用于我\xe2\x84\xa2。使用风险自负。

\n