Merge "SpecialActiveUsers: escape group names"
[lhc/web/wiklou.git] / includes / specials / pagers / CategoryPager.php
index fd2ac1f..345577d 100644 (file)
  * @file
  * @ingroup Pager
  */
+use MediaWiki\Linker\LinkRenderer;
 
 /**
- * TODO: Allow sorting by count.  We need to have a unique index to do this
- * properly.
- *
  * @ingroup Pager
  */
 class CategoryPager extends AlphabeticPager {
 
        /**
-        * @var PageLinkRenderer
+        * @var LinkRenderer
         */
        protected $linkRenderer;
 
        /**
         * @param IContextSource $context
         * @param string $from
-        * @param PageLinkRenderer $linkRenderer
+        * @param LinkRenderer $linkRenderer
         */
-       public function __construct( IContextSource $context, $from, PageLinkRenderer $linkRenderer
+       public function __construct( IContextSource $context, $from, LinkRenderer $linkRenderer
        ) {
                parent::__construct( $context );
                $from = str_replace( ' ', '_', $from );
@@ -54,13 +52,11 @@ class CategoryPager extends AlphabeticPager {
                return [
                        'tables' => [ 'category' ],
                        'fields' => [ 'cat_title', 'cat_pages' ],
-                       'conds' => [ 'cat_pages > 0' ],
                        'options' => [ 'USE INDEX' => 'cat_title' ],
                ];
        }
 
        function getIndexField() {
-#              return array( 'abc' => 'cat_title', 'count' => 'cat_pages' );
                return 'cat_title';
        }
 
@@ -71,16 +67,6 @@ class CategoryPager extends AlphabeticPager {
                return $this->mDefaultQuery;
        }
 
-#      protected function getOrderTypeMessages() {
-#              return array( 'abc' => 'special-categories-sort-abc',
-#                      'count' => 'special-categories-sort-count' );
-#      }
-
-       protected function getDefaultDirections() {
-#              return array( 'abc' => false, 'count' => true );
-               return false;
-       }
-
        /* Override getBody to apply LinksBatch on resultset before actually outputting anything. */
        public function getBody() {
                $batch = new LinkBatch;
@@ -88,7 +74,7 @@ class CategoryPager extends AlphabeticPager {
                $this->mResult->rewind();
 
                foreach ( $this->mResult as $row ) {
-                       $batch->addObj( Title::makeTitleSafe( NS_CATEGORY, $row->cat_title ) );
+                       $batch->addObj( new TitleValue( NS_CATEGORY, $row->cat_title ) );
                }
                $batch->execute();
                $this->mResult->rewind();
@@ -99,7 +85,7 @@ class CategoryPager extends AlphabeticPager {
        function formatRow( $result ) {
                $title = new TitleValue( NS_CATEGORY, $result->cat_title );
                $text = $title->getText();
-               $link = $this->linkRenderer->renderHtmlLink( $title, $text );
+               $link = $this->linkRenderer->makeLink( $title, $text );
 
                $count = $this->msg( 'nmembers' )->numParams( $result->cat_pages )->escaped();
                return Html::rawElement( 'li', null, $this->getLanguage()->specialList( $link, $count ) ) . "\n";