2011-07-12 5 views
1

私は登録フォームのブロックを持っています。私は登録してその同じ正確なページにとどまる必要があります、それは可能ですか?Drupal:登録後も同じページに留まる

私はログイン先モジュールを試しましたが、その機能はログインでは機能しないように見えます。登録を続けてユーザープロフィールページに送信します。

答えて

3

user_register_submit submit handlerのように、$form_state['submit']はハードコードされています。

つまり、オーバーライドしない限り、user_register_submitによって宛先が定義されます。

独自の送信ハンドラ(擬似コード)を追加することで可能です。

function mymodule_form_alter(&$form, &$form_state, $form_id) { 
    if ($form_id == "user_register") { 
    //Look at the code in user_register_submit for all the ifs and switches to only 
    // add this extra handler when a normal user signs up. 
    $form['#submit'][] = "_mymodule_user_register_submit"; 
    } 
} 

function _mymodule_user_register_submit($form, &$form_state) { 
    $form_state['redirect'] = $_GET['q']; //Adds the current url as redirect. 
} 

次に、システムテーブルの重みを使用して、ユーザーモジュールの後にモジュラスタートがあることを確認します。さもなければアルファベット順に呼び出され、ユーザモジュールはモジュール化の後に来る。リダイレクトを再度リセットします。

サブミットハンドラでは、すべての処理を停止してユーザーをリダイレクトし、多くのモジュールが失敗し、しばしば壊れたり矛盾するデータベースが生成されることがあるため、決してdrupal_goto()を使用しないでください。

+0

前にモジュールを作成したことがありませんでしたが、[このサイト](http://mrphp.com.au/code/how-make-simple-form-module-drupal)をたどり、このエラーが発生しました 構文解析エラー:構文エラー、予期しない '}' in /home/dkdconce/public_html/forex/sites/all/modules/reg_form/reg_form.module on line 8 –

+0

私のコードが疑似コードであるという警告を追加しました。そしてあなたの問題を引き起こしたエラーを修正しました。 a; – berkes

+1

また、プログラミングに関連しないDrupal-questionsがある場合は、drupal.stackexchange.comのほうがよいでしょう。主にプログラマー向けのサイトです。 – berkes

関連する問題