MediaWiki master
MediaWiki\Specials\SpecialWatchlist Class Reference

A special page that lists last changes made to the wiki, limited to user-defined list of titles. More...

Inherits MediaWiki\SpecialPage\ChangesListSpecialPage.

Collaboration diagram for MediaWiki\Specials\SpecialWatchlist:

Public Member Functions

 __construct (WatchedItemStoreInterface $watchedItemStore, WatchlistManager $watchlistManager, UserOptionsLookup $userOptionsLookup, ChangeTagsStore $changeTagsStore, UserIdentityUtils $userIdentityUtils, TempUserConfig $tempUserConfig)
 
 doesWrites ()
 Indicates whether this special page may perform database writes.
 
 doHeader ( $opts, $numRows)
 Set the text to be displayed above the changes.
 
 execute ( $subpage)
 Main execution point.
 
 getAssociatedNavigationLinks ()
 Return an array of strings representing page titles that are discoverable to end users via UI.
Since
1.39
Stability: stable
to call or override
Returns
string[] strings representing page titles that can be rendered by skins if required.

 
 getShortDescription (string $path='')
 Similar to getDescription but takes into account sub pages and designed for display in tabs.
Since
1.39
Stability: stable
to override if special page has complex parameter handling. Use default message keys where possible.
Parameters
string$path(optional)
Returns
string

 
 getSubpagesForPrefixSearch ()
 Return an array of subpages that this special page will accept.
 
 outputChangesList ( $rows, $opts)
 Build and output the actual changes list.
 
 outputFeedLinks ()
 
 setTopText (FormOptions $opts)
 Send the text to be displayed before the options.
 
- Public Member Functions inherited from MediaWiki\SpecialPage\ChangesListSpecialPage
 __construct ( $name, $restriction, UserIdentityUtils $userIdentityUtils, TempUserConfig $tempUserConfig)
 
 filterOnUserExperienceLevel ( $specialPageClassName, $context, $dbr, &$tables, &$fields, &$conds, &$query_options, &$join_conds, $selectedExpLevels, $now=0)
 Filter on users' experience levels; this will not be called if nothing is selected.
 
 getDefaultDays ()
 Get the default value of the number of days to display when loading the result set.
 
 getDefaultLimit ()
 Get the default value of the number of changes to display when loading the result set.
 
 getDefaultOptions ()
 Get a FormOptions object containing the default options.
 
 getExtraOptions ( $opts)
 Get options to be displayed in a form.
 
 getFilterGroup ( $groupName)
 Gets a specified ChangesListFilterGroup by name.
 
 getOptions ()
 Get the current FormOptions for this request.
 
 getRows ()
 Get the database result for this special page instance.
 
 getStructuredFilterJsData ()
 Gets structured filter information needed by JS.
 
 isStructuredFilterUiEnabled ()
 Check whether the structured filter UI is enabled.
 
 makeLegend ()
 Return the legend displayed within the fieldset.
 
 parseParameters ( $par, FormOptions $opts)
 Process $par and put options found in $opts.
 
 registerFilterGroup (ChangesListFilterGroup $group)
 Register a structured changes list filter group.
 
 replaceOldOptions (FormOptions $opts)
 Replace old options with their structured UI equivalents.
 
 setBottomText (FormOptions $opts)
 Send the text to be displayed after the options.
 
 setTempUserConfig (TempUserConfig $tempUserConfig)
 Set the temp user config.
 
 setup ( $parameters)
 Register all the filters, including legacy hook-driven ones.
 
 validateOptions (FormOptions $opts)
 Validate a FormOptions object generated by getDefaultOptions() with values already populated.
 
 webOutput ( $rows, $opts)
 Send output to the OutputPage object, only called if not used feeds.
 
