MediaWiki  1.29.1
Action Class Reference

Actions are things which can be done to pages (edit, delete, rollback, etc). More...

Inheritance diagram for Action:

Public Member Functions

 __construct (Page $page, IContextSource $context=null)
 Constructor. More...
 
 addHelpLink ( $to, $overrideBaseUrl=false)
 Adds help link with an icon via page indicators. More...
 
 doesWrites ()
 Indicates whether this action may perform database writes. More...
 
 getContext ()
 Get the IContextSource in use here. More...
 
 getLanguage ()
 Shortcut to get the user Language being used for this instance. More...
 
 getName ()
 Return the name of the action this object responds to. More...
 
 getOutput ()
 Get the OutputPage being used for this instance. More...
 
 getRequest ()
 Get the WebRequest being used for this instance. More...
 
 getRestriction ()
 Get the permission required to perform this action. More...
 
 getSkin ()
 Shortcut to get the Skin being used for this instance. More...
 
 getTitle ()
 Shortcut to get the Title object from the page. More...
 
 getUser ()
 Shortcut to get the User being used for this instance. More...
 
 msg ()
 Get a Message object with context set Parameters are the same as wfMessage() More...
 
 requiresUnblock ()
 Whether this action can still be executed by a blocked user. More...
 
 requiresWrite ()
 Whether this action requires the wiki not to be locked. More...
 
 show ()
 The main action entry point. More...
 

Static Public Member Functions

static exists ( $name)
 Check if a given action is recognised, even if it's disabled. More...
 
static factory ( $action, Page $page, IContextSource $context=null)
 Get an appropriate Action subclass for the given action. More...
 
static getActionName (IContextSource $context)
 Get the action that will be executed, not necessarily the one passed passed through the "action" request parameter. More...
 

Protected Member Functions

 checkCanExecute (User $user)
 Checks if the given user (identified by an object) can perform this action. More...
 
 getDescription ()
 Returns the description that goes below the \<h1\> tag. More...
 
 getPageTitle ()
 Returns the name that goes in the \<h1\> page title. More...
 
 setHeaders ()
 Set output headers for noindexing etc. More...
 
 useTransactionalTimeLimit ()
 Call wfTransactionalTimeLimit() if this request was POSTed. More...
 

Protected Attributes

 $context
 IContextSource if specified; otherwise we'll use the Context from the Page. More...
 
 $fields
 The fields used to create the HTMLForm. More...
 
 $page
 Page on which we're performing the action. More...
 

Static Private Member Functions

static getClass ( $action, array $overrides)
 Get the Action subclass which should be used to handle this action, false if the action is disabled, or null if it's not recognised. More...
 

Detailed Description

Actions are things which can be done to pages (edit, delete, rollback, etc).

They are distinct from Special Pages because an action must apply to exactly one page.

To add an action in an extension, create a subclass of Action, and add the key to $wgActions. There is also the deprecated UnknownAction hook

Actions generally fall into two groups: the show-a-form-then-do-something-with-the-input format (protect, delete, move, etc), and the just-do-something format (watch, rollback, patrol, etc). The FormAction and FormlessAction classes represent these two groups.

Definition at line 37 of file Action.php.

Constructor & Destructor Documentation

◆ __construct()

Action::__construct ( Page  $page,
IContextSource  $context = null 
)

Constructor.

Only public since 1.21

Parameters
Page$page
IContextSource | null$context

Definition at line 269 of file Action.php.

References $context, $page, page, and wfWarn().

Member Function Documentation

◆ addHelpLink()

Action::addHelpLink (   $to,
  $overrideBaseUrl = false 
)

Adds help link with an icon via page indicators.

Link target can be overridden by a local message containing a wikilink: the message key is: lowercase action name + '-helppage'.

Parameters
string$toTarget MediaWiki.org page title or encoded URL.
bool$overrideBaseUrlWhether $url is a full URL, to avoid MW.o.
Since
1.25

Definition at line 390 of file Action.php.

References $wgContLang, getActionName(), getOutput(), global, Skin\makeUrl(), and wfMessage().

Referenced by HistoryAction\onView(), and DeleteAction\show().

◆ checkCanExecute()

Action::checkCanExecute ( User  $user)
protected

Checks if the given user (identified by an object) can perform this action.

Can be overridden by sub-classes with more complicated permissions schemes. Failures here must throw subclasses of ErrorPageError

Since
1.17
Parameters
User$userThe user to check, or null to use the context user
Exceptions
UserBlockedError|ReadOnlyError|PermissionsError

Reimplemented in WatchAction, and RevertAction.

Definition at line 308 of file Action.php.

References $user, captcha-old\count, getRestriction(), getTitle(), User\isBlocked(), requiresUnblock(), requiresWrite(), and wfReadOnly().

Referenced by FormlessAction\show(), PurgeAction\show(), and FormAction\show().

◆ doesWrites()

Action::doesWrites ( )

Indicates whether this action may perform database writes.

Returns
bool
Since
1.27

Reimplemented in WatchAction, RevertAction, RollbackAction, FormAction, MarkpatrolledAction, PurgeAction, SpecialPageAction, EditAction, UnwatchAction, DeleteAction, ProtectAction, and UnprotectAction.

Definition at line 429 of file Action.php.

◆ exists()

