天天看點

定制Plone2之操作(Actions)

操作(Actions)

在Plone站點中,我們可以通過頁首标簽、内容标簽、個人工具欄中的連結等形式,執行各種操作(Action)。這些操作是在幾個Plone内置工具(Tool)中定義的,如 portal_actions ,是以這些工具又統稱為 Actions Providers 。我們可通過ZMI,重新設定Action屬性,如修改操作的權限、标題等。

Action基本屬性

進入Plone ZMI,點選 portal_actions (如圖)。

定制Plone2之操作(Actions)

可以看到每個action都有如下幾個屬性:

Name(名稱)
Action的名稱,通常會直接顯示在界面上,如頁首标簽的顯示文字等。
Id(編号)
是所屬的Action Provider中的唯一辨別。
Action(操作)
規定了Action的執行内容,如連結、一段程式腳本等。最常用就是連結了,如頁首标簽所對應的操作。連結的一般寫法是:
string: $portal_url/your_link_address
      

其中$portal_url代表了Plone站點url,我們一般修改your_link_address部分,指向站點内某個内容就可以了。

這個欄目的内容需要符合tal表達式定義,可閱讀 使用Zope頁面模闆 簡單表達式 一節 了解詳細内容。

Condition(條件)
規定了Action顯示的限制條件,如果條件不滿足,這個action将不在界面中顯示。該欄目同樣要求符合tal表達式定義。
Permission(權限)
規定了允許該操作的使用者權限,對那些不具有該權限的使用者,這個action将不在界面中顯示。
Category(類型)
對action進行分類,不同的分類決定了action在界面中的顯示位置,一般常用的有:
  • portal_tabs:

    action将顯示在頁首标簽位置,Action Provider是portal_actions。Plone預設已經包括了Welcome、Members、News等幾個頁首标簽action。

  • user:

    action将顯示在個人工具欄,其Action Provider一般有portal_membership、portal_registration。如登入、注冊、我的檔案夾等action,都屬于這個類别。

其它類别還有folder、object、folder_buttons等。
Visible(是否可見)
決定該action是否可見。不選中Visible複選框,是屏蔽一個action的最簡單的方式。

如何定制頁首标簽

學習了解action的基本概念後,讓我們嘗試對Plone網站進行基本的定制修改。這裡介紹如何為Plone網站增加一個頁首标簽,這是非常常見的一種定制。

假如我們需要為網站增加一個顯示為 文檔 的頁首标簽,所有網站使用者都可以通過這個标簽檢視 documentation 檔案夾的内容。操作步驟如下:

  • 在Plone網站界面内,在根目錄下建立一個id為 documentation 的檔案夾;
  • 進入ZMI,打開Plone站點根目錄下的 portal_actions
  • 滾動頁面到底部,在表單中填寫如下内容:
    • Name: 文檔
    • Id: documentation
    • Action: string:$portal_url/documentation ,我們已經知道,這代表連結到Plone站點内的 documentation 檔案夾
    • Condition: 保持空白
    • Permission: View
    • Category: portal_tabs
    • Visible: 選中
  • 點選 Add 按鈕

此時,就完成了添加 文檔 頁首标簽的工作。

Action Providers

在Plone系統中,action定義分别屬于不同的Action Providers,在 'portal_actions' 的 'Action Providers' 标簽頁中,可以看到相關Providers清單。

Portal Membership Tool (portal_membership)
包含了與一個系統成員使用者相關的action操作,如 我的檔案夾 、 個人設定 等,大部分action的顯示由使用者登入與否決定,其分類一般都屬于 user 類型。
Portal actions (portal_actions)
包含了不屬于其它action providers的所有action操作定義, 大部分屬于 portal_tabs 類型。
Portal Registration (portal_registration)
包含了與使用者注冊相關的action操作定義,預設情況下,隻包含 join(注冊) 一個action定義。
Portal Discussion (portal_discussion)
包含了與讨論評注相關的action操作定義,預設情況下,隻包含 reply(回複) 一個action定義。
Portal Undo (portal_undo)
包含了撤銷操作相關的action操作定義,如 undo 與 ** quick undo ** ,這些action可友善使用者恢複以前版本的文檔内容。
Portal Syndication (portal_syndication)
包含了與syndication相關的action操作 ......
Portal Workflow (portal_workflow)
包含了控制工作流(workflow)狀态變遷的action操作定義,如狀态設定界面中 送出 、 釋出 等操作。
Portal Setup (portal_properties)
包含了設定Plone站點屬性相關的action操作。  

繼續閱讀