MediaWiki master
ChangesList Class Reference

Base class for lists of recent changes shown on special pages. More...

Inherits MediaWiki\Context\ContextSource.

Inherited by EnhancedChangesList, and OldChangesList.

Collaboration diagram for ChangesList:

Public Member Functions

 __construct ( $context, array $filterGroups=[])
 
 beginRecentChangesList ()
 Returns text for the start of the tabular part of RC.
 
 endRecentChangesList ()
 Returns text for the end of RC.
 
 formatCharacterDifference (RecentChange $old, RecentChange $new=null)
 Format the character difference of one or several changes.
 
 getArticleLink (&$rc, $unpatrolled, $watched)
 Get the HTML link to the changed page, possibly with a prefix from hook handlers, and a suffix for temporarily watched items.
 
 getRollback (RecentChange $rc)
 
 getTags (RecentChange $rc, array &$classes)
 
 getTimestamp ( $rc)
 Get the timestamp from $rc formatted with current user's settings and a separator.
 
 getWatchlistExpiry (RecentChange $recentChange)
 Get HTML to display the clock icon for watched items that have a watchlist expiry time.
 
 initChangesListRows ( $rows)
 
 insertComment ( $rc)
 Insert a formatted comment.
 
 insertDateHeader (&$s, $rc_timestamp)
 
 insertDiffHist (&$s, &$rc, $unpatrolled=null)
 
 insertExtra (&$s, &$rc, &$classes)
 
 insertLog (&$s, $title, $logtype, $useParentheses=true)
 
 insertLogEntry ( $rc)
 Insert a formatted action.
 
 insertRollback (&$s, &$rc)
 Insert a rollback link.
 
 insertTags (&$s, &$rc, &$classes)
 
 insertTimestamp (&$s, $rc)
 Insert time timestamp string from $rc into $s.
 
 insertUserRelatedLinks (&$s, &$rc)
 Insert links to user page, user talk page and eventually a blocking link.
 
 isWatchlist ()
 
 recentChangesFlags ( $flags, $nothing="\u{00A0}")
 Returns the appropriate flags for new page, minor change and patrolling.
 
 recentChangesLine (&$rc, $watched=false, $linenumber=null)
 Format a line.
 
 setChangeLinePrefixer (callable $prefixer)
 Sets the callable that generates a change line prefix added to the beginning of each line.
 
 setWatchlistDivs ( $value=true)
 Sets the list to use a "<li class='watchlist-(namespace)-(page)'>" tag.
 
- Public Member Functions inherited from MediaWiki\Context\ContextSource
 canUseWikiPage ()
 Check whether a WikiPage object can be get with getWikiPage().
 
 exportSession ()
 Export the resolved user IP, HTTP headers, user ID, and session ID.
 
 getActionName ()
 Get the action name for the current web request.
 
 getAuthority ()
 
 getConfig ()
 
 getContext ()
 Get the base IContextSource object.
 
 getCsrfTokenSet ()
 Get a repository to obtain and match CSRF tokens.
 
 getLanguage ()
 
 getLanguageCode ()
 
 getOutput ()
 
 getRequest ()
 
 getSkin ()
 
 getTiming ()
 
 getTitle ()
 
 getUser ()
 
 getWikiPage ()
 Get the WikiPage object.
 
 msg ( $key,... $params)
 Get a Message object with context set Parameters are the same as wfMessage()
 
 setContext (IContextSource $context)
 

Static Public Member Functions

static flag ( $flag, IContextSource $context=null)
 Make an "<abbr>" element for a given change flag.
 
static isDeleted ( $rc, $field)
 Determine if said field of a revision is hidden.
 
static isUnpatrolled ( $rc, User $user)
 
static newFromContext (IContextSource $context, array $groups=[])
 Fetch an appropriate changes list class for the specified context Some users might want to use an enhanced list format, for instance.
 
static revDateLink (RevisionRecord $rev, Authority $performer, Language $lang, $title=null, $className='')
 Render the date and time of a revision in the current user language based on whether the user is able to view this information or not.
 
