Ca peut servir.
Par Vincent le dimanche 30 mai 2004, 19:30 - Techno Prolo - Lien permanent
Je viens de faire un truc tout bidon. Mais bon, ça peut toujours servir à quelqu'un d'autre... C'est l'intégration de la syntaxe Wiki dans le gestionnaire de forums Phorum (en version béta 5.0.x).
J'ai utilisé la librairie de classes WikiRenderer programmée en PHP de Laurent Jouanneau qui permet de transformer un texte au format wiki, en un texte formaté en XHTML
. L'intêret dans tout cela me diriez vous.
Bah, premièrement, je trouve cette syntaxe beaucoup moins contraignante et plus facile à retenir que le BBcode par exemple. Deuxièmement, Phorum met des petits >
automatiquement devant un texte d'un camarade que l'on veut citer dans sa réponse et que, comme par hasard, c'est de cette façon que la syntaxe Wiki interprète un bloc de citation. Et dernièrement, la transformation en XHTML se fait dans tout les cas et que c'est super la classe d'avoir un forum valide XHTML 1.0 Strict (Quoi ? On s'en fout ?).
Bon, si vous êtes encore là, c'est que vous voulez peut-être en savoir plus... Vous pouvez commencer par télécharger le module (format zip
, taille 8.58 ko
), le décompacter et l'installer dans le répertoire mods
à la racine des fichiers de vos forums. Ensuite, rendez-vous dans la zone d'administration de vos forums à la page de sélection des modules et mettez sur ON
votre nouveau module. Validez, c'est fait.
Ah, non non non
, me disent certains... Et ils ont raison, les bougres.
J'aime pas trop cela, mais il va falloir mettre les mains dans le code d'un fichier de Phorum pour une toute petite manipulation. Le problème vient de l'intégration des citations dans la zone de rédaction des messages quand l'utilisateur clique sur le lien Répondre en citant
. On se retrouve avec des espaces après le signe >
, des lignes tronquées au cinquantième caractère qui fout en l'air la mise en forme du message cité, un vilain >
en trop en début de citation et sans doute un autre truc qui me revient pas tout de suite, là, maintenant. Bref, c'est pas New York.
Pour pallier et pour les courageux, il faut ouvrir le fichier read.php
à la racine des fichiers de vos forums et trouver le bout de code suivant :
if(isset($PHORUM["args"]["quote"])){ $phorum_quote_body = strip_body($messages[$message_id]['body']); $phorum_quote_body=str_replace(" ", " > ", $phorum_quote_body); $phorum_quote_body=wordwrap(trim($phorum_quote_body), 50, " > ", true); $PHORUM["DATA"]["POST"]["body"]="{$messages[$message_id]['author']} {$PHORUM['DATA']['LANG']['Wrote']}: ".str_repeat("-", 55)." > $phorum_quote_body "; }
Une fois trouvé, vous pouvez tout commenter (avec les signes //
devant chaques lignes de code ou en encadrant le code par les signes /*
en début et */
à la fin). Ensuite, trouvez, un peu au-dessus, la ligne de code suivante:
$messages = phorum_hook("read", $messages);
Ceci fait, insérez avant cette dernière ligne le code ci-dessous (notez l'absence d'espaces
devans les
>
) :
if(isset($PHORUM["args"]["quote"])){ $phorum_quote_body = strip_body($messages[$message_id]['body']); $phorum_quote_body=str_replace(" ", " >", $phorum_quote_body); $PHORUM["DATA"]["POST"]["body"]="{$messages[$message_id]['author']} {$PHORUM['DATA']['LANG']['Wrote']}: ".str_repeat("=", 4)." >$phorum_quote_body "; }
Comme le dit l'expression un mal soigne un bien
ou bien je vois l'oeil qui me regarde
(spéciale dédicace Kiko), cette manipulation induit quelques contrariétés :
- à chaque mise à jour du code de vos forums, il faudra modifier le fichier
read.php
; - c'est au risque et péril de vos forums (pas trop quand même).
Voilà, c'est fini. Comme vous le voyez, ce n'était pas trop dur. Il est d'ailleurs possible d'améliorer le système et le rendre plus portable en évitant d'aller modifier le code de Phorum (si vous trouver, écrivez moi :)). Un autre truc aussi qui me tracasse : les blocs de citation sont bien reconnus dans d'autres blocs de citation mais pas les autres. C'est à dire que les lignes horizontales, les listes ou les blocs de code à pu, à la rue, disparu. Cela vient peut-être de moi qui ne sais pas configurer la librairie de Laurent Jouanneau... Je vais sans doute lui demander puisqu'il a déjà intégrer ses classes dans ses forums sur xulfr.
Pour vraiment finir, j'ai fais cela pour le site d'une communauté de joueurs de Ryzom (ce jeu est une drogue). Je fais donc mumuse avec Phorum et je ne manquerai pas de vous écrire mes trouvailles.
Commentaires
Je le trouve vraiment excellent le module WikiRenderer de Laurent Jouanneau, je l'utilise presque pour tous mes formulaires.
Bon, j'ai une réponse sur le forum dédié à WikiRenderer de Laurent Jouanneau au dernier truc qui me tracassait :
Je suis ému.