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