static showCharacterDifference ( $old, $new, IContextSource $context=null)
 Show formatted char difference.
 
static userCan ( $rc, $field, Authority $performer=null)
 Determine if the current user is allowed to view a particular field of this revision, if it's marked as deleted.
 

Public Attributes

const CSS_CLASS_PREFIX = 'mw-changeslist-'
 

Protected Member Functions

 getDataAttributes (RecentChange $rc)
 Get recommended data attributes for a change line.
 
 getHighlightsContainerDiv ()
 Get the container for highlights that are used in the new StructuredFilters system.
 
 getHTMLClasses ( $rc, $watched)
 Get an array of default HTML class attributes for the change.
 
 getHTMLClassesForFilters ( $rc)
 Get an array of CSS classes attributed to filters for this row.
 
 isCategorizationWithoutRevision ( $rcObj)
 Determines whether a revision is linked to this change; this may not be the case when the categorization wasn't done by an edit but a conditional parser function.
 
 maybeWatchedLink ( $link, $watched=false)
 
 numberofWatchingusers ( $count)
 Returns the string which indicates the number of watching users.
 
 showAsUnpatrolled (RecentChange $rc)
 

Protected Attributes

callable $changeLinePrefixer
 
RowCommentFormatter $commentFormatter
 
ChangesListFilterGroup[] $filterGroups
 
string[] $formattedComments
 Comments indexed by rc_id.
 
string $lastdate
 
LinkRenderer $linkRenderer
 
string[] $message
 
array $rc_cache
 
int $rcCacheIndex
 
bool $rclistOpen
 
int $rcMoveIndex
 
MapCacheLRU $tagsCache
 
MapCacheLRU $userLinkCache
 
bool $watchlist = false
 
MapCacheLRU $watchMsgCache
 

Detailed Description

Base class for lists of recent changes shown on special pages.

This is used via ChangesListSpecialPage by recent changes (SpecialRecentChanges), related changes (SpecialRecentChangesLinked), and watchlist (SpecialWatchlist).

Definition at line 52 of file ChangesList.php.

Constructor & Destructor Documentation

◆ __construct()

ChangesList::__construct ( $context,
array $filterGroups = [] )
Parameters
IContextSource$context
ChangesListFilterGroup[]$filterGroupsArray of ChangesListFilterGroup objects (currently optional)

Reimplemented in EnhancedChangesList.

Definition at line 114 of file ChangesList.php.

References MediaWiki\Context\ContextSource\setContext().

Member Function Documentation

◆ beginRecentChangesList()

ChangesList::beginRecentChangesList ( )

Returns text for the start of the tabular part of RC.

Returns
string

Reimplemented in EnhancedChangesList.

Definition at line 352 of file ChangesList.php.

References MediaWiki\Context\ContextSource\getOutput().

◆ endRecentChangesList()

ChangesList::endRecentChangesList ( )

Returns text for the end of RC.

Returns
string

Reimplemented in EnhancedChangesList.

Definition at line 467 of file ChangesList.php.

◆ flag()

static ChangesList::flag ( $flag,
IContextSource $context = null )
static

Make an "<abbr>" element for a given change flag.

The flag indicating a new page, minor edit, bot edit, or unpatrolled edit. In English it typically contains "N", "m", "b", or "!".

Styling for these flags is provided through mediawiki.interface.helpers.styles.

Parameters
string$flagOne key of $wgRecentChangesFlags
IContextSource | null$context
Returns
string HTML

Definition at line 318 of file ChangesList.php.

References MediaWiki\Context\ContextSource\setContext(), and wfMessage().

◆ formatCharacterDifference()

ChangesList::formatCharacterDifference ( RecentChange $old,
RecentChange $new = null )

Format the character difference of one or several changes.

Parameters
RecentChange$old
RecentChange | null$newLast change to use, if not provided, $old will be used
Returns
string HTML fragment

Definition at line 447 of file ChangesList.php.

References MediaWiki\Context\ContextSource\getContext().

