Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 12/06/2010, à 15:54

Askelon

TaToSu : des tags dans vos sujets sur FluxBB

Bonjour à tous smile

Je vous remets ici le post publié sur le forum francophone de FluxBB


Ce bout de code vient d'une proposition d'amélioration sur mon forum de randonnée favoris ; afin de faciliter les recherches sur ce forum, un système de tags a été mis en place, par exemple un sujet traitant des matelas Therm-a-Rest Z-lite aura pour titre [Matelas] Therm-a-Rest Z-litre. Mais il faut ajouter ces tags à la main, suivant une norme établie, ce qui peut se révéler fastidieux, tant pour les utilisateurs pas encore habitués que pour les modérateurs qui doivent passer derrière pour faire le ménage et les corrections.

L'idée proposée est simple : ajouter, dans le formulaire de création/édition de sujet, des listes déroulantes contenant les tags utilisables pour normaliser le titre du sujet. Techniquement, puisque les deux listes sont ajoutées dans le formulaire, leurs valeurs seront postées en même temps que le reste du formulaire, et donc manipulables via $_POST. Marche à suivre détaillée.

Installation

Ce mod a été testé avec les versions suivantes :

+ FluxBB 1.2.22
+ Apache 2.2.14
+ Php 5.3.2
+ MySQL 5.1.41

L'installation d'un seul fichier est nécessaire, que vous pouvez télécharger ici. Extrayez le fichier tags.php dans votre répertoire /include/ ; si vous voulez le mettre ailleurs, c'est possible, il faudra juste le préciser un peu plus loin.

Il faut maintenant l'éditer pour y ajouter vos tags perso. À la ligne 86 vous trouvez les deux listes qui contiennent des tags par défaut. Le format est simple, un tag est défini de la manière suivante : [Titre_du_tag], et il sera utilisé tel quel. Choisissez donc bien vos titres, car se sont eux qui seront affichés dans le titre du sujet (avec les underscores en moins) !

Ceci étant fait, il y a deux fichiers du forum qui doivent être un peu modifiés : /post.php et /edit.php qui gèrent respectivement la publication et l'édition des topics et posts.

Fichier edit.php

D'abord, on inclue les deux tags au début du sujet du topic. À la ligne 77, remplacez :

$subject = pun_trim($_POST['req_subject']);

par :

$subject = pun_trim($_POST['tag1']." ".$_POST['tag2']." ".$_POST['req_subject']);

Puis on fournit la nouvelle version du titre. Ligne 209, remplacez :

echo pun_htmlspecialchars(isset($_POST['req_subject']) ? $_POST['req_subject'] : $cur_post['subject'])

par :

echo pun_htmlspecialchars($subject)

Enfin, à la ligne 210, juste avant

<label><?php echo $lang_common['Message'] ?><br />

ajoutez

<?php 
require_once('./include/tags.php');
$tag = new tagManager($cur_post['subject'],$_POST['tag1'],$_POST['tag2'],$cur_post['fid']);
$subject = $tag->getSubject(false);
?>

1. inclusion de la classe. Si vous n'avez pas mis tags.php dans /include/, c'est ici qu'il faut le préciser.
2. on créé une instance de la classe
3. on récupère le titre du sujet. Le paramètre false indique de ne pas afficher les tags dans le titre, modifiez-le en true si vous voulez les afficher.

Fichier post.php
Les modifications a effectuer pour post.php sont très similaires à celles de edit.php :

Ligne 86, remplacez :

$subject = pun_trim($_POST['req_subject']);

par :

$subject = pun_trim($_POST['tag1']." ".$_POST['tag2']." ".$_POST['req_subject']);

Ligne 492, juste avant

<label><strong><?php echo $lang_common['Subject'] ?></strong>

ajoutez :

<?php 
require_once('./include/tags.php');
$tag = new tagManager($cur_post['subject'],$_POST['tag1'],$_POST['tag2'],$fid);
$subject = $tag->getSubject(false);
?>

