Personnalistation template du formulaire user-profile-form

Information importante

En raison d'un grand nombre d'inscriptions de spammers sur notre site, polluant sans relache notre forum, nous suspendons la création de compte via le formulaire de "sign up".

Il est néanmoins toujours possible de devenir adhérent•e en faisant la demande sur cette page, rubrique "Inscription" : https://www.drupal.fr/contact


De plus, le forum est désormais "interdit en écriture". Il n'est plus autorisé d'y écrire un sujet/billet/commentaire.

Pour contacter la communauté, merci de rejoindre le slack "drupalfrance".

Si vous voulez contacter le bureau de l'association, utilisez le formulaire disponible ici, ou envoyez-nous un DM sur twitter.

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.

Forum : 
Version de Drupal : 

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.