[ Index ]

PHP Cross Reference of MediaWiki-1.24.0

title

Body

[close]

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

   1  <?php
   2  /**
   3   * Implements Special:Uncategorizedpages
   4   *
   5   * This program is free software; you can redistribute it and/or modify
   6   * it under the terms of the GNU General Public License as published by
   7   * the Free Software Foundation; either version 2 of the License, or
   8   * (at your option) any later version.
   9   *
  10   * This program is distributed in the hope that it will be useful,
  11   * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  13   * GNU General Public License for more details.
  14   *
  15   * You should have received a copy of the GNU General Public License along
  16   * with this program; if not, write to the Free Software Foundation, Inc.,
  17   * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  18   * http://www.gnu.org/copyleft/gpl.html
  19   *
  20   * @file
  21   * @ingroup SpecialPage
  22   */
  23  
  24  /**
  25   * A special page looking for page without any category.
  26   *
  27   * @ingroup SpecialPage
  28   * @todo FIXME: Make $requestedNamespace selectable, unify all subclasses into one
  29   */
  30  class UncategorizedPagesPage extends PageQueryPage {
  31      protected $requestedNamespace = false;
  32  
  33  	function __construct( $name = 'Uncategorizedpages' ) {
  34          parent::__construct( $name );
  35      }
  36  
  37  	function sortDescending() {
  38          return false;
  39      }
  40  
  41  	function isExpensive() {
  42          return true;
  43      }
  44  
  45  	function isSyndicated() {
  46          return false;
  47      }
  48  
  49  	function getQueryInfo() {
  50          return array(
  51              'tables' => array( 'page', 'categorylinks' ),
  52              'fields' => array(
  53                  'namespace' => 'page_namespace',
  54                  'title' => 'page_title',
  55                  'value' => 'page_title'
  56              ),
  57              // default for page_namespace is all content namespaces (if requestedNamespace is false)
  58              // otherwise, page_namespace is requestedNamespace
  59              'conds' => array(
  60                  'cl_from IS NULL',
  61                  'page_namespace' => $this->requestedNamespace !== false
  62                          ? $this->requestedNamespace
  63                          : MWNamespace::getContentNamespaces(),
  64                  'page_is_redirect' => 0
  65              ),
  66              'join_conds' => array(
  67                  'categorylinks' => array( 'LEFT JOIN', 'cl_from = page_id' )
  68              )
  69          );
  70      }
  71  
  72  	function getOrderFields() {
  73          // For some crazy reason ordering by a constant
  74          // causes a filesort
  75          if ( $this->requestedNamespace === false && count( MWNamespace::getContentNamespaces() ) > 1 ) {
  76              return array( 'page_namespace', 'page_title' );
  77          }
  78  
  79          return array( 'page_title' );
  80      }
  81  
  82  	protected function getGroupName() {
  83          return 'maintenance';
  84      }
  85  }


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