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 に答える