https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114857

Revision: 114857
Author:   bsitu
Date:     2012-04-11 22:11:58 +0000 (Wed, 11 Apr 2012)
Log Message:
-----------
Update metedata compiling logic for records from "PageMove" and "Mark as 
Patrolled"

Modified Paths:
--------------
    trunk/extensions/PageTriage/PageTriage.hooks.php
    trunk/extensions/PageTriage/PageTriage.php
    trunk/extensions/PageTriage/includes/ArticleMetadata.php
    trunk/extensions/PageTriage/includes/PageTriage.php

Modified: trunk/extensions/PageTriage/PageTriage.hooks.php
===================================================================
--- trunk/extensions/PageTriage/PageTriage.hooks.php    2012-04-11 20:52:11 UTC 
(rev 114856)
+++ trunk/extensions/PageTriage/PageTriage.hooks.php    2012-04-11 22:11:58 UTC 
(rev 114857)
@@ -15,13 +15,18 @@
                $pageId = $newTitle->getArticleID();
 
                if ( $newTitle->getNamespace() === NS_MAIN ) {
-                       self::addToPageTriageQueue( $pageId, $newTitle );
-               }
+                       // New record, compile all data
+                       if ( self::addToPageTriageQueue( $pageId, $newTitle ) ) 
{
+                               $component = '';
+                       } else {
+                               $component = 'BasicData';
+                       }
 
-               $acp = ArticleCompileProcessor::newFromPageId( array( $pageId ) 
);
-               if ( $acp ) {
-                       $acp->registerComponent( 'BasicData' );
-                       $acp->compileMetadata();
+                       $acp = ArticleCompileProcessor::newFromPageId( array( 
$pageId ) );
+                       if ( $acp ) {
+                               $acp->registerComponent( $component );
+                               $acp->compileMetadata();
+                       }
                }
 
                return true;
@@ -123,9 +128,9 @@
                // Without autopatrol right, we consider the system updates the 
triage status to '0' or adds a brand new
                // record with '0' triage status to the queue, hence we should 
not pass a user for logging
                if ( $patrolled ) {
-                       $pageTriage->addToPageTriageQueue( '1', $user );
+                       return $pageTriage->addToPageTriageQueue( '1', $user );
                } else {
-                       $pageTriage->addToPageTriageQueue( '0' );
+                       return $pageTriage->addToPageTriageQueue( '0' );
                }
                
        }
@@ -209,7 +214,13 @@
 
                if ( $rc ) {
                        $pt = new PageTriage( $rc->getAttribute( 'rc_cur_id' ) 
);
-                       $pt->addToPageTriageQueue( '1', $user, true );
+                       if ( $pt->addToPageTriageQueue( '1', $user, $fromRc = 
true ) ) {
+                               // Compile metadata for new page triage record
+                               $acp = ArticleCompileProcessor::newFromPageId( 
$rc->getAttribute( 'rc_cur_id' ) );
+                               if ( $acp ) {
+                                       $acp->compileMetadata();
+                               }       
+                       }
                }
 
                return true;

Modified: trunk/extensions/PageTriage/PageTriage.php
===================================================================
--- trunk/extensions/PageTriage/PageTriage.php  2012-04-11 20:52:11 UTC (rev 
114856)
+++ trunk/extensions/PageTriage/PageTriage.php  2012-04-11 22:11:58 UTC (rev 
114857)
@@ -82,6 +82,7 @@
 // custom exceptions
 $wgAutoloadClasses['MWArticleMetadataMissingPageIdException'] = $dir . 
'includes/ArticleMetadata.php';
 $wgAutoloadClasses['MWPageTriageUtilInvalidNumberException'] = $dir . 
'includes/PageTriageUtil.php';
+$wgAutoloadClasses['MWPageTriageMissingRevisionException'] = $dir . 
'includes/PageTriage.php';
 
 // api modules
 $wgAPIModules['pagetriagelist'] = 'ApiPageTriageList';

Modified: trunk/extensions/PageTriage/includes/ArticleMetadata.php
===================================================================
--- trunk/extensions/PageTriage/includes/ArticleMetadata.php    2012-04-11 
20:52:11 UTC (rev 114856)
+++ trunk/extensions/PageTriage/includes/ArticleMetadata.php    2012-04-11 
22:11:58 UTC (rev 114857)
@@ -96,6 +96,7 @@
         * Get the metadata from cache
         * @param $pageId - the page id to get the cache data for, if null is 
provided
         *                  all page id in $this->mPageId will be obtained
+        * @return array
         */
        public function getMetadataFromCache( $pageId = null ) {
                global $wgMemc;
@@ -138,7 +139,7 @@
                        }
                }
 
-               // Articles with no metadata after cache attempt
+               // Grab metadata from database after cache attempt
                if ( $articles ) {
                        $dbr = wfGetDB( DB_SLAVE );
 
@@ -163,6 +164,7 @@
                                        unset( $articles[$key] );
                                }
                        }
+                       // Compile the data if it is not available
                        if ( $articles ) {
                                $acp = ArticleCompileProcessor::newFromPageId( 
$articles );
                                if ( $acp ) {
@@ -275,9 +277,9 @@
         * @param $component string
         */
        public function registerComponent( $component ) {
-               $this->defaultMode = false;
                if ( isset( $this->component[$component] ) ) {
-                       $this->component[$component] = 'on';    
+                       $this->component[$component] = 'on';
+                       $this->defaultMode = false;
                }
        }
 

Modified: trunk/extensions/PageTriage/includes/PageTriage.php
===================================================================
--- trunk/extensions/PageTriage/includes/PageTriage.php 2012-04-11 20:52:11 UTC 
(rev 114856)
+++ trunk/extensions/PageTriage/includes/PageTriage.php 2012-04-11 22:11:58 UTC 
(rev 114857)
@@ -25,14 +25,14 @@
         * @param $reviewed string '1'/'0'
         * @param $user User
         * @param $fromRc bool
-        * @return bool
+        * @return bool - true: add new record, false: update existing record
         */
        public function addToPageTriageQueue( $reviewed = '0', User $user = 
null, $fromRc = false ) {
                if ( $this->retrieve() ) {
                        if ( $this->mReviewed != $reviewed ) {
                                $this->setTriageStatus( $reviewed, $user, 
$fromRc );
                        }
-                       return true;
+                       return false;
                }
 
                $dbr = wfGetDB( DB_SLAVE );
@@ -47,7 +47,7 @@
                );
 
                if ( !$res ) {
-                       return false;
+                       throw new MWPageTriageMissingRevisionException( 'Page 
missing revision!' );
                }
 
                $row = array(
@@ -196,4 +196,6 @@
                $dbw->insert( 'pagetriage_log', $row, __METHOD__ );
        }
        
-}
\ No newline at end of file
+}
+
+class PageTriageMissingRevisionException extends MWException {}
\ No newline at end of file


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to