2013-05-15 12 views
5

名前とメールフィールドを持つウェブフォームがあります。フォームが送信されると、名前と電子メールはデータベースに保存され、PDFファイルがダウンロードされます。drupal7のWebフォーム送信機能を無効にする方法は?

私の質問は、後でその余分な機能を追加できるように、Webフォームの送信機能をオーバーライドする方法ですか?

+0

hook_form_alter()とサブミットハンドラを見てください。ここの例は:http://drupal.stackexchange.com/questions/18641/how-do-i-alter-the-form-submission-handler –

答えて

12

hook_form_alter()の実装でカスタムモジュールを作成する必要があります。

function [YOUR_MODULE]_form_alter(&$form, &$form_state, $form_id) 
{ 
    if($form_id == "YOUR_FORM_ID") 
    { 
     // target the submit button and add a new submission callback routine to the form 
     $form['#submit'][] = 'YOUR_SUBMISSION_CALLBACK_FUNCTION'; 
    } 
} 

上記のコードは、フォームのデフォルトのコールバック関数後に新しいコールバック関数YOUR_SUBMISSION_CALLBACK_FUNCTIONを実行します。

、新しいコールバック関数が前にフォームのデフォルトのコールバック関数を呼び出し作る代わりに、上記与え、次のコードを使用する:

array_unshift($form['#submit'], 'YOUR_SUBMISSION_CALLBACK_FUNCTION'); 

フォームのデフォルトのコールバック機能を解除し、あなたを使用するように強制するには機能ONLYホープこのヘルプ

$form['#submit'] = array('YOUR_SUBMISSION_CALLBACK_FUNCTION'); 

以下のコードを使用します。

+2

あなたの答えはあまりにも説明的です。がんばり続ける!!! – Pupil

+0

しかし、この提出機能ではどのように提出値を取得するのですか?私はdpm($ form)を試して、値を見つけることができませんでした – pal4life

+0

Coolioが見つかりました。&$ form、$ form_stateのパラメータで関数を初期化して、私が望む値を見つけました – pal4life