MediaWiki REL1_37
WatchAction Class Reference

Page addition to a user's watchlist. More...

Inheritance diagram for WatchAction:
Collaboration diagram for WatchAction:

Public Member Functions

 __construct (Page $page, IContextSource $context, WatchlistManager $watchlistManager, WatchedItemStore $watchedItemStore)
 Only public since 1.21.
 
 doesWrites ()
 
 getName ()
 Return the name of the action this object responds to.
 
 onSubmit ( $data)
 Process the form on POST submission.
 
 onSuccess ()
 Show one of 8 possible success messages.
 
 requiresUnblock ()
 Whether this action can still be executed by a blocked user.
 
- Public Member Functions inherited from FormAction
 show ()
 The basic pattern for actions is to display some sort of HTMLForm UI, maybe with some stuff underneath (history etc); to do some processing on submission of that form (delete, protect, etc) and to do something exciting on 'success', be that display something new or redirect to somewhere.
 
- Public Member Functions inherited from Action
 __construct (Page $page, IContextSource $context=null)
 Only public since 1.21.
 
 addHelpLink ( $to, $overrideBaseUrl=false)
 Adds help link with an icon via page indicators.
 
 getArticle ()
 Get a Article object.
 
 getContext ()
 Get the IContextSource in use here.
 
 getLanguage ()
 Shortcut to get the user Language being used for this instance.
 
 getOutput ()
 Get the OutputPage being used for this instance.
 
 getRequest ()
 Get the WebRequest being used for this instance.
 
 getRestriction ()
 Get the permission required to perform this action.
 
 getSkin ()
 Shortcut to get the Skin being used for this instance.
 
 getTitle ()
 Shortcut to get the Title object from the page.
 
 getUser ()
 Shortcut to get the User being used for this instance.
 
 getWikiPage ()
 Get a WikiPage object.
 
 msg ( $key,... $params)
 Get a Message object with context set Parameters are the same as wfMessage()
 
 needsReadRights ()
 Indicates whether this action requires read rights.
 
 requiresWrite ()
 Whether this action requires the wiki not to be locked.
 

Static Public Member Functions

static doUnwatch (PageIdentity $pageIdentity, Authority $performer)
 Unwatch a page.
 
static doWatch (PageIdentity $pageIdentity, Authority $performer, $checkRights=User::CHECK_USER_RIGHTS, ?string $expiry=null)
 Watch a page.
 
static doWatchOrUnwatch ( $watch, PageIdentity $pageIdentity, Authority $performer, string $expiry=null)
 Watch or unwatch a page.
 
static getExpiryOptions (MessageLocalizer $msgLocalizer, $watchedItem)
 Get options and default for a watchlist expiry select list.
 
static getWatchToken (PageIdentity $page, User $user, $action='watch')
 Get token to watch (or unwatch) a page for a user.
 
- Static Public Member Functions inherited from Action
static exists (string $name)
 Check if a given action is recognised, even if it's disabled.
 
static factory (string $action, Article $article, IContextSource $context=null)
 Get an appropriate Action subclass for the given action.
 
static getActionName (IContextSource $context)
 Get the action that will be executed, not necessarily the one passed passed through the "action" request parameter.
 

Protected Member Functions

 alterForm (HTMLForm $form)
 Play with the HTMLForm if you need to more substantially.
 
 checkCanExecute (User $user)
 Checks if the given user (identified by an object) can perform this action.
 
 getDescription ()
 Returns the description that goes below the \<h1\> tag.
 
 getFormFields ()
 Get an HTMLForm descriptor array.
 
 usesOOUI ()
 Whether the form should use OOUI.
 
- Protected Member Functions inherited from FormAction
 getForm ()
 Get the HTMLForm to control behavior.
 
 postText ()
 
 preText ()
 Add pre- or post-text to the form.
 
- Protected Member Functions inherited from Action
 getHookContainer ()
 
 getHookRunner ()
 
 getPageTitle ()
 Returns the name that goes in the \<h1\> page title.
 
 setHeaders ()
 Set output headers for noindexing etc.
 
 useTransactionalTimeLimit ()
 Call wfTransactionalTimeLimit() if this request was POSTed.
 

Protected Attributes

string $expiryFormFieldName = 'expiry'
 
false WatchedItem $watchedItem = false
 
bool $watchlistExpiry
 The value of the $wgWatchlistExpiry configuration variable.
 
- Protected Attributes inherited from Action
IContextSource $context
 IContextSource if specified; otherwise we'll use the Context from the Page.
 
array $fields
 The fields used to create the HTMLForm.
 
WikiPage Article ImagePage CategoryPage Page $page
 Page on which we're performing the action.
 

Static Private Member Functions

static getExpiryOptionsFromMessage (MessageLocalizer $msgLocalizer, ?string $lang=null)
 Parse expiry options message.
 

Private Attributes

WatchlistManager $watchlistManager
 

Detailed Description

Page addition to a user's watchlist.

Definition at line 34 of file WatchAction.php.

Constructor & Destructor Documentation

◆ __construct()

WatchAction::__construct ( Page  $page,
IContextSource  $context,
WatchlistManager  $watchlistManager,
WatchedItemStore  $watchedItemStore 
)

Only public since 1.21.

Parameters
Page$page
IContextSource$context
WatchlistManager$watchlistManager
WatchedItemStore$watchedItemStore

Reimplemented in UnwatchAction.

Definition at line 56 of file WatchAction.php.

References $watchlistManager, getContext(), getTitle(), Action\getUser(), and WatchedItemStore\getWatchedItem().

Member Function Documentation

◆ alterForm()

WatchAction::alterForm ( HTMLForm  $form)
protected

Play with the HTMLForm if you need to more substantially.

Stability: stable
to override
Parameters
HTMLForm$form

Reimplemented from FormAction.

Reimplemented in UnwatchAction.

Definition at line 199 of file WatchAction.php.

References HTMLForm\setSubmitTextMsg(), HTMLForm\setTokenSalt(), and HTMLForm\setWrapperLegendMsg().

◆ checkCanExecute()

WatchAction::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
Stability: stable
to override
Parameters
User$user
Exceptions
UserBlockedError|ReadOnlyError|PermissionsError

Reimplemented from Action.

Definition at line 99 of file WatchAction.php.

References User\isAnon().

◆ doesWrites()

WatchAction::doesWrites ( )
Stability: stable
to override
Returns
bool

Reimplemented from FormAction.

Reimplemented in UnwatchAction.

Definition at line 351 of file WatchAction.php.

◆ doUnwatch()

static WatchAction::doUnwatch ( PageIdentity  $pageIdentity,
Authority  $performer 
)
static

Unwatch a page.

Parameters
PageIdentity$pageIdentityPage to watch/unwatch
Authority$performerUser who is watching/unwatching
Returns
Status
Since
1.22 Returns Status
Deprecated:
since 1.37, use WatchlistManager:removeWatch() instead.

Definition at line 323 of file WatchAction.php.

References wfDeprecated().

◆ doWatch()

static WatchAction::doWatch ( PageIdentity  $pageIdentity,
Authority  $performer,
  $checkRights = User::CHECK_USER_RIGHTS,
?string  $expiry = null 
)
static

Watch a page.

Since
1.22 Returns Status, $checkRights parameter added
Parameters
PageIdentity$pageIdentityPage to watch/unwatch
Authority$performerUser who is watching/unwatching
bool$checkRightsPassed through to $user->addWatch() Pass User::CHECK_USER_RIGHTS or User::IGNORE_USER_RIGHTS.
string | null$expiryOptional expiry timestamp in any format acceptable to wfTimestamp(), null will not create expiries, or leave them unchanged should they already exist.
Returns
Status
Deprecated:
since 1.37, use WatchlistManager:addWatch() instead.

Definition at line 291 of file WatchAction.php.

References $watchlistManager, MediaWiki\Watchlist\WatchlistManager\addWatch(), MediaWiki\Watchlist\WatchlistManager\addWatchIgnoringRights(), MediaWiki\Permissions\Authority\getUser(), and wfDeprecated().

◆ doWatchOrUnwatch()

static WatchAction::doWatchOrUnwatch (   $watch,
PageIdentity  $pageIdentity,
Authority  $performer,
string  $expiry = null 
)
static

Watch or unwatch a page.

Parameters
bool$watchWhether to watch or unwatch the page
PageIdentity$pageIdentityPage to watch/unwatch
Authority$performerwho is watching/unwatching
string | null$expiryOptional expiry timestamp in any format acceptable to wfTimestamp(), null will not create expiries, or leave them unchanged should they already exist.
Returns
Status
Since
1.35 New $expiry parameter.
1.22
Deprecated:
since 1.37, use WatchlistManager:setWatch() instead.

Definition at line 264 of file WatchAction.php.

References setWatch(), and wfDeprecated().

◆ getDescription()

WatchAction::getDescription ( )
protected

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

Since
1.17
Stability: stable
to override
Returns
string HTML

Reimplemented from Action.

Definition at line 82 of file WatchAction.php.

