跳转到主要内容
marixh 提交于 20 August 2012

1. $user 对象     $user对象由users,role,sessions三张表组成

uid        用户ID users表的主键,唯一值.

name       用户名/登陆名

pass       使用sha512进行加密, md5 sha1 sha-2(sha-256, sha-512)

mail       用户注册邮箱

theme      弃用

signature  用户签名, 可以在帐户编辑页面更改。在添加评论的时候使用.

signature  format 签名格式, 过滤/全部

created    账号创建时间Unix时间戳

access     最后一次访问的时间Unix时间戳

login      最后一次成功登陆的时间Unix时间戳

status     1标准用户0锁定用户

timezone   使用数字秒以GMT为基准计算偏移量(格林尼治标准时间, 是指位于伦敦郊区的皇家格林尼治天文台的标准时间)   UTC(世界标准时间)

language   用户的默认语言

picture    用户头像

init       初始化邮箱地址 注册时添加

data       可以存放任意数据

roles      用户角色

sid        session ID

ssid       安全session ID

hostname   用户IP地址

timestamp  表示用户浏览器最后接受一个完整页面的时间Unix时间戳

cache      一个时间戳用作每一个用户的缓存

session    在用户session的有效时间内,各模块存放临时数据。

 

2. 测试用户是否登陆

   user_is_logged_in();

 

3. User Hooks

hook_username_alter(&$name, $account)          修改用户名

hook_user_cancel($edit, $account, $method)     当用户被删除时执行

- user_cancel_block 禁用账号,保持账号相关内容

- user_cancel_block_unpublish 禁用账号,取消该账号发布的内容

- user_cancel_reassign 删除账号,把该账号发布的内容的作者名转成匿名用户

- user_cancel_delete 删除账号和发布的所有内容  

hook_user_cancel_methods_alter(&$methods)      修改用户删除方法

hook_user_categories()                         获取用户设置setting或介绍profile信息

hook_user_delete($account)                     用户删除时执行

hook_user_insert(&$edit, $account, $category)  用户创建时执行

hook_user_update(&$edit, $account, $category)  用户更新时执行

hook_user_load($users)                         当从数据库读取一个用户对象时执行

hook_user_login(&$edit, $account)              当用户刚登陆时执行

hook_user_logout($account)                     当用户刚登出时执行

hook_user_operations()                         添加批处理用户操作

hook_user_presave(&$edit, $account, $category) 用户账号创建或更新时执行

hook_user_role_delete($role)                   通知其它模块一个角色被删除

hook_user_role_insert($role)                   通知其它模块一个角色被创建

hook_user_role_update($role)                   通知其它模块一个角色被更新

hook_user_view($account, $viewmode)            当用户账号信息被显示时执行

hook_user_view_alter(&$build)                  修改用户账号显示的信息

 

4. 在用户注册页面添加同意协议选项

   hook_form_alter(&$form, &$form_state, $form_id);

 

5. 登陆过程

- 用户名是否被限制

- 用户名是否被访问控制系统拒绝

- 基于用户名和密码读取用户信息

- 调用hoook_user_load()

- 在users表里更新登陆timestamp字段值

- 调用hook_user_login()

- 生成session

- 跳转到user/uid 页面

 

6. 当用户登录时给$user对象添加历史数据

   hook_user_login(&$edit, $account)

   hook_user_view_alter(&$build)

标签
Drupal 版本