Mêmes remarques que pour edit.php, sauf que le 4ème paramètre de la classe est $fid et non $cur_post['fid'] : si on créé un nouveau post, c'est justement qu'on a pas on post courant à traiter.

Et voilà, c'est tout ! Cela devrait fonctionner wink

Le code source tel qu'il est prévu pour le forum pour lequel j'ai développé ce mod est visible sur [url=]mon blog[/url]. J'ai essayé de commenter au mieux le code, cela me semble assez clair, si vous avez des questions sur le fonctionnement n'hésitez pas à les poser.

Cette version ne propose que deux types de tags, mais il est tout-à-fait envisageable d'en ajouter d'autres, je le ferais surement à l'avenir. Elle présente aussi l'inconvénient de devoir systématiquement éditer le fichier principal si on voit ajouter/supprimer un tag... la prochaine version du mod corrigera ça, sans doute en passant par un fichier texte, idéalement modifiable via le panneau d'administration. Maintenant je n'utilise pas FluxBB, donc si quelqu'un voit un moyen de faire ça, qu'il se lance !

Ce mod fait aussi la distinction du forum dans lequel ce trouve le topic ; dans le cas présent, les tags que j'appelle «types» ou «spécifiques» ne seront disponibles que dans le forum d'id 11.

Les possibilités d'adaptation sont assez nombreuses, n'hésitez donc pas à réutiliser/modifier ce code à votre guise, ça tourne au GPL wink


En espérant que ça serve à quelqu'un, bonne fin de journée smile

Hors ligne

#2 Le 06/08/2012, à 15:27

news80

Re : TaToSu : des tags dans vos sujets sur FluxBB

Je suis besoin d'aide pour utiliser les tags dans Fluxbb 1.4 ou 1.5

Hors ligne

#3 Le 06/08/2012, à 18:29

xabilon

Re : TaToSu : des tags dans vos sujets sur FluxBB

Salut

Je te conseille de t'adresser plutôt au forum francophone de FluxBB : http://fluxbb.fr/forums/
Il y a une nouvelle mod pour les tags, qui devrait marcher sur FluxBB 1.4, développée par Mpok. On envisage de la mettre en place ici, mais pour l'instant on ne peut pas faire grand chose pour toi

Dernière modification par xabilon (Le 06/08/2012, à 18:32)


Pour passer un sujet en résolu : modifiez le premier message et ajoutez [Résolu] au titre.

Hors ligne

#4 Le 07/08/2012, à 14:01

news80

Re : TaToSu : des tags dans vos sujets sur FluxBB

xabilon a écrit :

Salut

Je te conseille de t'adresser plutôt au forum francophone de FluxBB : http://fluxbb.fr/forums/
Il y a une nouvelle mod pour les tags, qui devrait marcher sur FluxBB 1.4, développée par Mpok. On envisage de la mettre en place ici, mais pour l'instant on ne peut pas faire grand chose pour toi

Merci pour votre réponse
Mais ceux-ci n'est pas ce que je veux
ce plugin pour ajouter des tags dans le titre comme le tag [Résolu]
ce que je veux, un plugin qui ajoute des tags a les discussions comme celui-ci
http://piwigo.org/forum/tags.php

Hors ligne

#5 Le 07/08/2012, à 16:52

xabilon

Re : TaToSu : des tags dans vos sujets sur FluxBB

D'accord, un "nuage de tags" ... je pense que c'est une Mod similaire à TopicTags, mais avec aussi une page d'affichage des tags (avec la taille de police en fonction de leur fréquence d'apparition). Mais malheureusement je ne sais pas laquelle.
Ben même réponse : le plus simple et profitable est de demander chez FluxBB, c'est leur domaine. Tu peux même contacter le forum de Piwigo pour leur demander quelle extension ils utilisent (ou si ils l'ont faite eux-mêmes, si elle est libre et réutilisable ...)
Ou attendre qu'Askelon revienne, si il peut te conseiller à ce sujet smile


Pour passer un sujet en résolu : modifiez le premier message et ajoutez [Résolu] au titre.

Hors ligne