Referenced by EnhancedChangesList\getLineData(), EnhancedChangesList\recentChangesBlockGroup(), and EnhancedChangesList\recentChangesBlockLine().

◆ getArticleLink()

ChangesList::getArticleLink ( & $rc,
$unpatrolled,
$watched )

Get the HTML link to the changed page, possibly with a prefix from hook handlers, and a suffix for temporarily watched items.

Parameters
RecentChange&$rc
bool$unpatrolled
bool$watched
Returns
string HTML
Since
1.26

Definition at line 617 of file ChangesList.php.

References $params, MediaWiki\Context\ContextSource\getLanguage(), and getWatchlistExpiry().

Referenced by EnhancedChangesList\recentChangesBlockGroup(), and EnhancedChangesList\recentChangesBlockLine().

◆ getDataAttributes()

ChangesList::getDataAttributes ( RecentChange $rc)
protected

Get recommended data attributes for a change line.

Parameters
RecentChange$rc
Returns
string[] attribute name => value

Definition at line 1046 of file ChangesList.php.

References RecentChange\getAttribute().

Referenced by EnhancedChangesList\getLineData(), EnhancedChangesList\recentChangesBlockLine(), and OldChangesList\recentChangesLine().

◆ getHighlightsContainerDiv()

ChangesList::getHighlightsContainerDiv ( )
protected

Get the container for highlights that are used in the new StructuredFilters system.

Returns
string HTML structure of the highlight container div

Definition at line 177 of file ChangesList.php.

Referenced by EnhancedChangesList\recentChangesBlockLine(), and OldChangesList\recentChangesLine().

◆ getHTMLClasses()

ChangesList::getHTMLClasses ( $rc,
$watched )
protected

Get an array of default HTML class attributes for the change.

Parameters
RecentChange | RCCacheEntry$rc
string | bool$watchedOptionally timestamp for adding watched class
Returns
string[] List of CSS class names

Definition at line 255 of file ChangesList.php.

References getHTMLClassesForFilters().

Referenced by EnhancedChangesList\getLineData(), EnhancedChangesList\recentChangesBlockLine(), and OldChangesList\recentChangesLine().

◆ getHTMLClassesForFilters()

ChangesList::getHTMLClassesForFilters ( $rc)
protected

Get an array of CSS classes attributed to filters for this row.

Used for highlighting in the front-end.

Parameters
RecentChange$rc
Returns
string[] Array of CSS classes

Definition at line 286 of file ChangesList.php.

Referenced by getHTMLClasses(), and EnhancedChangesList\recentChangesBlockGroup().

◆ getRollback()

ChangesList::getRollback ( RecentChange $rc)
Parameters
RecentChange$rc
Returns
string
Since
1.26

Definition at line 945 of file ChangesList.php.

Referenced by EnhancedChangesList\getLineData(), and EnhancedChangesList\recentChangesBlockLine().

◆ getTags()

ChangesList::getTags ( RecentChange $rc,
array & $classes )
Parameters
RecentChange$rc
string[]&$classes
Returns
string
Since
1.26

Definition at line 988 of file ChangesList.php.

Referenced by EnhancedChangesList\getLineData(), EnhancedChangesList\recentChangesBlockGroup(), and EnhancedChangesList\recentChangesBlockLine().

◆ getTimestamp()

ChangesList::getTimestamp ( $rc)

Get the timestamp from $rc formatted with current user's settings and a separator.

Parameters
RecentChange$rc
Deprecated
since 1.43; use revDateLink instead.
Returns
string HTML fragment

Definition at line 694 of file ChangesList.php.

◆ getWatchlistExpiry()

ChangesList::getWatchlistExpiry ( RecentChange $recentChange)

Get HTML to display the clock icon for watched items that have a watchlist expiry time.

Since
1.35
Parameters
RecentChange$recentChange
Returns
string The HTML to display an indication of the expiry time.

Definition at line 661 of file ChangesList.php.

References MediaWiki\Context\ContextSource\getUser().

