it-swarm.com.de

Benutzerregistrierungsformular validieren und senden nicht aufgerufene Hooks

Ich versuche, dem Benutzerregistrierungsformular eine benutzerdefinierte Validierungs- oder Übermittlungsfunktion hinzuzufügen, aber nichts funktioniert.

Hier ist der Code in /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) {}

Ich habe auch einen ähnlichen Code in /sites/all/modules/custom/mymodule/mymodule.module eingefügt:

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) {}

Keine der oben genannten Funktionen wird aufgerufen, und mir sind die Ideen ausgegangen. Als Beweis dafür, dass etwas in dieser Form funktioniert, ist hier etwas, das funktioniert:

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

Das wird gerufen !! Aber ich muss validieren ...

Übrigens zeigt der Debugger dies (unter anderem) beim Debuggen des 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

Fügen Sie dies in Ihren hook_form_alter ein:

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

Auf diese Weise können Sie zusätzliche Validierungsfunktionen definieren. Stellen Sie sicher, dass Sie alle Validierungsfehler mit der Funktion form_set_error() melden.

8
petiar