我需要为user_pass_submit添加一些额外的功能。必须在不更改核心的情况下添加。我会用它做什么钩子?
感谢。
答案 0 :(得分:3)
您应该能够使用hook_form_FORM_ID_alter()
将user_pass
表单的提交处理程序替换为您自己的模块user_pass_submit
副本,并根据需要进行更改。
像这样......
function MODULE_form_user_pass_alter(&$form, &$form_state) {
$form['#submit'] = array('MODULE_user_pass_submit');
}
function MODULE_user_pass_submit($form, &$form_state) {
global $language;
$account = $form_state['values']['account'];
// Mail one time login URL and instructions using current language.
_user_mail_notify('password_reset', $account, $language);
watchdog('user', 'Password reset instructions mailed to %name at %email.', array('%name' => $account->name, '%email' => $account->mail));
drupal_set_message(t('Further instructions have been sent to your e-mail address.'));
$form_state['redirect'] = 'user';
return;
}
当然,如果您有多个模块尝试
,这就会失败