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
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to