* Add wfReadOnlyReason() to supply the reason for the wiki being read only. Use it...
[lhc/web/wiklou.git] / includes / SpecialPreferences.php
index 33a31ee..ca163a6 100644 (file)
@@ -24,7 +24,7 @@ class PreferencesForm {
        var $mRows, $mCols, $mSkin, $mMath, $mDate, $mUserEmail, $mEmailFlag, $mNick;
        var $mUserLanguage, $mUserVariant;
        var $mSearch, $mRecent, $mRecentDays, $mHourDiff, $mSearchLines, $mSearchChars, $mAction;
-       var $mReset, $mPosted, $mToggles, $mSearchNs, $mRealName, $mImageSize;
+       var $mReset, $mPosted, $mToggles, $mUseAjaxSearch, $mSearchNs, $mRealName, $mImageSize;
        var $mUnderline, $mWatchlistEdits;
 
        /**
@@ -65,6 +65,7 @@ class PreferencesForm {
                $this->mSuccess = $request->getCheck( 'success' );
                $this->mWatchlistDays = $request->getVal( 'wpWatchlistDays' );
                $this->mWatchlistEdits = $request->getVal( 'wpWatchlistEdits' );
+               $this->mUseAjaxSearch = $request->getCheck( 'wpUseAjaxSearch' );
 
                $this->mSaveprefs = $request->getCheck( 'wpSaveprefs' ) &&
                        $this->mPosted &&
@@ -98,7 +99,7 @@ class PreferencesForm {
                        $this->mUserLanguage = 'nolanguage';
                }
 
-               wfRunHooks( "InitPreferencesForm", array( $this, $request ) );
+               wfRunHooks( 'InitPreferencesForm', array( $this, $request ) );
        }
 
        function execute() {
@@ -213,23 +214,23 @@ class PreferencesForm {
 
                if ( '' != $this->mNewpass && $wgAuth->allowPasswordChange() ) {
                        if ( $this->mNewpass != $this->mRetypePass ) {
-                               wfRunHooks( "PrefsPasswordAudit", array( $wgUser, $this->mNewpass, 'badretype' ) );
+                               wfRunHooks( 'PrefsPasswordAudit', array( $wgUser, $this->mNewpass, 'badretype' ) );
                                $this->mainPrefsForm( 'error', wfMsg( 'badretype' ) );
                                return;
                        }
 
                        if (!$wgUser->checkPassword( $this->mOldpass )) {
-                               wfRunHooks( "PrefsPasswordAudit", array( $wgUser, $this->mNewpass, 'wrongpassword' ) );
+                               wfRunHooks( 'PrefsPasswordAudit', array( $wgUser, $this->mNewpass, 'wrongpassword' ) );
                                $this->mainPrefsForm( 'error', wfMsg( 'wrongpassword' ) );
                                return;
                        }
                        
                        try {
                                $wgUser->setPassword( $this->mNewpass );
-                               wfRunHooks( "PrefsPasswordAudit", array( $wgUser, $this->mNewpass, 'success' ) );
+                               wfRunHooks( 'PrefsPasswordAudit', array( $wgUser, $this->mNewpass, 'success' ) );
                                $this->mNewpass = $this->mOldpass = $this->mRetypePass = '';
                        } catch( PasswordError $e ) {
-                               wfRunHooks( "PrefsPasswordAudit", array( $wgUser, $this->mNewpass, 'error' ) );
+                               wfRunHooks( 'PrefsPasswordAudit', array( $wgUser, $this->mNewpass, 'error' ) );
                                $this->mainPrefsForm( 'error', $e->getMessage() );
                                return;
                        }
@@ -250,7 +251,7 @@ class PreferencesForm {
                                wfMsg( 'badsiglength', $wgLang->formatNum( $wgMaxSigChars ) ) );
                        return;
                } elseif( $this->mToggles['fancysig'] ) {
-                       if( Parser::validateSig( $this->mNick ) !== false ) {
+                       if( $wgParser->validateSig( $this->mNick ) !== false ) {
                                $this->mNick = $wgParser->cleanSig( $this->mNick );
                        } else {
                                $this->mainPrefsForm( 'error', wfMsg( 'badsig' ) );
@@ -285,6 +286,7 @@ class PreferencesForm {
                $wgUser->setOption( 'thumbsize', $this->mThumbSize );
                $wgUser->setOption( 'underline', $this->validateInt($this->mUnderline, 0, 2) );
                $wgUser->setOption( 'watchlistdays', $this->validateFloat( $this->mWatchlistDays, 0, 7 ) );
+               $wgUser->setOption( 'ajaxsearch', $this->mUseAjaxSearch );
 
                # Set search namespace options
                foreach( $this->mSearchNs as $i => $value ) {
@@ -330,7 +332,7 @@ class PreferencesForm {
                                $wgUser->setEmail( $this->mUserEmail );
                        }
                        if( $oldadr != $newadr ) {
-                               wfRunHooks( "PrefsEmailAudit", array( $wgUser, $oldadr, $newadr ) );
+                               wfRunHooks( 'PrefsEmailAudit', array( $wgUser, $oldadr, $newadr ) );
                        }
                }
 
@@ -340,7 +342,7 @@ class PreferencesForm {
                }
 
                $msg = '';
-               if ( !wfRunHooks( "SavePreferences", array( $this, $wgUser, &$msg ) ) ) {
+               if ( !wfRunHooks( 'SavePreferences', array( $this, $wgUser, &$msg ) ) ) {
                        print "(($msg))";
                        $this->mainPrefsForm( 'error', $msg );
                        return;
@@ -350,7 +352,7 @@ class PreferencesForm {
                $wgUser->saveSettings();
 
                if( $needRedirect && $error === false ) {
-                       $title =& SpecialPage::getTitleFor( "Preferences" );
+                       $title = SpecialPage::getTitleFor( 'Preferences' );
                        $wgOut->redirect($title->getFullURL('success'));
                        return;
                }
@@ -395,6 +397,7 @@ class PreferencesForm {
                $this->mWatchlistEdits = $wgUser->getOption( 'wllimit' );
                $this->mUnderline = $wgUser->getOption( 'underline' );
                $this->mWatchlistDays = $wgUser->getOption( 'watchlistdays' );
+               $this->mUseAjaxSearch = $wgUser->getBoolOption( 'ajaxsearch' );
 
                $togs = User::getToggles();
                foreach ( $togs as $tname ) {
@@ -408,7 +411,7 @@ class PreferencesForm {
                        }
                }
 
-               wfRunHooks( "ResetPreferences", array( $this, $wgUser ) );
+               wfRunHooks( 'ResetPreferences', array( $this, $wgUser ) );
        }
 
        /**
@@ -512,7 +515,7 @@ class PreferencesForm {
                global $wgRCShowWatchingUsers, $wgEnotifRevealEditorAddress;
                global $wgEnableEmail, $wgEnableUserEmail, $wgEmailAuthentication;
                global $wgContLanguageCode, $wgDefaultSkin, $wgSkipSkins, $wgAuth;
-               global $wgEmailConfirmToEdit;
+               global $wgEmailConfirmToEdit, $wgAjaxSearch;
 
                $wgOut->setPageTitle( wfMsg( 'preferences' ) );
                $wgOut->setArticleRelated( false );
@@ -521,11 +524,11 @@ class PreferencesForm {
                $wgOut->disallowUserJs();  # Prevent hijacked user scripts from sniffing passwords etc.
 
                if ( $this->mSuccess || 'success' == $status ) {
-                       $wgOut->addWikitext( '<div class="successbox"><strong>'. wfMsg( 'savedprefs' ) . '</strong></div>' );
+                       $wgOut->wrapWikiMsg( '<div class="successbox"><strong>$1</strong></div>', 'savedprefs' );
                } else  if ( 'error' == $status ) {
-                       $wgOut->addWikitext( '<div class="errorbox"><strong>' . $message  . '</strong></div>' );
+                       $wgOut->addWikiText( '<div class="errorbox"><strong>' . $message  . '</strong></div>' );
                } else if ( '' != $status ) {
-                       $wgOut->addWikitext( $message . "\n----" );
+                       $wgOut->addWikiText( $message . "\n----" );
                }
 
                $qbs = $wgLang->getQuickbarSettings();
@@ -970,7 +973,13 @@ class PreferencesForm {
                $wgOut->addHtml( '</fieldset>' );
 
                # Search
+               $ajaxsearch = $wgAjaxSearch ?
+                       $this->addRow(
+                               wfLabel( wfMsg( 'useajaxsearch' ), 'wpUseAjaxSearch' ),
+                               wfCheck( 'wpUseAjaxSearch', $this->mUseAjaxSearch, array( 'id' => 'wpUseAjaxSearch' ) )
+                       ) : '';
                $wgOut->addHTML( '<fieldset><legend>' . wfMsg( 'searchresultshead' ) . '</legend><table>' .
+                       $ajaxsearch .
                        $this->addRow(
                                wfLabel( wfMsg( 'resultsperpage' ), 'wpSearch' ),
                                wfInput( 'wpSearch', 4, $this->mSearch, array( 'id' => 'wpSearch' ) )
@@ -1013,7 +1022,7 @@ class PreferencesForm {
                }
                $wgOut->addHTML( '</fieldset>' );
 
-               wfRunHooks( "RenderPreferencesForm", array( $this, $wgOut ) );
+               wfRunHooks( 'RenderPreferencesForm', array( $this, $wgOut ) );
 
                $token = htmlspecialchars( $wgUser->editToken() );
                $skin = $wgUser->getSkin();