Catégorie « Forums »

RBS Change 3.5 et messagerie privée

La version 3.5 de RBS Change est sortie il y a peu avec ps mal de nouveautés et améliorations diverses.

À l'occasion de cette version, le module de messagerie privée que j'ai développé pour L'Assemblée des Funomanciens et publié ici a été reversé dans le pool de modules standards d'RBS Change. Le repository sourceforge se sera donc plus alimenté pour les versions à venir et est remplacé par l'entrée modules.privatemessaging.git du repository d'RBS Change.


Messagerie privée pour RBS Change

Je viens de créer la page dédiée à ce module ainsi que le projet SourceForge pour ce module avec une première version de développement.

Donc au programme de ce module déjà évoqué il y a quelques temps : des messages organisés en conversations à deux participants ou plus. Il est possible d'inviter un nouveau participant en cours de route et de quitter une conversation (elle ne sera effacée en base qu'une fois que tous les participants l'auront quittée).

Cette version n'est pas encore utilisable notamment sur un point : la sélection des destinataire qui doit encore être revue. Mais il y a déjà pas mal de choses fonctionnelles, donc ça valait le coup de l'archiver quelque part ^^

Ce qu'il me reste à faire sur ce module avant d'en sortir une première version stable :

  • comme dit plus haut : implémenter une sélection viable des destinataires (là c'est une liste à sélection multiple... ça va quand il y a dix membres mais ça ne tient absolument pas un grande volumétrie).
  • indexer les messages pour qu'on puisse les retrouver dans la recherche mais en gérant correctement les permissions d'accès pour que seuls les participants de la discussion puissent les voir.
  • d’une manière ou d’une autre (rien n’est encore vraiment arrêté dans la façon de faire), possibilité de marquer des messages/discussions : “à traiter”, “réponse attendue”, “contient des informations importantes”…

Modules à venir pour RBS Change

J'entame progressivement la migration de mes forums vers RBS Change, ce qui implique le développement d'un bon nombre de fonctionnalités qui ne sont pas présentes dans les modules standards. Voici une petite liste de ce que j'ai déjà commencé :

Logos aléatoires

Il s'agit simplement de reproduire l'affichage aléatoire des logos comme c'est le cas sur EDForum. La version actuelle du module se borne à ce fonctionnel strict : toutes les n minutes, on change de logos en choisissant aléatoirement parmi les logos définis en backoffice, chaque logo ayant un poids donné.

C'est clairement pas le plus utile des modules mais c'est une fonctionnalité simple et il fallait bien commencer quelque part...

Évolutions à venir

À terme, j'ajouterai sans doute une galerie des logos en cours et passés.

Micro-news

Là aussi on reproduit à l'identique une fonctionnalité d'EDForum : il s'agit simplement de mettre en avant des liens d'actualités. Chaque "micro-news" contient un libellé et un lien (soit un document du site, soit une URL externe).

Le module dispose également d'une fonction d'importation de flux RSS externes et les blocs d'affichage s'accompagnent de la génération de flux RSS.

Messagerie privée

Là on entre dans le vif du sujet : après deux modules mineurs, on arrive à une fonctionnalité importante dans tout site communautaire (donc notamment un forum).

J'ai choisi de ne pas reprendre le modèle standard de messagerie privée calquée sur les mails qu'on peut trouver dans la plupart des gestionnaires de forums pour reprendre le principe utilisé sur les forums MesDiscussions.Net (Hardware.fr, JudgeHype ou encore Doctissimo) qui présente les messages plutôt comme des conversations, sous la même forme que les sujets des forums (quand on y pense c'est nettement plus pratique et logique).

Ce module-là est encore loin d'être fini mais il permettra entre autres :

  • un nombre de participants potentiellement supérieur à 2 (nombre maximum réglable par configuration).
  • invitation de nouveaux participants en cours de route.
  • indexation des messages.
  • possibilité de modifier un message tant que personne ne l'a lu.
  • d'une manière ou d'une autre (rien n'est encore vraiment arrêté dans la façon de faire), possibilité de marquer des messages/discussions : "à traiter", "réponse attendue", "contient des informations importantes"...

Pour plus d'informations sur le développement de ce module ou discuter de ses fonctionnalités, rendez-vous sur le sujet dédié sur EDForum.

La page dédiée et le repository SVN seront créés quand j'approcherai suffisamment d'une version utilisable.

Et ensuite ?

Ensuite je passerai sans doute à la gestion des smileys, l'ajout des bbcodes non-gérés en standard par Change... Ou autre chose selon ce qui m'inspirera le plus sur le moment :p

Quand à mon module de gestion de bibliothèque que j'évoquais lors de la sortie de Change, il a pas mal avancé mais je le laisse un peu de côté pour le moment puisque je ne le mettrai pas en ligne avant d'avoir migré les forums...

EDIT 16h41 :
Finalement j'ai fini ce qui manquait dans le module Micro-news, j'ai donc ajouté la page dédiée et initialisé le repository SVN avec la première version du code.


Sortie de RBS Change 3.0

Je n'ai pas trop parlé de mon boulot jusqu'à présent vu que quand on réalise un CMS propriétaire réservé aux clients de la boite où on travaille, ben ça n'intéresse pas grand monde en dehors...

Mais là, la donne change puisque ce CMS est sorti ce matin en version 3.0 avec l'a particularité que la plupart des modules sont open source et à usage gratuit. Les seuls payants sont plutôt des fonctionnalités assez avancées, principalement autour de l'e-commerce, qui n'ont de réel intérêt que sur un gros site et quasiment pas sur un site de taille raisonnable et à but non lucratif (or en dehors du boulot c'est plutôt cette deuxième catégorie de site qui m'intéresse :p ).

Le CMS en question s'appelle RBS Change et est disponible sur son site dédié ouvert ce matin. Je n'épiloguerai pas sur un éloge interminable : je participe au développement depuis plusieurs années donc je ne serais sans doute pas objectif. Je vous laisse donc vous faire une idée avec la démo en ligne ou en l'installant chez vous (instructions disponibles sur le site). Je vais plutôt parler de ce que je compte faire avec en dehors du boulot.

Refonte de mes forums

Il y a quelques temps je parlais de mon projet d'abandon de PhpBB, puis à mon regret de ne rien trouver d'autre de satisfaisant et ma décision de me rabattre en désespoir de cause sur un développement perso. À l'époque j'avais regardé un peu les frameworks existants (notamment Symfony et Jelix), puis j'avais renoncé principalement par flemme d'apprendre à utiliser un autre Framework que celui que je développe et utilise déjà toute la semaine au boulot... Je m'étais donc rabattu sur un raffinage progressif de mon vieux PhpBB 2 en refondant des pans entiers et en introduisant plus d'objets en lieu et place du code presque uniquement séquentiel.

Maintenant que Change (j'ai pas l'habitude de coller le "RBS" devant et ça fait long, donc on se contentera de "Change" ^^) est open source, je vais progressivement migrer mes forums dessus. Parce que là plutôt que de devoir apprendre autre chose, je vais au contraire pouvoir exploiter du code que je connais bien, ce sera donc nettement plus efficace !

Liste de livres, DVDs, etc.

Je suis un grand consommateur de mangas et DVDs, mes étagères en sont pleines, du coup au bout d'un moment ça devient difficile de retenir tout ce qu'on a précisément. D'autant que les mangas je les achète d'occasion (prix divisé par deux en moyenne, quand on en achète des centaines, ça joue :p), donc des fois avec des trous (je prends ce que je trouve quand je le trouve). Jusqu'à présent je me contentais d'une liste imprimée mais quand elle devient trop longue, c'est plus très pratique... Et puis maintenant que j'ai un iPhone, j'ai accès au net même dans les magasins, d'où l'idée de me faire une application de gestion de cette liste en ligne (avec aussi un affichage dédié aux mobiles).

J'en avais parlé et apparemment il y a du monde intéressé, du coup le projet s'est élargit à une sorte d'application collaborative avec des fiches par œuvre, des commentaires, des notations, etc. Le tout à terme lié au forum. Les développements sont déjà bien entamés (sur une pré-version de Change datant d'un peu avant la sortie, lorsque le code commençait à se stabiliser). Ce sera sans doute le premier module que je sortirai. Il sera bien entendu téléchargeable librement (licence Affero GPL oblige : en gros c'est une transposition de la GPL dans le domaine des applications WEB où l'on doit publier toutes les modifications à destination de l'utilisateur final du site et pas seulement à celui à qui on livre l'application).

Et d'autres trucs encore...

J'ai déjà d'autres projets pour après, notamment :

  • un annuaire de styles pour Sylish : l'idée étant sur un site donné (en premier lieu mon forum en l'occurrence mais ça peut avoir un intérêt ailleurs aussi) d'avoir un espace où les membres peuvent publier leurs styles perso. Ce module est destiné à remplacer cette page et à profiter des fonctionnalités d'installation rapide et de mise à jour que propose Stylish.
  • et je ne désespère pas de mener un jour à bien mon projet de développement de jeu en ligne dans le navigateur que j'exhume régulièrement avant de le laisser sombrer à nouveau dans l'oubli... Mais à chaque fois ça va un peu plus loin, donc un jour ça ira peut-être jusqu'au bout :D
  • et sans doutes d'autres idées à la con (ou même pas à la con, qui sait ?) qui me viendront à l'avenir...
Voilà, rendez-vous un de ces jours pour la liste de livres et DVDs puisque c'est le seul projet vraiment entamé du lot et donc le premier qui sortira des cartons ^^


Affichage de balises sans qu'elles soient traduites

Comme ça fait deux semaines que j'ai rien posté...

J'ai souvent constaté en recherchant des plugins pour WordPress ou en lisant des discussions sur des forums que pour afficher des balises "en clair" sans qu'elles soient traduites, les gens ajoutaient dedans une étoile ou un point. C'est une ruse qui fonctionne, certes, mais ça nuit à la lisibilité et en cas de copié/collé, il faut retoucher le code, c'est pas pratique.

Première solution

Une autre solution que j'ai longtemps utilisée consiste à intercaler une autre balise dedans qui empêchera le parser de reconnaitre la balise que l'on veut afficher.

Par exemple, pour afficher les balises bbcodes

[b]bla[/b]

sur un forum, on peut mettre

[b[b][/b]]bla[[b][/b]/b]

Cependant cela produit un code non-valide XHTML, puisqu'on se retrouve avec une balise HTML vide, ce n'est donc pas très élégant.

Seconde solution

Une autre façon de faire, est d'utiliser les entités HTML pour remplacer les crochets, chevrons ou accolades qu'on veut ne pas voir interprétées. Pour afficher

[b]bla[/b]

on écrira donc

[b]bla[/b]

Les différentes entités sont facilement trouvables sur le net, notamment ici.

Les plus intéressantes étant :

[ -> [
] -> ]
&#60; ou &lt; -> <
&#62; ou &gt; -> >

L'inconvénient c'est que suivant les scripts, les entités sont automatiquement remplacées par les caractères qu'elles représentent et dans ce cas, ben... ça sert à rien \o/

En tout cas sur WordPress, ça marche et ça me semble plus élégant que les deux autres solutions.