Dernière mise à jour : 28/10/2013 à 23h19
Table des matières
Introduction
Le présent tutoriel a pour but de vous aider à ajouter simplement des champs personnalisés dans les messages du forum.
Nous vous montrerons la procédure pas à pas simplement, en mettant en place un champ Facebook.
A la fin de cet article, vous devriez obtenir ce résultat :
Créer le champ étendu
Tout d'abord, il va falloir créer un champ étendu. Rendez-vous donc dans le panneau d'administration, menu 'Utilisateurs', 'Champs étendus' => 'Ajouter'
Remplissez le champ comme vous le souhaitez. Pour notre champ Facebook, j'ai rempli ainsi :
Ensuite, n'oubliez pas de valider (;
L' image
Dans mon exemple, j'ai utilisé cette image : . C'est elle qui sera utilisée pour permettre aux usagers de cliquer et atterrir sur la page Facebook de l'auteur du message.
Vous pouvez bien entendu la récupérer, pour ce un petit clic droit 'Enregistrer l'image sous'.
Je l'ai appelée 'user_fb.png'. Son nom nous sera important pour la suite. Nous allons maintenant la placer de manière à ce qu'elle soit utilisable par le module forum.
Copiez donc votre image, et collez la dans le dossier 'templates/nom_de_votre_theme/images/french'
Récupération du champ étendu
Avant de pouvoir afficher notre petit bouton, nous allons déjà en récupérer le contenu. Pour cela, ouvrez le fichier 'forum/topic.php'.
Allez à la ligne 205 (oui, le gros pavé (; ). Toute cette partie qui peut paraître très abstraite pour des gens normaux est chargée de questionner la base de données. Elle récupère entre autres les messages du sujet, mais aussi la signature, l'avatar du membre qui les ont postés.
Ajoutons donc le code qui nous permettra d'obtenir notre champ :
Cherchez dans cette ligne le code suivant :
Code PHP :
ext_field.user_sign,
A la suite, ajoutez-y simplement :
Code PHP :
ext_field.f_facebook,
Ensuite, passons à la ligne 376 :
Code PHP :
$Template->assign_block_vars('msg', array(
Toute cette partie ( jusqu'à la ligne 418) est très importante : Elle passe les variables PHP récupérées dans la base de données jusqu'au template (fichier .TPL). Nous allons donc en profiter pour passer également notre champ facebook :
En dessous de la ligne 397 (qui commence par ''USER_WEB' => (!empty($row[' ), ajoutez ceci :
Code PHP :
'USER_FB' => (!empty($row['f_facebook'])) ? '<a href="'. $row['f_facebook'] . '"><img src="../templates/' . get_utheme() . '/images/' . get_ulang() . '/user_fb.png" /></a>' : '',
Sauvegardez votre fichier et passons à la dernière étape.
L'affichage
Jusqu'à présent, nous avons préparé et récupéré notre champ étendu. Nous allons pouvoir maintenant l'afficher sur chaque message du forum.
Pour ce, ouvrez le fichier 'forum\templates\forum_topic.tpl' et allez à la ligne 296 :
Code TPL :
{msg.USER_PM} {msg.USER_MAIL} {msg.USER_MSN} {msg.USER_YAHOO} {msg.USER_WEB}
Il nous suffit à présent d'insérer notre variable. Ajoutez donc à la suite :
Code TPL :
{msg.USER_FB}
Sauvegardez votre fichier.
Résultat
En naviguant dans les messages de votre forum, vous devriez maintenant voir apparaître la petite icône Facebook comme la mienne :
Ca ne fonctionne pas !
Si ça ne fonctionne pas, pas de panique.
Assurez-vous d'avoir :
- Bien rempli le champ étendu dans votre profil :
- Vidé le cache après avoir effectué toutes les manipulations
- Bien effectué toutes les opérations décrites ci-dessus