MediaWiki REL1_39
MediaWiki\SpecialPage\SpecialPageFactory Class Reference

Factory for handling the special page list and generating SpecialPage objects. More...

Public Member Functions

 __construct (ServiceOptions $options, Language $contLang, ObjectFactory $objectFactory, TitleFactory $titleFactory, HookContainer $hookContainer)
 
 capturePath (PageReference $page, IContextSource $context, LinkRenderer $linkRenderer=null)
 Just like executePath() but will override global variables and execute the page in "inclusion" mode.
 
 executePath ( $path, IContextSource $context, $including=false, LinkRenderer $linkRenderer=null)
 Execute a special page path.
 
 exists ( $name)
 Check if a given name exist as a special page or as a special page alias.
 
 getLocalNameFor ( $name, $subpage=false)
 Get the local name for a specified canonical name.
 
 getNames ()
 Returns a list of canonical special page names.
 
 getPage ( $name)
 Find the object with a given name and return it (or NULL)
 
 getRegularPages ()
 Get listed special pages available to everyone by default.
 
 getTitleForAlias ( $alias)
 Get a title for a given alias.
 
 getUsablePages (User $user)
 Get listed special pages available to the current user.
 
 resolveAlias ( $alias)
 Given a special page name with a possible subpage, return an array where the first element is the special page name and the second is the subpage.
 

Public Attributes

const CONSTRUCTOR_OPTIONS
 

Detailed Description

Factory for handling the special page list and generating SpecialPage objects.

To add a special page in an extension, add to $wgSpecialPages either an object instance or an array containing the name and constructor parameters. The latter is preferred for performance reasons.

The object instantiated must be either an instance of SpecialPage or a sub-class thereof. It must have an execute() method, which sends the HTML for the special page to $wgOut. The parent class has an execute() method which distributes the call to the historical global functions. Additionally, execute() also checks if the user has the necessary access privileges and bails out if not.

To add a core special page, use the similar static list in SpecialPageFactory::$list. To remove a core static special page at runtime, use a SpecialPage_initList hook.

Since
1.17

Definition at line 65 of file SpecialPageFactory.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\SpecialPage\SpecialPageFactory::__construct ( ServiceOptions $options,
Language $contLang,
ObjectFactory $objectFactory,
TitleFactory $titleFactory,
HookContainer $hookContainer )
Parameters
ServiceOptions$options
Language$contLang
ObjectFactory$objectFactory
TitleFactory$titleFactory
HookContainer$hookContainer

Definition at line 1055 of file SpecialPageFactory.php.

References MediaWiki\Config\ServiceOptions\assertRequiredOptions().

Member Function Documentation

◆ capturePath()

MediaWiki\SpecialPage\SpecialPageFactory::capturePath ( PageReference $page,
IContextSource $context,
LinkRenderer $linkRenderer = null )

Just like executePath() but will override global variables and execute the page in "inclusion" mode.

Returns true if the execution was successful or false if there was no such special page, or a title object if it was a redirect.

Also saves the current $wgTitle, $wgOut, $wgRequest, $wgUser and $wgLang 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.

Parameters
PageReference$page
IContextSource$context
LinkRenderer | null$linkRenderer(since 1.28)
Returns
string HTML fragment

Definition at line 1448 of file SpecialPageFactory.php.

References $title, $wgLang, $wgOut, $wgRequest, $wgTitle, $wgUser, IContextSource\getLanguage(), IContextSource\getOutput(), IContextSource\getRequest(), and IContextSource\getUser().

◆ executePath()

MediaWiki\SpecialPage\SpecialPageFactory::executePath ( $path,
IContextSource $context,
$including = false,
LinkRenderer $linkRenderer = null )

Execute a special page path.

The path may contain parameters, e.g. Special:Name/Params Extracts the special page name and call the execute method, passing the parameters

Returns a title object if the page is redirected, false if there was no such special page, and true if it was successful.

