diff options
Diffstat (limited to 'includes/specials/SpecialUncategorizedpages.php')
-rw-r--r-- | includes/specials/SpecialUncategorizedpages.php | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/includes/specials/SpecialUncategorizedpages.php b/includes/specials/SpecialUncategorizedpages.php new file mode 100644 index 00000000..e7f0aaca --- /dev/null +++ b/includes/specials/SpecialUncategorizedpages.php @@ -0,0 +1,55 @@ +<?php +/** + * @file + * @ingroup SpecialPage + */ + +/** + * A special page looking for page without any category. + * @ingroup 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 ); + list( $page, $categorylinks ) = $dbr->tableNamesN( '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 ); +} |