[ Index ]

PHP Cross Reference of MediaWiki-1.24.0

title

Body

[close]

/includes/specials/ -> SpecialMostlinkedcategories.php (source)

   1  <?php
   2  /**
   3   * Implements Special:Mostlinkedcategories
   4   *
   5   * Copyright © 2005, Ævar Arnfjörð Bjarmason
   6   *
   7   * This program is free software; you can redistribute it and/or modify
   8   * it under the terms of the GNU General Public License as published by
   9   * the Free Software Foundation; either version 2 of the License, or
  10   * (at your option) any later version.
  11   *
  12   * This program is distributed in the hope that it will be useful,
  13   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  14   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  15   * GNU General Public License for more details.
  16   *
  17   * You should have received a copy of the GNU General Public License along
  18   * with this program; if not, write to the Free Software Foundation, Inc.,
  19   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  20   * http://www.gnu.org/copyleft/gpl.html
  21   *
  22   * @file
  23   * @ingroup SpecialPage
  24   * @author Ævar Arnfjörð Bjarmason <[email protected]>
  25   */
  26  
  27  /**
  28   * A querypage to show categories ordered in descending order by the pages in them
  29   *
  30   * @ingroup SpecialPage
  31   */
  32  class MostlinkedCategoriesPage extends QueryPage {
  33  	function __construct( $name = 'Mostlinkedcategories' ) {
  34          parent::__construct( $name );
  35      }
  36  
  37  	function isSyndicated() {
  38          return false;
  39      }
  40  
  41  	function getQueryInfo() {
  42          return array(
  43              'tables' => array( 'category' ),
  44              'fields' => array( 'title' => 'cat_title',
  45                  'namespace' => NS_CATEGORY,
  46                  'value' => 'cat_pages' ),
  47              'conds' => array( 'cat_pages > 0' ),
  48          );
  49      }
  50  
  51  	function sortDescending() {
  52          return true;
  53      }
  54  
  55      /**
  56       * Fetch user page links and cache their existence
  57       *
  58       * @param DatabaseBase $db
  59       * @param ResultWrapper $res
  60       */
  61  	function preprocessResults( $db, $res ) {
  62          if ( !$res->numRows() ) {
  63              return;
  64          }
  65  
  66          $batch = new LinkBatch;
  67          foreach ( $res as $row ) {
  68              $batch->add( NS_CATEGORY, $row->title );
  69          }
  70          $batch->execute();
  71  
  72          // Back to start for display
  73          $res->seek( 0 );
  74      }
  75  
  76      /**
  77       * @param Skin $skin
  78       * @param object $result Result row
  79       * @return string
  80       */
  81  	function formatResult( $skin, $result ) {
  82          global $wgContLang;
  83  
  84          $nt = Title::makeTitleSafe( NS_CATEGORY, $result->title );
  85          if ( !$nt ) {
  86              return Html::element(
  87                  'span',
  88                  array( 'class' => 'mw-invalidtitle' ),
  89                  Linker::getInvalidTitleDescription(
  90                      $this->getContext(),
  91                      NS_CATEGORY,
  92                      $result->title )
  93              );
  94          }
  95  
  96          $text = $wgContLang->convert( $nt->getText() );
  97          $plink = Linker::link( $nt, htmlspecialchars( $text ) );
  98          $nlinks = $this->msg( 'nmembers' )->numParams( $result->value )->escaped();
  99  
 100          return $this->getLanguage()->specialList( $plink, $nlinks );
 101      }
 102  
 103  	protected function getGroupName() {
 104          return 'highuse';
 105      }
 106  }


Generated: Fri Nov 28 14:03:12 2014 Cross-referenced by PHPXref 0.7.1