Utilisateur:Lea/mw-insertnewpage
Usage
Copier le script dans $MEDIAWIKI_ROOT/maintenance/
, modifier un peut le script, par exemple pour lui donner un nom d'utilisateur adapté, etc ... Puis,
cd $MEDIAWIKI_ROOT/maintenance/
php <nom du script> <chemin relatif vers le fichier>.wiki
pour insérer une nouvelle page portant le nom du fichier (sans l'extension).
Code
- !/usr/bin/php
<?
define("MW_PATH", "../") ;
$working_dir = getcwd() ;
chdir(MW_PATH) ;
define("MEDIAWIKI", true) ;
require_once( 'includes/Defines.php' );
require_once ("./LocalSettings.php") ;
require_once ("includes/Setup.php") ;
$wgUser = User::newFromName( "PingouinMigrateur" ) ;
if (!$wgUser->isAllowed("edit")) {
echo "PingouinMigrateur can't edit\n" ;
exit ;
}
for($i = 1 ; $i < $argc ; $i++) {
$filename = $argv[$i] ;
// le titre sera le nom du fichier sans l'extension
$wgTitle = Title::newFromText((preg_replace("~(.*/)?(.+)\.\w+$~","$2", urldecode($filename)))) ;
$article = new Article($wgTitle) ;
echo "Fichier [$filename] as ".$wgTitle->getNamespace().":".$wgTitle->getText()." : " ;
$wgMyText = join("",file("$working_dir/$filename")) ;
$article->insertNewArticle($wgMyText, utf8_encode("conversion de la documentation originale de Léa par HTML::WikiConverter"), false, false) ;
echo " [done]\n" ;
}
foreach ( $wgDeferredUpdateList as $key => $up ) {
$up->doUpdate();
}
$wgLoadBalancer->commitAll();
$wgLoadBalancer->closeAll();
?>
Bugs
- problèmes divers avec l'encodage utf8/iso-8859-1/latin1/*
Vous avez l'autorisation de copier, distribuer et/ou modifier ce document suivant les termes de la Licence Publique Générale du projet GNU, Version 2 ou n'importe quelle version ultérieure publiée par la Free Software Foundation. Pour plus d'informations consulter la GPL sur le site de GNU ou sa traduction non officielle. |