VI. Tutoriels

Ajouter des champs étendus sur votre forum

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 :

champsupp3





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 :

champsupp1

Ensuite, n'oubliez pas de valider (;



L' image





Dans mon exemple, j'ai utilisé cette image : user_fb. 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'

Si vous souhaiter utiliser votre site en anglais, répétez l'opération avec le dossier 'english'





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,


Pour les curieux :

ext_field : Alias donné à la table 'member_extended_fields' dans la requête SQL

f_facebook : nom du champ étendu précédé de 'f_', utilisé par PHPBoost pour gérer les champs personnalisés




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>' : '',




Pour les téméraires :

USER_FB sera le nom de la variable dans le template. A noter que cette variable sera stockée dans le block 'msg', qui passera en boucle chaque message du sujet.

$row['f_facebook'] contient le champ facebook de l'auteur du message, récupéré dans la BDD.

Le code teste si le champ étendu en question est rempli ou pas. S'il l'est, alors on affecte à la variable 'USER_FB' le lien et l'image. Sinon, une chaîne vide lui est retournée.

Remarquez également la présence du nom de notre image (;





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 :

champsupp3





Ca ne fonctionne pas !





Si ça ne fonctionne pas, pas de panique.

Assurez-vous d'avoir :

  • Bien rempli le champ étendu dans votre profil :

    champsupp2
  • Vidé le cache après avoir effectué toutes les manipulations
  • Bien effectué toutes les opérations décrites ci-dessus

Cette page a été vue 2401 fois