getID() ) { $wgOut->errorpage( "prefsnologin", "prefsnologintext" ); return; } if ( wfReadOnly() ) { $wgOut->readOnlyPage(); return; } if ( isset( $wpReset ) ) { resetPrefs(); mainPrefsForm( WfMsg( "prefsreset" ) ); } else if ( "submit" == $action || isset( $wpSaveprefs ) ) { savePreferences(); } else { resetPrefs(); mainPrefsForm( "" ); } } /* private */ function savePreferences() { global $wgUser, $wgLang, $wgDeferredUpdateList; global $wpQuickbar, $wpOldpass, $wpNewpass, $wpRetype; global $wpSkin, $wpMath, $wpEmail, $wpEmailFlag, $wpNick, $wpSearch, $wpRecent; global $wpSearchLines, $wpSearchChars, $wpStubs; global $wpRows, $wpCols, $wpHourDiff, $HTTP_POST_VARS; if ( "" != $wpNewpass ) { if ( $wpNewpass != $wpRetype ) { mainPrefsForm( wfMsg( "badretype" ) ); return; } $ep = User::encryptPassword( $wpOldpass ); if ( $ep != $wgUser->getPassword() ) { if ( $ep != $wgUser->getNewpassword() ) { mainPrefsForm( wfMsg( "wrongpassword" ) ); return; } } $wgUser->setPassword( $wpNewpass ); } $wgUser->setEmail( $wpEmail ); $wgUser->setOption( "nickname", $wpNick ); $wgUser->setOption( "quickbar", $wpQuickbar ); $wgUser->setOption( "skin", $wpSkin ); $wgUser->setOption( "math", $wpMath ); $wgUser->setOption( "searchlimit", $wpSearch ); $wgUser->setOption( "contextlines", $wpSearchLines ); $wgUser->setOption( "contextchars", $wpSearchChars ); $wgUser->setOption( "rclimit", $wpRecent ); $wgUser->setOption( "rows", $wpRows ); $wgUser->setOption( "cols", $wpCols ); $wgUser->setOption( "stubthreshold", $wpStubs ); $wgUser->setOption( "timecorrection", $wpHourDiff ); if ( $wpEmailFlag ) { $wgUser->setOption( "disablemail", 1 ); } else { $wgUser->setOption( "disablemail", 0 ); } $togs = $wgLang->getUserToggles(); foreach ( $togs as $tname => $ttext ) { if ( array_key_exists( "wpOp$tname", $HTTP_POST_VARS ) ) { $wgUser->setOption( $tname, 1 ); } else { $wgUser->setOption( $tname, 0 ); } } $wgUser->setCookies(); $up = new UserUpdate(); array_push( $wgDeferredUpdateList, $up ); mainPrefsForm( wfMsg( "savedprefs" ) ); } /* private */ function resetPrefs() { global $wgUser, $wgLang; global $wpQuickbar, $wpOldpass, $wpNewpass, $wpRetype, $wpStubs; global $wpRows, $wpCols, $wpSkin, $wpMath, $wpEmail, $wpEmailFlag, $wpNick; global $wpSearch, $wpRecent, $HTTP_POST_VARS; global $wpHourDiff, $wpSearchLines, $wpSearchChars; $wpOldpass = $wpNewpass = $wpRetype = ""; $wpEmail = $wgUser->getEmail(); if ( 1 == $wgUser->getOption( "disablemail" ) ) { $wpEmailFlag = 1; } else { $wpEmailFlag = 0; } $wpNick = $wgUser->getOption( "nickname" ); $wpQuickbar = $wgUser->getOption( "quickbar" ); $wpSkin = $wgUser->getOption( "skin" ); $wpMath = $wgUser->getOption( "math" ); $wpRows = $wgUser->getOption( "rows" ); $wpCols = $wgUser->getOption( "cols" ); $wpStubs = $wgUser->getOption( "stubthreshold" ); $wpHourDiff = $wgUser->getOption( "timecorrection" ); $wpSearch = $wgUser->getOption( "searchlimit" ); $wpSearchLines = $wgUser->getOption( "contextlines" ); $wpSearchChars = $wgUser->getOption( "contextchars" ); $wpRecent = $wgUser->getOption( "rclimit" ); $togs = $wgLang->getUserToggles(); foreach ( $togs as $tname => $ttext ) { $HTTP_POST_VARS["wpOp$tname"] = $wgUser->getOption( $tname ); } } /* private */ function mainPrefsForm( $err ) { global $wgUser, $wgOut, $wgLang; global $wpQuickbar, $wpOldpass, $wpNewpass, $wpRetype; global $wpSkin, $wpMath, $wpEmail, $wpEmailFlag, $wpNick, $wpSearch, $wpRecent; global $wpRows, $wpCols, $wpSaveprefs, $wpReset, $wpHourDiff; global $wpSearchLines, $wpSearchChars, $wpStubs; $wgOut->setPageTitle( wfMsg( "preferences" ) ); $wgOut->setArticleFlag( false ); $wgOut->setRobotpolicy( "noindex,nofollow" ); if ( "" != $err ) { $wgOut->addHTML( "$err\n

" ); } $uname = $wgUser->getName(); $uid = $wgUser->getID(); $wgOut->addHTML( "

" . str_replace( array("$1","$2"), array($uname,$uid), wfMsg( "prefslogintext" ) ) . "\n" ); $qbs = $wgLang->getQuickbarSettings(); $skins = $wgLang->getSkinNames(); $mathopts = $wgLang->getMathNames(); $togs = $wgLang->getUserToggles(); $action = wfLocalUrlE( $wgLang->specialPage( "Preferences" ), "action=submit" ); $qb = wfMsg( "qbsettings" ); $cp = wfMsg( "changepassword" ); $sk = wfMsg( "skin" ); $math = wfMsg( "math" ); $opw = wfMsg( "oldpassword" ); $npw = wfMsg( "newpassword" ); $rpw = wfMsg( "retypenew" ); $svp = wfMsg( "saveprefs" ); $rsp = wfMsg( "resetprefs" ); $tbs = wfMsg( "textboxsize" ); $tbr = wfMsg( "rows" ); $tbc = wfMsg( "columns" ); $ltz = wfMsg( "localtime" ); $tzt = wfMsg( "timezonetext" ); $tzo = wfMsg( "timezoneoffset" ); $yem = wfMsg( "youremail" ); $emf = wfMsg( "emailflag" ); $ynn = wfMsg( "yournick" ); $stt = wfMsg ( "stubthreshold" ) ; $srh = wfMsg( "searchresultshead" ); $rpp = wfMsg( "resultsperpage" ); $scl = wfMsg( "contextlines" ); $scc = wfMsg( "contextchars" ); $rcc = wfMsg( "recentchangescount" ); $wgOut->addHTML( "

\n" ); # Skin setting # $wgOut->addHTML( "" ); # Math setting # $wgOut->addHTML( "" ); # Textbox rows, cols # $wgOut->addHTML( "" ); # Email, etc. # $wpEmail = wfEscapeHTML( $wpEmail ); $wpNick = wfEscapeHTML( $wpNick ); if ( $wpEmailFlag ) { $emfc = "checked"; } else { $emfc = ""; } $wgOut->addHTML( "
$qb:
\n" ); # Quickbar setting # for ( $i = 0; $i < count( $qbs ); ++$i ) { if ( $i == $wpQuickbar ) { $checked = " checked"; } else { $checked = ""; } $wgOut->addHTML( " {$qbs[$i]}
\n" ); } # Fields for changing password # $wpOldpass = wfEscapeHTML( $wpOldpass ); $wpNewpass = wfEscapeHTML( $wpNewpass ); $wpRetype = wfEscapeHTML( $wpRetype ); $wgOut->addHTML( "
$cp:
$opw:
$npw:
$rpw:
$sk:
\n" ); for ( $i = 0; $i < count( $skins ); ++$i ) { if ( $i == $wpSkin ) { $checked = " checked"; } else { $checked = ""; } $wgOut->addHTML( " {$skins[$i]}
\n" ); } # Various checkbox options # $wgOut->addHTML( "
\n" ); foreach ( $togs as $tname => $ttext ) { if ( 1 == $wgUser->getOption( $tname ) ) { $checked = " checked"; } else { $checked = ""; } $wgOut->addHTML( "$ttext
\n" ); } $wgOut->addHTML( "
$math:
\n" ); for ( $i = 0; $i < count( $mathopts ); ++$i ) { if ( $i == $wpMath ) { $checked = " checked"; } else { $checked = ""; } $wgOut->addHTML( " {$mathopts[$i]}
\n" ); } $wgOut->addHTML( "
$tbs:
$tbr:
$tbc:

$ltz
$tzo*:
$yem:
$emf
$ynn:
$rcc:
$stt:
{$srh}:
$rpp:
$scl:
$scc:
* {$tzt}
\n" ); } ?>