二十四画生的Blog


        ——开始学习Orchard框架
posts - 125, comments - 1391, trackbacks - 46, articles - 8
  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理
    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”就可以完成规则的配置了。(注:如果直接点击保存此规则是不会生效的,一定要启用才行)

 

最后,我们随便发表一个评论就能看见效果了。

 

总结
目前规则功能用下来的感觉就是功能还很简单,事件触发规则还比较弱,目前只能做到某一类型的内容,但是还不能限定某一时间范围,某一人操作的内容。也就是说我们可能需要更加细致的规则。但是总的来说规则功能的发展潜力应该是无限的。比如:消息通知,流程处理等地方应该都可以发挥它的作用。

 

 

 

==========================================

作者:二十四画生

出处: http://esshs.cnblogs.com/

转载请注明来源于博客园——二十四画生的Blog,并保留有原文链接。


标签: Orchard

Feedback

#1楼  回复 引用 查看   

2011-10-17 16:36 by doun      
drupal,早就有这些东西,不知道为什么orchard不学习使用drupal的架构

#2楼  回复 引用 查看   

2011-10-18 08:40 by Tso      
多谢,一直在学习楼主的研究成果。
欢迎楼主写一个系列,如何用Orchard来建一个CMS,目前这个orchard要想建一个标准的企业CMS站点,我的妈呀,要改的还真不是一点两点,我觉得工作量甚至比自已重写一个还复杂。
可是我学习orchard不精,但是国内我能找到的除了楼主,就没有别人的教程了。

#3楼  回复 引用 查看   

2011-10-23 23:04 by Tso      
不好意思,楼主, 又来请教问题了。
我下载源代码用VS2010打开,参照你的那篇“在Orchard中创建一个HelloWorld模块 ”,我发现在用vs2010添加一个helloword的后,居然里面多出了一些VS2010项目的自生成的好多文件,即使删除了,也不能运行编译,烦请指教,如果不用命令行工具,用VS2010如何像那样自已添加模块?

#4楼[楼主]  回复 引用 查看   

2011-10-24 10:14 by 二十四画生      
@Tso
用命令行方式创建模块不是很简单吗,干嘛不用啊。如果直接用VS创建应该也可以,编译不通过需要检查所需的引用是否都添加了。最好还是用命令行的方式来添加。

#5楼  回复 引用 查看   

2011-10-25 14:36 by Tso      
谢谢楼主,事实上是用命令行的形式,创建,除了你介绍的要手动活加的一些文件外,还是不能运行,对照了你的下载示例,还是多出了一些文件,再说命令行形式,也仍有一些引用不知该怎么弄?
关于你写的教程里,能不能说明一下,到底命令行要添加多少个文件,为何你的示例和教程中不对应呢,示例中多出了一堆文件,只有这些文件齐全了,才能运行这个示例?
盼复!

#6楼[楼主]  回复 引用 查看   

2011-11-01 08:51 by 二十四画生      
@Tso
当然用命令行只是创建一个项目结构。你还是需要编写一些关键代码的。你可以看看这篇文章的介绍:http://www.cnblogs.com/esshs/archive/2011/06/25/2090124.html

#7楼  回复 引用 查看   

2011-11-08 15:55 by superlandmxj      
楼主,有木有研究过webmatrix的内容?现在有些疑惑!