X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2FattachLatest.php;h=6e09671a739d08ac0cff9fe0b8d3868979876fbf;hb=12764355c4b9477f82208523ffad76d42bd7ff35;hp=fa07649b380afd07c0f2a5ead2d5760661fea6e4;hpb=567f244e3611c9e020bc69446a77a10c21257f84;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/attachLatest.php b/maintenance/attachLatest.php index fa07649b38..6e09671a73 100644 --- a/maintenance/attachLatest.php +++ b/maintenance/attachLatest.php @@ -3,7 +3,7 @@ * quick hackjob to fix damages imports on wikisource * page records have page_latest wrong * - * Copyright (C) 2005 Brion Vibber + * Copyright © 2005 Brion Vibber * http://www.mediawiki.org/ * * This program is free software; you can redistribute it and/or modify @@ -21,19 +21,20 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * http://www.gnu.org/copyleft/gpl.html * + * @file * @ingroup Maintenance */ -require_once( dirname(__FILE__) . '/Maintenance.php' ); +require_once( dirname( __FILE__ ) . '/Maintenance.php' ); class AttachLatest extends Maintenance { - + public function __construct() { parent::__construct(); $this->addOption( "fix", "Actually fix the entries, will dry run otherwise" ); $this->mDescription = "Fix page_latest entries in the page table"; } - + public function execute() { $this->output( "Looking for pages with page_latest set to 0...\n" ); $dbw = wfGetDB( DB_MASTER ); @@ -43,7 +44,7 @@ class AttachLatest extends Maintenance { __METHOD__ ); $n = 0; - while( $row = $dbw->fetchObject( $result ) ) { + foreach ( $result as $row ) { $pageId = intval( $row->page_id ); $title = Title::makeTitle( $row->page_namespace, $row->page_title ); $name = $title->getPrefixedText(); @@ -51,31 +52,30 @@ class AttachLatest extends Maintenance { 'MAX(rev_timestamp)', array( 'rev_page' => $pageId ), __METHOD__ ); - if( !$latestTime ) { - $this->output( wfWikiID()." $pageId [[$name]] can't find latest rev time?!\n" ); + if ( !$latestTime ) { + $this->output( wfWikiID() . " $pageId [[$name]] can't find latest rev time?!\n" ); continue; } - + $revision = Revision::loadFromTimestamp( $dbw, $title, $latestTime ); - if( is_null( $revision ) ) { - $this->output( wfWikiID()." $pageId [[$name]] latest time $latestTime, can't find revision id\n" ); + if ( is_null( $revision ) ) { + $this->output( wfWikiID() . " $pageId [[$name]] latest time $latestTime, can't find revision id\n" ); continue; } $id = $revision->getId(); - $this->output( wfWikiID()." $pageId [[$name]] latest time $latestTime, rev id $id\n" ); - if( $this->hasOption('fix') ) { - $article = new Article( $title ); - $article->updateRevisionOn( $dbw, $revision ); + $this->output( wfWikiID() . " $pageId [[$name]] latest time $latestTime, rev id $id\n" ); + if ( $this->hasOption( 'fix' ) ) { + $page = WikiPage::factory( $title ); + $page->updateRevisionOn( $dbw, $revision ); } $n++; } - $dbw->freeResult( $result ); $this->output( "Done! Processed $n pages.\n" ); - if( !$this->hasOption('fix') ) { + if ( !$this->hasOption( 'fix' ) ) { $this->output( "This was a dry run; rerun with --fix to update page_latest.\n" ); } } } $maintClass = "AttachLatest"; -require_once( DO_MAINTENANCE ); +require_once( RUN_MAINTENANCE_IF_MAIN );