Referenced by getArticleLink().

◆ initChangesListRows()

ChangesList::initChangesListRows ( $rows)
Parameters
IResultWrapper | stdClass[]$rows

Definition at line 369 of file ChangesList.php.

◆ insertComment()

ChangesList::insertComment ( $rc)

Insert a formatted comment.

Parameters
RecentChange$rc
Returns
string

Definition at line 793 of file ChangesList.php.

Referenced by EnhancedChangesList\getLineData(), and EnhancedChangesList\recentChangesBlockLine().

◆ insertDateHeader()

ChangesList::insertDateHeader ( & $s,
$rc_timestamp )
Parameters
string&$sHTML to update
mixed$rc_timestamp

Definition at line 523 of file ChangesList.php.

References MediaWiki\Context\ContextSource\getLanguage(), and MediaWiki\Context\ContextSource\getUser().

Referenced by OldChangesList\recentChangesLine().

◆ insertDiffHist()

ChangesList::insertDiffHist ( & $s,
& $rc,
$unpatrolled = null )
Parameters
string&$sHTML to update
RecentChange&$rc
bool | null$unpatrolledUnused variable, since 1.27.

Definition at line 562 of file ChangesList.php.

References MediaWiki\Context\ContextSource\getAuthority(), RC_CATEGORIZE, RC_LOG, and RC_NEW.

◆ insertExtra()

ChangesList::insertExtra ( & $s,
& $rc,
& $classes )

Definition at line 994 of file ChangesList.php.

◆ insertLog()

ChangesList::insertLog ( & $s,
$title,
$logtype,
$useParentheses = true )
Parameters
string&$sHTML to update
Title$title
string$logtype
bool$useParentheses(optional) Wrap log entry in parentheses where needed

Definition at line 542 of file ChangesList.php.

References MediaWiki\Context\ContextSource\getContext(), and MediaWiki\Context\ContextSource\msg().

◆ insertLogEntry()

ChangesList::insertLogEntry ( $rc)

Insert a formatted action.

Parameters
RecentChange$rc
Returns
string

Definition at line 769 of file ChangesList.php.

Referenced by EnhancedChangesList\getLineData(), and EnhancedChangesList\recentChangesBlockLine().

◆ insertRollback()

ChangesList::insertRollback ( & $s,
& $rc )

Insert a rollback link.

Parameters
string&$s
RecentChange&$rc

Definition at line 891 of file ChangesList.php.

◆ insertTags()

ChangesList::insertTags ( & $s,
& $rc,
& $classes )
Parameters
string&$s
RecentChange&$rc
string[]&$classes

Definition at line 956 of file ChangesList.php.

References ChangeTags\formatSummaryRow().

◆ insertTimestamp()

ChangesList::insertTimestamp ( & $s,
$rc )

Insert time timestamp string from $rc into $s.

Parameters
string&$sHTML to update
RecentChange$rc

Definition at line 721 of file ChangesList.php.

References getTimestamp().

◆ insertUserRelatedLinks()

ChangesList::insertUserRelatedLinks ( & $s,
& $rc )

Insert links to user page, user talk page and eventually a blocking link.

Parameters
string&$sHTML to update
RecentChange&$rc

Definition at line 731 of file ChangesList.php.

◆ isCategorizationWithoutRevision()

ChangesList::isCategorizationWithoutRevision ( $rcObj)
protected

Determines whether a revision is linked to this change; this may not be the case when the categorization wasn't done by an edit but a conditional parser function.

Since
1.27
Parameters
RecentChange | RCCacheEntry$rcObj
Returns
bool

Definition at line 1036 of file ChangesList.php.

References RC_CATEGORIZE.

Referenced by EnhancedChangesList\getLineData(), and EnhancedChangesList\recentChangesBlockLine().

◆ isDeleted()

static ChangesList::isDeleted ( $rc,
$field )
static

Determine if said field of a revision is hidden.

Parameters
RCCacheEntry | RecentChange$rc
int$fieldOne of DELETED_* bitfield constants
Returns
bool