- Public Member Functions inherited from MediaWiki\SpecialPage\SpecialPage
 __construct ( $name='', $restriction='', $listed=true, $function=false, $file='', $includable=false)
 Default constructor for special pages Derivative classes should call this from their constructor Note that if the user does not have the required level, an error message will be displayed by the default execute() method, without the global function ever being called.
 
 addHelpLink ( $to, $overrideBaseUrl=false)
 Adds help link with an icon via page indicators.
 
 checkPermissions ()
 Checks if userCanExecute, and if not throws a PermissionsError.
 
 checkReadOnly ()
 If the wiki is currently in readonly mode, throws a ReadOnlyError.
 
 getAuthority ()
 Shortcut to get the Authority executing this instance.
 
 getConfig ()
 Shortcut to get main config object.
 
 getContentLanguage ()
 Shortcut to get content language.
 
 getContext ()
 Gets the context this SpecialPage is executed in.
 
 getDescription ()
 Returns the name that goes in the \<h1\> in the special page itself, and also the name that will be listed in Special:Specialpages.
 
 getFinalGroupName ()
 Get the group that the special page belongs in on Special:SpecialPage Use this method, instead of getGroupName to allow customization of the group name from the wiki side.
 
 getFullTitle ()
 Return the full title, including $par.
 
 getLanguage ()
 Shortcut to get user's language.
 
 getLinkRenderer ()
 
 getLocalName ()
 Get the localised name of the special page.
 
 getName ()
 Get the canonical, unlocalized name of this special page without namespace.
 
 getOutput ()
 Get the OutputPage being used for this instance.
 
 getPageTitle ( $subpage=false)
 Get a self-referential title object.
 
 getRequest ()
 Get the WebRequest being used for this instance.
 
 getRestriction ()
 Get the permission that a user must have to execute this page.
 
 getSkin ()
 Shortcut to get the skin being used for this instance.
 
 getUser ()
 Shortcut to get the User executing this instance.
 
 including ( $x=null)
 Whether the special page is being evaluated via transclusion.
 
 isCached ()
 Is this page cached? Expensive pages are cached or disabled in miser mode.
 
 isExpensive ()
 Is this page expensive (for some definition of expensive)? Expensive pages are disabled or cached in miser mode.
 
 isIncludable ()
 Whether it's allowed to transclude the special page via {{Special:Foo/params}}.
 
 isListed ()
 Whether this special page is listed in Special:SpecialPages.
 
 isRestricted ()
 Can be overridden by subclasses with more complicated permissions schemes.
 
 maxIncludeCacheTime ()
 How long to cache page when it is being included.
 
 msg ( $key,... $params)
 Wrapper around wfMessage that sets the current context.
 
 prefixSearchSubpages ( $search, $limit, $offset)
 Return an array of subpages beginning with $search that this special page will accept.
 
 requireLogin ( $reasonMsg='exception-nologin-text', $titleMsg='exception-nologin')
 If the user is not logged in, throws UserNotLoggedIn error.
 
 requireNamedUser ( $reasonMsg='exception-nologin-text', $titleMsg='exception-nologin')
 If the user is not logged in or is a temporary user, throws UserNotLoggedIn.
 
 run ( $subPage)
 Entry point.
 
 setContentLanguage (Language $contentLanguage)
 Set content language.
 
 setContext ( $context)
 Sets the context this SpecialPage is executed in.
 
 setHookContainer (HookContainer $hookContainer)
 
 setLinkRenderer (LinkRenderer $linkRenderer)
 
 setSpecialPageFactory (SpecialPageFactory $specialPageFactory)
 
 userCanExecute (User $user)
 Checks if the given user (identified by an object) can execute this special page (as defined by $mRestriction).
 

Static Public Member Functions

static checkStructuredFilterUiEnabled (UserIdentity $user)
 Static method to check whether StructuredFilter UI is enabled for the given user.
Since
1.31
Parameters
UserIdentity$user
Returns
bool

 
static getShortDescriptionHelper (SpecialPage $specialPage, string $path='')
 
- Static Public Member Functions inherited from MediaWiki\SpecialPage\ChangesListSpecialPage
static getRcFiltersConfigSummary (RL\Context $context)
 Get essential data about getRcFiltersConfigVars() for change detection.
 
static getRcFiltersConfigVars (RL\Context $context)
 Get config vars to export with the mediawiki.rcfilters.filters.ui module.
 
- Static Public Member Functions inherited from MediaWiki\SpecialPage\SpecialPage
static getSafeTitleFor ( $name, $subpage=false)
 Get a localised Title object for a page name with a possibly unvalidated subpage.
 
static getTitleFor ( $name, $subpage=false, $fragment='')
 Get a localised Title object for a specified special page name If you don't need a full Title object, consider using TitleValue through getTitleValueFor() below.
 
