aboutsummaryrefslogtreecommitdiffstats
path: root/includes/SpecialPage.php
diff options
context:
space:
mode:
authorTim Starling <tstarling@users.mediawiki.org>2005-05-28 11:49:40 +0000
committerTim Starling <tstarling@users.mediawiki.org>2005-05-28 11:49:40 +0000
commit225a20c35ac26b2a906490cf300441b011dfd485 (patch)
tree83bb00f386ccd7cc9dcc3050d0b14699cb361fd0 /includes/SpecialPage.php
parent842fef7c4dc3c07ea3a1a4499d41ea27b901c152 (diff)
downloadmediawikicore-225a20c35ac26b2a906490cf300441b011dfd485.tar.gz
mediawikicore-225a20c35ac26b2a906490cf300441b011dfd485.zip
Unconditional inclusion for SpecialPage.php, needed for {{special:whatever}}. Fixed getRedirect() to work with this inclusion order.
Notes
Notes: http://mediawiki.org/wiki/Special:Code/MediaWiki/9223
Diffstat (limited to 'includes/SpecialPage.php')
-rw-r--r--includes/SpecialPage.php64
1 files changed, 29 insertions, 35 deletions
diff --git a/includes/SpecialPage.php b/includes/SpecialPage.php
index abfbcb9eae49..301b9ddcad08 100644
--- a/includes/SpecialPage.php
+++ b/includes/SpecialPage.php
@@ -19,7 +19,7 @@
/**
*
*/
-global $wgSpecialPages, $wgSpecialPageRedirects, $wgUser;
+global $wgSpecialPages, $wgUser;
/**
* @access private
@@ -75,24 +75,6 @@ $wgSpecialPages = array(
'Groups' => new SpecialPage( 'Groups' ),
);
-/**
- * Redirect Special:$key to somewhere else.
- *
- * @access private
- */
-$wgSpecialPageRedirects = array(
- # My*
- 'Mypage' => Title::makeTitle( NS_USER, $wgUser->getName() ),
- 'Mytalk' => Title::makeTitle( NS_USER_TALK, $wgUser->getName() ),
- 'Mycontributions' => Title::makeTitle( NS_SPECIAL, 'Contributions/' . $wgUser->getName() ),
-
- # Deprecated specialpages
- 'Listadmins' => Title::makeTitle( NS_SPECIAL, 'Listusers' ),
-
- # Redirects
- 'Randompage' => Title::makeTitle( NS_SPECIAL, 'Random' ),
-);
-
global $wgUseValidation ;
if ( $wgUseValidation )
$wgSpecialPages['Validate'] = new SpecialPage( 'Validate' );
@@ -198,11 +180,19 @@ class SpecialPage
* @return mixed Title object if the redirect exists, otherwise NULL
*/
function &getRedirect( $name ) {
- global $wgSpecialPageRedirects;
- if ( array_key_exists( $name, $wgSpecialPageRedirects ) ) {
- return $wgSpecialPageRedirects[$name];
- } else {
- return NULL;
+ switch ( $name ) {
+ case 'Mypage':
+ return Title::makeTitle( NS_USER, $wgUser->getName() );
+ case 'Mytalk':
+ return Title::makeTitle( NS_USER_TALK, $wgUser->getName() );
+ case 'Mycontributions':
+ return Title::makeTitle( NS_SPECIAL, 'Contributions/' . $wgUser->getName() );
+ case 'Listadmins':
+ return Title::makeTitle( NS_SPECIAL, 'Listusers' );
+ case 'Randompage':
+ return Title::makeTitle( NS_SPECIAL, 'Random' );
+ default:
+ return NULL;
}
}
@@ -251,18 +241,22 @@ class SpecialPage
$page =& SpecialPage::getPage( $name );
if ( is_null( $page ) ) {
- $redir =& SpecialPage::getRedirect( $name );
- if ( isset( $redir ) ) {
- if ( isset( $par ) )
- $wgOut->redirect( $redir->getFullURL() . '/' . $par );
- else
- $wgOut->redirect( $redir->getFullURL() );
- $retVal = $redir;
+ if ( $including ) {
+ return false;
} else {
- $wgOut->setArticleRelated( false );
- $wgOut->setRobotpolicy( "noindex,follow" );
- $wgOut->errorpage( "nosuchspecialpage", "nospecialpagetext" );
- $retVal = false;
+ $redir =& SpecialPage::getRedirect( $name );
+ if ( isset( $redir ) ) {
+ if ( isset( $par ) )
+ $wgOut->redirect( $redir->getFullURL() . '/' . $par );
+ else
+ $wgOut->redirect( $redir->getFullURL() );
+ $retVal = $redir;
+ } else {
+ $wgOut->setArticleRelated( false );
+ $wgOut->setRobotpolicy( "noindex,follow" );
+ $wgOut->errorpage( "nosuchspecialpage", "nospecialpagetext" );
+ $retVal = false;
+ }
}
} else {
if ( $including && !$page->includable() ) {