Definition at line 849 of file ChangesList.php.

◆ isUnpatrolled()

static ChangesList::isUnpatrolled ( $rc,
User $user )
static
Parameters
stdClass | RecentChange$rcDatabase row from recentchanges or a RecentChange object
User$user
Returns
bool

Definition at line 1007 of file ChangesList.php.

References RC_NEW, MediaWiki\User\User\useFilePatrol(), MediaWiki\User\User\useNPPatrol(), and MediaWiki\User\User\useRCPatrol().

◆ isWatchlist()

ChangesList::isWatchlist ( )
Returns
bool True when setWatchlistDivs has been called
Since
1.23

Definition at line 208 of file ChangesList.php.

◆ maybeWatchedLink()

ChangesList::maybeWatchedLink ( $link,
$watched = false )
protected
Parameters
string$link
bool$watched
Returns
string

Definition at line 877 of file ChangesList.php.

Referenced by EnhancedChangesList\recentChangesBlockGroup().

◆ newFromContext()

static ChangesList::newFromContext ( IContextSource $context,
array $groups = [] )
static

Fetch an appropriate changes list class for the specified context Some users might want to use an enhanced list format, for instance.

Parameters
IContextSource$context
array$groupsArray of ChangesListFilterGroup objects (currently optional)
Returns
ChangesList

Definition at line 136 of file ChangesList.php.

References MediaWiki\User\Options\UserOptionsLookup\getBoolOption(), MediaWiki\Context\IContextSource\getRequest(), MediaWiki\Context\IContextSource\getSkin(), and MediaWiki\Context\IContextSource\getUser().

◆ numberofWatchingusers()

ChangesList::numberofWatchingusers ( $count)
protected

Returns the string which indicates the number of watching users.

Parameters
int$countNumber of user watching a page
Returns
string

Definition at line 824 of file ChangesList.php.

Referenced by EnhancedChangesList\recentChangesBlockGroup(), and EnhancedChangesList\recentChangesBlockLine().

◆ recentChangesFlags()

ChangesList::recentChangesFlags ( $flags,
$nothing = "\u{00A0}" )

Returns the appropriate flags for new page, minor change and patrolling.

Parameters
array$flagsAssociative array of 'flag' => Bool
string$nothingTo use for empty space
Returns
string

Definition at line 234 of file ChangesList.php.

References MediaWiki\Context\ContextSource\getConfig(), and MediaWiki\Context\ContextSource\getContext().

Referenced by EnhancedChangesList\getLineData(), EnhancedChangesList\recentChangesBlockGroup(), and EnhancedChangesList\recentChangesBlockLine().

◆ recentChangesLine()

ChangesList::recentChangesLine ( & $rc,
$watched = false,
$linenumber = null )

Format a line.

Since
1.27
Parameters
RecentChange&$rcPassed by reference
bool$watched(default false)
int | null$linenumber(default null)
Returns
string|bool

Reimplemented in EnhancedChangesList, and OldChangesList.

Definition at line 167 of file ChangesList.php.

◆ revDateLink()

static ChangesList::revDateLink ( RevisionRecord $rev,
Authority $performer,
Language $lang,
$title = null,
$className = '' )
static

Render the date and time of a revision in the current user language based on whether the user is able to view this information or not.

Parameters
RevisionRecord$rev
Authority$performer
Language$lang
Title | null$title(optional) where Title does not match the Title associated with the RevisionRecord
string$className(optional) to append to .mw-changelist-date element for access to the associated timestamp string.
Access: internal
For usage by Pager classes only (e.g. HistoryPager, NewPagesPager and ContribsPager).
Returns
string HTML

Definition at line 487 of file ChangesList.php.

References MediaWiki\Revision\RevisionRecord\getId(), MediaWiki\Revision\RevisionRecord\getPageAsLinkTarget(), MediaWiki\Revision\RevisionRecord\getTimestamp(), MediaWiki\Permissions\Authority\getUser(), MediaWiki\Revision\RevisionRecord\isDeleted(), and MediaWiki\Revision\RevisionRecord\userCan().

