2011-04-02 152 views
6

在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

我想通了。

基本上,你想要做的是擴展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添加到列表中可用查看方法

  3. 確保該視圖僅顯示文件夾和集合。將生成條目詳細信息的代碼包裝在<tal:general_check condition="python: item_type in ('Folder', 'Topic')"> GENERATE ENTRY </tal:general_check>

  4. 添加用於列出項目內容的代碼。你可以從portal_skins/plone_content/folder_listing偷它,因爲這已經做了什麼需要。在<tal:foldercontents>這一行復制<metal:listingmacro> ... <metal:listingmacro>一部分,但更換folderContents定義檢索內容:

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新手爲我工作的複製粘貼黑客攻擊。使用風險自負。

0

您可以在這裏使用集合,將兩條路徑配置爲條件。 如果你想,你可以使用這個集合作爲「root」的默認視圖。查看位於其中的默認「新聞」和「事件」文件夾和集合。

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

+0

謝謝,但據我測試,集合只是聚合頁面 - 它既不產生副標題也不按文件夾排序頁面。這是一項要求。我已經澄清了上述問題。 – fbmd 2011-04-03 07:48:16

+0

無論如何,我建議你使用Collections(內部稱爲ATTopic)。然後可以編寫自定義視圖來滿足您的要求。 – chrigl 2011-04-03 11:55:37

+0

http://plone.org/documentation/manual/developer-manual/archetypes/a-simple-at-product/view-template – chrigl 2011-04-03 11:56:25

2

你也可以通過Plone的-UI實現這一目標:

安裝Products.ContentWellPortlets和內容發送到您的門戶的默認視圖項(FE「頭版」如下面分配兩個集合的portlet默認)。

+0

謝謝,但我從此放棄了Plone。過於簡單的任務太麻煩了。 : -/ – fbmd 2012-12-10 07:34:28

+0

不客氣。只是爲了好奇:你選擇了什麼? – 2012-12-10 12:39:17

+0

一個快速修復的自制軟件(http://pypi.python.org/pypi/pycms),看着Django。 :-) – fbmd 2012-12-11 20:52:05