Ako na validáciu elementov pridaných cez hook_form_alter?

  • Posted on: 10 October 2011
  • By: petiar

To, že akýkoľvek formulár v Drupale si vieme upraviť prostredníctvom hook_form_alter je pomerne známa a veľmi využívaná vec. Čo ale ak chceme tieto údaje aj nejakým spôsobom zvalidovať, tzn. ošetriť ich správnosť? Funkcia ako hook_validation_alter v Drupale neexistuje a hook_validate je určená len pre node formuláre, teda formuláre pre pridávanie obsahu. Možnosť, samozrejme, existuje, je prítomná aj v API dokumentácii, ale keďže trošku skrytá a i mne chvíľu trvalo kým som ju našiel, dám ju sem a možno niekomu uľahčím robotu.

Keď do hook_form_alter pridáte tento riadok

$form['#validate'][] = 'your_validation_function';

tak tým definujete funkciu, ktorá sa má použiť na dodatočnú validáciu odoslaného formulára. Funkcia your_validation_function poberie parametre $form a &$form_state.

Ako vidíte, $form['#validate'] je pole, takže tých funkcií môže byť neúrekom. Dajte pozor aby ste v rámci dodatočných validačných funkcií reportovali všetkych chyby volaním form_set_error().

Pridať nový komentár