MediaWiki  master
RedirectSpecialArticle.php
Go to the documentation of this file.
1 <?php
90 
96  public function __construct( $name ) {
97  parent::__construct( $name );
98  $redirectParams = [
99  'action',
100  'redirect', 'rdfrom',
101  # Options for preloaded edits
102  'preload', 'preloadparams', 'editintro', 'preloadtitle', 'summary', 'nosummary',
103  # Options for overriding user settings
104  'preview', 'minor', 'watchthis',
105  # Options for history/diffs
106  'section', 'oldid', 'diff', 'dir',
107  'limit', 'offset', 'feed',
108  # Misc options
109  'redlink',
110  # Options for action=raw; missing ctype can break JS or CSS in some browsers
111  'ctype', 'maxage', 'smaxage',
112  ];
113 
114  $this->getHookRunner()->onRedirectSpecialArticleRedirectParams( $redirectParams );
115  $this->mAllowedRedirectParams = $redirectParams;
116  }
117 
121  public function getRedirectQuery( $subpage ) {
122  $query = parent::getRedirectQuery( $subpage );
123  $title = $this->getRedirect( $subpage );
124  // Avoid double redirect for action=edit&redlink=1 for existing pages
125  // (compare to the check in EditPage::edit)
126  if (
127  $query && isset( $query['action'] ) && isset( $query['redlink'] ) &&
128  ( $query['action'] === 'edit' || $query['action'] === 'submit' ) &&
129  (bool)$query['redlink'] &&
130  $title instanceof Title &&
131  $title->exists()
132  ) {
133  return false;
134  }
135  return $query;
136  }
137 
138 }
RedirectSpecialArticle\__construct
__construct( $name)
Stable to call.
Definition: RedirectSpecialArticle.php:96
RedirectSpecialPage
Shortcut to construct a special page alias.
Definition: RedirectSpecialPage.php:31
SpecialPage\getHookRunner
getHookRunner()
Definition: SpecialPage.php:1010
$title
$title
Definition: testCompression.php:38
RedirectSpecialArticle
Superclass for any RedirectSpecialPage which redirects the user to a particular article (as opposed t...
Definition: RedirectSpecialArticle.php:89
Title
Represents a title within MediaWiki.
Definition: Title.php:42
RedirectSpecialArticle\getRedirectQuery
getRedirectQuery( $subpage)
Return part of the request string for a special redirect page This allows passing,...
Definition: RedirectSpecialArticle.php:121
RedirectSpecialPage\getRedirect
getRedirect( $subpage)
If the special page is a redirect, then get the Title object it redirects to.