static getTitleValueFor ( $name, $subpage=false, $fragment='')
 Get a localised TitleValue object for a specified special page name.
 
static newSearchPage (User $user)
 Get the users preferred search page.
 

Protected Member Functions

 countItems ()
 Count the number of paired items on a user's watchlist.
 
 doMainQuery ( $tables, $fields, $conds, $query_options, $join_conds, FormOptions $opts)
 Process the query.
Parameters
array$tablesArray of tables; see IReadableDatabase::select $table
array$fieldsArray of fields; see IReadableDatabase::select $vars
array$condsArray of conditions; see IReadableDatabase::select $conds
array$query_optionsArray of query options; see IReadableDatabase::select $options
array$join_condsArray of join conditions; see IReadableDatabase::select $join_conds
FormOptions$opts
Returns
bool|IResultWrapper Result or false

 
 fetchOptionsFromRequest ( $opts)
 Fetch values for a FormOptions object from the WebRequest associated with this instance.
 
 getCollapsedPreferenceName ()
 
 getDefaultDaysPreferenceName ()
 
 getLimitPreferenceName ()
 
 getSavedQueriesPreferenceName ()
 
 isChangeEffectivelySeen (RecentChange $rc)
 
 registerFilters ()
 Register all filters and their groups (including those from hooks), plus handle conflicts and defaults.You might want to customize these in the same method, in subclasses. You can call getFilterGroup to access a group, and (on the group) getFilter to access a filter, then make necessary modfications to the filter or group (e.g. with setDefault).
 
 showHideCheck ( $options, $message, $name, $value, $inStructuredUi)
 
 transformFilterDefinition (array $filterDefinition)
 Transforms filter definition to prepare it for constructor.See overrides of this method as well.
Parameters
array$filterDefinitionOriginal filter definition
Returns
array Transformed definition

 
- Protected Member Functions inherited from MediaWiki\SpecialPage\ChangesListSpecialPage
 addModules ()
 Add page-specific modules.
 
 areFiltersInConflict ()
 Check if filters are in conflict and guaranteed to return no results.
 
 buildQuery (&$tables, &$fields, &$conds, &$query_options, &$join_conds, FormOptions $opts)
 Sets appropriate tables, fields, conditions, etc.
 
 considerActionsForDefaultSavedQuery ( $subpage)
 Check whether or not the page should load defaults, and if so, whether a default saved query is relevant to be redirected to.
 
 convertParamsForLink ( $params)
 Convert parameters values from true/false to 1/0 so they are not omitted by wfArrayToCgi() T38524.
 
 getDB ()
 Which database to use for read queries.
 
 getFilterGroups ()
 Gets the currently registered filters groups.
 
 getGroupName ()
 Under which header this special page is listed in Special:SpecialPages See messages 'specialpages-group-*' for valid names This method defaults to group 'other'.
 
 getLegacyShowHideFilters ()
 
 getLinkDays ()
 
 includeRcFiltersApp ()
 Include the modules and configuration for the RCFilters app.
 
 outputNoResults ()
 Add the "no results" message to the output.
 
 outputTimeout ()
 Add the "timeout" message to the output.
 
 registerFiltersFromDefinitions (array $definition)
 Register filters from a definition object.
 
 runMainQueryHook (&$tables, &$fields, &$conds, &$query_options, &$join_conds, $opts)
 
