'Preferences' => array( 'SpecialPage', 'Preferences' ),
'Watchlist' => array( 'SpecialPage', 'Watchlist' ),
- 'Recentchanges' => array( 'IncludableSpecialPage', 'Recentchanges' ),
+ 'Recentchanges' => 'SpecialRecentchanges',
'Upload' => array( 'SpecialPage', 'Upload' ),
'Imagelist' => array( 'SpecialPage', 'Imagelist' ),
'Newimages' => array( 'IncludableSpecialPage', 'Newimages' ),
'Fewestrevisions' => array( 'SpecialPage', 'Fewestrevisions' ),
'Shortpages' => array( 'SpecialPage', 'Shortpages' ),
'Longpages' => array( 'SpecialPage', 'Longpages' ),
- 'Newpages' => array( 'IncludableSpecialPage', 'Newpages' ),
+ 'Newpages' => 'SpecialNewpages',
'Ancientpages' => array( 'SpecialPage', 'Ancientpages' ),
'Deadendpages' => array( 'SpecialPage', 'Deadendpages' ),
'Protectedpages' => array( 'SpecialPage', 'Protectedpages' ),
'Contributions' => array( 'SpecialPage', 'Contributions' ),
'Emailuser' => array( 'UnlistedSpecialPage', 'Emailuser' ),
'Whatlinkshere' => array( 'SpecialPage', 'Whatlinkshere' ),
- 'Recentchangeslinked' => array( 'SpecialPage', 'Recentchangeslinked' ),
+ 'Recentchangeslinked' => 'SpecialRecentchangeslinked',
'Movepage' => array( 'UnlistedSpecialPage', 'Movepage' ),
'Blockme' => array( 'UnlistedSpecialPage', 'Blockme' ),
'Resetpass' => array( 'UnlistedSpecialPage', 'Resetpass' ),
'Categories' => array( 'SpecialPage', 'Categories' ),
'Export' => array( 'SpecialPage', 'Export' ),
'Version' => array( 'SpecialPage', 'Version' ),
+ 'Blankpage' => array( 'UnlistedSpecialPage', 'Blankpage' ),
'Allmessages' => array( 'SpecialPage', 'Allmessages' ),
'Log' => array( 'SpecialPage', 'Log' ),
'Blockip' => array( 'SpecialPage', 'Blockip', 'block' ),
*/
static function getGroup( &$page ) {
global $wgSpecialPageGroups;
- $group = isset($wgSpecialPageGroups[$page->mName]) ?
- $wgSpecialPageGroups[$page->mName] : 'other';
+ static $specialPageGroupsCache = array();
+ if( isset($specialPageGroupsCache[$page->mName]) ) {
+ return $specialPageGroupsCache[$page->mName];
+ }
+ $group = wfMsg('specialpages-specialpagegroup-'.strtolower($page->mName));
+ if( $group == ''
+ || wfEmptyMsg('specialpages-specialpagegroup-'.strtolower($page->mName), $group ) ) {
+ $group = isset($wgSpecialPageGroups[$page->mName])
+ ? $wgSpecialPageGroups[$page->mName]
+ : '-';
+ }
+ if( $group == '-' ) $group = 'other';
+ $specialPageGroupsCache[$page->mName] = $group;
return $group;
}
*/
static function getRestrictedPages() {
global $wgUser;
- if ( !self::$mListInitialised ) {
+ if( !self::$mListInitialised ) {
self::initList();
}
$pages = array();
- foreach ( self::$mList as $name => $rec ) {
+ foreach( self::$mList as $name => $rec ) {
$page = self::getPage( $name );
- if (
+ if(
$page->isListed()
&& $page->isRestricted()
&& $page->userCanExecute( $wgUser )
if ( !$page ) {
if ( !$including ) {
$wgOut->setArticleRelated( false );
- $wgOut->setRobotpolicy( 'noindex,nofollow' );
+ $wgOut->setRobotPolicy( 'noindex,nofollow' );
$wgOut->setStatusCode( 404 );
$wgOut->showErrorPage( 'nosuchspecialpage', 'nospecialpagetext' );
}
$this->mFunction = $function;
}
if ( $file === 'default' ) {
- $this->mFile = dirname(__FILE__) . "/Special{$name}.php";
+ $this->mFile = dirname(__FILE__) . "/specials/Special$name.php";
} else {
$this->mFile = $file;
}