Submitted by bnad on
Bonjour,
J'ai besoin de personnaliser le formulaire d'édition de profile utilisateur (user-profile-form).
Pour cela dans mon theme j'ai ajouter
...
'user_profile_form' => array(
'arguments' => array('form' => NULL),
'render element' => 'form',
'template' => 'templates/user-edit',
),
...
J'ai également créé un template nommé user-edit.tpl. Jusqu'ici tout va bien, le template est bien utilisé lorsqu'un utilisateur accède à la page /user/{uid}/edit. J'ai bien affiché les champs que je souhaitais voir apparaître sur cette page. J'affiche également les champs cachés "form_id", "form_build_id" et "form_token".
Lorsque je soumet le formulaire il ne se passe strictement rien, cela re-post vers /user/{uid}/edit), si je ne saisis pas les champs obligatoire par exemple je n'ai pas de message d'erreur, j'ai surchargé la fonction appelé après la soumission du formulaire via le hook form_alter ($form['#submit'][] = 'montheme_user_edit_submit';). Visiblement après la soumission cela ne passe pas dans cette fonction. J'ai tenté de désactiver cette fonction, cela ne change rien.
Quelqu'un aurait-il une idée ?
Merci de votre aide.
Précision qui peut peut-être
Permalien Soumis par bnad le 30 Août, 2012 - 09:51
Précision qui peut peut-être servir, sur mon template je n'affiche pas l'ensemble des champs affichés sur le formulaire par défaut. En revanche l'ensemble des champs obligatoires est affiché.
Juste pour préciser : si vous
Permalien Soumis par hles le 31 Août, 2012 - 15:46
Juste pour préciser: si vous avez besoin de changer la structure du formulaire (ajout, suppression, re-arrangement des champs via leur poids etc), vous devez utiliser un hook_form_alter. Si vous voulez vraiment modifier le markup du formulaire en général, alors vous devez passer par du theming comme vous le faites.
De plus, vous pouvez surcharger un fichier de template existant dans votre theme sans le redéclarer par un fonction de theming.
Je vous dis ça parce qu'a la vue de votre problème, je ne suis pas complètement sur que vous vouliez vraiment déclarer une fonction de theming.