Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 09-06-2010 17:37:24

Askelon
Membre

[Mod] TaToSu : des tags dans vos sujets

Note aux modos/admins : je n'ai pas tout-à-fait compris le modus operandi pour soumettre un mod, je poste donc ici le résumé explicatif que j'ai fait pour mon blog.


Bonjour à tous smile


Ce bout de code vient d'une proposition d'amélioration de mon forum de randonnée légère 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.

[large]Installation[/large]

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 09-06-2010 17:58:31

Guims
Membre

Re : [Mod] TaToSu : des tags dans vos sujets

Il me semble qu'on en est déjà parler sur une discution ...

Hors ligne

#3 09-06-2010 21:45:54

fanf73
Wik-wiki

Re : [Mod] TaToSu : des tags dans vos sujets

Note aux modos/admins : je n'ai pas tout-à-fait compris le modus operandi pour soumettre un mod, je poste donc ici le résumé explicatif que j'ai fait pour mon blog.

La soumission de mod est actuellement en stand-by sur le site car nous sommes en cours de migration, et les futures mods devront être déposées sur le repository du site officiel (fluxbb.org), dans un soucis de centralisation.

Pour soumettre une mod, il faut généralement proposer une archive contenant tous les éléments nécessaire à son installation / utilisation, à savoir :
- un fichier "lisez-moi" qui recense les différentes étapes (comme tu l'as fait dans ton message)
- un éventuelle "install_mod" si une modification est nécessaire dans la base de données
- les fichiers complémentaires nécessaires au bon fonctionnement de la mod


Merci pour ta contribution en tout cas. J'avais proposé un peu le même style de modification en réponse à une demande mais la tienne semble bien plus "générale" et facilement applicable à différent cas de figure smile


Nous ne faisons pas le travail à votre place mais nous prenons le temps de vous montrer le chemin. Merci de lire ce que l'on vous dit et de réfléchir avant de re-demander une explication.

Hors ligne

#4 06-02-2011 23:51:01

Guims
Membre

Re : [Mod] TaToSu : des tags dans vos sujets

Cherche "liste déroulante" dans les archives, tu trouveras ton bonheur.

Hors ligne

#5 06-08-2012 15:29:28

news80
Membre

Re : [Mod] TaToSu : des tags dans vos sujets

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

Hors ligne

#6 06-08-2012 16:55:28

Otomatic
Régisseur

Re : [Mod] TaToSu : des tags dans vos sujets


Ce n'est pas parce que l'erreur se propage qu'elle devient vérité. Gandhi
Sont différents : ça et sa - est et ait - à et a - ce et se - mes et mais ou met - été et était - c'est et ces - ce-si et ceci
La vie sans musique est tout simplement une erreur, une fatigue, un exil. Friedrich Nietzsche

Hors ligne

#7 07-08-2012 14:02:10

news80
Membre

Re : [Mod] TaToSu : des tags dans vos sujets

Otomatic a écrit :

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

#8 02-09-2012 07:40:04

Mpok
Néo Admin

Re : [Mod] TaToSu : des tags dans vos sujets

Ahh, mais pour cela il faudra payer… smile
Car franchement, cela demande une programmation BIEN PLUS complexe qu'un simple css, ou même une mod. Et je sais de quoi je parle… siffle
(notons à ce sujet que le lien fourni est un exemple D'UNE TRÈS MAUVAISE implémentation : ce qu'il faut pour un "nuage de tags" efficace, c'est qu'il soit suffisamment court mais pas trop, et suffisamment sélectif ; deux qualités qui n'apparraissent pas dans ce screenshot).

Hors ligne

Pied de page des forums