◆ getExpiryOptions()

static WatchAction::getExpiryOptions ( MessageLocalizer  $msgLocalizer,
  $watchedItem 
)
static

Get options and default for a watchlist expiry select list.

If an expiry time is provided, it will be added to the top of the list as 'x days left'.

Since
1.35
Todo:
Move this somewhere better when it's being used in more than just this action.
Parameters
MessageLocalizer$msgLocalizer
WatchedItem | bool$watchedItem
Returns
mixed[] With keys options (string[]) and default (string).

Definition at line 148 of file WatchAction.php.

References WatchedItem\getExpiry(), and WatchedItem\getExpiryInDaysText().

◆ getExpiryOptionsFromMessage()

static WatchAction::getExpiryOptionsFromMessage ( MessageLocalizer  $msgLocalizer,
?string  $lang = null 
)
staticprivate

Parse expiry options message.

Fallback to english options if translated options are invalid or broken

Parameters
MessageLocalizer$msgLocalizer
string | null$lang
Returns
string[]

Definition at line 174 of file WatchAction.php.

References Action\msg().

◆ getFormFields()

WatchAction::getFormFields ( )
protected

Get an HTMLForm descriptor array.

Stability: stable
to override
Returns
array

Reimplemented from FormAction.

Reimplemented in UnwatchAction.

Definition at line 112 of file WatchAction.php.

References getContext(), and Action\msg().

◆ getName()

WatchAction::getName ( )

Return the name of the action this object responds to.

Since
1.17
Returns
string Lowercase name

Reimplemented from Action.

Reimplemented in UnwatchAction.

Definition at line 74 of file WatchAction.php.

◆ getWatchToken()

static WatchAction::getWatchToken ( PageIdentity  $page,
User  $user,
  $action = 'watch' 
)
static

Get token to watch (or unwatch) a page for a user.

Deprecated:
since 1.37, use CsrfTokenSet::getToken
Parameters
PageIdentity$pageTitle object of page to watch
User$userUser for whom the action is going to be performed
string$actionOptionally override the action to 'unwatch'
Returns
string Token
Since
1.18

Definition at line 342 of file WatchAction.php.

References User\getEditToken(), and wfDeprecated().

◆ onSubmit()

WatchAction::onSubmit (   $data)

Process the form on POST submission.

If you don't want to do anything with the form, just return false here.

This method will be passed to the HTMLForm as a submit callback (see HTMLForm::setSubmitCallback) and must return as documented for HTMLForm::trySubmit.

See also
HTMLForm::setSubmitCallback()
HTMLForm::trySubmit()
Parameters
array$data
Returns
bool|string|array|Status Must return as documented for HTMLForm::trySubmit

Reimplemented from FormAction.

Reimplemented in UnwatchAction.

Definition at line 86 of file WatchAction.php.

References getAuthority(), getContext(), Action\getRequest(), and getTitle().

◆ onSuccess()

WatchAction::onSuccess ( )

Show one of 8 possible success messages.

The messages are:

  1. addedwatchtext
  2. addedwatchtext-talk
  3. addedwatchindefinitelytext
  4. addedwatchindefinitelytext-talk
  5. addedwatchexpirytext
  6. addedwatchexpirytext-talk
  7. addedwatchexpiryhours
  8. addedwatchexpiryhours-talk

Reimplemented from FormAction.

Reimplemented in UnwatchAction.

Definition at line 219 of file WatchAction.php.

References getContext(), getTitle(), and wfIsInfinity().

◆ requiresUnblock()

WatchAction::requiresUnblock ( )

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

Since
1.17
Stability: stable
to override
Returns
bool

Reimplemented from Action.

Definition at line 78 of file WatchAction.php.

◆ usesOOUI()

WatchAction::usesOOUI ( )
protected

Whether the form should use OOUI.

Stability: stable
to override
Returns
bool

Reimplemented from FormAction.

Definition at line 108 of file WatchAction.php.

Member Data Documentation

◆ $expiryFormFieldName

string WatchAction::$expiryFormFieldName = 'expiry'
protected

Definition at line 40 of file WatchAction.php.

◆ $watchedItem

false WatchedItem WatchAction::$watchedItem = false
protected

Definition at line 43 of file WatchAction.php.

◆ $watchlistExpiry

bool WatchAction::$watchlistExpiry
protected

The value of the $wgWatchlistExpiry configuration variable.

Definition at line 37 of file WatchAction.php.

◆ $watchlistManager

WatchlistManager WatchAction::$watchlistManager
private

Definition at line 46 of file WatchAction.php.


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