summaryrefslogtreecommitdiff
path: root/includes/specials/SpecialLonelypages.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/specials/SpecialLonelypages.php')
-rw-r--r--includes/specials/SpecialLonelypages.php64
1 files changed, 33 insertions, 31 deletions
diff --git a/includes/specials/SpecialLonelypages.php b/includes/specials/SpecialLonelypages.php
index 0788037f..0800e43c 100644
--- a/includes/specials/SpecialLonelypages.php
+++ b/includes/specials/SpecialLonelypages.php
@@ -29,9 +29,10 @@
*/
class LonelyPagesPage extends PageQueryPage {
- function getName() {
- return "Lonelypages";
+ function __construct( $name = 'Lonelypages' ) {
+ parent::__construct( $name );
}
+
function getPageHeader() {
return wfMsgExt( 'lonelypagestext', array( 'parse' ) );
}
@@ -45,35 +46,36 @@ class LonelyPagesPage extends PageQueryPage {
}
function isSyndicated() { return false; }
- function getSQL() {
- $dbr = wfGetDB( DB_SLAVE );
- list( $page, $pagelinks, $templatelinks ) = $dbr->tableNamesN( 'page', 'pagelinks', 'templatelinks' );
-
- return
- "SELECT 'Lonelypages' AS type,
- page_namespace AS namespace,
- page_title AS title,
- page_title AS value
- FROM $page
- LEFT JOIN $pagelinks
- ON page_namespace=pl_namespace AND page_title=pl_title
- LEFT JOIN $templatelinks
- ON page_namespace=tl_namespace AND page_title=tl_title
- WHERE pl_namespace IS NULL
- AND page_namespace=".NS_MAIN."
- AND page_is_redirect=0
- AND tl_namespace IS NULL";
-
+ function getQueryInfo() {
+ return array (
+ 'tables' => array ( 'page', 'pagelinks',
+ 'templatelinks' ),
+ 'fields' => array ( 'page_namespace AS namespace',
+ 'page_title AS title',
+ 'page_title AS value' ),
+ 'conds' => array ( 'pl_namespace IS NULL',
+ 'page_namespace' => MWNamespace::getContentNamespaces(),
+ 'page_is_redirect' => 0,
+ 'tl_namespace IS NULL' ),
+ 'join_conds' => array (
+ 'pagelinks' => array (
+ 'LEFT JOIN', array (
+ 'pl_namespace = page_namespace',
+ 'pl_title = page_title' ) ),
+ 'templatelinks' => array (
+ 'LEFT JOIN', array (
+ 'tl_namespace = page_namespace',
+ 'tl_title = page_title' ) ) )
+ );
}
-}
-/**
- * Constructor
- */
-function wfSpecialLonelypages() {
- list( $limit, $offset ) = wfCheckLimits();
-
- $lpp = new LonelyPagesPage();
-
- return $lpp->doQuery( $offset, $limit );
+ function getOrderFields() {
+ // For some crazy reason ordering by a constant
+ // causes a filesort in MySQL 5
+ if( count( MWNamespace::getContentNamespaces() ) > 1 ) {
+ return array( 'page_namespace', 'page_title' );
+ } else {
+ return array( 'page_title' );
+ }
+ }
}