2013-05-15 10 views
5

Mam formularz internetowy z polami nazwy i adresu e-mail. po przesłaniu formularza nazwisko i adres e-mail powinny być przechowywane w bazie danych, a plik PDF powinien rozpocząć pobieranie.jak zastąpić funkcję przesyłania formularza internetowego w drupal7?

Moje pytanie brzmi: jak przesłonić funkcję przesyłania formularza internetowego, aby móc później dodać tę dodatkową funkcję?

+0

spójrz na hook_form_alter() i procedury obsługi przesyłania. przykłady tutaj: http://drupal.stackexchange.com/questions/18641/how-do-i-alter-the-form-submission-handler –

Odpowiedz

12

Będziesz musiał utworzyć niestandardowy moduł z implementacją 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'; 
    } 
} 

Powyższy kod wykona nową funkcję zwrotną YOUR_SUBMISSION_CALLBACK_FUNCTIONPO domyślnej funkcji wywołania zwrotnego formularza.

Aby dokonać nowa funkcja zwrotna nazywa PRZED domyślna funkcja zwrotna postaci, należy użyć następującego kodu zamiast dając powyżej:

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

Aby anulować funkcję domyślnego oddzwonienia postaci i zmusić go do korzystania z urządzenia funkcja TYLKO użyć poniższy kod

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

nadzieję, że ta pomoc.

+2

Twoja odpowiedź jest zbyt wyczerpująca. Tak trzymaj!!! – Pupil

+0

Ale w jaki sposób uzyskujemy wartości składania w tej funkcji składania? Próbowałem dpm ($ form) i nie mogłem znaleźć wartości – pal4life

+0

Coolio znalazł to, musiałem zainicjować funkcję z parametrami jako & $ form, & $ form_state następnie znalazłem wartości, które chciałem – pal4life

Powiązane problemy