Return nothing on empty math tags instead of char encoding
[lhc/web/wiklou.git] / includes / User.php
index 7001ddb..c66c2d7 100644 (file)
@@ -50,6 +50,7 @@ class User {
                'editwidth',
                'watchcreations',
                'watchdefault',
+               'watchmoves',
                'watchdeletion',
                'minordefault',
                'previewontop',
@@ -65,10 +66,10 @@ class User {
                'externaldiff',
                'showjumplinks',
                'uselivepreview',
-               'autopatrol',
                'forceeditsummary',
                'watchlisthideown',
                'watchlisthidebots',
+               'watchlisthideminor',
                'ccmeonemails',
        );
 
@@ -698,7 +699,7 @@ class User {
                        return false;
                }
 
-               $dbr =& wfGetDB( DB_SLAVE );
+               $dbr =& wfGetDB( DB_MASTER );
                $s = $dbr->selectRow( 'user', '*', array( 'user_id' => $this->mId ), __METHOD__ );
 
                if ( $s !== false ) {
@@ -921,6 +922,13 @@ class User {
         * @public
         */
        function pingLimiter( $action='edit' ) {
+       
+               # Call the 'PingLimiter' hook
+               $result = false;
+               if( !wfRunHooks( 'PingLimiter', array( &$this, $action, $result ) ) ) {
+                       return $result;
+               }
+               
                global $wgRateLimits, $wgRateLimitsExcludedGroups;
                if( !isset( $wgRateLimits[$action] ) ) {
                        return false;
@@ -1697,6 +1705,11 @@ class User {
        function clearNotification( &$title ) {
                global $wgUser, $wgUseEnotif;
 
+               # Do nothing if the database is locked to writes
+               if( wfReadOnly() ) {
+                       return;
+               }
+
                if ($title->getNamespace() == NS_USER_TALK &&
                        $title->getText() == $this->getName() ) {
                        if (!wfRunHooks('UserClearNewTalkNotification', array(&$this)))
@@ -1927,6 +1940,7 @@ class User {
                        'user_options' => $user->encodeOptions(),
                        'user_token' => $user->mToken,
                        'user_registration' => $dbw->timestamp( $user->mRegistration ),
+                       'user_editcount' => 0,
                );
                foreach ( $params as $name => $value ) {
                        $fields["user_$name"] = $value;
@@ -1960,6 +1974,7 @@ class User {
                                'user_options' => $this->encodeOptions(),
                                'user_token' => $this->mToken,
                                'user_registration' => $dbw->timestamp( $this->mRegistration ),
+                               'user_editcount' => 0,
                        ), __METHOD__
                );
                $this->mId = $dbw->insertId();
@@ -2002,7 +2017,7 @@ class User {
         * @return string
         */
        function getPageRenderingHash() {
-               global $wgContLang, $wgUseDynamicDates;
+               global $wgContLang, $wgUseDynamicDates, $wgLang;
                if( $this->mHash ){
                        return $this->mHash;
                }
@@ -2016,7 +2031,7 @@ class User {
                        $confstr .= '!' . $this->getDatePreference();
                }
                $confstr .= '!' . ($this->getOption( 'numberheadings' ) ? '1' : '');
-               $confstr .= '!' . $this->getOption( 'language' );
+               $confstr .= '!' . $wgLang->getCode();
                $confstr .= '!' . $this->getOption( 'thumbsize' );
                // add in language specific options, if any
                $extra = $wgContLang->getExtraHashOptions();