天天看点

定制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操作。  

继续阅读