Merge "Fix spacing in SpecialRevisiondelete.php"
[lhc/web/wiklou.git] / includes / WikiPage.php
index 3de0475..b4aa303 100644 (file)
@@ -1568,7 +1568,7 @@ class WikiPage implements Page, IDBAccessObject {
         * @param $flags Int
         * @return Int updated $flags
         */
-       function checkFlags( $flags ) {
+       public function checkFlags( $flags ) {
                if ( !( $flags & EDIT_NEW ) && !( $flags & EDIT_UPDATE ) ) {
                        if ( $this->exists() ) {
                                $flags |= EDIT_UPDATE;
@@ -2945,6 +2945,29 @@ class WikiPage implements Page, IDBAccessObject {
                        return array( array( 'notvisiblerev' ) );
                }
 
+               // Set patrolling and bot flag on the edits, which gets rollbacked.
+               // This is done before the rollback edit to have patrolling also on failure (bug 62157).
+               $set = array();
+               if ( $bot && $guser->isAllowed( 'markbotedits' ) ) {
+                       // Mark all reverted edits as bot
+                       $set['rc_bot'] = 1;
+               }
+
+               if ( $wgUseRCPatrol ) {
+                       // Mark all reverted edits as patrolled
+                       $set['rc_patrolled'] = 1;
+               }
+
+               if ( count( $set ) ) {
+                       $dbw->update( 'recentchanges', $set,
+                               array( /* WHERE */
+                                       'rc_cur_id' => $current->getPage(),
+                                       'rc_user_text' => $current->getUserText(),
+                                       'rc_timestamp > ' . $dbw->addQuotes( $s->rev_timestamp ),
+                               ), __METHOD__
+                       );
+               }
+
                // Generate the edit summary if necessary
                $target = Revision::newFromId( $s->rev_id );
                if ( empty( $summary ) ) {
@@ -3001,27 +3024,6 @@ class WikiPage implements Page, IDBAccessObject {
                        ) );
                }
 
-               $set = array();
-               if ( $bot && $guser->isAllowed( 'markbotedits' ) ) {
-                       // Mark all reverted edits as bot
-                       $set['rc_bot'] = 1;
-               }
-
-               if ( $wgUseRCPatrol ) {
-                       // Mark all reverted edits as patrolled
-                       $set['rc_patrolled'] = 1;
-               }
-
-               if ( count( $set ) ) {
-                       $dbw->update( 'recentchanges', $set,
-                               array( /* WHERE */
-                                       'rc_cur_id' => $current->getPage(),
-                                       'rc_user_text' => $current->getUserText(),
-                                       'rc_timestamp > ' . $dbw->addQuotes( $s->rev_timestamp ),
-                               ), __METHOD__
-                       );
-               }
-
                $revId = $status->value['revision']->getId();
 
                wfRunHooks( 'ArticleRollbackComplete', array( $this, $guser, $target, $current ) );
@@ -3508,7 +3510,7 @@ class PoolWorkArticleView extends PoolCounterWork {
         * @param $parserOptions parserOptions to use for the parse operation
         * @param $content Content|String: content to parse or null to load it; may also be given as a wikitext string, for BC
         */
-       function __construct( Page $page, ParserOptions $parserOptions, $revid, $useParserCache, $content = null ) {
+       public function __construct( Page $page, ParserOptions $parserOptions, $revid, $useParserCache, $content = null ) {
                if ( is_string( $content ) ) { // BC: old style call
                        $modelId = $page->getRevision()->getContentModel();
                        $format = $page->getRevision()->getContentFormat();
@@ -3554,7 +3556,7 @@ class PoolWorkArticleView extends PoolCounterWork {
        /**
         * @return bool
         */
-       function doWork() {
+       public function doWork() {
                global $wgUseFileCache;
 
                // @todo several of the methods called on $this->page are not declared in Page, but present
@@ -3617,7 +3619,7 @@ class PoolWorkArticleView extends PoolCounterWork {
        /**
         * @return bool
         */
-       function getCachedWork() {
+       public function getCachedWork() {
                $this->parserOutput = ParserCache::singleton()->get( $this->page, $this->parserOptions );
 
                if ( $this->parserOutput === false ) {
@@ -3632,7 +3634,7 @@ class PoolWorkArticleView extends PoolCounterWork {
        /**
         * @return bool
         */
-       function fallback() {
+       public function fallback() {
                $this->parserOutput = ParserCache::singleton()->getDirty( $this->page, $this->parserOptions );
 
                if ( $this->parserOutput === false ) {
@@ -3651,7 +3653,7 @@ class PoolWorkArticleView extends PoolCounterWork {
         * @param $status Status
         * @return bool
         */
-       function error( $status ) {
+       public function error( $status ) {
                $this->error = $status;
                return false;
        }