* @since 1.17
*/
class SpecialPageFactory {
-
/**
* List of special page names to the subclass of SpecialPage which handles them.
*/
* where the first element is the special page name and the second is the
* subpage.
*
- * @param $alias String
- * @return Array( String, String|null ), or array( null, null ) if the page is invalid
+ * @param string $alias
+ * @return array Array( String, String|null ), or array( null, null ) if the page is invalid
*/
public static function resolveAlias( $alias ) {
global $wgContLang;
/**
* Add a page to a certain display group for Special:SpecialPages
*
- * @param $page Mixed: SpecialPage or string
- * @param $group String
+ * @param SpecialPage|string $page
+ * @param string $group
* @deprecated since 1.21 Override SpecialPage::getGroupName
*/
public static function setGroup( $page, $group ) {
/**
* Get the group that the special page belongs in on Special:SpecialPage
*
- * @param $page SpecialPage
- * @return String
+ * @param SpecialPage $page
+ * @return string
* @deprecated since 1.21 Use SpecialPage::getFinalGroupName
*/
public static function getGroup( &$page ) {
/**
* Check if a given name exist as a special page or as a special page alias
*
- * @param string $name name of a special page
- * @return Boolean: true if a special page exists with this name
+ * @param string $name Name of a special page
+ * @return bool True if a special page exists with this name
*/
public static function exists( $name ) {
list( $title, /*...*/ ) = self::resolveAlias( $name );
* Return categorised listable special pages which are available
* for the current user, and everyone.
*
- * @param $user User object to check permissions, $wgUser will be used
- * if not provided
- * @return Array( String => Specialpage )
+ * @param $user User object to check permissions, $wgUser will be used if
+ * if not provided
+ * @return array ( string => Specialpage )
*/
public static function getUsablePages( User $user = null ) {
$pages = array();
/**
* Return categorised listable special pages for all users
*
- * @return Array( String => Specialpage )
+ * @return array ( string => Specialpage )
*/
public static function getRegularPages() {
$pages = array();
* Return categorised listable special pages which are available
* for the current user, but not for everyone
*
- * @return Array( String => Specialpage )
+ * @return array ( string => Specialpage )
*/
public static function getRestrictedPages() {
global $wgUser;
* Returns a title object if the page is redirected, false if there was no such special
* page, and true if it was successful.
*
- * @param $title Title object
- * @param $context IContextSource
- * @param $including Bool output is being captured for use in {{special:whatever}}
+ * @param Title $title
+ * @param IContextSource $context
+ * @param bool $including Bool output is being captured for use in {{special:whatever}}
*
* @return bool
*/
* variables so that the special page will get the context it'd expect on a
* normal request, and then restores them to their previous values after.
*
- * @param $title Title
- * @param $context IContextSource
- *
- * @return String: HTML fragment
+ * @param Title $title
+ * @param IContextSource $context
+ * @return string HTML fragment
*/
static function capturePath( Title $title, IContextSource $context ) {
global $wgOut, $wgTitle, $wgRequest, $wgUser, $wgLang;
/**
* Get the local name for a specified canonical name
*
- * @param $name String
- * @param $subpage String|Bool
- *
- * @return String
+ * @param string $name
+ * @param string|bool $subpage
+ * @return string
*/
static function getLocalNameFor( $name, $subpage = false ) {
global $wgContLang;
/**
* Get a title for a given alias
*
- * @param $alias String
- *
- * @return Title or null if there is no such alias
+ * @param string $alias
+ * @return Title|null Title or null if there is no such alias
*/
static function getTitleForAlias( $alias ) {
$name = self::resolveAlias( $alias );
/**
* Get a localised Title object for a specified special page name
*
- * @param $name String
- * @param string|Bool $subpage subpage string, or false to not use a subpage
- * @param string $fragment the link fragment (after the "#")
+ * @param string $name
+ * @param string|bool $subpage Subpage string, or false to not use a subpage
+ * @param string $fragment The link fragment (after the "#")
+ * @return Title
* @throws MWException
- * @return Title object
*/
public static function getTitleFor( $name, $subpage = false, $fragment = '' ) {
$name = SpecialPageFactory::getLocalNameFor( $name, $subpage );
/**
* Get a localised Title object for a page name with a possibly unvalidated subpage
*
- * @param $name String
- * @param string|Bool $subpage subpage string, or false to not use a subpage
- * @return Title object or null if the page doesn't exist
+ * @param string $name
+ * @param string|bool $subpage Subpage string, or false to not use a subpage
+ * @return Title|null Title object or null if the page doesn't exist
*/
public static function getSafeTitleFor( $name, $subpage = false ) {
$name = SpecialPageFactory::getLocalNameFor( $name, $subpage );
* @param string $name Name of the special page, as seen in links and URLs
* @param string $restriction User right required, e.g. "block" or "delete"
* @param bool $listed Whether the page is listed in Special:Specialpages
- * @param Callback|Bool $function Function called by execute(). By default
- * it is constructed from $name
+ * @param callable|bool $function Function called by execute(). By default
+ * it is constructed from $name
* @param string $file File which is included by execute(). It is also
- * constructed from $name by default
+ * constructed from $name by default
* @param bool $includable Whether the page can be included in normal pages
*/
public function __construct(
* @param string $name Name of the special page, as seen in links and URLs
* @param string $restriction User right required, e.g. "block" or "delete"
* @param bool $listed Whether the page is listed in Special:Specialpages
- * @param Callback|Bool $function Function called by execute(). By default
- * it is constructed from $name
+ * @param callable|bool $function Function called by execute(). By default
+ * it is constructed from $name
* @param string $file File which is included by execute(). It is also
- * constructed from $name by default
+ * constructed from $name by default
* @param bool $includable Whether the page can be included in normal pages
*/
private function init( $name, $restriction, $listed, $function, $file, $includable ) {
/**
* Get the name of this Special Page.
- * @return String
+ * @return string
*/
function getName() {
return $this->mName;
/**
* Get the permission that a user must have to execute this page
- * @return String
+ * @return string
*/
function getRestriction() {
return $this->mRestriction;
* Get the file which will be included by SpecialPage::execute() if your extension is
* still stuck in the past and hasn't overridden the execute() method. No modern code
* should want or need to know this.
- * @return String
+ * @return string
* @deprecated since 1.18
*/
function getFile() {
/**
* Whether this special page is listed in Special:SpecialPages
* @since r3583 (v1.3)
- * @return Bool
+ * @return bool
*/
function isListed() {
return $this->mListed;
}
/**
* Set whether this page is listed in Special:Specialpages, at run-time
- * @since r3583 (v1.3)
- * @param $listed Bool
- * @return Bool
+ * @since 1.3
+ * @param bool $listed
+ * @return bool
*/
function setListed( $listed ) {
return wfSetVar( $this->mListed, $listed );
}
/**
* Get or set whether this special page is listed in Special:SpecialPages
- * @since r11308 (v1.6)
- * @param $x Bool
- * @return Bool
+ * @since 1.6
+ * @param bool $x
+ * @return bool
*/
function listed( $x = null ) {
return wfSetVar( $this->mListed, $x );
/**
* Whether it's allowed to transclude the special page via {{Special:Foo/params}}
- * @return Bool
+ * @return bool
*/
public function isIncludable() {
return $this->mIncludable;
/**
* Whether the special page is being evaluated via transclusion
- * @param $x Bool
- * @return Bool
+ * @param bool $x
+ * @return bool
*/
function including( $x = null ) {
return wfSetVar( $this->mIncluding, $x );
/**
* Get the localised name of the special page
+ * @return string
*/
function getLocalName() {
if ( !isset( $this->mLocalName ) ) {
* (and still overridden) by QueryPage and subclasses, moved here so that
* Special:SpecialPages can safely call it for all special pages.
*
- * @return Boolean
+ * @return bool
*/
public function isExpensive() {
return false;
* Used by QueryPage and subclasses, moved here so that
* Special:SpecialPages can safely call it for all special pages.
*
- * @return Boolean
+ * @return bool
* @since 1.21
*/
public function isCached() {
* Can be overridden by subclasses with more complicated permissions
* schemes.
*
- * @return Boolean: should the page be displayed with the restricted-access
+ * @return bool Should the page be displayed with the restricted-access
* pages?
*/
public function isRestricted() {
* special page (as defined by $mRestriction). Can be overridden by sub-
* classes with more complicated permissions schemes.
*
- * @param $user User: the user to check
- * @return Boolean: does the user have permission to view the page?
+ * @param User $user The user to check
+ * @return bool Does the user have permission to view the page?
*/
public function userCanExecute( User $user ) {
return $user->isAllowed( $this->mRestriction );
/**
* Output an error message telling the user what access level they have to have
+ * @throws PermissionsError
*/
function displayRestrictionError() {
throw new PermissionsError( $this->mRestriction );
* Checks if userCanExecute, and if not throws a PermissionsError
*
* @since 1.19
+ * @return void
+ * @throws PermissionsError
*/
public function checkPermissions() {
if ( !$this->userCanExecute( $this->getUser() ) ) {
* If the wiki is currently in readonly mode, throws a ReadOnlyError
*
* @since 1.19
+ * @return void
* @throws ReadOnlyError
*/
public function checkReadOnly() {
*
* @since 1.20
*
- * @param $subPage string|null
+ * @param string|null $subPage
*/
final public function run( $subPage ) {
/**
*
* @since 1.20
*
- * @param $special SpecialPage
- * @param $subPage string|null
+ * @param SpecialPage $this
+ * @param string|null $subPage
*/
wfRunHooks( 'SpecialPageBeforeExecute', array( $this, $subPage ) );
*
* @since 1.20
*
- * @param $special SpecialPage
- * @param $subPage string|null
+ * @param SpecialPage $this
+ * @param string|null $subPage
*/
wfRunHooks( 'SpecialPageAfterExecute', array( $this, $subPage ) );
}
*
* @since 1.20
*
- * @param $subPage string|null
+ * @param string|null $subPage
*/
protected function beforeExecute( $subPage ) {
// No-op
*
* @since 1.20
*
- * @param $subPage string|null
+ * @param string|null $subPage
*/
protected function afterExecute( $subPage ) {
// No-op
*
* This must be overridden by subclasses; it will be made abstract in a future version
*
- * @param $subPage string|null
+ * @param string|null $subPage
*/
public function execute( $subPage ) {
$this->setHeaders();
* May be overridden, i.e. by extensions to stick with the naming conventions
* for message keys: 'extensionname-xxx'
*
- * @param string $summaryMessageKey message key of the summary
+ * @param string $summaryMessageKey Message key of the summary
*/
function outputHeader( $summaryMessageKey = '' ) {
global $wgContLang;
/**
* Get a self-referential title object
*
- * @param $subpage String|Bool
- * @return Title object
+ * @param string|bool $subpage
+ * @return Title
* @deprecated in 1.23, use SpecialPage::getPageTitle
*/
function getTitle( $subpage = false ) {
/**
* Get a self-referential title object
*
- * @param $subpage String|Bool
- * @return Title object
+ * @param string|bool $subpage
+ * @return Title
* @since 1.23
*/
function getPageTitle( $subpage = false ) {
/**
* Sets the context this SpecialPage is executed in
*
- * @param $context IContextSource
+ * @param IContextSource $context
* @since 1.18
*/
public function setContext( $context ) {
/**
* Adds RSS/atom links
*
- * @param $params array
+ * @param array $params
*/
protected function addFeedLinks( $params ) {
global $wgFeedClasses;