]> scripts.mit.edu Git - autoinstallsdev/mediawiki.git/blobdiff - includes/specials/SpecialUnusedcategories.php
MediaWiki 1.30.2
[autoinstallsdev/mediawiki.git] / includes / specials / SpecialUnusedcategories.php
index ff2a66e12da7244fd3dbb3c05917968de1104f23..1469742a4b8bdc05a6ee6b5d0d27dd02fccf2476 100644 (file)
  * @ingroup SpecialPage
  */
 class UnusedCategoriesPage extends QueryPage {
+       function __construct( $name = 'Unusedcategories' ) {
+               parent::__construct( $name );
+       }
 
-       function isExpensive() { return true; }
-
-       function getName() {
-               return 'Unusedcategories';
+       public function isExpensive() {
+               return true;
        }
 
        function getPageHeader() {
-               return wfMsgExt( 'unusedcategoriestext', array( 'parse' ) );
+               return $this->msg( 'unusedcategoriestext' )->parseAsBlock();
        }
 
-       function getSQL() {
-               $NScat = NS_CATEGORY;
-               $dbr = wfGetDB( DB_SLAVE );
-               list( $categorylinks, $page ) = $dbr->tableNamesN( 'categorylinks', 'page' );
-               return "SELECT 'Unusedcategories' as type,
-                               {$NScat} as namespace, page_title as title, page_title as value
-                               FROM $page
-                               LEFT JOIN $categorylinks ON page_title=cl_to
-                               WHERE cl_from IS NULL
-                               AND page_namespace = {$NScat}
-                               AND page_is_redirect = 0";
+       public function getQueryInfo() {
+               return [
+                       'tables' => [ 'page', 'categorylinks' ],
+                       'fields' => [
+                               'namespace' => 'page_namespace',
+                               'title' => 'page_title',
+                               'value' => 'page_title'
+                       ],
+                       'conds' => [
+                               'cl_from IS NULL',
+                               'page_namespace' => NS_CATEGORY,
+                               'page_is_redirect' => 0
+                       ],
+                       'join_conds' => [ 'categorylinks' => [ 'LEFT JOIN', 'cl_to = page_title' ] ]
+               ];
        }
 
        /**
-        * A should come before Z (bug 30907)
+        * A should come before Z (T32907)
+        * @return bool
         */
        function sortDescending() {
                return false;
        }
 
+       /**
+        * @param Skin $skin
+        * @param object $result Result row
+        * @return string
+        */
        function formatResult( $skin, $result ) {
                $title = Title::makeTitle( NS_CATEGORY, $result->title );
-               return $skin->link( $title, $title->getText() );
+
+               return $this->getLinkRenderer()->makeLink( $title, $title->getText() );
+       }
+
+       protected function getGroupName() {
+               return 'maintenance';
        }
-}
 
-/** constructor */
-function wfSpecialUnusedCategories() {
-       list( $limit, $offset ) = wfCheckLimits();
-       $uc = new UnusedCategoriesPage();
-       return $uc->doQuery( $offset, $limit );
+       public function preprocessResults( $db, $res ) {
+               $this->executeLBFromResultWrapper( $res );
+       }
 }