* 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' );
class UpdateSpecialPages extends Maintenance {
}
public function execute() {
- global $IP, $wgOut, $wgSpecialPageCacheUpdates, $wgQueryPages, $wgQueryCacheLimit, $wgDisableQueryPageUpdate;
- $wgOut->disable();
+ global $IP, $wgSpecialPageCacheUpdates, $wgQueryPages, $wgQueryCacheLimit, $wgDisableQueryPageUpdate;
+
$dbw = wfGetDB( DB_MASTER );
foreach ( $wgSpecialPageCacheUpdates as $special => $call ) {
}
$this->output( sprintf( "completed in %.2fs\n", $seconds ) );
# Wait for the slave to catch up
- wfWaitForSlaves( 5 );
+ wfWaitForSlaves();
}
// This is needed to initialise $wgQueryPages
require_once( "$IP/includes/QueryPage.php" );
foreach ( $wgQueryPages as $page ) {
- @list( $class, $special, $limit ) = $page;
+ list( $class, $special ) = $page;
+ $limit = isset( $page[2] ) ? $page[2] : null;
# --list : just show the name of pages
if ( $this->hasOption( 'list' ) ) {
continue;
}
- $specialObj = SpecialPage::getPage( $special );
+ $specialObj = SpecialPageFactory::getPage( $special );
if ( !$specialObj ) {
$this->output( "No such special page: $special\n" );
exit;
}
- if ( !class_exists( $class ) ) {
- $file = $specialObj->getFile();
- require_once( $file );
+ if ( $specialObj instanceof QueryPage ) {
+ $queryPage = $specialObj;
+ } else {
+ if ( !class_exists( $class ) ) {
+ $file = $specialObj->getFile();
+ require_once( $file );
+ }
+ $queryPage = new $class;
}
- $queryPage = new $class;
if ( !$this->hasOption( 'only' ) || $this->getOption( 'only' ) == $queryPage->getName() ) {
$this->output( sprintf( '%-30s ', $special ) );
$this->output( "Reconnected\n\n" );
} else {
# Commit the results
- $dbw->commit();
+ $dbw->commit( __METHOD__ );
}
# Wait for the slave to catch up
- wfWaitForSlaves( 5 );
+ wfWaitForSlaves();
} else {
$this->output( "cheap, skipped\n" );
}
}
$maintClass = "UpdateSpecialPages";
-require_once( DO_MAINTENANCE );
+require_once( RUN_MAINTENANCE_IF_MAIN );