◆ setChangeLinePrefixer()

ChangesList::setChangeLinePrefixer ( callable $prefixer)

Sets the callable that generates a change line prefix added to the beginning of each line.

Parameters
callable$prefixerCallable to run that generates the change line prefix. Takes three parameters: a RecentChange object, a ChangesList object, and whether the current entry is a grouped entry.

Definition at line 1075 of file ChangesList.php.

◆ setWatchlistDivs()

ChangesList::setWatchlistDivs ( $value = true)

Sets the list to use a "<li class='watchlist-(namespace)-(page)'>" tag.

Parameters
bool$value

Definition at line 200 of file ChangesList.php.

◆ showAsUnpatrolled()

ChangesList::showAsUnpatrolled ( RecentChange $rc)
protected

Definition at line 998 of file ChangesList.php.

◆ showCharacterDifference()

static ChangesList::showCharacterDifference ( $old,
$new,
IContextSource $context = null )
static

Show formatted char difference.

Needs the css module 'mediawiki.special.changeslist' to style output

Parameters
int$oldNumber of bytes
int$newNumber of bytes
IContextSource | null$context
Returns
string

Definition at line 393 of file ChangesList.php.

◆ userCan()

static ChangesList::userCan ( $rc,
$field,
Authority $performer = null )
static

Determine if the current user is allowed to view a particular field of this revision, if it's marked as deleted.

Parameters
RCCacheEntry | RecentChange$rc
int$field
Authority | null$performerto check permissions against. If null, the global RequestContext's User is assumed instead.
Returns
bool

Definition at line 862 of file ChangesList.php.

References RC_LOG.

Referenced by EnhancedChangesList\getLineData().

Member Data Documentation

◆ $changeLinePrefixer

callable ChangesList::$changeLinePrefixer
protected

Definition at line 73 of file ChangesList.php.

◆ $commentFormatter

RowCommentFormatter ChangesList::$commentFormatter
protected

Definition at line 86 of file ChangesList.php.

◆ $filterGroups

ChangesListFilterGroup [] ChangesList::$filterGroups
protected

Definition at line 96 of file ChangesList.php.

Referenced by EnhancedChangesList\__construct().

◆ $formattedComments

string [] ChangesList::$formattedComments
protected

Comments indexed by rc_id.

Definition at line 91 of file ChangesList.php.

◆ $lastdate

string ChangesList::$lastdate
protected

Definition at line 60 of file ChangesList.php.

◆ $linkRenderer

LinkRenderer ChangesList::$linkRenderer
protected

Definition at line 81 of file ChangesList.php.

◆ $message

string [] ChangesList::$message
protected

Definition at line 62 of file ChangesList.php.

◆ $rc_cache

array ChangesList::$rc_cache
protected

Definition at line 64 of file ChangesList.php.

◆ $rcCacheIndex

int ChangesList::$rcCacheIndex
protected

Definition at line 66 of file ChangesList.php.

◆ $rclistOpen

bool ChangesList::$rclistOpen
protected

Definition at line 68 of file ChangesList.php.

◆ $rcMoveIndex

int ChangesList::$rcMoveIndex
protected

Definition at line 70 of file ChangesList.php.

◆ $tagsCache

MapCacheLRU ChangesList::$tagsCache
protected

Definition at line 101 of file ChangesList.php.

◆ $userLinkCache

MapCacheLRU ChangesList::$userLinkCache
protected

Definition at line 106 of file ChangesList.php.

◆ $watchlist

bool ChangesList::$watchlist = false
protected

Definition at line 58 of file ChangesList.php.

◆ $watchMsgCache

MapCacheLRU ChangesList::$watchMsgCache
protected

Definition at line 76 of file ChangesList.php.

◆ CSS_CLASS_PREFIX

const ChangesList::CSS_CLASS_PREFIX = 'mw-changeslist-'

Definition at line 55 of file ChangesList.php.


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