Parameters
PageReference | string$path
IContextSource$context
bool$includingBool output is being captured for use in {{special:whatever}}
LinkRenderer | null$linkRenderer(since 1.28)
Returns
bool|Title

Definition at line 1360 of file SpecialPageFactory.php.

References $path, $title, IContextSource\getConfig(), IContextSource\getOutput(), and IContextSource\getRequest().

◆ exists()

MediaWiki\SpecialPage\SpecialPageFactory::exists ( $name)

Check if a given name exist as a special page or as a special page alias.

Parameters
string$nameName of a special page
Returns
bool True if a special page exists with this name

Definition at line 1254 of file SpecialPageFactory.php.

References $title.

◆ getLocalNameFor()

MediaWiki\SpecialPage\SpecialPageFactory::getLocalNameFor ( $name,
$subpage = false )

Get the local name for a specified canonical name.

Parameters
string$name
string | bool$subpage
Returns
string

Definition at line 1517 of file SpecialPageFactory.php.

References wfWarn().

◆ getNames()

MediaWiki\SpecialPage\SpecialPageFactory::getNames ( )

Returns a list of canonical special page names.

May be used to iterate over all registered special pages.

Returns
string[]

Definition at line 1077 of file SpecialPageFactory.php.

◆ getPage()

MediaWiki\SpecialPage\SpecialPageFactory::getPage ( $name)

Find the object with a given name and return it (or NULL)

Parameters
string$nameSpecial page name, may be localised and/or an alias
Returns
SpecialPage|null SpecialPage object or null if the page doesn't exist

Definition at line 1267 of file SpecialPageFactory.php.

References wfLogWarning().

◆ getRegularPages()

MediaWiki\SpecialPage\SpecialPageFactory::getRegularPages ( )

Get listed special pages available to everyone by default.

Returns
SpecialPage[]

Definition at line 1333 of file SpecialPageFactory.php.

◆ getTitleForAlias()

MediaWiki\SpecialPage\SpecialPageFactory::getTitleForAlias ( $alias)

Get a title for a given alias.

Parameters
string$alias
Returns
Title|null Title or null if there is no such alias

Definition at line 1570 of file SpecialPageFactory.php.

References SpecialPage\getTitleFor().

◆ getUsablePages()

MediaWiki\SpecialPage\SpecialPageFactory::getUsablePages ( User $user)

Get listed special pages available to the current user.

This includes both unrestricted pages, and restricted pages that the current user has the required permissions for.

Parameters
User$userUser object to check permissions provided
Returns
SpecialPage[]

Definition at line 1311 of file SpecialPageFactory.php.

◆ resolveAlias()

MediaWiki\SpecialPage\SpecialPageFactory::resolveAlias ( $alias)

Given a special page name with a possible subpage, return an array where the first element is the special page name and the second is the subpage.

Parameters
string$alias
Returns
array [ String, String|null ], or [ null, null ] if the page is invalid

Definition at line 1233 of file SpecialPageFactory.php.

Member Data Documentation

◆ CONSTRUCTOR_OPTIONS

const MediaWiki\SpecialPage\SpecialPageFactory::CONSTRUCTOR_OPTIONS
Initial value:
= [
]
const EnableJavaScriptTest
Name constant for the EnableJavaScriptTest setting, for use with Config::get()
const DisableInternalSearch
Name constant for the DisableInternalSearch setting, for use with Config::get()
const SpecialPages
Name constant for the SpecialPages setting, for use with Config::get()
const EnableSpecialMute
Name constant for the EnableSpecialMute setting, for use with Config::get()
const EnableEmail
Name constant for the EnableEmail setting, for use with Config::get()
const EmailAuthentication
Name constant for the EmailAuthentication setting, for use with Config::get()
const PageLanguageUseDB
Name constant for the PageLanguageUseDB setting, for use with Config::get()
Access: internal
For use by ServiceWiring

Definition at line 1033 of file SpecialPageFactory.php.


The documentation for this class was generated from the following file: