3 用户系统的钩子函数

作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

    在Drupal对用户进行各种相关操作时,为其它模块提供了相应的钩子函数,方便与Drupal系统交互。我们来看看Drupal中用户模块都提供了哪些钩子函数,这些信息可参看user.api.php文件。

名字

描述

hook_user_cancel

取消用户帐户时的钩子函数。

hook_user_cancel_methods_alter

修改取消用户帐户方法。

hook_user_categories

获取一列用户设置或者资料信息类别。

hook_user_delete

删除用户时的钩子函数。

hook_user_insert

创建用户帐户时的钩子函数。

hook_user_load

在从数据库中加载用户对象时的钩子函数。

hook_user_login

用户刚登录时的钩子函数。

hook_user_logout

用户刚登出时的钩子函数。

hook_user_operations

添加用户批量操作。

hook_user_presave

用户帐户将被创建或者将被更新时的钩子函数。

hook_user_role_delete

删除用户角色时,调用的钩子函数。

hook_user_role_insert

添加用户角色时,调用的钩子函数。

hook_user_role_presave

将要保存用户角色时,调用的钩子函数。

hook_user_role_update

用户角色已被更新时,调用的钩子函数。

hook_user_update

用户帐户已被更新时,调用的钩子函数。

hook_user_view

用户帐户信息正被显示时,调用的钩子函数。

hook_user_view_alter

用户已构建;用户使用这个钩子可以修改其结构化的内容。

 

    此外,系统模块还提供了一个与用户相关的钩子函数,这就是hook_username_alter(&$name, $account),它是用来修改用户名的,这句话的具体含义,我们在后面通过实例来讲解。

 

    我们从用户的钩子函数中,选择较为通用的与增删改查相关的钩子,比如delete、insert、load、presave、update、view、view_alter。我们检查Drupal系统中所有的钩子函数,把与之相关的加以归纳,总结出如下所示的表。

 

 


delete

insert

load

presave

update

view

view_alter

comment

X

X

X

X

X

X

X

entity

X

X

X

X

X

X

X

field

X

X

X

X

X



file

X

X

X

X

X



filter_format

X

X



X



image_style

X







menu

X

X



X



menu_link

X

X



X



node

X

X

X

X

X

X

X

node_type

X

X



X



path

X

X



X



taxonomy_term

X

X

X

X

X


X

taxonomy_vocabulary

X

X

X

X

X



user

X

X

X

X

X

X

X

user_role

X

X


X

X



 

   最左边的一列,表示Drupal中的各种对象,最上面的一行,是与增删改查相关的钩子,格子中的内容表示对应钩子是否存在,X表示存在,空白则表示不存在。我们可以看到,comment、entity、node、taxonomy_term、user最为接近,可以划分为一组;field、file、taxonomy_vocabulary、user_role比较接近;而filter_format、menu、menu_link、node_type、path,主要实现了delete、insert、update,也可以划分为一组。

    在Drupal中,User本身是实体的一个实现,我们在后面的学习中,将会陆续的看到,评论、分类术语、节点也都属于实体。


Drupal版本: