BaroqueW

BaroqueW

and his sidekick nikkitaa

BaroqueW RSS Feed
 
 
 
 

Archive for April, 2006

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

Media Wiki
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 :

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

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

  1. $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

Category: Articles en français, Tech >> Computer | Leave a comment