0

hook_form が 2 回呼び出される

/**
* Implements hook_form_alter().
*/
function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'user_register_form') {
    $form_state['redirect'] = false;
    my_function();      
  }
}

my_function() は 2 回呼び出しますが、必要なのは 1 つだけです。

私はこの投稿を読みました:

https://drupal.stackexchange.com/questions/22881/hook-form-b​​eing-called-twice

そして、 $form_state['redirect'] = false を使用しようとしましたが、機能しません。

誰でもそれを行うためのクリーンな方法を知っていますか? ありがとう

4

1 に答える 1

2

自分の送信機能で何をしていても、何をしていてもいいように思えます。

関数名を form_alter の送信配列に追加して、独自の送信関数を追加します。

function MYMODULE_form_alter(&$form, &$form_state, $form_id) {
  if ($form_id == 'user_register_form') {
    $form['#submit'][] = 'MYMODULE_submit_function';    
  }
}

function MYMODULE_submit_function(&$form, &$form_state) {
  $form_state['redirect'] = false;
  my_function(); 
}
于 2012-12-18T11:06:07.950 に答える