Attention, ceci est un hack Joomla. En suivant ce tutoriel, vous allez modifier le code de base Joomla. Ceci veut dire qu'à la prochaine mise à jour de Joomla, vous devrez faire attention de sauvegarder les fichiers qui auront été modifiés si ceux-ci sont impactés par la mise à jour. N'oubliez pas de faire une sauvegarde de chaque fichier avant de les modifier.
La page d'inscription de Joomla contient généralement suffisamment d'informations pour la plupart des sites Web. Dans le cas où vous deviez rajouter d'autres champs et que vous n'ayez aucune connaissance en programmation, je vous conseille d'utiliser un composant comme Community Builder qui vous permettra relativement facilement de rajouter ces champs.
Cependant, il est tout à fait possible de rajouter des champs d'enregistrement sans avoir à installer d'autres composants, en modifiant quelques lignes dans le code de base Joomla. Et voici comment faire:
Dans cette exemple, nous allons rajouter un champ qui contiendra le numéro de téléphone est un autre contenant la profession de la personne qui s'inscrira mais vous pouvez modifier l'exemple pour ajouter les champs que vous voulez.
La première chose que vous devez faire, c'est d'ajouter dans la table des utilisateurs, les nouveaux champs. Pour accéder à la base de données, vous allez devoir utiliser PhpmyAdmin puis exécuter ces requêtes SQL:
1 |
ALTER TABLE `jos_users` ADD `telephone` VARCHAR (100) NOT NULL AFTER `name`; |
Une fois les requêtes SQL exécutées, veuillez contrôler que les deux champs sont bien présents dans la table jos_users.
Au total, quatre fichiers devront être modifés.
Veuillez tout d'abord ouvrir le fichier libraries/joomla/database/table/user.php et recherchez le code:
/**
* The login name
*
* @var string
*/
var $username = null;
Et ajoutez juste après, la définition des deux nouveaux champs:
1 |
var $telephone = null; |
Modifiez ensuite le contenu de la page d'enregistrement qui se trouve dans le fichier components/com_user/views/register/tmpl/default.php et placer les champs à l'endroit désiré en rajoutant ce type de code:
1 |
<tr> |
Ensuite, veuillez rajouter ces champs dans la page d'édition des informations de l'utilisateur qui se trouvent dans le fichier components/com_user/views/user/tmpl/form.php. C'est à vous de définir après quel champ, les nouveaux champs devront être affiché. Vous pouvez par exemple les afficher en dessous du champ Name. Recherchez donc dans la page le code affichant le nom de l'utilisateur est placez après la balise </tr> le code suivant :
1 |
<tr> |
Il ne vous reste plus qu'à modifier la page d'édition des information de l'utilisateur. Cela se trouve dans le fichier administrator\components\com_users\views\user\tmpl\form.php. C'est à vous de définir après quel champ, les nouveaux champs devront être affiché. Vous pouvez par exemple les afficher en dessous du champ Name. Recherchez donc dans la page le code affichant le nom de l'utilisateur est placez après la balise </tr> le code suivant :
1 |
<tr> |
Ctauz a écrit ce commentaire
Mercredi, 22 Septembre 2010
Mais je bloque sur un problème.
Comment mettre à jour les nouveaux champs de la base à partir du formulaire modifié ??
Dans le sens base données formulaire, c'est OK
Merci de votre aide
romila a écrit ce commentaire
Samedi, 12 Février 2011
patrick a écrit ce commentaire
Mardi, 15 Février 2011
J'ai modifié les fichiers suivants... et la table jos_users en conséquence...
Mais rien à faire, le formulaire prend en compte mes nouveaux champs, mais ils ne sont pas pour autant enregistré dans ma table jos_users !!!
Cela fait un moment que je cherche, et suis un peu fatigué là !!
Merci de votre aide.
joomlabc a écrit ce commentaire
Mercredi, 16 Février 2011
Si oui, pourrais-tu regarder que les noms des nouvelles colonnes de ta table jos_users sont bien strictement identiques aux noms définis dans les différents fichiers que tu as modifiés car c'est justement sur ces noms que Joomla se base par la suite pour enregistrer les données saisies.
bruno a écrit ce commentaire
Jeudi, 17 Mars 2011
je viens de tester en local le tutoriel, il est super merci beaucoup car cela m'ouvre de grandes perspectives. Peut être en réponse à la question de Patrick, moi non plus cela ne marchait pas car en fait j'utilise le template Ja-puriy II qui incorpore le com_user. Lorsque j'ai remis le template par défaut cela a fonctionné. Ce soir, je vais tester la modification dans le template mais je suis optimiste car cela se présente de la même façon. Je vous tiens au courant.
Louvail a écrit ce commentaire
Vendredi, 18 Mars 2011
Comment faire connecter ce nouveau champ de saisie avec la BD??
Merci
louvail a écrit ce commentaire
Vendredi, 18 Mars 2011
Comment faire connecter ce nouveau champ de saisie avec la BD??
Merci
jiji1980 a écrit ce commentaire
Mardi, 12 Avril 2011
j'ai suivi les même étapes j'arrive a ajouter un nouveau champs mais ca s'enregistre pas dans ma base et je ne le reçois pas par mail
vous pouvez m'aider svp
joomlabc a écrit ce commentaire
Jeudi, 14 Avril 2011
jpv a écrit ce commentaire
Mercredi, 27 Avril 2011
Fatal error: Cannot access empty property in /.../components/com_user/views/register/tmpl/default.php on line 61; A cette ligne j 'ai dans le formulaire d'inscription :
$user->get( 'telephone' ));?>" maxlength="50" />
Par contre si je fais
Tout marche bien, l'inscription se fait, les modifs en frontend ou back end sont possible (les champs sont pré rempli), mais je reste dubitatif.
Est-ce grave docteur si je vire le code ** $this->escape($this->$user->get( 'telephone' )) ** ?
Note les champs originaux ont le m^me code avec en plus la vérification de saisie obligatoire ex: input type="text" id="username" name="username" size="40" value="escape($this->user->get( 'username' ));?>" class="inputbox required validate-username" maxlength="25" /> *
Merci de vos avis éclairés, je suis un peut perdu
Petiote a écrit ce commentaire
Mardi, 10 Mai 2011
Je viens d'effectuer cette marche à suivre mais ma base de données reste vide pour ces nouveaux champs.
J'ai déjà vérifier la concordance des noms.. Voilà..
Merci d'avance pour vos réponses ^^
Cytral a écrit ce commentaire
Dimanche, 29 Mai 2011
Maintenant, j'aurais une autre question, et je pense que ça pourrait même complèter tes explications.
- Admettons que je veuille ajouter la date de naissance dans le formulaire, je me retrouve avec 3 select ayant comme valeur $jour, $mois, $annee.
Que dois-je ajouter concrètement dans le fichier libraries/joomla/database/table/user.php sachant que l'idéal serait que mes 3 variables récupérées se retrouvent dans un seul et même champ timestamp dans ma base de données?
Je ne sais pas si tu vois ce que je veux dire, mais ton aide serait vraiment la bienvenue!
artnetwalk a écrit ce commentaire
Jeudi, 09 Juin 2011
Je cherche comment activer les zone obligation.
Très important pour moi.
Cordialement,
haujee a écrit ce commentaire
Vendredi, 10 Juin 2011
Voici le message que j'ai :
Le système est incapable de trouver un utilisateur avec ces données d'activation. Le compte peut être déjà activé ou le code d'activation a expiré, dans ce cas, veuillez vous réinscrire.
Cordialement,
jack a écrit ce commentaire
Vendredi, 10 Juin 2011
Question supplémentaire : quelle est le process pour que l'email envoyé à l'administrateur du site comporte les champs rajoutés ?
Par défaut je reçoit ;
Bonjour Administrator. Un nouvel utilisateur s'est inscrit sur le site Color Consulting.
Cet e-mail contient ses coordonnées :
Nom : World Company
E-mail : zen@libertysurf.fr
Nom d'utilisateur : nissan
Merci de ne pas répondre à ce message, généré automatiquement à titre informatif.
Et idéalement :
Bonjour Administrator. Un nouvel utilisateur s'est inscrit sur le site Color Consulting.
Cet e-mail contient ses coordonnées :
Nom : World Company
Telephone : 01 46 25 17 35
Profession : commercial
E-mail : zen@libertysurf.fr
Nom d'utilisateur : nissan
Merci de ne pas répondre à ce message, généré automatiquement à titre informatif.
Autre point, dès que je mets un accent ça ne passe plus ?!
Merci de vos retours et excellente journée à tous.
++
alj a écrit ce commentaire
Jeudi, 16 Juin 2011
Il faut remplacer par :
alj a écrit ce commentaire
Jeudi, 16 Juin 2011
dans components/com_user/views/register/tmpl/default.php si tu ajoutes à ton input cela le rend obligatoire.
alj a écrit ce commentaire
Jeudi, 16 Juin 2011