关于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; }

 

你可能感兴趣的:(数据库,delete,System,存储,insert,action)