操作(Actions)
在Plone站点中,我们可以通过页首标签、内容标签、个人工具栏中的链接等形式,执行各种操作(Action)。这些操作是在几个Plone内置工具(Tool)中定义的,如 portal_actions ,所以这些工具又统称为 Actions Providers 。我们可通过ZMI,重新设置Action属性,如修改操作的权限、标题等。
Action基本属性
进入Plone ZMI,点击 portal_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,都属于这个类别。
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操作。