https://www.mediawiki.org/wiki/Special:Code/MediaWiki/114431
Revision: 114431
Author: bsitu
Date: 2012-03-22 23:06:18 +0000 (Thu, 22 Mar 2012)
Log Message:
-----------
provided metadata to provided page list
Modified Paths:
--------------
trunk/extensions/PageTriage/SpecialPageTriage.php
trunk/extensions/PageTriage/api/ApiPageTriageList.php
Modified: trunk/extensions/PageTriage/SpecialPageTriage.php
===================================================================
--- trunk/extensions/PageTriage/SpecialPageTriage.php 2012-03-22 20:34:20 UTC
(rev 114430)
+++ trunk/extensions/PageTriage/SpecialPageTriage.php 2012-03-22 23:06:18 UTC
(rev 114431)
@@ -25,13 +25,14 @@
*/
public function execute( $sub ) {
global $wgOut;
-
+
// Initialize variable to hold list view options
$opts = new FormOptions();
// Set the defaults for the list view options
$opts->add( 'showbots', true );
$opts->add( 'showredirs', false );
+ $opts->add( 'showtriaged', false );
$opts->add( 'limit', (int)$this->getUser()->getOption(
'rclimit' ) );
$opts->add( 'offset', '' );
$opts->add( 'namespace', '0' );
@@ -96,9 +97,13 @@
$htmlOut = '';
if ( $pageList ) {
+ $articleMetadata = new ArticleMetadata( $pageList );
+ $metaData = $articleMetadata->getMetadata();
foreach ( $pageList as $pageId ) {
- $formattedRow = $this->buildRow( $pageId );
- $htmlOut .= $formattedRow;
+ if ( isset( $metaData[$pageId] ) ) {
+ $formattedRow = $this->buildRow(
$pageId, $metaData[$pageId] );
+ $htmlOut .= $formattedRow;
+ }
}
} else {
$htmlOut .= wfMessage( 'specialpage-empty' );
@@ -110,14 +115,18 @@
/**
* Builds a single row for the article list.
* @param $pageId integer ID for a single page
+ * @param $metaData array the meta data for $pageId
* @return string HTML for the row
*/
- protected function buildRow( $pageId ) {
+ protected function buildRow( $pageId, $metaData ) {
- // TODO: get all the metadata for the page
+ // TODO: Build the row from metadata provided
+ return '<div>'
+ . $pageId . ' '
+ . htmlspecialchars( $metaData['title'] ) . ' '
+ . htmlspecialchars( $metaData['user_name'] ) .
+ '</div>';
- return '<div>'.$pageId.'</div>';
-
}
}
Modified: trunk/extensions/PageTriage/api/ApiPageTriageList.php
===================================================================
--- trunk/extensions/PageTriage/api/ApiPageTriageList.php 2012-03-22
20:34:20 UTC (rev 114430)
+++ trunk/extensions/PageTriage/api/ApiPageTriageList.php 2012-03-22
23:06:18 UTC (rev 114431)
@@ -27,7 +27,7 @@
* @return an array of ids
*/
public static function getPageIds( $opts = array() ) {
-
+
// Initialize required variables
$pages = array();
$conds = array();
@@ -42,10 +42,32 @@
}
// TODO: Handle filtering options
+ $tables = array( 'pagetriage_page', 'page' );
+ $conds[] = 'ptrp_page_id = page_id';
+
+ if ( $opts['namespace'] ) {
+ $conds['page_namespace'] = $opts['namespace'];
+ }
+ if ( $opts['showredirs'] ) {
+ $conds['page_is_redirect'] = 1;
+ }
+ if ( $opts['showbots'] ) {
+ $conds[] = 'ptrp_page_id = ptrpt_page_id AND
ptrpt_tag_id = ptrt_tag_id';
+ $conds['ptrt_tag_name'] = 'user_bot';
+ $conds['ptrpt_value'] = '1';
+ $tables[] = 'pagetriage_page_tags';
+ $tables[] = 'pagetriage_tags';
+ }
+ if ( $opts['showtriaged'] ) {
+ $conds['ptrp_triaged'] = array( 0, 1 );
+ } else {
+ $conds['ptrp_triaged'] = 0;
+ }
+
// Pull page IDs from database
$res = $dbr->select(
- 'pagetriage_page',
+ $tables,
'ptrp_page_id',
$conds,
__METHOD__,
@@ -68,6 +90,9 @@
'showredirs' => array(
ApiBase::PARAM_TYPE => 'boolean',
),
+ 'showtriaged'=> array(
+ ApiBase::PARAM_TYPE => 'boolean',
+ ),
'limit' => array(
ApiBase::PARAM_DFLT => '5000',
ApiBase::PARAM_TYPE => 'integer',
@@ -83,6 +108,7 @@
return array(
'showbots' => 'Whether to include bot edits or not',
'showredirs' => 'Whether to include redirects or not',
+ 'showtriaged' => 'Whether to include triaged or not',
'limit' => 'The maximum number of results to return',
'namespace' => 'What namespace to pull pages from',
);
_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs