Drupal 7 – Créer et afficher un champ biographie pour les utilisateurs

Posted by on Sep 22, 2012 in Drupal, PHP | No Comments

Aujourd’hui je vais vous montrer comment créer un module qui va ajouter un champ Biographie dans le formulaire de création d’utilisateur et comment faire pour l’afficher correctement sur la page User.

Le Module.info

Avant toutes choses, il faut créer le fichier .info de notre module. Voici à quoi il doit ressembler :

Dans mon exemple, mon module se nomme « utilisateur » le fichier s’appellera donc : utilisateur.info.

La modification du formulaire User

Rendez vous cette fois dans le fichier utilisateur.module pour commencer par modifier le formulaire User afin de rajouter le champ Biographie :

Ce bout de code fait appel au Hook form_user_profile_form_alter afin de modifier le formulaire User déjà existant. On lui rajoute donc un nouveau composant ‘bio’ de type textaea qui a pour valeur par défaut la variable ‘biographie’. On spécifie ensuite un nouveau traitement à effectuer après le submit en ajoutant la nom de la fonction à appeler, ici c’est : utilisateur_user_register_submit.

Traitement du formulaire

Maintenant il faut écrire la fonction utilisateur_user_register_submit qui va s’occuper de traiter les nouvelles informations du formulaire :

On commence par récupérer la variable ‘biographie’ actuel puis on récupère celle transmise par le formulaire. On fait ensuite une comparaison entre les deux et s’il y a une différence on modifie la variable ‘biographie’ avec celle du formulaire.

Affichage du champ sur la page User

La dernière étape consiste à modifier la vue User pour qu’elle affiche ce nouveau champ :

On ajoute un titre de type user_profile_category puis on affiche notre champ bio en dessous (ici c’est un élément de type user_profile_item  qui va afficher le contenu de la variable biographie).