ContentRules框架对触发规则的对象运行脚本的操作
collective.contentrules.runscript的Python项目详细描述
简介
在plone 3中,内容规则是一个强大的特性。但是为每个小动作创建一个文件系统产品 我们想表演得有点过头了。为了帮助那些集成商和管理员,runscript 带来注册条件的能力,一旦匹配,将执行您在 在规则配置窗体中配置的脚本。
为了满足一些用例,该产品提供了一些可能有用的示例脚本:
标记在父项之后
Adds the parent’s title as a tag to the item (appends to the subject field). E.g.:
Given the structure: Plone/Folder1/Folder2/Folder3/object >> object.Subject() () After Plone/Folder1/Folder2/Folder3/object/tag_after_parent >> object.Subject() ('Folder3',)
- 在父项之后标记
有条件地将父标题作为标记添加到项(附加到主题字段)。 递归地测试是否在对象父路径的每个部分上设置title_as_tag属性,并添加 作为对象上的标记的部件标题。 例如:
Given the structure: Plone/Folder1/Folder2/Folder3/object Plone.title_as_tag is undefined Folder1.title_as_tag is False Folder2.title_as_tag is True Folder3.title_as_tag is True >> object.Subject() () After Plone/Folder1/Folder2/Folder3/object/tag_after_parents >> object.Subject() ('Folder2','Folder3')
- 设置属性
> p>向上下文对象添加新属性,或只设置现有对象。 在后一种情况下,类型必须相同。 参数包括名称、值、类型。 例如: Given the structure: Plone/Folder1/Folder2/Folder3 After Plone/Folder1/Folder2/Folder3/set_property?name=title_as_tag&value=True&type=boolean >> Plone.Folder1.Folder2.Folder3.getProperty('title_as_tag') == True True
其他人可能会在未来出现
You can give your suggestions.
我们可以很容易地编写一个新的脚本,只需要从将要触发的对象中遍历它 情况。
安装
将collective.contentrules.runscript作为egg或 从源头上。不需要(通用安装程序)安装,操作是 使用zcml注册。所以一定要把包添加到你的zcml slug列表中 [实例]部分。
如果要使用任何可用的示例脚本,则应通过 加载项配置。
用法
转到plone控制面板,选择内容规则并添加新规则。 在“操作”下,您现在有了一个新选项:运行脚本。
在“configure element”表单中,指向一个知道如何对对象执行所需操作的脚本 这将触发规则。
如果安装了示例脚本,则可以使用“tag_after_parent”脚本并使每个对象都匹配 按父级标题分类的规则条件。
如果在配置表单中通知的脚本不能从触发规则的对象中遍历 根据“未找到脚本时失败”标志的状态,将引发或不会引发异常。
如果将规则设置为“添加到容器”事件,则找不到脚本意味着无法完全填充该添加。
学分
此包高度基于collective.contentrules.mailtolocalrole。
更改日志
0.4(2011-02-22)
- 添加了z3c.autoinclude.plugin入口点
- 修复了对中.runscript.runscriptaction工厂的引用 configure.zcml(感谢sascha gresk)
0.3(2009-07-27)
- 添加了向脚本传递参数的选项
- 在父脚本和set属性示例脚本之后添加tag_
0.2(2009-07-23)
- 添加了限制/不限制遍历选项
- 修复了包装问题
0.1.1(2009-07-23)
- 修复了包装问题
0.1(xx xx-xx-xx)
- 初始版本