理解动作

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2009-07-30 11:12

    一个动作就是Drupal要做的一些事情。下面是一些例子:

• 将节点推到首页
• 将节点从未发布状态改为发布状态
• 删除一个用户
• 发送一封电子邮件
    这里面的每一种情况,都包含了一个定义明确的任务。程序员可能会注意到,前面列表中所给的这些动作与PHP函数有点类似。例如,你可以调用includes/mail.inc中的drupal_mail()函数来发送一封电子邮件。动作听起来与函数类似,其实动作就是函数。它们是一些特殊的函数:Drupal可以通过自省将其与事件关联起来(我们一会儿将对此详细介绍)。现在,让我们看看触发器模块。
 
老葛的Drupal培训班 Think in Drupal
 

Drupal版本:

第3章 drupal 钩子,动作,和触发器

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2009-07-30 11:10

使用Drupal时,一个常见的目标就是,当一个事件发生时需要做些东西。例如,站点管理员可能希望在一个消息发布以后收到一封电子邮件。或者当用户在评论中使用了违禁词语,那么就会被自动封号。本章将描述如何使用Drupal的事件钩子,从而当那些事件发生时,能够运行自己的代码。

Drupal版本:

篇外话

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2009-07-30 11:06

我们将与开源社区分享这一模块,这是自然的,所以需要创建一个README.txt文件,然后把它放到annotation的目录下,和annotate.info,annotate.module,annotate.install文件放在一起。README.txt文件一般包含的信息有,谁编写了这个模块,以及如何使用这个模块。这里不需要包含许可证信息,这是因为所有上传到drupal.org的模块都将采用GPL许可,而drupal.org上的打包脚本将会为模块自动添加一个LICENSE.txt文本。接下来,你就可以把它上传到drupal.org上的第3方模块资源库中了,然后创建一个项目页面,用来追踪社区中其他用户的反馈。

老葛的Drupal培训班 Think in Drupal

 

Drupal版本:

使用variable_get()来取回存储的值

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2009-07-30 11:04

当你的模块取回已存储的设置时,应该使用variable_get():

// Get stored setting of maximum number of annotations per node.
$max = variable_get('annotate_limit_per_node', 1);
 
    注意,在这里为variable_get()使用了默认值,就是在没有存储值可用的情况下使用(可能管理员还没有访问设置页面)。
 
老葛的Drupal培训班 Think in Drupal

Drupal版本:

存储设置

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2009-07-30 11:03

   在前面的例子中,修改设置并点击“保存配置”按钮,可以正常工作。如果点击了“重置为默认值”按钮,那么各个字段将被重置为它们的默认值。下面部分将描述如何实现这一点。

Drupal版本:

验证用户提交的设置

g089h515r806 的头像
Submitted by g089h515r806 on 星期四, 2009-07-30 11:01

  如果由函数system_settings_form()为我们负责保存表单数值,那么我们如何才能判定在“Annotations per node”字段中输入的是一个数字?我们可以钩住表单提交的处理过程么?当然可以了。我们只需在sites/all/modules/custom/annotate/annotate.admin.inc中定义一个验证函数,如果我们发现有任何异常的话,就使用这个函数来设置一个错误消息。

Drupal版本:

页面

Subscribe to Think in Drupal RSS