Bien entendu on peut faire un mur contributif avec du javascript, du php. On peut créer une console d’administration et récupérer des flux dans une base de données en réalisant l’outil de A à Z. Ce n’est pas si complexe mais ça prend un peu de temps, surtout quand on n’est pas développeur. Une autre solution : détourner SPIP pour utiliser sa console d’administration, de modération.

Pourquoi SPIP ? Grâce à SPIP, on peut récupérer des flux rss qui sont sauvegardés dans la base de données, on peut modérer a posteriori ou a priori les messages reçus… beaucoup d’avantages mais un souci très important : le rafraîchissement de la syndication des flux rss se fait au mieux toutes les deux heures. Pour éviter cette « lenteur » de rafraîchissement il y a deux solutions :
– une solution humaine pas très intéressante (rafraîchir régulièrement à la main dans la console d’administration) ;
– un plugin (merci à Julien Kirch pour le tuyau) qui oblige SPIP à se rafraîchir (attention seulement sous SPIP 1.9).

Le plugin SpeedSyndic est sur spip-contrib.net ici.

Ici je n’utilise SPIP que pour la réalisation de ce mur contributif mais il est possible de l’intégrer à un site complet en spécifiant bien les sites syndiqués concernés par ce mur.
Je ne garde que la page sommaire.html et dans sommaire uniquement la boucle de syndication.

<B_twittywall>
[(#ANCRE_PAGINATION)]

<ul class= »twitwall »>
<BOUCLE_twittywall(SYNDIC_ARTICLES) {par date}{inverse}{pagination 8}>
<li><small>[(#DATE|nom_jour)] [(#DATE|affdate)] – [(#DATE|heures)]h[(#DATE|minutes)]</small><a href= »#URL_ARTICLE » class= »spip_out »> #LESAUTEURS </a>#DESCRIPTIF[<hr>(#LINK)]</li>
</BOUCLE_twittywall>
</ul>
[<p class= »pagination »>(#PAGINATION)</p>]

</B_twittywall>

Voilà simplement la base d’affichage du mur.
Dans SPIP (1.9 pour rappel), je créée une rubrique et je référence comme site la page twitter liée à un hashtag précis (ex : http://search.twitter.com/search?q=%23monhashtag) et ne pas oublier de mettre la syndication de ce lien avec le fil rss (ex : http://search.twitter.com/search.atom?q=%23monhashtag).

Je viendrais compléter l’article pour y ajouter un fil rss reprenant des sms de manière peu coûteuse grâce aux interventions de plusieurs contributeurs pour la réalisation d’un mur dont Hugues Aubin… (à suivre)

Petites modifications pour rafraîchir la page en ajax

Donc là on reprend le code <B_twittywall>…</B_twittywall> ci-dessus mais on le met dans une page twittywall.html dans le dossier squelettes.
Pour cela nous allons utiliser prototype (merci à @dweez pour le coup de main). Donc récupérer prototype.js et l’appeler dans inc-head.html à la place de jQuery (évitons les problèmes de compatibilité pour l’instant).
Dans sommaire.html on rajoute le code suivant :

<script type= »text/javascript »>
Event.observe(window, ‘load’, function() {
new Ajax.PeriodicalUpdater(
‘contenu’,
‘http://muropera.erwantanguy.fr/spip.php’,
{
method: ‘get’,
parameters: { page: ‘twittywall’, var_mode: ‘recalcul’ },
onSuccess: function(){
new Ajax.Request(
‘http://muropera.erwantanguy.fr/spip.php’,
{
method: ‘post’,
parameters: { action: ‘cron’ }
});
},
onFailure: function() {
alert(« Une erreur est survenue lors de l’appel AJAX.nRecharger la page devrait résoudre le problème. »)
},
frequency: 5,
decay: 1
}
);
});
</script>

Dans le body de sommaire.html, il suffit d’avoir une div vide :

<div id= »contenu »></div>

La fréquence de rafraîchissement est de 5 secondes, ce qui est très court par rapport à la capacité de SPIP à mettre à jour les flux rss même avec le plugin SpeedSyndic. J’ai rajouté un rappel du cron de SPIP pour forcer le rafraîchissement.

Après plusieurs tests, on arrive à des résultats très variables qui vont de quelques secondes à presque 10 minutes, ce qui est un peu long encore mais permet une solution de mur contributif simple à mettre en place.

Liens

Exemples de twittywall sous spip ou non :
Mur contributif de l’exposition « Boat people » (sous SPIP 2 et uniquement un hashtag twitter)
Mur contributif des étés TIC à Rennes (hashtag twitter et sms)
http://murcontributif.storytlr.com/
Ivry en fête

Quelques liens :
Comprendre ce qu’est un mur contributif
Créer un mur d’expression contributif pour les assises de la ville
Créer un mur d’expression contributif pour les assises de la ville par Loic HAY