static Action::exists (   $name)
staticfinal

Check if a given action is recognised, even if it's disabled.

Since
1.17
Parameters
string$nameName of an action
Returns
bool

Definition at line 169 of file Action.php.

References $name, and getClass().

Referenced by HistoryAction\fetchRevisions(), ActionTest\testActionExists(), ActionTest\testActionExists_doesNotRequireInstantiation(), ActionTest\testDisabledAction_exists(), and ActionTest\testNull_doesNotExist().

◆ factory()

static Action::factory (   $action,
Page  $page,
IContextSource  $context = null 
)
staticfinal

Get an appropriate Action subclass for the given action.

Since
1.17
Parameters
string$action
Page$page
IContextSource | null$context
Returns
Action|bool|null False if the action is disabled, null if it is not recognised

Definition at line 95 of file Action.php.

References $context, $page, and getClass().

Referenced by RebuildFileCache\execute(), getActionName(), MediaWiki\performAction(), SkinTemplate\prepareQuickTemplate(), ActionTest\testActionFactory(), ActionTest\testDisabledAction_factoryReturnsFalse(), and ActionTest\testNull_canNotBeInstantiated().

◆ getActionName()

◆ getClass()

static Action::getClass (   $action,
array  $overrides 
)
staticfinalprivate

Get the Action subclass which should be used to handle this action, false if the action is disabled, or null if it's not recognised.

Parameters
string$action
array$overrides
Returns
bool|null|string|callable|Action

Definition at line 67 of file Action.php.

References global.

Referenced by exists(), and factory().

◆ getContext()

◆ getDescription()

Action::getDescription ( )
protected

Returns the description that goes below the \<h1\> tag.

Since
1.17
Returns
string HTML

Reimplemented in InfoAction, RevertAction, RollbackAction, HistoryAction, SpecialPageAction, PurgeAction, WatchAction, CreditsAction, and MarkpatrolledAction.

Definition at line 378 of file Action.php.

References getName(), and msg().

Referenced by setHeaders().

◆ getLanguage()

Action::getLanguage ( )
final

◆ getName()

Action::getName ( )
abstract

◆ getOutput()

◆ getPageTitle()

Action::getPageTitle ( )
protected

Returns the name that goes in the \<h1\> page title.

Returns
string

Reimplemented in InfoAction, RevertAction, and HistoryAction.

Definition at line 368 of file Action.php.

References getTitle().

Referenced by setHeaders().

◆ getRequest()

◆ getRestriction()

Action::getRestriction ( )

Get the permission required to perform this action.

Often, but not always, the same as the action name

Since
1.17
Returns
string|null

Reimplemented in MarkpatrolledAction, RevertAction, and RollbackAction.

Definition at line 295 of file Action.php.

Referenced by checkCanExecute().

◆ getSkin()

Action::getSkin ( )
final

Shortcut to get the Skin being used for this instance.

Since
1.17
Returns
Skin

Definition at line 227 of file Action.php.

References getContext().

◆ getTitle()

◆ getUser()

◆ msg()

◆ requiresUnblock()

Action::requiresUnblock ( )

Whether this action can still be executed by a blocked user.

Since
1.17
Returns
bool

Reimplemented in HistoryAction, SpecialPageAction, InfoAction, RawAction, PurgeAction, and WatchAction.

Definition at line 346 of file Action.php.

Referenced by checkCanExecute().

◆ requiresWrite()

Action::requiresWrite ( )

Whether this action requires the wiki not to be locked.

Since
1.17
Returns
bool

Reimplemented in InfoAction, HistoryAction, and RawAction.

Definition at line 336 of file Action.php.

Referenced by checkCanExecute().

◆ setHeaders()

Action::setHeaders ( )
protected

Set output headers for noindexing etc.

This function will not be called through the execute() entry point, so only put UI-related stuff in here.

Since
1.17

Definition at line 355 of file Action.php.

References $out, getDescription(), getOutput(), and getPageTitle().

Referenced by FormlessAction\show(), PurgeAction\show(), and FormAction\show().

◆ show()

Action::show ( )
abstract

The main action entry point.

Do all output for display and send it to the context output. Do not use globals $wgOut, $wgRequest, etc, in implementations; use $this->getOutput(), etc.

Since
1.17
Exceptions
ErrorPageError

Reimplemented in DummyAction, FormAction, SpecialPageAction, PurgeAction, DeleteAction, EditAction, ProtectAction, RenderAction, ViewAction, UnprotectAction, FormlessAction, and SubmitAction.

◆ useTransactionalTimeLimit()

Action::useTransactionalTimeLimit ( )
protected

Call wfTransactionalTimeLimit() if this request was POSTed.

Since
1.26

Definition at line 418 of file Action.php.

References getRequest(), and wfTransactionalTimeLimit().

Referenced by RevertAction\onSubmit(), DeleteAction\show(), and EditAction\show().

Member Data Documentation

◆ $context

IContextSource Action::$context
protected

IContextSource if specified; otherwise we'll use the Context from the Page.

Since
1.17

Definition at line 51 of file Action.php.

Referenced by __construct(), factory(), getActionName(), and getContext().

◆ $fields

array Action::$fields
protected

The fields used to create the HTMLForm.

Since
1.17

Definition at line 58 of file Action.php.

◆ $page


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