如hook_user() 文档中所述:
$op 正在执行什么样的操作。可能的值(按字母顺序):
- “插入”:正在添加用户帐户。模块应将其对用户对象的自定义添加保存到数据库中,并在 $edit 中将保存的字段设置为 NULL。
- “更新”:正在更改用户帐户。模块应将其对用户对象的自定义添加保存到数据库中,并在 $edit 中将保存的字段设置为 NULL。
- "validate": 用户帐号即将被修改。模块应验证其对用户对象的自定义添加,并根据需要注册错误。
该模块需要在hook_install()
.
hook_user()
可以使用以下代码实现,例如:
function perscriptions_user($op, &$edit, &$account, $category = NULL){
if ($op == 'register' || ($op == 'form' && $category = 'account')) {
$form['surgery_address'] = array (
'#type' => 'textarea',
'#title' => t('Surgery Address'),
'#required' => TRUE,
);
return $form;
}
if ($op == 'insert' || $op == 'update') {
prescriptions_save_user_profile($account->uid, $edit['surgery_address']);
}
if ($op == 'validate' && $category == 'account') {
// Verify the entered values are valid.
// In this example, the value is contained in $edit['surgery_address'].
}
}
prescriptions_save_user_profile()
是将用户配置文件值保存在数据库中的函数。代码检查类别以避免在用户配置文件编辑表单中显示的所有选项卡中显示相同的表单字段。