用户
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)