diff options
Diffstat (limited to 'includes/SpecialUncategorizedpages.php')
-rw-r--r-- | includes/SpecialUncategorizedpages.php | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/includes/SpecialUncategorizedpages.php b/includes/SpecialUncategorizedpages.php new file mode 100644 index 00000000..0ecc5d07 --- /dev/null +++ b/includes/SpecialUncategorizedpages.php @@ -0,0 +1,59 @@ +<?php +/** + * + * @package MediaWiki + * @subpackage SpecialPage + */ + +/** + * + * @package MediaWiki + * @subpackage SpecialPage + */ +class UncategorizedPagesPage extends PageQueryPage { + var $requestedNamespace = NS_MAIN; + + function getName() { + return "Uncategorizedpages"; + } + + function sortDescending() { + return false; + } + + function isExpensive() { + return true; + } + function isSyndicated() { return false; } + + function getSQL() { + $dbr =& wfGetDB( DB_SLAVE ); + extract( $dbr->tableNames( 'page', 'categorylinks' ) ); + $name = $dbr->addQuotes( $this->getName() ); + + return + " + SELECT + $name as type, + page_namespace AS namespace, + page_title AS title, + page_title AS value + FROM $page + LEFT JOIN $categorylinks ON page_id=cl_from + WHERE cl_from IS NULL AND page_namespace={$this->requestedNamespace} AND page_is_redirect=0 + "; + } +} + +/** + * constructor + */ +function wfSpecialUncategorizedpages() { + list( $limit, $offset ) = wfCheckLimits(); + + $lpp = new UncategorizedPagesPage(); + + return $lpp->doQuery( $offset, $limit ); +} + +?> |