关于drupal 触发器的学习

先看下面的对应关系表。
在Drupal 6中钩子,操作,触发器的对应关系

钩子

操作

触发器名字

comment

insert

在保存新的评论之后

comment

update

在更新评论之后

comment

delete

在删除评论后

comment

view

当评论正在被注册用户查看时

cron

run

cron运行时

nodeapi

presave

当保存新文章或更新文章时

nodeapi

insert

在保存新文章之后

nodeapi

update

在更新文章之后

nodeapi

delete

在删除文章之后

nodeapi

view

在内容被注册用户查看时

taxonomy

insert

在将新术语存储到数据库之后

taxonomy

update

在将更新过的术语存储到数据库之后

taxonomy

delete

在删除一个术语后

user

insert

在用户帐户创建之后

user

update

在用户资料更新之后

user

delete

在用户被删除之后

user

login

在用户登录之后

user

logout

在用户退出之后

user

view

当用户资料被浏览时


下面是代码示例

function beep_action_info() { $info['beep_beep_action'] = array( 'type' => 'system', 'description' => t('Beep annoyingly'), 'configurable' => FALSE, 'hooks' => array( 'nodeapi' => array('view'), 'comment' => array('view', 'insert', 'update', 'delete'), 'user' => array('view', 'insert', 'update', 'delete', 'login'), 'taxonomy' => array('insert', 'update', 'delete'), ), ); return $info; }

该函数的名字为beep_action_info(),在这里,和其它的钩子实现一样,我们使用了:模块名(beep)+钩子名 (action_info)。我们将返回一个数组,数组中的一个条目就对应我们的模块中的一个动作。由于我们只编写了一个动作,所以只有一个条目,它的键 就是执行动作的函数的名字:beep_beep_action()。为了在阅读代码时,方便的识别哪个函数是个动作,我们在我们的beep_beep() 函数的名字后面追加了_action,这样就成了beep_beep_action()。

让我们仔细的看一下数组中的键:
• type: 这是你编写的动作的类型。Drupal使用该信息,将动作归类到触发器分配界面的下拉选择框中。可能的类型包括system, node, user, comment, 和taxonomy。在判定你编写的动作的类型时,你需要好好的想一想,“这个动作作用于什么对象呢?”(如果答案不确定,或者是“各种不同的对象!”, 那么可以使用system类型)。
• description:这是该动作的描述性名字,它显示在触发器分配界面的下拉选择框中。
• configurable:这个是用来判定该动作是否带有参数的。
• hooks: 在这个钩子数组中,每个条目都是用来列举该动作所支持的操作的。Drupal使用这一信息,来判定该动作在触发器分配界面中的位置。

如果你不想将你的动作限定在特定的触发器或者触发器集上,那么通过以下声明,你的动作就支持所有的触发器了:

/** * Implementation of hook_action_info(). */ function beep_action_info() { $info['beep_beep_action'] = array( 'type' => 'system', 'description' => t('Beep annoyingly'), 'configurable' => FALSE, 'hooks' => array( 'any' => TRUE, ), ); return $info; }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值