summaryrefslogtreecommitdiff
path: root/includes/specialpage/RedirectSpecialPage.php
diff options
context:
space:
mode:
Diffstat (limited to 'includes/specialpage/RedirectSpecialPage.php')
-rw-r--r--includes/specialpage/RedirectSpecialPage.php33
1 files changed, 21 insertions, 12 deletions
diff --git a/includes/specialpage/RedirectSpecialPage.php b/includes/specialpage/RedirectSpecialPage.php
index 2e6e55a7..9129ee5d 100644
--- a/includes/specialpage/RedirectSpecialPage.php
+++ b/includes/specialpage/RedirectSpecialPage.php
@@ -33,8 +33,11 @@ abstract class RedirectSpecialPage extends UnlistedSpecialPage {
// Query parameters added by redirects
protected $mAddedRedirectParams = array();
- public function execute( $par ) {
- $redirect = $this->getRedirect( $par );
+ /**
+ * @param string|null $subpage
+ */
+ public function execute( $subpage ) {
+ $redirect = $this->getRedirect( $subpage );
$query = $this->getRedirectQuery();
// Redirect to a page title with possible query parameters
if ( $redirect instanceof Title ) {
@@ -58,22 +61,24 @@ abstract class RedirectSpecialPage extends UnlistedSpecialPage {
* If the special page is a redirect, then get the Title object it redirects to.
* False otherwise.
*
- * @param string $par Subpage string
+ * @param string|null $subpage
* @return Title|bool
*/
- abstract public function getRedirect( $par );
+ abstract public function getRedirect( $subpage );
/**
* Return part of the request string for a special redirect page
* This allows passing, e.g. action=history to Special:Mypage, etc.
*
- * @return string
+ * @return array|bool
*/
public function getRedirectQuery() {
$params = array();
$request = $this->getRequest();
- foreach ( $this->mAllowedRedirectParams as $arg ) {
+ foreach ( array_merge( $this->mAllowedRedirectParams,
+ array( 'uselang', 'useskin', 'debug' ) // parameters which can be passed to all pages
+ ) as $arg ) {
if ( $request->getVal( $arg, null ) !== null ) {
$params[$arg] = $request->getVal( $arg );
} elseif ( $request->getArray( $arg, null ) !== null ) {
@@ -112,12 +117,16 @@ abstract class SpecialRedirectToSpecial extends RedirectSpecialPage {
$this->mAddedRedirectParams = $addedRedirectParams;
}
+ /**
+ * @param string|null $subpage
+ * @return Title|bool
+ */
public function getRedirect( $subpage ) {
if ( $this->redirSubpage === false ) {
return SpecialPage::getTitleFor( $this->redirName, $subpage );
- } else {
- return SpecialPage::getTitleFor( $this->redirName, $this->redirSubpage );
}
+
+ return SpecialPage::getTitleFor( $this->redirName, $this->redirSubpage );
}
}
@@ -140,11 +149,11 @@ abstract class SpecialRedirectToSpecial extends RedirectSpecialPage {
* - limit, offset: Useful for linking to history of one's own user page or
* user talk page. For example, this would be a link to "the last edit to your
* user talk page in the year 2010":
- * http://en.wikipedia.org/wiki/Special:MyPage?offset=20110000000000&limit=1&action=history
+ * https://en.wikipedia.org/wiki/Special:MyPage?offset=20110000000000&limit=1&action=history
*
* - feed: would allow linking to the current user's RSS feed for their user
* talk page:
- * http://en.wikipedia.org/w/index.php?title=Special:MyTalk&action=history&feed=rss
+ * https://en.wikipedia.org/w/index.php?title=Special:MyTalk&action=history&feed=rss
*
* - preloadtitle: Can be used to provide a default section title for a
* preloaded new comment on one's own talk page.
@@ -159,7 +168,7 @@ abstract class SpecialRedirectToSpecial extends RedirectSpecialPage {
* - redlink: Affects the message the user sees if their talk page/user talk
* page does not currently exist. Avoids confusion for newbies with no user
* pages over why they got a "permission error" following this link:
- * http://en.wikipedia.org/w/index.php?title=Special:MyPage&redlink=1
+ * https://en.wikipedia.org/w/index.php?title=Special:MyPage&redlink=1
*
* - debug: determines whether the debug parameter is passed to load.php,
* which disables reformatting and allows scripts to be debugged. Useful
@@ -198,7 +207,7 @@ abstract class RedirectSpecialArticle extends RedirectSpecialPage {
'section', 'oldid', 'diff', 'dir',
'limit', 'offset', 'feed',
# Misc options
- 'redlink', 'debug',
+ 'redlink',
# Options for action=raw; missing ctype can break JS or CSS in some browsers
'ctype', 'maxage', 'smaxage',
);