From 96a5486ed0929ec49e370d2a7bfb5aabf89e4924 Mon Sep 17 00:00:00 2001 From: umherirrender Date: Thu, 7 Mar 2013 21:15:54 +0100 Subject: [PATCH] Add SpecialPage::getGroupName and use it Having all group mapping for Special:SpecialPages in the global $wgSpecialPageGroups is not a good OO style. Created a method SpecialPage::getGroupName, which than can be overridden by each subclasses to the featured group name. Added also SpecialPage::getFinalGroupName to get the groupname on Special:SpecialPages to handle the customization and to keep $wgSpecialPageGroups for b/c Change-Id: I1de3a186f0a59ec5ecb8996c5f805cf164e9637f --- includes/DefaultSettings.php | 107 +----------------- includes/SpecialPage.php | 50 ++++++++ includes/SpecialPageFactory.php | 25 +--- includes/specials/SpecialActiveusers.php | 3 + includes/specials/SpecialAllmessages.php | 3 + includes/specials/SpecialAllpages.php | 4 + includes/specials/SpecialAncientpages.php | 4 + includes/specials/SpecialBlock.php | 4 + includes/specials/SpecialBlockList.php | 4 + includes/specials/SpecialBlockme.php | 4 + includes/specials/SpecialBooksources.php | 4 + includes/specials/SpecialBrokenRedirects.php | 4 + includes/specials/SpecialCategories.php | 4 + includes/specials/SpecialChangeEmail.php | 4 + includes/specials/SpecialChangePassword.php | 4 + includes/specials/SpecialComparePages.php | 4 + includes/specials/SpecialContributions.php | 4 + includes/specials/SpecialDeadendpages.php | 4 + .../specials/SpecialDeletedContributions.php | 4 + includes/specials/SpecialDisambiguations.php | 4 + includes/specials/SpecialDoubleRedirects.php | 4 + includes/specials/SpecialEmailuser.php | 4 + includes/specials/SpecialExport.php | 3 + includes/specials/SpecialFewestrevisions.php | 4 + .../specials/SpecialFileDuplicateSearch.php | 4 + includes/specials/SpecialFilepath.php | 4 + includes/specials/SpecialImport.php | 4 + includes/specials/SpecialJavaScriptTest.php | 4 + includes/specials/SpecialLinkSearch.php | 4 + includes/specials/SpecialListfiles.php | 4 + includes/specials/SpecialListgrouprights.php | 4 + includes/specials/SpecialListredirects.php | 4 + includes/specials/SpecialListusers.php | 4 + includes/specials/SpecialLockdb.php | 4 + includes/specials/SpecialLog.php | 3 + includes/specials/SpecialLonelypages.php | 4 + includes/specials/SpecialLongpages.php | 4 + includes/specials/SpecialMIMEsearch.php | 4 + includes/specials/SpecialMergeHistory.php | 4 + includes/specials/SpecialMostcategories.php | 4 + includes/specials/SpecialMostimages.php | 3 + includes/specials/SpecialMostinterwikis.php | 4 + includes/specials/SpecialMostlinked.php | 4 + .../specials/SpecialMostlinkedcategories.php | 4 + .../specials/SpecialMostlinkedtemplates.php | 4 + includes/specials/SpecialMostrevisions.php | 4 + includes/specials/SpecialMovepage.php | 4 + includes/specials/SpecialNewimages.php | 4 + includes/specials/SpecialNewpages.php | 4 + includes/specials/SpecialPagesWithProp.php | 4 + includes/specials/SpecialPasswordReset.php | 4 + includes/specials/SpecialPopularpages.php | 4 + includes/specials/SpecialPreferences.php | 4 + includes/specials/SpecialPrefixindex.php | 4 + includes/specials/SpecialProtectedpages.php | 4 + includes/specials/SpecialProtectedtitles.php | 4 + includes/specials/SpecialRandompage.php | 4 + includes/specials/SpecialRecentchanges.php | 4 + includes/specials/SpecialRevisiondelete.php | 4 + includes/specials/SpecialSearch.php | 3 + includes/specials/SpecialShortpages.php | 4 + includes/specials/SpecialSpecialpages.php | 2 +- includes/specials/SpecialStatistics.php | 4 + includes/specials/SpecialTags.php | 4 + includes/specials/SpecialUnblock.php | 4 + .../specials/SpecialUncategorizedimages.php | 3 + .../specials/SpecialUncategorizedpages.php | 4 + includes/specials/SpecialUndelete.php | 4 + includes/specials/SpecialUnlockdb.php | 4 + includes/specials/SpecialUnusedcategories.php | 4 + includes/specials/SpecialUnusedimages.php | 3 + includes/specials/SpecialUnusedtemplates.php | 4 + includes/specials/SpecialUnwatchedpages.php | 4 + includes/specials/SpecialUpload.php | 3 + includes/specials/SpecialUserlogin.php | 4 + includes/specials/SpecialUserlogout.php | 4 + includes/specials/SpecialUserrights.php | 4 + includes/specials/SpecialVersion.php | 4 + includes/specials/SpecialWantedcategories.php | 4 + includes/specials/SpecialWantedfiles.php | 4 + includes/specials/SpecialWantedpages.php | 4 + includes/specials/SpecialWantedtemplates.php | 4 + includes/specials/SpecialWatchlist.php | 4 + includes/specials/SpecialWhatlinkshere.php | 4 + includes/specials/SpecialWithoutinterwiki.php | 4 + 85 files changed, 375 insertions(+), 124 deletions(-) diff --git a/includes/DefaultSettings.php b/includes/DefaultSettings.php index eb87e7b613..ee70276a05 100644 --- a/includes/DefaultSettings.php +++ b/includes/DefaultSettings.php @@ -5813,111 +5813,10 @@ $wgDisableQueryPageUpdate = false; /** * List of special pages, followed by what subtitle they should go under * at Special:SpecialPages + * + * @deprecated 1.21 Override SpecialPage::getGroupName instead */ -$wgSpecialPageGroups = array( - 'DoubleRedirects' => 'maintenance', - 'BrokenRedirects' => 'maintenance', - 'Lonelypages' => 'maintenance', - 'Uncategorizedpages' => 'maintenance', - 'Uncategorizedcategories' => 'maintenance', - 'Uncategorizedimages' => 'maintenance', - 'Uncategorizedtemplates' => 'maintenance', - 'Unusedcategories' => 'maintenance', - 'Unusedimages' => 'maintenance', - 'Protectedpages' => 'maintenance', - 'Protectedtitles' => 'maintenance', - 'Unusedtemplates' => 'maintenance', - 'Withoutinterwiki' => 'maintenance', - 'Longpages' => 'maintenance', - 'Shortpages' => 'maintenance', - 'Ancientpages' => 'maintenance', - 'Deadendpages' => 'maintenance', - 'Wantedpages' => 'maintenance', - 'Wantedcategories' => 'maintenance', - 'Wantedfiles' => 'maintenance', - 'Wantedtemplates' => 'maintenance', - 'Unwatchedpages' => 'maintenance', - 'Fewestrevisions' => 'maintenance', - - 'Userlogin' => 'login', - 'Userlogout' => 'login', - 'CreateAccount' => 'login', - - 'Recentchanges' => 'changes', - 'Recentchangeslinked' => 'changes', - 'Watchlist' => 'changes', - 'Newimages' => 'changes', - 'Newpages' => 'changes', - 'Log' => 'changes', - 'Tags' => 'changes', - - 'Upload' => 'media', - 'Listfiles' => 'media', - 'MIMEsearch' => 'media', - 'FileDuplicateSearch' => 'media', - 'Filepath' => 'media', - - 'Listusers' => 'users', - 'Activeusers' => 'users', - 'Listgrouprights' => 'users', - 'BlockList' => 'users', - 'Contributions' => 'users', - 'Emailuser' => 'users', - 'Listadmins' => 'users', - 'Listbots' => 'users', - 'Userrights' => 'users', - 'Block' => 'users', - 'Unblock' => 'users', - 'Preferences' => 'users', - 'ChangeEmail' => 'users', - 'ChangePassword' => 'users', - 'DeletedContributions' => 'users', - 'PasswordReset' => 'users', - - 'Mostlinked' => 'highuse', - 'Mostlinkedcategories' => 'highuse', - 'Mostlinkedtemplates' => 'highuse', - 'Mostcategories' => 'highuse', - 'Mostimages' => 'highuse', - 'Mostinterwikis' => 'highuse', - 'Mostrevisions' => 'highuse', - - 'Allpages' => 'pages', - 'Prefixindex' => 'pages', - 'Listredirects' => 'pages', - 'Categories' => 'pages', - 'Disambiguations' => 'pages', - 'PagesWithProp' => 'pages', - - 'Randompage' => 'redirects', - 'Randomredirect' => 'redirects', - 'Mypage' => 'redirects', - 'Mytalk' => 'redirects', - 'Mycontributions' => 'redirects', - 'Search' => 'redirects', - 'LinkSearch' => 'redirects', - - 'ComparePages' => 'pagetools', - 'Movepage' => 'pagetools', - 'MergeHistory' => 'pagetools', - 'Revisiondelete' => 'pagetools', - 'Undelete' => 'pagetools', - 'Export' => 'pagetools', - 'Import' => 'pagetools', - 'Whatlinkshere' => 'pagetools', - - 'Statistics' => 'wiki', - 'Version' => 'wiki', - 'Lockdb' => 'wiki', - 'Unlockdb' => 'wiki', - 'Allmessages' => 'wiki', - 'Popularpages' => 'wiki', - - 'Specialpages' => 'other', - 'Blockme' => 'other', - 'Booksources' => 'other', - 'JavaScriptTest' => 'other', -); +$wgSpecialPageGroups = array(); /** Whether or not to sort special pages in Special:Specialpages */ diff --git a/includes/SpecialPage.php b/includes/SpecialPage.php index 5801e2a0dd..0eadac5bf9 100644 --- a/includes/SpecialPage.php +++ b/includes/SpecialPage.php @@ -850,6 +850,56 @@ class SpecialPage { $this->getOutput()->addFeedLink( $format, $url ); } } + + /** + * Get the group that the special page belongs in on Special:SpecialPage + * Use this method, instead of getGroupName to allow customization + * of the group name from the wiki side + * + * @return string Group of this special page + * @since 1.21 + */ + public function getFinalGroupName() { + $name = $this->getName(); + $group = '-'; + + // Allow overridding the group from the wiki side + $msg = $this->msg( 'specialpages-specialpagegroup-' . strtolower( $name ) )->inContentLanguage(); + if ( !$msg->isBlank() ) { + $group = $msg->text(); + } else { + // Than use the group from this object + $group = $this->getGroupName(); + + // Group '-' is used as default to have the chance to determine, + // if the special pages overriddes this method, + // if not overridden, $wgSpecialPageGroups is checked for b/c + if ( $group === '-' && isset( $wgSpecialPageGroups[$name] ) ) { + $group = $wgSpecialPageGroups[$name]; + } + } + + // never give '-' back, change to 'other' + if ( $group === '-' ) { + $group = 'other'; + } + + return $group; + } + + /** + * Under which header this special page is listed in Special:SpecialPages + * See messages 'specialpages-group-*' for valid names + * This method defaults to group 'other' + * + * @return string + * @since 1.21 + */ + protected function getGroupName() { + // '-' used here to determine, if this group is overridden or has a hardcoded 'other' + // Needed for b/c in getFinalGroupName + return '-'; + } } /** diff --git a/includes/SpecialPageFactory.php b/includes/SpecialPageFactory.php index c94c358f3f..09479bd964 100644 --- a/includes/SpecialPageFactory.php +++ b/includes/SpecialPageFactory.php @@ -286,8 +286,11 @@ class SpecialPageFactory { * * @param $page Mixed: SpecialPage or string * @param $group String + * @deprecated 1.21 Override SpecialPage::getGroupName */ public static function setGroup( $page, $group ) { + wfDeprecated( __METHOD__, '1.21' ); + global $wgSpecialPageGroups; $name = is_object( $page ) ? $page->getName() : $page; $wgSpecialPageGroups[$name] = $group; @@ -298,28 +301,12 @@ class SpecialPageFactory { * * @param $page SpecialPage * @return String + * @deprecated 1.21 Use SpecialPage::getFinalGroupName */ public static function getGroup( &$page ) { - $name = $page->getName(); + wfDeprecated( __METHOD__, '1.21' ); - global $wgSpecialPageGroups; - static $specialPageGroupsCache = array(); - if ( isset( $specialPageGroupsCache[$name] ) ) { - return $specialPageGroupsCache[$name]; - } - $msg = wfMessage( 'specialpages-specialpagegroup-' . strtolower( $name ) ); - if ( !$msg->isBlank() ) { - $group = $msg->text(); - } else { - $group = isset( $wgSpecialPageGroups[$name] ) - ? $wgSpecialPageGroups[$name] - : '-'; - } - if ( $group == '-' ) { - $group = 'other'; - } - $specialPageGroupsCache[$name] = $group; - return $group; + return $page->getFinalGroupName(); } /** diff --git a/includes/specials/SpecialActiveusers.php b/includes/specials/SpecialActiveusers.php index 994365edd3..72cfcc2288 100644 --- a/includes/specials/SpecialActiveusers.php +++ b/includes/specials/SpecialActiveusers.php @@ -244,4 +244,7 @@ class SpecialActiveUsers extends SpecialPage { } } + protected function getGroupName() { + return 'users'; + } } diff --git a/includes/specials/SpecialAllmessages.php b/includes/specials/SpecialAllmessages.php index e3424ece89..a60c8efeab 100644 --- a/includes/specials/SpecialAllmessages.php +++ b/includes/specials/SpecialAllmessages.php @@ -77,6 +77,9 @@ class SpecialAllmessages extends SpecialPage { } + protected function getGroupName() { + return 'wiki'; + } } /** diff --git a/includes/specials/SpecialAllpages.php b/includes/specials/SpecialAllpages.php index d401d34e5b..a5bf8dff21 100644 --- a/includes/specials/SpecialAllpages.php +++ b/includes/specials/SpecialAllpages.php @@ -538,4 +538,8 @@ class SpecialAllpages extends IncludableSpecialPage { return null; } } + + protected function getGroupName() { + return 'pages'; + } } diff --git a/includes/specials/SpecialAncientpages.php b/includes/specials/SpecialAncientpages.php index fc5df4f862..b0f333c45c 100644 --- a/includes/specials/SpecialAncientpages.php +++ b/includes/specials/SpecialAncientpages.php @@ -71,4 +71,8 @@ class AncientPagesPage extends QueryPage { ); return $this->getLanguage()->specialList( $link, htmlspecialchars( $d ) ); } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialBlock.php b/includes/specials/SpecialBlock.php index ac05f6705a..efa718fad3 100644 --- a/includes/specials/SpecialBlock.php +++ b/includes/specials/SpecialBlock.php @@ -946,6 +946,10 @@ class SpecialBlock extends FormSpecialPage { $out->setPageTitle( $this->msg( 'blockipsuccesssub' ) ); $out->addWikiMsg( 'blockipsuccesstext', wfEscapeWikiText( $this->target ) ); } + + protected function getGroupName() { + return 'users'; + } } # BC @since 1.18 diff --git a/includes/specials/SpecialBlockList.php b/includes/specials/SpecialBlockList.php index 56b9b00b4b..0771512a5f 100644 --- a/includes/specials/SpecialBlockList.php +++ b/includes/specials/SpecialBlockList.php @@ -205,6 +205,10 @@ class SpecialBlockList extends SpecialPage { $out->addHTML( Html::rawElement( 'ul', array( 'class' => 'mw-ipblocklist-otherblocks' ), $list ) . "\n" ); } } + + protected function getGroupName() { + return 'users'; + } } class BlockListPager extends TablePager { diff --git a/includes/specials/SpecialBlockme.php b/includes/specials/SpecialBlockme.php index 13e2351f17..85a3019e8e 100644 --- a/includes/specials/SpecialBlockme.php +++ b/includes/specials/SpecialBlockme.php @@ -59,4 +59,8 @@ class SpecialBlockme extends UnlistedSpecialPage { $this->getOutput()->addWikiMsg( 'proxyblocksuccess' ); } + + protected function getGroupName() { + return 'other'; + } } diff --git a/includes/specials/SpecialBooksources.php b/includes/specials/SpecialBooksources.php index 527dbb776f..7849c0ce7b 100644 --- a/includes/specials/SpecialBooksources.php +++ b/includes/specials/SpecialBooksources.php @@ -179,4 +179,8 @@ class SpecialBookSources extends SpecialPage { $url = str_replace( '$1', $this->isbn, $url ); return '
  • ' . htmlspecialchars( $label ) . '
  • '; } + + protected function getGroupName() { + return 'other'; + } } diff --git a/includes/specials/SpecialBrokenRedirects.php b/includes/specials/SpecialBrokenRedirects.php index 77b69e8e7e..fac412360d 100644 --- a/includes/specials/SpecialBrokenRedirects.php +++ b/includes/specials/SpecialBrokenRedirects.php @@ -151,4 +151,8 @@ class BrokenRedirectsPage extends QueryPage { $out .= " {$arr} {$to}"; return $out; } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialCategories.php b/includes/specials/SpecialCategories.php index 44388c4bed..9040c6406c 100644 --- a/includes/specials/SpecialCategories.php +++ b/includes/specials/SpecialCategories.php @@ -50,6 +50,10 @@ class SpecialCategories extends SpecialPage { Html::closeElement( 'div' ) ); } + + protected function getGroupName() { + return 'pages'; + } } /** diff --git a/includes/specials/SpecialChangeEmail.php b/includes/specials/SpecialChangeEmail.php index 53faba7a7a..59a025780b 100644 --- a/includes/specials/SpecialChangeEmail.php +++ b/includes/specials/SpecialChangeEmail.php @@ -254,4 +254,8 @@ class SpecialChangeEmail extends UnlistedSpecialPage { return $status->value; } + + protected function getGroupName() { + return 'users'; + } } diff --git a/includes/specials/SpecialChangePassword.php b/includes/specials/SpecialChangePassword.php index 2b505b300a..73eb97fdeb 100644 --- a/includes/specials/SpecialChangePassword.php +++ b/includes/specials/SpecialChangePassword.php @@ -270,4 +270,8 @@ class SpecialChangePassword extends UnlistedSpecialPage { $user->saveSettings(); } + + protected function getGroupName() { + return 'users'; + } } diff --git a/includes/specials/SpecialComparePages.php b/includes/specials/SpecialComparePages.php index 8be1cf0c41..c3bd3feccf 100644 --- a/includes/specials/SpecialComparePages.php +++ b/includes/specials/SpecialComparePages.php @@ -163,4 +163,8 @@ class SpecialComparePages extends SpecialPage { } return true; } + + protected function getGroupName() { + return 'pagetools'; + } } diff --git a/includes/specials/SpecialContributions.php b/includes/specials/SpecialContributions.php index 569fde5db7..fa5394bf65 100644 --- a/includes/specials/SpecialContributions.php +++ b/includes/specials/SpecialContributions.php @@ -540,6 +540,10 @@ class SpecialContributions extends SpecialPage { Xml::closeElement( 'form' ); return $form; } + + protected function getGroupName() { + return 'users'; + } } /** diff --git a/includes/specials/SpecialDeadendpages.php b/includes/specials/SpecialDeadendpages.php index f4904a50ce..6978d6bb96 100644 --- a/includes/specials/SpecialDeadendpages.php +++ b/includes/specials/SpecialDeadendpages.php @@ -82,4 +82,8 @@ class DeadendPagesPage extends PageQueryPage { return array( 'page_title' ); } } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialDeletedContributions.php b/includes/specials/SpecialDeletedContributions.php index 0c934a4933..e291a55ce8 100644 --- a/includes/specials/SpecialDeletedContributions.php +++ b/includes/specials/SpecialDeletedContributions.php @@ -522,4 +522,8 @@ class DeletedContributionsPage extends SpecialPage { Xml::closeElement( 'form' ); return $f; } + + protected function getGroupName() { + return 'users'; + } } diff --git a/includes/specials/SpecialDisambiguations.php b/includes/specials/SpecialDisambiguations.php index a9c554aacf..2126ca5201 100644 --- a/includes/specials/SpecialDisambiguations.php +++ b/includes/specials/SpecialDisambiguations.php @@ -158,4 +158,8 @@ class DisambiguationsPage extends QueryPage { return "$from $edit $arr $to"; } + + protected function getGroupName() { + return 'pages'; + } } diff --git a/includes/specials/SpecialDoubleRedirects.php b/includes/specials/SpecialDoubleRedirects.php index 512fd8569d..5a5d749c75 100644 --- a/includes/specials/SpecialDoubleRedirects.php +++ b/includes/specials/SpecialDoubleRedirects.php @@ -162,4 +162,8 @@ class DoubleRedirectsPage extends QueryPage { return( "{$linkA} {$edit} {$arr} {$linkB} {$arr} {$linkC}" ); } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialEmailuser.php b/includes/specials/SpecialEmailuser.php index 9a42c0959e..6842386c92 100644 --- a/includes/specials/SpecialEmailuser.php +++ b/includes/specials/SpecialEmailuser.php @@ -337,4 +337,8 @@ class SpecialEmailUser extends UnlistedSpecialPage { return $status; } } + + protected function getGroupName() { + return 'users'; + } } diff --git a/includes/specials/SpecialExport.php b/includes/specials/SpecialExport.php index 9d1ec107fb..2abd116287 100644 --- a/includes/specials/SpecialExport.php +++ b/includes/specials/SpecialExport.php @@ -561,4 +561,7 @@ class SpecialExport extends SpecialPage { return $pageSet; } + protected function getGroupName() { + return 'pagetools'; + } } diff --git a/includes/specials/SpecialFewestrevisions.php b/includes/specials/SpecialFewestrevisions.php index 5366e3b4c6..5b7f353dbb 100644 --- a/includes/specials/SpecialFewestrevisions.php +++ b/includes/specials/SpecialFewestrevisions.php @@ -93,4 +93,8 @@ class FewestrevisionsPage extends QueryPage { return $this->getLanguage()->specialList( $plink, $nlink ); } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialFileDuplicateSearch.php b/includes/specials/SpecialFileDuplicateSearch.php index 366aa81e90..bdf326300f 100644 --- a/includes/specials/SpecialFileDuplicateSearch.php +++ b/includes/specials/SpecialFileDuplicateSearch.php @@ -215,4 +215,8 @@ class FileDuplicateSearchPage extends QueryPage { return "$plink . . $user . . $time"; } + + protected function getGroupName() { + return 'media'; + } } diff --git a/includes/specials/SpecialFilepath.php b/includes/specials/SpecialFilepath.php index d0ae10123b..bbcced2666 100644 --- a/includes/specials/SpecialFilepath.php +++ b/includes/specials/SpecialFilepath.php @@ -86,4 +86,8 @@ class SpecialFilepath extends SpecialPage { Html::closeElement( 'form' ) ); } + + protected function getGroupName() { + return 'media'; + } } diff --git a/includes/specials/SpecialImport.php b/includes/specials/SpecialImport.php index 16772ec0f3..aa56041bbc 100644 --- a/includes/specials/SpecialImport.php +++ b/includes/specials/SpecialImport.php @@ -341,6 +341,10 @@ class SpecialImport extends SpecialPage { ); } } + + protected function getGroupName() { + return 'pagetools'; + } } /** diff --git a/includes/specials/SpecialJavaScriptTest.php b/includes/specials/SpecialJavaScriptTest.php index 84e3cb70a4..f7e2267836 100644 --- a/includes/specials/SpecialJavaScriptTest.php +++ b/includes/specials/SpecialJavaScriptTest.php @@ -157,4 +157,8 @@ HTML; // $wgJavaScriptTestConfig in DefaultSettings.php $out->addJsConfigVars( 'QUnitTestSwarmInjectJSPath', $wgJavaScriptTestConfig['qunit']['testswarm-injectjs'] ); } + + protected function getGroupName() { + return 'other'; + } } diff --git a/includes/specials/SpecialLinkSearch.php b/includes/specials/SpecialLinkSearch.php index 018ad79d8d..53625cf191 100644 --- a/includes/specials/SpecialLinkSearch.php +++ b/includes/specials/SpecialLinkSearch.php @@ -221,4 +221,8 @@ class LinkSearchPage extends QueryPage { function getOrderFields() { return array(); } + + protected function getGroupName() { + return 'redirects'; + } } diff --git a/includes/specials/SpecialListfiles.php b/includes/specials/SpecialListfiles.php index 661db7b58b..c864ae2adb 100644 --- a/includes/specials/SpecialListfiles.php +++ b/includes/specials/SpecialListfiles.php @@ -51,6 +51,10 @@ class SpecialListFiles extends IncludableSpecialPage { } $this->getOutput()->addHTML( $html ); } + + protected function getGroupName() { + return 'media'; + } } /** diff --git a/includes/specials/SpecialListgrouprights.php b/includes/specials/SpecialListgrouprights.php index c82522a64e..c625044d66 100644 --- a/includes/specials/SpecialListgrouprights.php +++ b/includes/specials/SpecialListgrouprights.php @@ -212,4 +212,8 @@ class SpecialListGroupRights extends SpecialPage { return ''; } } + + protected function getGroupName() { + return 'users'; + } } diff --git a/includes/specials/SpecialListredirects.php b/includes/specials/SpecialListredirects.php index cdad688591..0283767a36 100644 --- a/includes/specials/SpecialListredirects.php +++ b/includes/specials/SpecialListredirects.php @@ -126,4 +126,8 @@ class ListredirectsPage extends QueryPage { return "$rd_link"; } } + + protected function getGroupName() { + return 'pages'; + } } diff --git a/includes/specials/SpecialListusers.php b/includes/specials/SpecialListusers.php index 3265d1a7dd..10e9e6836b 100644 --- a/includes/specials/SpecialListusers.php +++ b/includes/specials/SpecialListusers.php @@ -347,4 +347,8 @@ class SpecialListUsers extends IncludableSpecialPage { $this->getOutput()->addHTML( $s ); } + + protected function getGroupName() { + return 'users'; + } } diff --git a/includes/specials/SpecialLockdb.php b/includes/specials/SpecialLockdb.php index d71ac6e191..95ef951075 100644 --- a/includes/specials/SpecialLockdb.php +++ b/includes/specials/SpecialLockdb.php @@ -102,4 +102,8 @@ class SpecialLockdb extends FormSpecialPage { $out->addSubtitle( $this->msg( 'lockdbsuccesssub' ) ); $out->addWikiMsg( 'lockdbsuccesstext' ); } + + protected function getGroupName() { + return 'wiki'; + } } diff --git a/includes/specials/SpecialLog.php b/includes/specials/SpecialLog.php index 0b9cf43889..4fc0f6e8eb 100644 --- a/includes/specials/SpecialLog.php +++ b/includes/specials/SpecialLog.php @@ -193,4 +193,7 @@ class SpecialLog extends SpecialPage { $this->getOutput()->addHTML( $page->getDescription()->parseAsBlock() ); } + protected function getGroupName() { + return 'changes'; + } } diff --git a/includes/specials/SpecialLonelypages.php b/includes/specials/SpecialLonelypages.php index 2889f7eab8..8c6a88ac46 100644 --- a/includes/specials/SpecialLonelypages.php +++ b/includes/specials/SpecialLonelypages.php @@ -81,4 +81,8 @@ class LonelyPagesPage extends PageQueryPage { return array( 'page_title' ); } } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialLongpages.php b/includes/specials/SpecialLongpages.php index dd60e37d6f..c045f9e98b 100644 --- a/includes/specials/SpecialLongpages.php +++ b/includes/specials/SpecialLongpages.php @@ -34,4 +34,8 @@ class LongPagesPage extends ShortPagesPage { function sortDescending() { return true; } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialMIMEsearch.php b/includes/specials/SpecialMIMEsearch.php index 7350cc745a..c5a109d43b 100644 --- a/includes/specials/SpecialMIMEsearch.php +++ b/includes/specials/SpecialMIMEsearch.php @@ -133,4 +133,8 @@ class MIMEsearchPage extends QueryPage { ); return in_array( $type, $types ); } + + protected function getGroupName() { + return 'media'; + } } diff --git a/includes/specials/SpecialMergeHistory.php b/includes/specials/SpecialMergeHistory.php index 85e1d656cb..c68f2dffa8 100644 --- a/includes/specials/SpecialMergeHistory.php +++ b/includes/specials/SpecialMergeHistory.php @@ -423,6 +423,10 @@ class SpecialMergeHistory extends SpecialPage { return true; } + + protected function getGroupName() { + return 'pagetools'; + } } class MergeHistoryPager extends ReverseChronologicalPager { diff --git a/includes/specials/SpecialMostcategories.php b/includes/specials/SpecialMostcategories.php index 085a09ff6b..11f26bd76e 100644 --- a/includes/specials/SpecialMostcategories.php +++ b/includes/specials/SpecialMostcategories.php @@ -99,4 +99,8 @@ class MostcategoriesPage extends QueryPage { return $this->getLanguage()->specialList( $link, $count ); } + + protected function getGroupName() { + return 'highuse'; + } } diff --git a/includes/specials/SpecialMostimages.php b/includes/specials/SpecialMostimages.php index 01a5caf6f8..78b2d911f7 100644 --- a/includes/specials/SpecialMostimages.php +++ b/includes/specials/SpecialMostimages.php @@ -58,4 +58,7 @@ class MostimagesPage extends ImageQueryPage { return $this->msg( 'nimagelinks' )->numParams( $row->value )->escaped() . '
    '; } + protected function getGroupName() { + return 'highuse'; + } } diff --git a/includes/specials/SpecialMostinterwikis.php b/includes/specials/SpecialMostinterwikis.php index e08cdf3469..574a9afb96 100644 --- a/includes/specials/SpecialMostinterwikis.php +++ b/includes/specials/SpecialMostinterwikis.php @@ -114,4 +114,8 @@ class MostinterwikisPage extends QueryPage { return $this->getLanguage()->specialList( $link, $count ); } + + protected function getGroupName() { + return 'highuse'; + } } diff --git a/includes/specials/SpecialMostlinked.php b/includes/specials/SpecialMostlinked.php index 66814cb93f..3c30bfbe60 100644 --- a/includes/specials/SpecialMostlinked.php +++ b/includes/specials/SpecialMostlinked.php @@ -107,4 +107,8 @@ class MostlinkedPage extends QueryPage { $this->msg( 'nlinks' )->numParams( $result->value )->escaped() ); return $this->getLanguage()->specialList( $link, $wlh ); } + + protected function getGroupName() { + return 'highuse'; + } } diff --git a/includes/specials/SpecialMostlinkedcategories.php b/includes/specials/SpecialMostlinkedcategories.php index df2975cf38..a1bce45d80 100644 --- a/includes/specials/SpecialMostlinkedcategories.php +++ b/includes/specials/SpecialMostlinkedcategories.php @@ -94,4 +94,8 @@ class MostlinkedCategoriesPage extends QueryPage { $nlinks = $this->msg( 'nmembers' )->numParams( $result->value )->escaped(); return $this->getLanguage()->specialList( $plink, $nlinks ); } + + protected function getGroupName() { + return 'highuse'; + } } diff --git a/includes/specials/SpecialMostlinkedtemplates.php b/includes/specials/SpecialMostlinkedtemplates.php index a2d51db81a..506e6b22a8 100644 --- a/includes/specials/SpecialMostlinkedtemplates.php +++ b/includes/specials/SpecialMostlinkedtemplates.php @@ -124,4 +124,8 @@ class MostlinkedTemplatesPage extends QueryPage { $label = $this->msg( 'ntransclusions' )->numParams( $result->value )->escaped(); return Linker::link( $wlh, $label ); } + + protected function getGroupName() { + return 'highuse'; + } } diff --git a/includes/specials/SpecialMostrevisions.php b/includes/specials/SpecialMostrevisions.php index b0253316b4..ad6b788d2c 100644 --- a/includes/specials/SpecialMostrevisions.php +++ b/includes/specials/SpecialMostrevisions.php @@ -31,4 +31,8 @@ class MostrevisionsPage extends FewestrevisionsPage { function sortDescending() { return true; } + + protected function getGroupName() { + return 'highuse'; + } } diff --git a/includes/specials/SpecialMovepage.php b/includes/specials/SpecialMovepage.php index b76e8777b7..70ea6b95b9 100644 --- a/includes/specials/SpecialMovepage.php +++ b/includes/specials/SpecialMovepage.php @@ -675,4 +675,8 @@ class MovePageForm extends UnlistedSpecialPage { } $out->addHTML( "\n" ); } + + protected function getGroupName() { + return 'pagetools'; + } } diff --git a/includes/specials/SpecialNewimages.php b/includes/specials/SpecialNewimages.php index 7954795b6b..52cbc3aae2 100644 --- a/includes/specials/SpecialNewimages.php +++ b/includes/specials/SpecialNewimages.php @@ -42,6 +42,10 @@ class SpecialNewFiles extends IncludableSpecialPage { $this->getOutput()->addHTML( $pager->getNavigationBar() ); } } + + protected function getGroupName() { + return 'changes'; + } } /** diff --git a/includes/specials/SpecialNewpages.php b/includes/specials/SpecialNewpages.php index 6e8e634516..ebb3021d28 100644 --- a/includes/specials/SpecialNewpages.php +++ b/includes/specials/SpecialNewpages.php @@ -476,6 +476,10 @@ class SpecialNewpages extends IncludableSpecialPage { } return ''; } + + protected function getGroupName() { + return 'changes'; + } } /** diff --git a/includes/specials/SpecialPagesWithProp.php b/includes/specials/SpecialPagesWithProp.php index 189798da79..8f8c981edc 100644 --- a/includes/specials/SpecialPagesWithProp.php +++ b/includes/specials/SpecialPagesWithProp.php @@ -131,4 +131,8 @@ class SpecialPagesWithProp extends QueryPage { } return $ret; } + + protected function getGroupName() { + return 'pages'; + } } diff --git a/includes/specials/SpecialPasswordReset.php b/includes/specials/SpecialPasswordReset.php index f42a7a19da..90b0ac802c 100644 --- a/includes/specials/SpecialPasswordReset.php +++ b/includes/specials/SpecialPasswordReset.php @@ -326,4 +326,8 @@ class SpecialPasswordReset extends FormSpecialPage { return false; } + + protected function getGroupName() { + return 'users'; + } } diff --git a/includes/specials/SpecialPopularpages.php b/includes/specials/SpecialPopularpages.php index 99b586ec0f..7ce8c13f41 100644 --- a/includes/specials/SpecialPopularpages.php +++ b/includes/specials/SpecialPopularpages.php @@ -72,4 +72,8 @@ class PopularPagesPage extends QueryPage { $nv = $this->msg( 'nviews' )->numParams( $result->value )->escaped(); return $this->getLanguage()->specialList( $link, $nv ); } + + protected function getGroupName() { + return 'wiki'; + } } diff --git a/includes/specials/SpecialPreferences.php b/includes/specials/SpecialPreferences.php index 340172c314..a50e7c188e 100644 --- a/includes/specials/SpecialPreferences.php +++ b/includes/specials/SpecialPreferences.php @@ -87,4 +87,8 @@ class SpecialPreferences extends SpecialPage { return true; } + + protected function getGroupName() { + return 'users'; + } } diff --git a/includes/specials/SpecialPrefixindex.php b/includes/specials/SpecialPrefixindex.php index 7586dbb9df..0d687374d4 100644 --- a/includes/specials/SpecialPrefixindex.php +++ b/includes/specials/SpecialPrefixindex.php @@ -263,4 +263,8 @@ class SpecialPrefixindex extends SpecialAllpages { $this->getOutput()->addHTML( $out2 . $out . $footer ); } + + protected function getGroupName() { + return 'pages'; + } } diff --git a/includes/specials/SpecialProtectedpages.php b/includes/specials/SpecialProtectedpages.php index bc0cab730f..5f04ab5440 100644 --- a/includes/specials/SpecialProtectedpages.php +++ b/includes/specials/SpecialProtectedpages.php @@ -290,6 +290,10 @@ class SpecialProtectedpages extends SpecialPage { array( 'id' => $this->IdLevel, 'name' => $this->IdLevel ), implode( "\n", $options ) ) . ""; } + + protected function getGroupName() { + return 'maintenance'; + } } /** diff --git a/includes/specials/SpecialProtectedtitles.php b/includes/specials/SpecialProtectedtitles.php index bac8b7bdc5..6a94deb525 100644 --- a/includes/specials/SpecialProtectedtitles.php +++ b/includes/specials/SpecialProtectedtitles.php @@ -182,6 +182,10 @@ class SpecialProtectedtitles extends SpecialPage { array( 'id' => $this->IdLevel, 'name' => $this->IdLevel ), implode( "\n", $options ) ); } + + protected function getGroupName() { + return 'maintenance'; + } } /** diff --git a/includes/specials/SpecialRandompage.php b/includes/specials/SpecialRandompage.php index 74fe66cbd9..b59f8349d6 100644 --- a/includes/specials/SpecialRandompage.php +++ b/includes/specials/SpecialRandompage.php @@ -159,4 +159,8 @@ class RandomPage extends SpecialPage { return $dbr->fetchObject( $res ); } + + protected function getGroupName() { + return 'redirects'; + } } diff --git a/includes/specials/SpecialRecentchanges.php b/includes/specials/SpecialRecentchanges.php index 69c291dd66..59d31385c8 100644 --- a/includes/specials/SpecialRecentchanges.php +++ b/includes/specials/SpecialRecentchanges.php @@ -907,4 +907,8 @@ class SpecialRecentChanges extends IncludableSpecialPage { 'mediawiki.special.recentchanges', ) ); } + + protected function getGroupName() { + return 'changes'; + } } diff --git a/includes/specials/SpecialRevisiondelete.php b/includes/specials/SpecialRevisiondelete.php index 85ca2bd457..148bc48411 100644 --- a/includes/specials/SpecialRevisiondelete.php +++ b/includes/specials/SpecialRevisiondelete.php @@ -623,4 +623,8 @@ class SpecialRevisionDelete extends UnlistedSpecialPage { array( 'value' => $bitfield, 'comment' => $reason ) ); } + + protected function getGroupName() { + return 'pagetools'; + } } diff --git a/includes/specials/SpecialSearch.php b/includes/specials/SpecialSearch.php index ae2b00911d..0d54e76621 100644 --- a/includes/specials/SpecialSearch.php +++ b/includes/specials/SpecialSearch.php @@ -1161,4 +1161,7 @@ class SpecialSearch extends SpecialPage { $this->extraParams[$key] = $value; } + protected function getGroupName() { + return 'redirects'; + } } diff --git a/includes/specials/SpecialShortpages.php b/includes/specials/SpecialShortpages.php index 5a4e8f0383..1be7fbed30 100644 --- a/includes/specials/SpecialShortpages.php +++ b/includes/specials/SpecialShortpages.php @@ -110,4 +110,8 @@ class ShortPagesPage extends QueryPage { ? "${hlinkInParentheses} {$dm}{$plink} {$dm}[{$size}]" : "${hlinkInParentheses} {$dm}{$plink} {$dm}[{$size}]"; } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialSpecialpages.php b/includes/specials/SpecialSpecialpages.php index d80218fe25..57fffb8494 100644 --- a/includes/specials/SpecialSpecialpages.php +++ b/includes/specials/SpecialSpecialpages.php @@ -62,7 +62,7 @@ class SpecialSpecialpages extends UnlistedSpecialPage { $groups = array(); foreach ( $pages as $page ) { if ( $page->isListed() ) { - $group = SpecialPageFactory::getGroup( $page ); + $group = $page->getFinalGroupName(); if( !isset( $groups[$group] ) ) { $groups[$group] = array(); } diff --git a/includes/specials/SpecialStatistics.php b/includes/specials/SpecialStatistics.php index 7d6d90ed4d..bc1b600cfd 100644 --- a/includes/specials/SpecialStatistics.php +++ b/includes/specials/SpecialStatistics.php @@ -329,4 +329,8 @@ class SpecialStatistics extends SpecialPage { Xml::tags( 'th', array( 'colspan' => '2' ), $this->msg( $header )->parse() ) . Xml::closeElement( 'tr' ); } + + protected function getGroupName() { + return 'wiki'; + } } diff --git a/includes/specials/SpecialTags.php b/includes/specials/SpecialTags.php index 4036ebb267..6d16103150 100644 --- a/includes/specials/SpecialTags.php +++ b/includes/specials/SpecialTags.php @@ -92,4 +92,8 @@ class SpecialTags extends SpecialPage { return Xml::tags( 'tr', null, $newRow ) . "\n"; } + + protected function getGroupName() { + return 'changes'; + } } diff --git a/includes/specials/SpecialUnblock.php b/includes/specials/SpecialUnblock.php index 076469c55b..c4a53cf0d2 100644 --- a/includes/specials/SpecialUnblock.php +++ b/includes/specials/SpecialUnblock.php @@ -213,4 +213,8 @@ class SpecialUnblock extends SpecialPage { return true; } + + protected function getGroupName() { + return 'users'; + } } diff --git a/includes/specials/SpecialUncategorizedimages.php b/includes/specials/SpecialUncategorizedimages.php index 5865bf62af..53aa3f3417 100644 --- a/includes/specials/SpecialUncategorizedimages.php +++ b/includes/specials/SpecialUncategorizedimages.php @@ -60,4 +60,7 @@ class UncategorizedImagesPage extends ImageQueryPage { ); } + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialUncategorizedpages.php b/includes/specials/SpecialUncategorizedpages.php index abbe997fd6..b518e6fbb1 100644 --- a/includes/specials/SpecialUncategorizedpages.php +++ b/includes/specials/SpecialUncategorizedpages.php @@ -69,4 +69,8 @@ class UncategorizedPagesPage extends PageQueryPage { return array( 'page_namespace', 'page_title' ); return array( 'page_title' ); } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialUndelete.php b/includes/specials/SpecialUndelete.php index b97a171888..160736996e 100644 --- a/includes/specials/SpecialUndelete.php +++ b/includes/specials/SpecialUndelete.php @@ -1525,4 +1525,8 @@ class SpecialUndelete extends SpecialPage { $out->addWikiText( '
    ' . $status->getWikiText( 'undelete-error-short', 'undelete-error-long' ) . '
    ' ); } } + + protected function getGroupName() { + return 'pagetools'; + } } diff --git a/includes/specials/SpecialUnlockdb.php b/includes/specials/SpecialUnlockdb.php index 2e77254014..35141d805e 100644 --- a/includes/specials/SpecialUnlockdb.php +++ b/includes/specials/SpecialUnlockdb.php @@ -84,4 +84,8 @@ class SpecialUnlockdb extends FormSpecialPage { $out->addSubtitle( $this->msg( 'unlockdbsuccesssub' ) ); $out->addWikiMsg( 'unlockdbsuccesstext' ); } + + protected function getGroupName() { + return 'wiki'; + } } diff --git a/includes/specials/SpecialUnusedcategories.php b/includes/specials/SpecialUnusedcategories.php index 69c42d5d86..6b91dd399e 100644 --- a/includes/specials/SpecialUnusedcategories.php +++ b/includes/specials/SpecialUnusedcategories.php @@ -64,4 +64,8 @@ class UnusedCategoriesPage extends QueryPage { $title = Title::makeTitle( NS_CATEGORY, $result->title ); return Linker::link( $title, htmlspecialchars( $title->getText() ) ); } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialUnusedimages.php b/includes/specials/SpecialUnusedimages.php index cdab557ee3..6955328277 100644 --- a/includes/specials/SpecialUnusedimages.php +++ b/includes/specials/SpecialUnusedimages.php @@ -80,4 +80,7 @@ class UnusedimagesPage extends ImageQueryPage { return $this->msg( 'unusedimagestext' )->parseAsBlock(); } + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialUnusedtemplates.php b/includes/specials/SpecialUnusedtemplates.php index fe79731076..493e936a8d 100644 --- a/includes/specials/SpecialUnusedtemplates.php +++ b/includes/specials/SpecialUnusedtemplates.php @@ -85,4 +85,8 @@ class UnusedtemplatesPage extends QueryPage { function getPageHeader() { return $this->msg( 'unusedtemplatestext' )->parseAsBlock(); } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialUnwatchedpages.php b/includes/specials/SpecialUnwatchedpages.php index d397149f63..05ec6b02e4 100644 --- a/includes/specials/SpecialUnwatchedpages.php +++ b/includes/specials/SpecialUnwatchedpages.php @@ -94,4 +94,8 @@ class UnwatchedpagesPage extends QueryPage { return $this->getLanguage()->specialList( $plink, $wlink ); } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialUpload.php b/includes/specials/SpecialUpload.php index 1a35b04f3b..babbde1c4e 100644 --- a/includes/specials/SpecialUpload.php +++ b/includes/specials/SpecialUpload.php @@ -717,6 +717,9 @@ class SpecialUpload extends SpecialPage { $gallery->toHtml() . "\n"; } + protected function getGroupName() { + return 'media'; + } } /** diff --git a/includes/specials/SpecialUserlogin.php b/includes/specials/SpecialUserlogin.php index ddd57c3f61..f88a3c72a3 100644 --- a/includes/specials/SpecialUserlogin.php +++ b/includes/specials/SpecialUserlogin.php @@ -1362,4 +1362,8 @@ class LoginForm extends SpecialPage { $query ); } + + protected function getGroupName() { + return 'login'; + } } diff --git a/includes/specials/SpecialUserlogout.php b/includes/specials/SpecialUserlogout.php index 4be36c6174..d957e875ce 100644 --- a/includes/specials/SpecialUserlogout.php +++ b/includes/specials/SpecialUserlogout.php @@ -62,4 +62,8 @@ class SpecialUserlogout extends UnlistedSpecialPage { $out->returnToMain(); } + + protected function getGroupName() { + return 'login'; + } } diff --git a/includes/specials/SpecialUserrights.php b/includes/specials/SpecialUserrights.php index 22fdc1a167..52241837b9 100644 --- a/includes/specials/SpecialUserrights.php +++ b/includes/specials/SpecialUserrights.php @@ -639,4 +639,8 @@ class UserrightsPage extends SpecialPage { $output->addHTML( Xml::element( 'h2', null, $rightsLogPage->getName()->text() ) ); LogEventsList::showLogExtract( $output, 'rights', $user->getUserPage() ); } + + protected function getGroupName() { + return 'users'; + } } diff --git a/includes/specials/SpecialVersion.php b/includes/specials/SpecialVersion.php index 6447bbecbe..ea9b2470d9 100644 --- a/includes/specials/SpecialVersion.php +++ b/includes/specials/SpecialVersion.php @@ -827,6 +827,10 @@ class SpecialVersion extends SpecialPage { return $out; } + protected function getGroupName() { + return 'wiki'; + } + function showEasterEgg() { $rx = $rp = $xe = ''; $alpha = array( "", "kbQW", "\$\n()" ); diff --git a/includes/specials/SpecialWantedcategories.php b/includes/specials/SpecialWantedcategories.php index 0b1fb25107..0035bfabfb 100644 --- a/includes/specials/SpecialWantedcategories.php +++ b/includes/specials/SpecialWantedcategories.php @@ -72,4 +72,8 @@ class WantedCategoriesPage extends WantedQueryPage { $nlinks = $this->msg( 'nmembers' )->numParams( $result->value )->escaped(); return $this->getLanguage()->specialList( $plink, $nlinks ); } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialWantedfiles.php b/includes/specials/SpecialWantedfiles.php index ddeb4a1b38..9a2d30a3d8 100644 --- a/includes/specials/SpecialWantedfiles.php +++ b/includes/specials/SpecialWantedfiles.php @@ -87,4 +87,8 @@ class WantedFilesPage extends WantedQueryPage { ) ); } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialWantedpages.php b/includes/specials/SpecialWantedpages.php index 05df400eae..acec4ea455 100644 --- a/includes/specials/SpecialWantedpages.php +++ b/includes/specials/SpecialWantedpages.php @@ -91,4 +91,8 @@ class WantedPagesPage extends WantedQueryPage { wfRunHooks( 'WantedPages::getQueryInfo', array( &$this, &$query ) ); return $query; } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialWantedtemplates.php b/includes/specials/SpecialWantedtemplates.php index f3e3369838..f5539c1812 100644 --- a/includes/specials/SpecialWantedtemplates.php +++ b/includes/specials/SpecialWantedtemplates.php @@ -52,4 +52,8 @@ class WantedTemplatesPage extends WantedQueryPage { 'page_title = tl_title' ) ) ) ); } + + protected function getGroupName() { + return 'maintenance'; + } } diff --git a/includes/specials/SpecialWatchlist.php b/includes/specials/SpecialWatchlist.php index c498bdeaf4..89c2e76a57 100644 --- a/includes/specials/SpecialWatchlist.php +++ b/includes/specials/SpecialWatchlist.php @@ -503,4 +503,8 @@ class SpecialWatchlist extends SpecialPage { return floor( $count / 2 ); } + + protected function getGroupName() { + return 'changes'; + } } diff --git a/includes/specials/SpecialWhatlinkshere.php b/includes/specials/SpecialWhatlinkshere.php index 0b835a2012..bc20e3daf0 100644 --- a/includes/specials/SpecialWhatlinkshere.php +++ b/includes/specials/SpecialWhatlinkshere.php @@ -464,4 +464,8 @@ class SpecialWhatLinksHere extends SpecialPage { } return Xml::fieldset( $this->msg( 'whatlinkshere-filters' )->text(), $this->getLanguage()->pipeList( $links ) ); } + + protected function getGroupName() { + return 'pagetools'; + } } diff --git a/includes/specials/SpecialWithoutinterwiki.php b/includes/specials/SpecialWithoutinterwiki.php index 2988b04f4c..3723740773 100644 --- a/includes/specials/SpecialWithoutinterwiki.php +++ b/includes/specials/SpecialWithoutinterwiki.php @@ -95,4 +95,8 @@ class WithoutInterwikiPage extends PageQueryPage { } return $query; } + + protected function getGroupName() { + return 'maintenance'; + } } -- 2.20.1