Le backend tribune est très simple et celui de dlfp peut servir d'exemple, à l'exception du contenu de la balise <message> qui est un peu sale et contient des choses spécifiques qu'on ne trouve pas sur les autres tribunes.
Je pense que tu comprendras sans peine la structure XML du backend et la signification des balises post, login, info et message. Le lien donné par Shift plus haut concernant la DTD et le schéma XML sont toujours bons. Il y a juste quelques points qu'il faut souligner qui ne peuvent pas se deviner aisément :
1) L'attribut ID des posts doit être un entier unique. C'est le serveur qui attribue cet ID aux posts dans l'ordre où ils arrivent.
2) Les posts doivent être présentés dans le fichier par IDs décroissants - ce qui correspond donc à l'ordre chronologique inverse, les plus récents en premier. Ceci parce que les clients ne parsent pas le backend complet, ils s'arrêtent dès qu'un post déjà connu est trouvé.
3) Pour la compatibilité coincoin, il est impératif que l'ouverture d'une nouvelle balise XML se fasse après un retour chariot. En effet wmcc parse le backend ligne à ligne et supporte mal deux balises XML enchaînées sur la même ligne (par exemple ...plop coin</message><login>pouaite</login> à proscrire)
4) Les tags de formatage standard acceptés dans la balise <message> sont a, b, i, s, u et tt. C'est le boulot du serveur de tribune de faire en sorte que ces tags soient correctement encodés afin de ne pas casser la structure XML du fichier. C'est ce qu'on nomme en jargon tribune le "slip" du serveur. Le slip est également responsable de reconnaître les urls postées et de les transformer en tag "a". Il peut aussi faire des opérations plus sophistiquées comme la reconnaissance des horloges et des totoz côté serveur. Voir cet article : http://pycoincoin.free.fr/wikini/wakka.php?wiki=TypesDeSlip pour plus de précisions.
Pour toute question supplémentaire, tu trouveras à toute heure des développeurs de coincoins et de tribunes sur la tribune de dlfp, ou à défaut un des tribunes non mortes listées ici http://pycoincoin.free.fr/config/ :-)
[^] # Re: En parlant des coincoins
Posté par Sten Spårvagnhög (site web personnel) . En réponse au journal Clients coincoin et publicité. Évalué à 7.
Je pense que tu comprendras sans peine la structure XML du backend et la signification des balises post, login, info et message. Le lien donné par Shift plus haut concernant la DTD et le schéma XML sont toujours bons. Il y a juste quelques points qu'il faut souligner qui ne peuvent pas se deviner aisément :
1) L'attribut ID des posts doit être un entier unique. C'est le serveur qui attribue cet ID aux posts dans l'ordre où ils arrivent.
2) Les posts doivent être présentés dans le fichier par IDs décroissants - ce qui correspond donc à l'ordre chronologique inverse, les plus récents en premier. Ceci parce que les clients ne parsent pas le backend complet, ils s'arrêtent dès qu'un post déjà connu est trouvé.
3) Pour la compatibilité coincoin, il est impératif que l'ouverture d'une nouvelle balise XML se fasse après un retour chariot. En effet wmcc parse le backend ligne à ligne et supporte mal deux balises XML enchaînées sur la même ligne (par exemple
...plop coin</message><login>pouaite</login>à proscrire)4) Les tags de formatage standard acceptés dans la balise <message> sont a, b, i, s, u et tt. C'est le boulot du serveur de tribune de faire en sorte que ces tags soient correctement encodés afin de ne pas casser la structure XML du fichier. C'est ce qu'on nomme en jargon tribune le "slip" du serveur. Le slip est également responsable de reconnaître les urls postées et de les transformer en tag "a". Il peut aussi faire des opérations plus sophistiquées comme la reconnaissance des horloges et des totoz côté serveur. Voir cet article : http://pycoincoin.free.fr/wikini/wakka.php?wiki=TypesDeSlip pour plus de précisions.
Enfin, je ne saurais trop te conseiller de jeter un oeil aux moteurs de tribune déjà existants. Tu as l'embarras du choix pour t'en inspirer :
En PHP : DaPortativeBouchot http://twolife.org/wiki/DaPortativeBouchot , DaPHPBouchot http://alx14.free.fr/trib/ , FAAB avec son slipounet(r)(tm) http://ratatouille.leguyader.eu/ , ... et j'en passe
En module Drupal : http://drupal.org/project/tribune
En Ruby/Rails : Tribune 2.0 http://bouchot.org/
En Python/Django : Tribungo http://dax.sveetch.net/tribune/
En Java : JPlop http://tifauv.homeip.net:8080/jplop/
Pour toute question supplémentaire, tu trouveras à toute heure des développeurs de coincoins et de tribunes sur la tribune de dlfp, ou à défaut un des tribunes non mortes listées ici http://pycoincoin.free.fr/config/ :-)