User:Mattvick~mediawikiwiki/Reset All User Options

From mediawiki.org
<?php

/**
 * Maintenance script to reset all users' options to a specified default
 *
 * @package MediaWiki
 * @subpackage Maintenance
 * @author Matthew Vickery <vickery.matthew@gmail.com> 
 * 
 * Based on Rob Church's Reset_user_skin_preference:
 * http://www.mediawiki.org/wiki/User:Robchurch/Reset_user_skin_preference
 *
 * Help with Executing a MediaWiki Maintenance Script can be found here:
 * http://meta.wikimedia.org/wiki/Executing_a_Mediawiki_Maintenance_Script
 * 
 */
 
require_once( 'commandLine.inc' );
echo( "Reset All User Options\n\n" );

// Adjust $defaultprefs (user options) below as you wish.
// Definitions of each of these settings can be found here: http://www.mediawiki.org/wiki/Manual:$wgDefaultUserOptions
$defaultprefs = "quickbar=1
underline=2
cols=80
rows=25
searchlimit=20
contextlines=5
contextchars=50
skin=
math=1
rcdays=7
rclimit=50
wllimit=250
highlightbroken=1
stubthreshold=0
previewontop=1
editsection=1
editsectiononrightclick=0
showtoc=1
showtoolbar=1
date=default
imagesize=2
thumbsize=2
rememberpassword=0
enotifwatchlistpages=0
enotifusertalkpages=1
enotifminoredits=0
enotifrevealaddr=0
shownumberswatching=1
fancysig=0
externaleditor=0
externaldiff=0
showjumplinks=1
numberheadings=0
uselivepreview=0
watchlistdays=3
watchcreations=0
watchdefault=0
watchmoves=0
watchdeletion=0
variant=en
language=en
searchNs0=1
searchNs12=1
searchNs100=1
searchNs104=1
searchNs106=1
searchNs110=1
searchNs120=1
searchNs122=1
searchNs124=1
searchNs126=1" ;

$fname = 'resetAllUserOptions';

$dbw =& wfGetDB( DB_MASTER );
$dbw->begin();
$res = $dbw->select( 'user', array( 'user_id', 'user_options' ), array(), $fname );
if( $res && $dbw->numRows( $res ) > 0 ) {

		echo( $dbw->numRows( $res ) . " records to process. Updating..." );
		while( $row = $dbw->fetchObject( $res ) ) {
				$values['user_options'] = $defaultprefs ;
				$values['user_touched'] = $dbw->timestamp();
				$dbw->update( 'user', $values, array( 'user_id' => $row->user_id ), $fname );
		}
		
		$dbw->commit();
		echo( "done.\n\n" );
		exit( 0 );

} else {
		$dbw->commit();
		echo( "No users found.\n\n" );
		exit( 0 );
}