1

我需要一些额外的功能添加到 user_pass_submit。必须在不更改核心的情况下添加它。我会用什么钩子来做到这一点?

谢谢。

4

1 回答 1

3

您应该能够使用您自己的模块副本hook_form_FORM_ID_alter()替换表单的提交处理程序,并根据需要进行更改。user_passuser_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;
}

当然,如果您有多个模块尝试这样做,这就会失败

于 2012-06-28T23:45:50.430 回答