BaroqueW

and his side-kick nikkitaa

Intégrer un système de mail automatique à un MediaWiki

leave a comment »

Media Wiki

MediaWiki est le moteur de Wiki utilisé par Wikipedia notamment.

Malheureusement, il semble qu’on ne puisse recevoir de mails que lors de modifications de certains articles, et non pas de tous. Voilà de quoi y remédier : (évidemment ça ne marche que sur une installation perso de MediaWiki, pas sur Wikipedia itself…)

Le code est à mettre dans /includes/Article.php, à la fin de la fonction updateArticle (ligne 1013).

Voilà le code :

//mailer mail@truc.com
$to = "mail@truc.com";
$nom = $wgUser->getName();
$tempm = $this->mTitle->escapeLocalUrl();
list($poubelle1, $poubelle2, $pagem) = split("/" , $tempm);
$sujet = "La page $pagem du wiki a été modifiée";
$bodym ="La page $pagem du wiki a ete modifiee par $nom. La page est accessible sur http://wiki.truc.com$tempm";
$bodym = "$bodym \n\n Les diffs sont : \n $diff_text \n\n Bonne journee";
//si le changement n'est pas marqué comme mineur, on envoie un mail
if (!$minor)
mail($to,$sujet,$bodym);
return $good;

On peut rajouter les diffs à la ligne 1053 avec une ligne genre :

$diff_text = xdiff_string_diff( $oldtext, $text );

Attention, cette fonction (xdiff…) nécessite l’ajout d’un module au moteur PHP. Pour l’instant, Debian ne semble pas fournir ce module en package, il faut donc le compiler soi-même :

http://us2.php.net/manual/fr/ref.xdiff.php

Ca marche tout seul avec la ligne : extension=xdiff.so dans le fichier /etc/php4/apache/php.ini

Written by baroquew

April 13, 2006 at 15:52

Leave a Reply