Historique
Depuis quelques mois comme tout bon webmaster qui se respecte, impossible de faire l'impasse sur le web 2.0 ajax et tout ce genre de new trucs qui déferlent en ce moment. Donc en janvier, je suis tombé en farfouillant sur les frameworks javascript php rails et ajax ... sur xajax et comme d'habitude j'ai fait le tour des exemples en ligne. Le mur, ça m'a rappelé un truc qui existait il y a bien quelques 6 à 8 ans et qui m'avait vraiment fait grosse impression et sur lequel j'avais laissé mes bannières de pub à l'époque déjà. Ce mur avait disparu, victime de son succès certainement et du temps qui passe. J'ai donc téléchargé xajax et installé leur démo en janvier et on l'a laissé un peu tel quel sur jpaime.net. Aucun problème, il faut dire que mettre un truc en ligne c'est bien, avoir du monde dessus c'est autre chose ;). Il y a un mois environ nous étions Moonshadow et moi en train de jouer avec les digg-like et je me suis dis, ba améliorons un peu le mur et on le met. On fait tous des erreurs, c'en était une lol ^^
D'un seul coup sur l'espace de quelques heures, le nombre de visites sur le mur a été multiplié par beaucoup. Et là on a eu à subir une foule de messages d'erreur xml sur le fichier contenant les messages postés. Nous avons dû avec Moonshadow (merci a elle) passer le week-end à monter la garde pour remonter le mur à chaque défaillance (mon pire week-end depuis longtemps). À chaque plantage on perdait des messages et on en a perdu des centaines. Le lundi est arrivé avec la reprise du travail et je n'avais toujours pas de solution à tout cela. Heureusement le nombre de visites a progressivement diminué et tout est rentré dans l'ordre. Je vous mets donc en garde sur ce script de démo. Avec le recul, je pense qu'il faudrait le recoder pour tout sauvegarder en base de données plutôt que dans un fichier xml. Je ferai peut-être bien ça un jour. Sinon il semble quand même qu'il faut vraiment que vous ayez un hébergeur qui supporte bien la montée en charge de vos développements. Actuellement, nous sommes sur un serveur mutualisé et il n'a pas résisté. Tous les développements de type web 2.0 ajax impliquent une charge de travail du serveur plus importante que les développements web normaux puisqu'une grande partie du travail est effectué par le serveur qui renvoie les informations à afficher et non par le poste client. Le serveur était saturé, je n'ai pas pu avoir de mon hébergeur plus de détails pour savoir d'ou ça venait. Ceci dit, la prochaine fois sur ce type de projet même si c'est totalement amateur, on aura une attitude plus professionnelle et on fera des tests de montée en charge pour voir le comportement de nos développements avant de les proposer en ligne. :/
Technique
Si vous voulez adapter le mur pour votre site voici la démarche
1- Télécharger Xajax
2- Modifier la feuille de style pour l'adapter à la présentation que vous voulez. La feuille de style dans l'exemple étant dans l'entête du fichier Thewall.php
3- Modifier dans thewall.server.php la deuzième ligne
{ define ('MAX_SCRIBBLES', 30); } en indiquant le nombre de graffitis que vous voulez voir apparaître sur la page du mur (conseil allez-y mollo quand même)
4- Si vous voulez ajouter comme je l'ai fait des variables supplémentaires pour afficher des images des url ou autre sur le mur , vous allez devoir modifier la class graffiti
exemple: function graffiti($sHandle, $sWords, $sPhoto, $sUrl) attention à bien rajouter vos nouvelles variables partout où nécessaire dans le code (ça c'est pas compliqué suffit de faire comme pour $sWords mais ne pas en oublier

5- adapter cette partie du script à votre convenance voici la mienne
$this->html = "\n getRandomFontFace().";font-weight: bold;text-align:".$this->getRandomAlignment(); $this->html .= ";color:".$this->getRandomColor().";\">"; $this->html .= "getRandomFontSize()."%;\">"; $this->html .= strip_tags(stripslashes($sWords)); $this->html .= ""; $this->isValid = true; ob_start(); }
"; if (trim($sUrl) != "") { $this->html .= "".strip_tags(stripslashes($sUrl))."
"; } if (trim($sPhoto) != "") { $this->html .= "
"; } $this->html .= " ~ ".strip_tags(stripslashes($sHandle))." ".date("d/m/Y H:i:s")."
Comme vous pouvez le noter, je garde en name l'ip des posteurs de photos. On ne sait jamais, en cas de problème cela me permettra d'intervenir.
6- beaucoup de monde sur le forum Xajax demande à ajouter des polices aléatoires, voilà ma solution à ce problème: ajoutez la fonction suivante
function getRandomFontFace() { $tablfont[1] ="Arial, Helvetica, sans-serif"; $tablfont[2] ="Times New Roman, Times, serif"; $tablfont[3] ="Verdana, Arial, Helvetica, sans-serif"; $tablfont[4] ="Verdana, Arial, Helvetica, sans-serif"; $tablfont[5] ="Courier New, Courier, mono"; $tablfont[6] ="Georgia, Times New Roman, Times, serif"; $tablfont[7] ="Verdana, Arial, Helvetica, sans-serif"; srand((double)microtime()*1000003); return $tablfont[rand(1,7)]; }
en indiquant en tableau les polices que vous désirez utiliser (ceci dit, il faut quand-même en choisir des standards pour les navigateurs) ce qui limite pas mal.
Et voilà vous avez votre mur à vous
^^


1. Le mercredi 28 juin 2006 à 12:15, par koolgreg
Merci de ton aide !!
Je v tester tout ca je te tiens au courant a +
2. Le samedi 1 juillet 2006 à 12:34, par Zame
Mirki pour tout..
je met ca dans un p'tit coin..
3. Le vendredi 13 octobre 2006 à 16:26, par koolgreg
Lu je reviens de vacances, et je vois que ton mur a bien evolué !
Je voulais savoir si ca te posé problème d'en realiser un pour moi car je connais rien au PHP, c'est du chinois pour moi!
Ya un pote qui m'a aide pour realiser ce mur mais il me plait pas trop!
Je voudrai avoir un boutton avec inscrit "exprimez vous"
Je voudrai egalement pouvoir laisser liens et image comme sur le tiens ainsi que l'historique!
Je me demande egalement comment on fait pour effacer un message eventuellement et si ca prend de la place sur mon serveur!
merci de toutes les reponses!
En espèrant avoir ton aide!
ciao
4. Le lundi 16 octobre 2006 à 04:28, par Jp
oki on voit ça pr email
5. Le mercredi 7 mars 2007 à 19:51, par graffiti
hey mais c'est plaisant ce petit script, je cherchais justement une fonction similaire pour rajouter sur mon site

J'ai déja trouvé une fonction qui permet de remplacer du texte par des images avec le meme texte mais mise en forme par une police uploadé sur le serveur (euh suis je clair la ?)
exemple: www.keusta.net/blog/headi...
donc j vais essayer de bidouiller tout ca pour que le visiteur puisse choisir sa police a l avance :p voir meme la couleur ca pourrait etre bien