Follow us on Twitter
Astuces Développement Ajouter des champs supplémentaires à la page d'enregistrement

Ajouter des champs supplémentaires à la page d'enregistrement

Contenu text : oui
Contenu vidéo
: non

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.

1 - Ajouter des champs à la table des utilisateur

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
2
ALTER TABLE `jos_users` ADD `telephone` VARCHAR (100) NOT NULL AFTER `name`;
ALTER TABLE `jos_users` ADD `profession` VARCHAR (100) NOT NULL AFTER `telephone`;

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.

2 - Modifier le code

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
2
var $telephone = null;
var $profession = 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
2
3
4
5
6
7
8
9
10
11
12
<tr>
<td width="30%" height="40">
<label id="telephonemsg" for="telephone">: </label> </td>
<td>
<input type="text" name="telephone" id="telephone" size="40" value="user->get( 'telephone' );?>" class="inputbox required" maxlength="50" /> * </td>
</tr>
<tr>
<td width="30%" height="40">
<label id="profession" for="phone">: </label> </td>
<td>
<input type="text" name="profession" id="profession" size="40" value="user->get( 'profession' );?>" class="inputbox required" maxlength="50" /> * </td>
</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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<tr>    
<td width="120">
<label for="telephone">
:
</label>
</td>
<td>
<input class="inputbox" type="text" id="telephone" name="telephone" value="user->get('telephone');?>" size="40" />
</td>
</tr>
<tr>
<td width="120">
<label for="profession">
:
</label>
</td>
<td>
<input class="inputbox" type="text" id="profession" name="profession" value="user->get('profession');?>" size="40" />
</td>
</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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<tr>
<td class="key">
<label for="telephone">
 
</label>
</td>
<td>
<input class="inputbox" type="text" name="telephone" id="telephone" size="40" value="user->get('telephone'); ?>" />
</td>
</tr>
<tr>
<td class="key">
<label for="profession">
 
</label>
</td>
<td>
<input class="inputbox" type="text" name="profession" id="profession" size="40" value="user->get('profession'); ?>" />
</td>
</tr>
Voilà, vous venez de rajouter deux nouveaux champs au formulaire d'enregistrement de Joomla, vous pouvez créer un compte pour tester le résultat.

0 Commentaire

Ajouter un commentaire


    • >:o
    • :-[
    • :'(
    • :-(
    • :-D
    • :-*
    • :-)
    • :P
    • :\
    • 8-)
    • ;-)

    Abonnements Joomlabc

    7-jours-abonnement-joomlabc

    2-mois-abonnement-joomlabc

    4 mois d'abonnement à Joomlabc

    Dernières astuces

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    Formulaire identification