2013-05-15 10 views
5

Ich habe ein Webformular mit Namen und E-Mail-Feldern. Wenn das Formular eingereicht wird, sollte der Name und die E-Mail in der Datenbank gespeichert werden und eine PDF-Datei sollte heruntergeladen werden.Wie überschreibt man eine Webformular-Sendefunktion in drupal7?

meine Frage ist, wie die Übergabefunktion des Webformulars zu überschreiben, so dass ich diese zusätzliche Funktion danach hinzufügen kann?

+0

schauen Sie sich hook_form_alter() und die Submit-Handler an. Beispiele hier: http://drupal.stackexchange.com/questions/18641/how-do-i-alter-the-form-submission-handler –

Antwort

12

Sie müssen ein benutzerdefiniertes Modul mit der Implementierung hook_form_alter() erstellen.

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'; 
    } 
} 

Der obige Code wird Ihre neue Callback-Funktion YOUR_SUBMISSION_CALLBACK_FUNCTIONNACH die Standardrückruffunktion des Formulars auszuführen.

Um die neue Rückruffunktion VOR die Standard-Callback-Funktion des Formulars aufgerufen zu machen, verwenden Sie den folgenden Code anstelle des oben geben:

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

Um die Form der Standard-Callback-Funktion abzubrechen und ihn mit Gewalt zu Ihrer verwenden Funktion NUR, verwenden Sie den Code unten

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

Hope this Hilfe.

+2

Ihre Antwort ist zu sehr erklärend. Mach weiter!!! – Pupil

+0

Aber wie erhalten wir die Submission-Werte in dieser Submission-Funktion? Ich versuchte dpm ($ Form) und konnte die Werte nicht finden – pal4life

+0

Coolio fand es, musste die Funktion mit den Parametern als & $ Form initialisieren, & $ form_state dann fand die Werte, die ich wollte – pal4life