X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=blobdiff_plain;f=maintenance%2FcleanupCaps.php;h=ec2aa957d84f6cb7d160aea350901e4763e7f6de;hb=289c4079577a676bff59a91d5b6e5bccc7d487d3;hp=46ca18d68f15dd4d8b64e161d7cf59b53e6cef20;hpb=eecfbfb0bb2918bdbeb47c8daf0fbdb2295f0000;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/cleanupCaps.php b/maintenance/cleanupCaps.php index 46ca18d68f..ec2aa957d8 100644 --- a/maintenance/cleanupCaps.php +++ b/maintenance/cleanupCaps.php @@ -1,12 +1,12 @@ + * Copyright © 2005 Brion Vibber * http://www.mediawiki.org/ * * This program is free software; you can redistribute it and/or modify @@ -26,79 +26,81 @@ * * @file * @author Brion Vibber - * @ingroup maintenance + * @ingroup Maintenance */ -$optionsWithArgs = array( 'namespace' ); - -require_once( 'commandLine.inc' ); -require_once( 'cleanupTable.inc' ); +require_once( __DIR__ . '/cleanupTable.inc' ); /** + * Maintenance script to clean up broken page links when somebody turns on $wgCapitalLinks. + * * @ingroup Maintenance */ class CapsCleanup extends TableCleanup { - function __construct( $dryrun = false, $namespace = 0 ) { - parent::__construct( 'page', $dryrun ); - $this->namespace = intval( $namespace ); + public function __construct() { + parent::__construct(); + $this->mDescription = "Script to cleanup capitalization"; + $this->addOption( 'namespace', 'Namespace number to run caps cleanup on', false, true ); } - function cleanup() { - global $wgCapitalLinks; - if( $wgCapitalLinks ) { - echo "\$wgCapitalLinks is on -- no need for caps links cleanup.\n"; - return false; + public function execute() { + global $wgCapitalLinks, $wgUser; + + if ( $wgCapitalLinks ) { + $this->error( "\$wgCapitalLinks is on -- no need for caps links cleanup.", true ); } - $this->runTable( $this->targetTable, - 'WHERE page_namespace=' . $this->namespace, - array( &$this, 'processPage' ) ); + $wgUser = User::newFromName( 'Conversion script' ); + + $this->namespace = intval( $this->getOption( 'namespace', 0 ) ); + $this->dryrun = $this->hasOption( 'dry-run' ); + + $this->runTable( array( + 'table' => 'page', + 'conds' => array( 'page_namespace' => $this->namespace ), + 'index' => 'page_id', + 'callback' => 'processRow' ) ); } - function processPage( $row ) { + protected function processRow( $row ) { global $wgContLang; $current = Title::makeTitle( $row->page_namespace, $row->page_title ); $display = $current->getPrefixedText(); $upper = $row->page_title; $lower = $wgContLang->lcfirst( $row->page_title ); - if( $upper == $lower ) { - $this->log( "\"$display\" already lowercase." ); + if ( $upper == $lower ) { + $this->output( "\"$display\" already lowercase.\n" ); return $this->progress( 0 ); } $target = Title::makeTitle( $row->page_namespace, $lower ); $targetDisplay = $target->getPrefixedText(); - if( $target->exists() ) { - $this->log( "\"$display\" skipped; \"$targetDisplay\" already exists" ); + if ( $target->exists() ) { + $this->output( "\"$display\" skipped; \"$targetDisplay\" already exists\n" ); return $this->progress( 0 ); } - if( $this->dryrun ) { - $this->log( "\"$display\" -> \"$targetDisplay\": DRY RUN, NOT MOVED" ); + if ( $this->dryrun ) { + $this->output( "\"$display\" -> \"$targetDisplay\": DRY RUN, NOT MOVED\n" ); $ok = true; } else { $ok = $current->moveTo( $target, false, 'Converting page titles to lowercase' ); - $this->log( "\"$display\" -> \"$targetDisplay\": $ok" ); + $this->output( "\"$display\" -> \"$targetDisplay\": $ok\n" ); } - if( $ok === true ) { + if ( $ok === true ) { $this->progress( 1 ); - - if( $row->page_namespace == $this->namespace ) { + if ( $row->page_namespace == $this->namespace ) { $talk = $target->getTalkPage(); $row->page_namespace = $talk->getNamespace(); - if( $talk->exists() ) { - return $this->processPage( $row ); + if ( $talk->exists() ) { + return $this->processRow( $row ); } } - } else { - $this->progress( 0 ); } + return $this->progress( 0 ); } - } -$wgUser->setName( 'Conversion script' ); -$ns = isset( $options['namespace'] ) ? $options['namespace'] : 0; -$caps = new CapsCleanup( isset( $options['dry-run'] ), $ns ); -$caps->cleanup(); +$maintClass = "CapsCleanup"; +require_once( RUN_MAINTENANCE_IF_MAIN );