MediaWiki  master
SpecialUncategorizedpages.php
Go to the documentation of this file.
00001 <?php
00029 // @todo FIXME: Make $requestedNamespace selectable, unify all subclasses into one
00030 class UncategorizedPagesPage extends PageQueryPage {
00031         protected $requestedNamespace = false;
00032 
00033         function __construct( $name = 'Uncategorizedpages' ) {
00034                 parent::__construct( $name );
00035         }
00036 
00037         function sortDescending() {
00038                 return false;
00039         }
00040 
00041         function isExpensive() {
00042                 return true;
00043         }
00044 
00045         function isSyndicated() {
00046                 return false;
00047         }
00048 
00049         function getQueryInfo() {
00050                 return array (
00051                         'tables' => array ( 'page', 'categorylinks' ),
00052                         'fields' => array ( 'namespace' => 'page_namespace',
00053                                         'title' => 'page_title',
00054                                         'value' => 'page_title' ),
00055                         // default for page_namespace is all content namespaces (if requestedNamespace is false)
00056                         // otherwise, page_namespace is requestedNamespace
00057                         'conds' => array ( 'cl_from IS NULL',
00058                                         'page_namespace' => ( $this->requestedNamespace!==false ? $this->requestedNamespace : MWNamespace::getContentNamespaces() ),
00059                                         'page_is_redirect' => 0 ),
00060                         'join_conds' => array ( 'categorylinks' => array (
00061                                         'LEFT JOIN', 'cl_from = page_id' ) )
00062                 );
00063         }
00064 
00065         function getOrderFields() {
00066                 // For some crazy reason ordering by a constant
00067                 // causes a filesort
00068                 if( $this->requestedNamespace === false && count( MWNamespace::getContentNamespaces() ) > 1 )
00069                         return array( 'page_namespace', 'page_title' );
00070                 return array( 'page_title' );
00071         }
00072 }