]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - includes/specials/SpecialDeadendpages.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / includes / specials / SpecialDeadendpages.php
index dfa053aa84eb6aa4968f954181f6615303be609a..f13f231dc4583431eda3795023eda911587c57b2 100644 (file)
  */
 class DeadendPagesPage extends PageQueryPage {
 
-       function getName( ) {
-               return "Deadendpages";
+       function __construct( $name = 'Deadendpages' ) {
+               parent::__construct( $name );
        }
 
        function getPageHeader() {
-               return wfMsgExt( 'deadendpagestext', array( 'parse' ) );
+               return $this->msg( 'deadendpagestext' )->parseAsBlock();
        }
 
        /**
         * LEFT JOIN is expensive
         *
-        * @return true
+        * @return bool
         */
-       function isExpensive( ) {
-               return 1;
+       function isExpensive() {
+               return true;
        }
 
-       function isSyndicated() { return false; }
+       function isSyndicated() {
+               return false;
+       }
 
        /**
-        * @return false
+        * @return bool
         */
        function sortDescending() {
                return false;
        }
 
-       /**
-        * @return string an sqlquery
-        */
-       function getSQL() {
-               $dbr = wfGetDB( DB_SLAVE );
-               list( $page, $pagelinks ) = $dbr->tableNamesN( '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";
+       function getQueryInfo() {
+               return [
+                       'tables' => [ 'page', 'pagelinks' ],
+                       'fields' => [
+                               'namespace' => 'page_namespace',
+                               'title' => 'page_title',
+                               'value' => 'page_title'
+                       ],
+                       'conds' => [
+                               'pl_from IS NULL',
+                               'page_namespace' => MWNamespace::getContentNamespaces(),
+                               'page_is_redirect' => 0
+                       ],
+                       'join_conds' => [
+                               'pagelinks' => [
+                                       'LEFT JOIN',
+                                       [ 'page_id=pl_from' ]
+                               ]
+                       ]
+               ];
        }
-}
 
-/**
- * Constructor
- */
-function wfSpecialDeadendpages() {
-
-       list( $limit, $offset ) = wfCheckLimits();
-
-       $depp = new DeadendPagesPage();
+       function getOrderFields() {
+               // For some crazy reason ordering by a constant
+               // causes a filesort
+               if ( count( MWNamespace::getContentNamespaces() ) > 1 ) {
+                       return [ 'page_namespace', 'page_title' ];
+               } else {
+                       return [ 'page_title' ];
+               }
+       }
 
-       return $depp->doQuery( $offset, $limit );
+       protected function getGroupName() {
+               return 'maintenance';
+       }
 }