https://www.mediawiki.org/wiki/Special:Code/MediaWiki/113754
Revision: 113754
Author: bsitu
Date: 2012-03-13 20:04:55 +0000 (Tue, 13 Mar 2012)
Log Message:
-----------
Add new hooks to page triage
Modified Paths:
--------------
trunk/extensions/PageTriage/PageTriage.php
trunk/extensions/PageTriage/includes/ArticleMetadata.php
Added Paths:
-----------
trunk/extensions/PageTriage/PageTriage.hooks.php
Added: trunk/extensions/PageTriage/PageTriage.hooks.php
===================================================================
--- trunk/extensions/PageTriage/PageTriage.hooks.php
(rev 0)
+++ trunk/extensions/PageTriage/PageTriage.hooks.php 2012-03-13 20:04:55 UTC
(rev 113754)
@@ -0,0 +1,105 @@
+<?php
+
+class PageTriageHooks {
+
+ /**
+ * Mark a page as untriaged after moving the page if the new title is
in main namespace
+ *
+ * @see
http://www.mediawiki.org/wiki/Manual:Hooks/SpecialMovepageAfterMove
+ * @param $movePage: MovePageForm object
+ * @param $oldTitle: old title object
+ * @param $newTitle: new title object
+ * @return bool
+ */
+ public static function onSpecialMovepageAfterMove( $movePage,
&$oldTitle, &$newTitle ) {
+ $pageId = $newTitle->getArticleID();
+
+ if ( $newTitle->getNamespace() === NS_MAIN ) {
+ self::addToPageTriageQueue( $pageId );
+ }
+
+ //@Todo - find a solution for partial data compilation
+ $articleMetadata = new ArticleMetadata( array( $pageId ) );
+ $articleMetadata->compileMetadata();
+
+ return true;
+ }
+
+ /**
+ * Check if a page is created from a redirect page, then insert into it
PageTriage Queue
+ *
+ * @see
http://www.mediawiki.org/wiki/Manual:Hooks/NewRevisionFromEditComplete
+ * @param $article: the WikiPage edited
+ * @param $rev: the new revision
+ * @param $baseID: the revision ID this was based off, if any
+ * @param $user: the editing user
+ * @return bool
+ */
+ public static function onNewRevisionFromEditComplete( $article, $rev,
$baseID, $user ) {
+ $prev = $rev->getPrevious();
+ if ( $prev && !$article->isRedirect() && $article->isRedirect(
$prev->getRawText() ) ) {
+ self::addToPageTriageQueue( $article->getId() );
+ }
+ return true;
+ }
+
+ /**
+ * Insert new page into PageTriage Queue
+ *
+ * @see http://www.mediawiki.org/wiki/Manual:Hooks/ArticleInsertComplete
+ * @param $article: WikiPage created
+ * @param $user: User creating the article
+ * @param $text: New content
+ * @param $summary: Edit summary/comment
+ * @param $isMinor: Whether or not the edit was marked as minor
+ * @param $isWatch: (No longer used)
+ * @param $section: (No longer used)
+ * @param $flags: Flags passed to Article::doEdit()
+ * @param $revision: New Revision of the article
+ * @return bool
+ */
+ public static function onArticleInsertComplete( $article, $user, $text,
$summary, $isMinor, $isWatch, $section, $flags, $revision ) {
+ self::addToPageTriageQueue( $article->getId() );
+
+ return true;
+ }
+
+ /**
+ * Compile the metadata on successful save, this is only for page in
PageTriage Queue already
+ *
+ * @see http://www.mediawiki.org/wiki/Manual:Hooks/ArticleSaveComplete
+ * @param $article WikiPage
+ * @param $user
+ * @param $text
+ * @param $summary
+ * @param $minoredit
+ * @param $watchthis
+ * @param $sectionanchor
+ * @param $flags
+ * @param $revision
+ * @param $status
+ * @param $baseRevId
+ * @return bool
+ */
+ public static function onArticleSaveComplete( $article, $user, $text,
$summary, $minoredit, $watchthis, $sectionanchor, $flags, $revision, $status,
$baseRevId ) {
+ $articleMetadata = new ArticleMetadata( array(
$article->getId() ) );
+ $articleMetadata->compileMetadata();
+ return true;
+ }
+
+ /**
+ * Add page to page triage queue
+ */
+ private static function addToPageTriageQueue( $pageId ) {
+ $dbw = wfGetDB( DB_MASTER );
+
+ $row = array(
+ 'ptrp_page_id' => $pageId,
+ 'ptrp_triaged' => 0,
+ 'ptrp_timestamp' => $dbw->timestamp(
wfTimestampNow() )
+ );
+
+ $dbw->replace( 'pagetriage_page', array( 'ptrp_page_id' ),
$row, __METHOD__ );
+ }
+
+}
Modified: trunk/extensions/PageTriage/PageTriage.php
===================================================================
--- trunk/extensions/PageTriage/PageTriage.php 2012-03-13 19:32:41 UTC (rev
113753)
+++ trunk/extensions/PageTriage/PageTriage.php 2012-03-13 20:04:55 UTC (rev
113754)
@@ -52,6 +52,7 @@
$wgSpecialPages['PageTriage'] = 'SpecialPageTriage';
$wgSpecialPageGroups['PageTriage'] = 'changes';
$wgAutoloadClasses['ArticleMetadata'] = $dir . 'includes/ArticleMetadata.php';
+$wgAutoloadClasses['PageTriageHooks'] = $dir . 'PageTriage.hooks.php';
$wgAutoloadClasses['ApiQueryPageTriage'] = $dir . 'api/ApiQueryPageTriage.php';
$wgAutoloadClasses['ApiPageTriageGetMetadata'] = $dir .
'api/ApiPageTriageGetMetadata.php';
@@ -64,7 +65,12 @@
$wgAPIModules['pagetriage'] = 'ApiQueryPageTriage';
$wgAPIModules['pagetriagegetmetadata'] = 'ApiPageTriageGetMetadata';
+// hooks
$wgHooks['LoadExtensionSchemaUpdates'][] = 'efPageTriageSchemaUpdates';
+$wgHooks['SpecialMovepageAfterMove'][] =
'PageTriageHooks::onSpecialMovepageAfterMove';
+$wgHooks['NewRevisionFromEditComplete'][] =
'PageTriageHooks::onNewRevisionFromEditComplete';
+$wgHooks['ArticleInsertComplete'][] =
'PageTriageHooks::onArticleInsertComplete';
+$wgHooks['ArticleSaveComplete'][] = 'PageTriageHooks::onArticleSaveComplete';
/**
* @param $updater DatabaseUpdater
Modified: trunk/extensions/PageTriage/includes/ArticleMetadata.php
===================================================================
--- trunk/extensions/PageTriage/includes/ArticleMetadata.php 2012-03-13
19:32:41 UTC (rev 113753)
+++ trunk/extensions/PageTriage/includes/ArticleMetadata.php 2012-03-13
20:04:55 UTC (rev 113754)
@@ -374,8 +374,8 @@
$metaData[$row->page_id]['user_name'] =
$user->getName();
$metaData[$row->page_id]['user_editcount'] =
$user->getEditCount();
$metaData[$row->page_id]['user_creation_date'] =
wfTimestamp( TS_MW, $user->getRegistration() );
- $metaData[$row->page_id]['user_autoconfirmed'] =
$user->isAllowed( 'autoconfirmed' );
- $metaData[$row->page_id]['user_bot'] =
$user->isAllowed( 'bot' );
+ $metaData[$row->page_id]['user_autoconfirmed'] =
$user->isAllowed( 'autoconfirmed' ) ? '1' : '0';
+ $metaData[$row->page_id]['user_bot'] =
$user->isAllowed( 'bot' ) ? '1' : '0';
$metaData[$row->page_id]['user_block_status'] =
$user->isBlocked() ? '1' : '0';
}
}
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs