Orchard 1.3中新增了一个十分重要的功能,这就是规则(Rules)。它相当于一个事件触发器,可以在某个事件发生的时候执行某种操作。这个功能的最大亮点就是:事件和操作都可以由模块开发人员自由定义,使用者只用在后台管理中组合这些功能来达到自己所需的效果。最常见的应用就是邮件通知了。我们可以设定当有新评论提交的时候来通知管理员,这样就可以及时提醒管理员来处理所提交的评论了。
启用Rules功能
首先如果要使用Rules功能就必须先启用它。进入Orchard后台管理的Modules菜单可以看见新增了一个Rules的分类。
默认情况下(Orchard安装版),Rules分类下共有四个功能:
Comments Rules:定义了一个评论特有的操作——关闭评论。
Contents Rules:定义对内容操作的一些基本事件,如:创建内容,修改内容,发布内容和删除内容。Content是Orchard中一个基础内容,Orchard中的所有类型的内容都是继承它的。所以Content中定义事件适用于所有其他类型的内容。
Rules:提供管理和配置系统事件触发的基本功能。所有的Rules功能都需要依赖于它,启用它后在后台就会新增一个Rules菜单用于对规则的管理。
Scripting Rules:一个可以执行脚本语言的模块定义的规则。暂时不知道能做什么用。
通常我们要用规则的功能就需要启用Rules和Content Rules这两个功能。另外还有一个Email Messaging模块在Orchard安装版中没有默认提供,但我们也可以去Gallery安装一个。在这个Email Message的Rules中定义了一个发送Email的操作。
定义一个规则
下面我们就通过定义一个通知审核评论的规则,来体验一下Orchard规则的用法。
首先我们需要启用Rules、Content Rules和Email Rules这三个功能。并且配置好SMTP服务。安装Email Message后,可以在Settings下面可以看到一个Email菜单,再那里配置就可以了。
然后,进入Rules菜单,点击Add a new Rule按钮,再接下的界面中输入规则名称,如:
点击Save
点“Add a new Event”来添加一个评论创建的事件。
选择ContentCreated事件
并指定此事件仅适用于Comment类型。点击Save后回到编辑规则的界面,再点击“Add an Action”。
选择“Send e-mail”事件。
配置需要提醒的对象及提醒邮件的内容。这里提醒对象设置为站点管理员,所以我们还需在Users里面添加好管理员的邮箱。(这个地方的提醒对象不能指定评论审核员,我觉得此处功能需要再细化,也许这个邮件提醒的规则应该做到评论模块中。希望能在以后的版本中Orchard能对这个地方有所改进。)另外看见邮件标题和内容旁边的那个小图标没有,这个表示此处的内容可以使用可替换关键字功能(Tokens)。这也是Orchard 1.3的新增功能,不过不是本文的重点就先不介绍了。点击Save回到规则编辑页面。
最后点击“Save and Enable”就可以完成规则的配置了。(注:如果直接点击保存此规则是不会生效的,一定要启用才行)
最后,我们随便发表一个评论就能看见效果了。
总结
目前规则功能用下来的感觉就是功能还很简单,事件触发规则还比较弱,目前只能做到某一类型的内容,但是还不能限定某一时间范围,某一人操作的内容。也就是说我们可能需要更加细致的规则。但是总的来说规则功能的发展潜力应该是无限的。比如:消息通知,流程处理等地方应该都可以发挥它的作用。
==========================================
作者:二十四画生
转载请注明来源于博客园——二十四画生的Blog,并保留有原文链接。