作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com
在Drupal对用户进行各种相关操作时,为其它模块提供了相应的钩子函数,方便与Drupal系统交互。我们来看看Drupal中用户模块都提供了哪些钩子函数,这些信息可参看user.api.php文件。
名字 |
描述 |
取消用户帐户时的钩子函数。 |
|
修改取消用户帐户方法。 |
|
获取一列用户设置或者资料信息类别。 |
|
删除用户时的钩子函数。 |
|
创建用户帐户时的钩子函数。 |
|
在从数据库中加载用户对象时的钩子函数。 |
|
用户刚登录时的钩子函数。 |
|
用户刚登出时的钩子函数。 |
|
添加用户批量操作。 |
|
用户帐户将被创建或者将被更新时的钩子函数。 |
|
删除用户角色时,调用的钩子函数。 |
|
添加用户角色时,调用的钩子函数。 |
|
将要保存用户角色时,调用的钩子函数。 |
|
用户角色已被更新时,调用的钩子函数。 |
|
用户帐户已被更新时,调用的钩子函数。 |
|
用户帐户信息正被显示时,调用的钩子函数。 |
|
用户已构建;用户使用这个钩子可以修改其结构化的内容。 |
此外,系统模块还提供了一个与用户相关的钩子函数,这就是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本身是实体的一个实现,我们在后面的学习中,将会陆续的看到,评论、分类术语、节点也都属于实体。