- Protected Member Functions inherited from MediaWiki\SpecialPage\SpecialPage
 addFeedLinks ( $params)
 Adds RSS/atom links.
 
 afterExecute ( $subPage)
 Gets called after.
 
 authorizeAction (?string $action=null)
 Utility function for authorizing an action to be performed by the special page.
 
 beforeExecute ( $subPage)
 Gets called before.
 
 buildPrevNextNavigation ( $offset, $limit, array $query=[], $atend=false, $subpage=false)
 Generate (prev x| next x) (20|50|100...) type links for paging.
 
 checkLoginSecurityLevel ( $level=null)
 Verifies that the user meets the security level, possibly reauthenticating them in the process.
 
 displayRestrictionError ()
 Output an error message telling the user what access level they have to have.
 
 getAuthManager ()
 
 getCacheTTL ()
 
 getHookContainer ()
 
 getHookRunner ()
 
 getLoginSecurityLevel ()
 Tells if the special page does something security-sensitive and needs extra defense against a stolen account (e.g.
 
 getRobotPolicy ()
 Return the robot policy.
 
 getSpecialPageFactory ()
 
 outputHeader ( $summaryMessageKey='')
 Outputs a summary message on top of special pages Per default the message key is the canonical name of the special page May be overridden, i.e.
 
 prefixSearchString ( $search, $limit, $offset, SearchEngineFactory $searchEngineFactory=null)
 Perform a regular substring search for prefixSearchSubpages.
 
 setAuthManager (AuthManager $authManager)
 Set the injected AuthManager from the special page constructor.
 
 setHeaders ()
 Sets headers - this should be called from the execute() method of all derived classes!
 
 setReauthPostData (array $data)
 Record preserved POST data after a reauthentication.
 
 useTransactionalTimeLimit ()
 Call wfTransactionalTimeLimit() if this request was POSTed.
 

Additional Inherited Members

- Static Protected Member Functions inherited from MediaWiki\SpecialPage\SpecialPage
static prefixSearchArray ( $search, $limit, array $subpages, $offset)
 Helper function for implementations of prefixSearchSubpages() that filter the values in memory (as opposed to making a query).
 
- Protected Attributes inherited from MediaWiki\SpecialPage\ChangesListSpecialPage
ChangesListFilterGroup[] $filterGroups = []
 Filter groups, and their contained filters This is an associative array (with group name as key) of ChangesListFilterGroup objects.
 
FormOptions $rcOptions
 
string $rcSubpage
 
TempUserConfig $tempUserConfig
 
UserIdentityUtils $userIdentityUtils
 
- Protected Attributes inherited from MediaWiki\SpecialPage\SpecialPage
IContextSource $mContext
 Current request context.
 
bool $mIncludable
 Whether the special page can be included in an article.
 
bool $mIncluding
 Whether or not this special page is being included from an article.
 
string $mName
 The canonical name of this special page Also used as the message key for the default.
 
string $mRestriction
 Minimum user level required to access this page, or "" for anyone.
 

Detailed Description

A special page that lists last changes made to the wiki, limited to user-defined list of titles.

Definition at line 61 of file SpecialWatchlist.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Specials\SpecialWatchlist::__construct ( WatchedItemStoreInterface $watchedItemStore,
WatchlistManager $watchlistManager,
UserOptionsLookup $userOptionsLookup,
ChangeTagsStore $changeTagsStore,
UserIdentityUtils $userIdentityUtils,
TempUserConfig $tempUserConfig )
Parameters
WatchedItemStoreInterface$watchedItemStore
WatchlistManager$watchlistManager
UserOptionsLookup$userOptionsLookup

Definition at line 86 of file SpecialWatchlist.php.

References MediaWiki\SpecialPage\ChangesListSpecialPage\$tempUserConfig, and MediaWiki\SpecialPage\ChangesListSpecialPage\$userIdentityUtils.

Member Function Documentation

◆ checkStructuredFilterUiEnabled()

static MediaWiki\Specials\SpecialWatchlist::checkStructuredFilterUiEnabled ( UserIdentity $user)
static

Static method to check whether StructuredFilter UI is enabled for the given user.

Since
1.31
Parameters
UserIdentity$user
Returns
bool

Reimplemented from MediaWiki\SpecialPage\ChangesListSpecialPage.

Definition at line 177 of file SpecialWatchlist.php.

References MediaWiki\MediaWikiServices\getInstance().

Referenced by MediaWiki\Preferences\DefaultPreferencesFactory\watchlistPreferences().

◆ countItems()

MediaWiki\Specials\SpecialWatchlist::countItems ( )
protected

Count the number of paired items on a user's watchlist.

The assumption made here is that when a subject page is watched a talk page is also watched. Hence the number of individual items is halved.

Returns
int

Definition at line 980 of file SpecialWatchlist.php.

References getUser().

◆ doesWrites()

MediaWiki\Specials\SpecialWatchlist::doesWrites ( )

Indicates whether this special page may perform database writes.

Stability: stable
to override
Returns
bool
Since
1.27

Reimplemented from MediaWiki\SpecialPage\SpecialPage.

Definition at line 107 of file SpecialWatchlist.php.

◆ doHeader()

MediaWiki\Specials\SpecialWatchlist::doHeader ( $opts,
$numRows )

Set the text to be displayed above the changes.

Parameters
FormOptions$opts
int$numRowsNumber of rows in the result to show after this header

Reimplemented from MediaWiki\SpecialPage\ChangesListSpecialPage.

Definition at line 685 of file SpecialWatchlist.php.

References getUser(), wfScript(), and wfTimestampNow().

◆ doMainQuery()

MediaWiki\Specials\SpecialWatchlist::doMainQuery ( $tables,
$fields,
$conds,
$query_options,
$join_conds,
FormOptions $opts )
protected

Process the query.

Parameters
array$tablesArray of tables; see IReadableDatabase::select $table
array$fieldsArray of fields; see IReadableDatabase::select $vars
array$condsArray of conditions; see IReadableDatabase::select $conds
array$query_optionsArray of query options; see IReadableDatabase::select $options
array$join_condsArray of join conditions; see IReadableDatabase::select $join_conds
FormOptions$opts
Returns
bool|IResultWrapper Result or false

Reimplemented from MediaWiki\SpecialPage\ChangesListSpecialPage.

Definition at line 413 of file SpecialWatchlist.php.

References MediaWiki\SpecialPage\ChangesListSpecialPage\areFiltersInConflict(), MediaWiki\SpecialPage\SpecialPage\getAuthority(), MediaWiki\SpecialPage\SpecialPage\getConfig(), MediaWiki\SpecialPage\ChangesListSpecialPage\getDB(), MediaWiki\SpecialPage\SpecialPage\getUser(), LIST_OR, MediaWiki\MainConfigNames\MaxExecutionTimeForExpensiveQueries, RC_LOG, MediaWiki\SpecialPage\ChangesListSpecialPage\runMainQueryHook(), and MediaWiki\MainConfigNames\WatchlistExpiry.

◆ execute()

◆ fetchOptionsFromRequest()

MediaWiki\Specials\SpecialWatchlist::fetchOptionsFromRequest ( $opts)
protected

Fetch values for a FormOptions object from the WebRequest associated with this instance.

Maps old pre-1.23 request parameters Watchlist used to use (different from Recentchanges' ones) to the current ones.

Parameters
FormOptions$opts
Returns
FormOptions

Reimplemented from MediaWiki\SpecialPage\ChangesListSpecialPage.

Definition at line 368 of file SpecialWatchlist.php.

References $params, MediaWiki\SpecialPage\ChangesListSpecialPage\getLegacyShowHideFilters(), and MediaWiki\SpecialPage\SpecialPage\getRequest().

◆ getAssociatedNavigationLinks()

MediaWiki\Specials\SpecialWatchlist::getAssociatedNavigationLinks ( )

Return an array of strings representing page titles that are discoverable to end users via UI.

Since
1.39
Stability: stable
to call or override
Returns
string[] strings representing page titles that can be rendered by skins if required.

Reimplemented from MediaWiki\SpecialPage\SpecialPage.

Definition at line 648 of file SpecialWatchlist.php.

◆ getCollapsedPreferenceName()

MediaWiki\Specials\SpecialWatchlist::getCollapsedPreferenceName ( )
protected
Returns
string

Reimplemented from MediaWiki\SpecialPage\ChangesListSpecialPage.

Definition at line 1031 of file SpecialWatchlist.php.

◆ getDefaultDaysPreferenceName()

MediaWiki\Specials\SpecialWatchlist::getDefaultDaysPreferenceName ( )
protected
Returns
string

Reimplemented from MediaWiki\SpecialPage\ChangesListSpecialPage.

Definition at line 1024 of file SpecialWatchlist.php.

◆ getLimitPreferenceName()

MediaWiki\Specials\SpecialWatchlist::getLimitPreferenceName ( )
protected
Returns
string

Reimplemented from MediaWiki\SpecialPage\ChangesListSpecialPage.

Definition at line 1010 of file SpecialWatchlist.php.

◆ getSavedQueriesPreferenceName()

MediaWiki\Specials\SpecialWatchlist::getSavedQueriesPreferenceName ( )
protected
Returns
string

Reimplemented from MediaWiki\SpecialPage\ChangesListSpecialPage.

Definition at line 1017 of file SpecialWatchlist.php.

◆ getShortDescription()

MediaWiki\Specials\SpecialWatchlist::getShortDescription ( string $path = '')

Similar to getDescription but takes into account sub pages and designed for display in tabs.

Since
1.39
Stability: stable
to override if special page has complex parameter handling. Use default message keys where possible.
Parameters
string$path(optional)
Returns
string

Reimplemented from MediaWiki\SpecialPage\SpecialPage.

Definition at line 675 of file SpecialWatchlist.php.

◆ getShortDescriptionHelper()

static MediaWiki\Specials\SpecialWatchlist::getShortDescriptionHelper ( SpecialPage $specialPage,
string $path = '' )
static
Parameters
SpecialPage$specialPage
string$path
Returns
string

Definition at line 657 of file SpecialWatchlist.php.

References $path, and MediaWiki\SpecialPage\SpecialPage\msg().

◆ getSubpagesForPrefixSearch()

MediaWiki\Specials\SpecialWatchlist::getSubpagesForPrefixSearch ( )

Return an array of subpages that this special page will accept.

See also
also SpecialEditWatchlist::getSubpagesForPrefixSearch
Returns
string[] subpages

Reimplemented from MediaWiki\SpecialPage\SpecialPage.

Definition at line 189 of file SpecialWatchlist.php.

◆ isChangeEffectivelySeen()

MediaWiki\Specials\SpecialWatchlist::isChangeEffectivelySeen ( RecentChange $rc)
protected
Parameters
RecentChange$rc
Returns
bool User viewed the revision or a newer one

Definition at line 989 of file SpecialWatchlist.php.

References RecentChange\getAttribute().

Referenced by MediaWiki\Specials\SpecialWatchlist\outputChangesList(), and MediaWiki\Specials\SpecialWatchlist\registerFilters().

◆ outputChangesList()

◆ outputFeedLinks()

MediaWiki\Specials\SpecialWatchlist::outputFeedLinks ( )

◆ registerFilters()

MediaWiki\Specials\SpecialWatchlist::registerFilters ( )
protected

Register all filters and their groups (including those from hooks), plus handle conflicts and defaults.You might want to customize these in the same method, in subclasses. You can call getFilterGroup to access a group, and (on the group) getFilter to access a filter, then make necessary modfications to the filter or group (e.g. with setDefault).

Reimplemented from MediaWiki\SpecialPage\ChangesListSpecialPage.

Definition at line 212 of file SpecialWatchlist.php.

References MediaWiki\SpecialPage\ChangesListSpecialPage\getFilterGroup(), MediaWiki\SpecialPage\SpecialPage\getHookRunner(), MediaWiki\SpecialPage\SpecialPage\getUser(), MediaWiki\Specials\SpecialWatchlist\isChangeEffectivelySeen(), MediaWiki\SpecialPage\ChangesListSpecialPage\isStructuredFilterUiEnabled(), LIST_AND, LIST_OR, Wikimedia\Rdbms\Platform\ISQLPlatform\makeList(), RC_LOG, and MediaWiki\SpecialPage\ChangesListSpecialPage\registerFilterGroup().

◆ setTopText()

MediaWiki\Specials\SpecialWatchlist::setTopText ( FormOptions $opts)

Send the text to be displayed before the options.

Should use $this->getOutput()->addWikiTextAsInterface() or similar methods to print the text.

Parameters
FormOptions$opts

Reimplemented from MediaWiki\SpecialPage\ChangesListSpecialPage.

Definition at line 900 of file SpecialWatchlist.php.

References MediaWiki\Html\FormOptions\getChangedValues(), and getUser().

◆ showHideCheck()

MediaWiki\Specials\SpecialWatchlist::showHideCheck ( $options,
$message,
$name,
$value,
$inStructuredUi )
protected

Definition at line 952 of file SpecialWatchlist.php.

◆ transformFilterDefinition()

MediaWiki\Specials\SpecialWatchlist::transformFilterDefinition ( array $filterDefinition)
protected

Transforms filter definition to prepare it for constructor.See overrides of this method as well.

Parameters
array$filterDefinitionOriginal filter definition
Returns
array Transformed definition

Reimplemented from MediaWiki\SpecialPage\ChangesListSpecialPage.

Definition at line 200 of file SpecialWatchlist.php.


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