我需要一些额外的功能添加到 user_pass_submit。必须在不更改核心的情况下添加它。我会用什么钩子来做到这一点?
谢谢。
您应该能够使用您自己的模块副本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;
}
当然,如果您有多个模块尝试这样做,这就会失败