diff options
Diffstat (limited to 'includes/SpecialDeadendpages.php')
-rw-r--r-- | includes/SpecialDeadendpages.php | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/includes/SpecialDeadendpages.php b/includes/SpecialDeadendpages.php new file mode 100644 index 00000000..3f4a0519 --- /dev/null +++ b/includes/SpecialDeadendpages.php @@ -0,0 +1,63 @@ +<?php +/** + * + * @package MediaWiki + * @subpackage SpecialPage + */ + +/** + * + * @package MediaWiki + * @subpackage SpecialPage + */ +class DeadendPagesPage extends PageQueryPage { + + function getName( ) { + return "Deadendpages"; + } + + /** + * LEFT JOIN is expensive + * + * @return true + */ + function isExpensive( ) { + return 1; + } + + function isSyndicated() { return false; } + + /** + * @return false + */ + function sortDescending() { + return false; + } + + /** + * @return string an sqlquery + */ + function getSQL() { + $dbr =& wfGetDB( DB_SLAVE ); + extract( $dbr->tableNames( 'page', 'pagelinks' ) ); + return "SELECT 'Deadendpages' as type, page_namespace AS namespace, page_title as title, page_title AS value " . + "FROM $page LEFT JOIN $pagelinks ON page_id = pl_from " . + "WHERE pl_from IS NULL " . + "AND page_namespace = 0 " . + "AND page_is_redirect = 0"; + } +} + +/** + * Constructor + */ +function wfSpecialDeadendpages() { + + list( $limit, $offset ) = wfCheckLimits(); + + $depp = new DeadendPagesPage(); + + return $depp->doQuery( $offset, $limit ); +} + +?> |