diff options
Diffstat (limited to 'includes/SpecialWithoutinterwiki.php')
-rw-r--r-- | includes/SpecialWithoutinterwiki.php | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/includes/SpecialWithoutinterwiki.php b/includes/SpecialWithoutinterwiki.php new file mode 100644 index 00000000..e5341d5d --- /dev/null +++ b/includes/SpecialWithoutinterwiki.php @@ -0,0 +1,56 @@ +<?php + +/** + * Special page lists pages without language links + * + * @package MediaWiki + * @addtogroup SpecialPage + * @author Rob Church <robchur@gmail.com> + */ +class WithoutInterwikiPage extends PageQueryPage { + + function getName() { + return 'Withoutinterwiki'; + } + + function getPageHeader() { + return '<p>' . wfMsgHtml( 'withoutinterwiki-header' ) . '</p>'; + } + + function sortDescending() { + return false; + } + + function isExpensive() { + return true; + } + + function isSyndicated() { + return false; + } + + function getSQL() { + $dbr = wfGetDB( DB_SLAVE ); + list( $page, $langlinks ) = $dbr->tableNamesN( 'page', 'langlinks' ); + return + "SELECT 'Withoutinterwiki' AS type, + page_namespace AS namespace, + page_title AS title, + page_title AS value + FROM $page + LEFT JOIN $langlinks + ON ll_from = page_id + WHERE ll_title IS NULL + AND page_namespace=" . NS_MAIN . " + AND page_is_redirect = 0"; + } + +} + +function wfSpecialWithoutinterwiki() { + list( $limit, $offset ) = wfCheckLimits(); + $wip = new WithoutInterwikiPage(); + $wip->doQuery( $offset, $limit ); +} + +?> |