• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧
您的位置:首页 > CMS教程 >drupal > Drupal采用钩子系统删除用户实例详解

Drupal采用钩子系统删除用户实例详解

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-05-13

佚名 向大家介绍了drupal,drupal教程,drupal是什么,drupal模板,drupal中文等相关知识,希望对您有所帮助

本文实例讲述了Drupal采用钩子系统删除用户的方法,分享给大家供大家参考。具体实现方法如下:

钩子(hook)系统是Drupal的一大特色,它通过回调一系统应用某钩子的函数来实现系统的灵活性和可扩展性

本文以“删除用户”这一行为为示例,讲述Drupal钩子系统的执行机制。

“删除用户”的行为,很容易能够想到Drupal所使用的函数是 user_delete();是通过 Drupal API 网站(http://api.drupal.org)搜索到 user_delete() 的源代码。(为方便讲解,在源代码中添加了一些注释)


此函数分别做了几件事,加载用户、销毁会话、用户删除邮件通知、清理User模块相关表的条目。直到代码的最后,我们没有看到与 node 相关的内容,但并不能这样就认为 Drupal 就只处理了User模块相关的表。:D

在这里,我们要注意最后一个函数 user_module_invoke(); Drupal 正是使用这个函数,调用所有应用了 hook_user 钩子的函数,优雅地处理所有与用户删除相关的信息,这正是 Drupal 的美丽之处。

同样,使用 Drupal API 查找 user_module_invoke(), 得到如下源代码:


这段代码即是说,从所有模块中查找出应用了 hook_user() 钩子的函数,并调用此函数。

我们想想,在执行“删除用户”这个操作时,由该用户所创建的节点内容会怎么样?因为节点模块名为 node,所以我们其对应的钩子,即 node_user();

还是使用 Drupal API,查找 node_user() 函数,得以下源代码


从上述代码中可以看出,当 $op == 'delete' 时,函数会执行一个表更新的操作,将节点的用户ID(即uid)更新为 0 (即匿名用户)。

因此,当在删除用户时,此用户所创建的节点和节点修订版本全都会被改为匿名用户所创建,因此删除用户不只执行删除用户的操作,Drupal 通过钩子系统调用所有与删除用户相关的操作,从而保证系统的稳健、强壮、灵活和可扩展性。

希望本文所述对大家的PHP程序设计有所帮助。

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • drupal输出用户头像地址的方法
  • drupal常用判断函数汇总
  • 批量导入XML数据到drupal系统的方法
  • drupal内的表格化输出实现方法
  • 自定义drupal注册表单的方法
  • Drupal7的cache缓存开发实例教程
  • drupal的url传值和表单传值分析
  • Drupal中hook_theme函数用法
  • drupal函数node_get_types用法详解
  • Drupal采用钩子系统删除用户实例详解

相关文章

  • 2017-05-13Drupal CMS可以制作的16种类型网站
  • 2017-05-13DRUPAL6中定义hook_menu参数的方法
  • 2017-05-13drupal开启pathauto模块后得到路径参数的方法
  • 2017-05-13drupal使用hook_form_alter()修改表单实例
  • 2017-05-13drupal常用到的几种过滤函数小结
  • 2017-05-13Drupal 启用缓存和Gzip压缩设置方法
  • 2017-05-13drupal6上传中文文件名附件乱码问题解决方法
  • 2017-05-13drupal函数node_get_types用法详解
  • 2017-05-13drupal实现输出可点击表头排序表格的方法
  • 2017-05-13Drupal中hook_theme函数用法

文章分类

  • dedecms
  • ecshop
  • z-blog
  • UcHome
  • UCenter
  • drupal
  • WordPress
  • 帝国cms
  • phpcms
  • 动易cms
  • phpwind
  • discuz
  • 科汛cms
  • 风讯cms
  • 建站教程
  • 运营技巧

最近更新的内容

    • Drupal第三方模块汇总
    • drupal常用到的几种过滤函数小结
    • drupal文件系统概述
    • drupal导入图片的实现方法
    • drupal输出用户头像地址的方法
    • drupal实现输出可点击表头排序表格的方法
    • Drupal7之drupal_static函数用法解析
    • drupal内的表格化输出实现方法
    • drupal模块开发分析
    • Drupal采用钩子系统删除用户实例详解

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有