web-dev-qa-db-fra.com

Le formulaire d'inscription de l'utilisateur valide et soumet les hooks non appelés

J'essaie d'ajouter une validation personnalisée ou de soumettre une fonction au formulaire d'inscription de l'utilisateur, mais rien ne fonctionne.

Voici le code dans /sites/all/themes/mytheme/template.php:

function mytheme_user_register_form_validate (&$form, &$form_state) {}
function mytheme_form_user_register_form_validate (&$form, &$form_state) {}
function mytheme_user_register_validate (&$form, &$form_state) {}
function mytheme_user_register_form_submit (&$form, &$form_state) {}
function mytheme_profile_user_form_validate (&$form, &$form_state) {}

J'ai également mis un code similaire dans /sites/all/modules/custom/mymodule/mymodule.module:

function mymodule_user_register_form_validate (&$form, &$form_state) {}
function mymodule_form_user_register_form_validate (&$form, &$form_state) {}
function mymodule_user_register_validate (&$form, &$form_state) {}
function mymodule_user_register_form_submit (&$form, &$form_state) {}
function mymodule_profile_user_form_validate (&$form, &$form_state) {}

Aucune des fonctions ci-dessus n'est appelée et j'ai manqué d'idées. Pour prouver que quelque chose fonctionne sur ce formulaire, voici quelque chose qui fonctionne:

function mytheme_form_user_register_form_alter(&$form, &$form_state, $form_id) {}

Cela s'appelle !! Mais je dois valider ...

Par ailleurs, le débogueur montre (entre autres) ceci lors du débogage du hook_form_alter:

$form['#validate'][0] = 'user_account_form_validate'
$form['#validate'][1] = 'user_validate_picture'
$form['#validate'][2] = 'user_register_validate'
$form['#validate'][3] = 'profile_user_form_validate'
6
camcam

Ajoutez ceci dans votre hook_form_alter:

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

De cette façon, vous pouvez définir des fonctions de validation supplémentaires. Assurez-vous de signaler toutes les erreurs de validation à l'aide de la fonction form_set_error().

8
petiar