在具有结构的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产品/扩展可以提供子文件夹内容的这种视图?
或者甚至有一个我不知道的内置解决方案?
我想到了。
\n\n基本上,您想要做的是扩展folder_summary_view
模板以包含文件夹和集合项目的内容列表。
创建一个副本。在 ZMI 中,转到portal_skins/plone_content/folder_summary_view
并点击“自定义”。转到位于的副本portal_skins/custom/folder_summary_view
并将其重命名为(例如)list_contents
。
将其激活为文件夹视图。转到可用视图方法portal_types/Folder
中的列表并手动添加list_contents
到列表中。
确保视图仅显示文件夹和集合。将生成条目详细信息的代码包装在<tal:general_check condition="python: item_type in (\'Folder\', \'Topic\')"> GENERATE ENTRY </tal:general_check>
添加用于列出项目内容的代码。您可以从中窃取它,portal_skins/plone_content/folder_listing
因为这已经完成了所需的工作。复制该<metal:listingmacro> ... <metal:listingmacro>
部分,但用此行替换folderContents
定义<tal:foldercontents>
以检索内容:
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
是外部列表中项目的名称。
如果您现在激活list_contents
为文件夹视图,它的工作原理与问题中的要求完全一样。
警告:这是 Plone 新手的复制粘贴黑客行为,适用于我\xe2\x84\xa2。使用风险自负。
\n