MediaWiki REL1_35
LogFormatter Class Reference

Implements the default log formatting. More...

Inheritance diagram for LogFormatter:
Collaboration diagram for LogFormatter:

Public Member Functions

 canViewLogType ()
 Check if a log item type can be displayed.
 
 formatParametersForApi ()
 Format parameters for API output.
 
 getActionLinks ()
 Returns extra links that comes after the action text, like "revert", etc.
 
 getActionText ()
 Gets the log action, including username.
 
 getComment ()
 Gets the user provided comment Stable to override.
 
 getIRCActionComment ()
 Even uglier hack to maintain backwards compatibility with IRC bots (T36508).
 
 getIRCActionText ()
 Even uglier hack to maintain backwards compatibility with IRC bots (T36508).
 
 getLinkRenderer ()
 
 getMessageParametersForTesting ()
 
 getPerformerElement ()
 Provides the name of the user who performed the log action.
 
 getPlainActionText ()
 Ugly hack to produce plaintext version of the message.
 
 getPreloadTitles ()
 Stable to override.
 
 setAudience ( $audience)
 Set the visibility restrictions for displaying content.
 
 setContext (IContextSource $context)
 Replace the default context.
 
 setLinkRenderer (LinkRenderer $linkRenderer)
 
 setShowUserToolLinks ( $value)
 If set to true, will produce user tool links after the user name.
 

Static Public Member Functions

static newFromEntry (LogEntry $entry)
 Constructs a new formatter suitable for given entry.
 
static newFromRow ( $row)
 Handy shortcut for constructing a formatter directly from database row.
 

Public Attributes

IContextSource $context
 Context for logging.
 
const FOR_PUBLIC = 1
 
const FOR_THIS_USER = 2
 

Protected Member Functions

 __construct (LogEntry $entry)
 Stable to call.
 
 canView ( $field)
 Check if a log item can be displayed.
 
 extractParameters ()
 Extracts the optional extra parameters for use in action messages.
 
 formatParameterValue ( $type, $value)
 Formats parameters values dependent to their type.
 
 formatParameterValueForApi ( $name, $type, $value)
 Format a single parameter value for API output.
 
 getActionMessage ()
 Returns a sentence describing the log action.
 
 getMessageKey ()
 Returns a key to be used for formatting the action sentence.
 
 getMessageParameters ()
 Formats parameters intented for action message from array of all parameters.
 
 getParametersForApi ()
 Get the array of parameters, converted from legacy format if necessary.
 
 getRestrictedElement ( $message)
 Helper method for displaying restricted element.
 
 makePageLink (Title $title=null, $parameters=[], $html=null)
 Helper to make a link to the page, taking the plaintext value in consideration.
 
 makeUserLink (User $user, $toolFlags=0)
 
 msg ( $key,... $params)
 Shortcut for wfMessage which honors local context.
 
 styleRestricedElement ( $content)
 Helper method for styling restricted element.
 

Protected Attributes

int $audience = self::FOR_PUBLIC
 Constant for handling log_deleted.
 
LogEntryBase $entry
 
string $irctext = false
 
bool $linkFlood = false
 Whether to output user tool links.
 
array $parsedParameters
 
string $plaintext = false
 Set to true if we are constructing a message text that is going to be included in page history or send to IRC feed.
 

Private Attributes

LinkRenderer null $linkRenderer
 

Detailed Description

Implements the default log formatting.

Can be overridden by subclassing and setting:

$wgLogActionsHandlers['type/subtype'] = 'class'; or
$wgLogActionsHandlers['type/*'] = 'class';
$wgLogActionsHandlers
The same as above, but here values are names of classes, not messages.

Stable to extend

Since
1.19

Definition at line 40 of file LogFormatter.php.

Constructor & Destructor Documentation

◆ __construct()

LogFormatter::__construct ( LogEntry  $entry)
protected

Stable to call.

Parameters
LogEntry$entry

Definition at line 118 of file LogFormatter.php.

References $entry.

Member Function Documentation

◆ canView()

LogFormatter::canView (   $field)
protected

Check if a log item can be displayed.

Parameters
int$fieldLogPage::DELETED_* constant
Returns
bool

Definition at line 183 of file LogFormatter.php.

References canViewLogType().

Referenced by getActionText(), getComment(), getMessageParameters(), and getPerformerElement().

◆ canViewLogType()

LogFormatter::canViewLogType ( )

Check if a log item type can be displayed.

Returns
bool

Definition at line 167 of file LogFormatter.php.

References $type.

Referenced by canView().

◆ extractParameters()

◆ formatParametersForApi()

LogFormatter::formatParametersForApi ( )

Format parameters for API output.

The result array should generally map named keys to values. Index and type should be omitted, e.g. "4::foo" should be returned as "foo" in the output. Values should generally be unformatted.

Renames or removals of keys besides from the legacy numeric format to modern named style should be avoided. Any renames should be announced to the mediawiki-api-announce mailing list.

Since
1.25 Stable to override
Returns
array

Reimplemented in BlockLogFormatter, DeleteLogFormatter, ProtectLogFormatter, and RightsLogFormatter.

Definition at line 853 of file LogFormatter.php.

References formatParameterValueForApi(), getParametersForApi(), and wfLogWarning().

◆ formatParameterValue()

LogFormatter::formatParameterValue (   $type,
  $value 
)
protected

Formats parameters values dependent to their type.

Parameters
string$typeThe type of the value. Valid are currently:
  • - (empty) or plain: The value is returned as-is
  • raw: The value will be added to the log message as raw parameter (e.g. no escaping) Use this only if there is no other working type like user-link or title-link
  • msg: The value is a message-key, the output is the message in user language
  • msg-content: The value is a message-key, the output is the message in content language
  • user: The value is a user name, e.g. for GENDER
  • user-link: The value is a user name, returns a link for the user
  • title: The value is a page title, returns name of page
  • title-link: The value is a page title, returns link to this page
  • number: Format value as number
  • list: Format value as a comma-separated list
mixed$valueThe parameter value that should be formatted
Returns
string|array Formated value
Since
1.21

Definition at line 617 of file LogFormatter.php.

References $linkFlood, $title, $type, makePageLink(), makeUserLink(), msg(), User\newFromName(), Message\numParam(), Message\rawParam(), and setShowUserToolLinks().

Referenced by extractParameters().

◆ formatParameterValueForApi()

LogFormatter::formatParameterValueForApi (   $name,
  $type,
  $value 
)
protected

Format a single parameter value for API output.

Since
1.25
Parameters
string$name
string$type
string$value
Returns
array

Definition at line 883 of file LogFormatter.php.

References $title, $type, SpecialPage\getTitleFor(), msg(), User\newFromName(), and wfTimestamp().

Referenced by BlockLogFormatter\formatParametersForApi(), and formatParametersForApi().

◆ getActionLinks()

LogFormatter::getActionLinks ( )

Returns extra links that comes after the action text, like "revert", etc.

Stable to override

Returns
string

Reimplemented in BlockLogFormatter, ContentModelLogFormatter, DeleteLogFormatter, LegacyLogFormatter, MergeLogFormatter, MoveLogFormatter, and ProtectLogFormatter.

Definition at line 515 of file LogFormatter.php.

◆ getActionMessage()

LogFormatter::getActionMessage ( )
protected

Returns a sentence describing the log action.

Usually a Message object is returned, but old style log types and entries might return pre-escaped HTML string.

Returns
Message|string Pre-escaped HTML

Reimplemented in LegacyLogFormatter, and WikitextLogFormatter.

Definition at line 487 of file LogFormatter.php.

References getMessageKey(), getMessageParameters(), and msg().

Referenced by getActionText().

◆ getActionText()

LogFormatter::getActionText ( )

Gets the log action, including username.

Stable to override

Returns
string HTML phan-taint-check gets very confused by $this->plaintext, so disable.
-taint onlysafefor_html

Definition at line 462 of file LogFormatter.php.

References canView(), LogPage\DELETED_ACTION, getActionMessage(), getPerformerElement(), getRestrictedElement(), msg(), and styleRestricedElement().

Referenced by getPlainActionText().

◆ getComment()

LogFormatter::getComment ( )

Gets the user provided comment Stable to override.

Returns
string HTML

Reimplemented in LegacyLogFormatter, and NewUsersLogFormatter.

Definition at line 723 of file LogFormatter.php.

References canView(), Linker\commentBlock(), LogPage\DELETED_COMMENT, getRestrictedElement(), and styleRestricedElement().

◆ getIRCActionComment()

LogFormatter::getIRCActionComment ( )

Even uglier hack to maintain backwards compatibility with IRC bots (T36508).

See also
getActionText()
Returns
string Text

Definition at line 225 of file LogFormatter.php.

References getIRCActionText(), and wfMessage().

◆ getIRCActionText()

LogFormatter::getIRCActionText ( )

Even uglier hack to maintain backwards compatibility with IRC bots (T36508).

See also
getActionText()
Returns
string Text

Definition at line 246 of file LogFormatter.php.

References $entry, BlockLogFormatter\formatBlockFlags(), LogEntry\getParameters(), getPlainActionText(), LogEntry\getSubtype(), LogEntry\getTarget(), LogEntry\getTimestamp(), LogEntry\getType(), LogEntryBase\isLegacy(), wfMessage(), and wfTimestamp().

Referenced by getIRCActionComment().

◆ getLinkRenderer()

◆ getMessageKey()

LogFormatter::getMessageKey ( )
protected

Returns a key to be used for formatting the action sentence.

Default is logentry-TYPE-SUBTYPE for modern logs. Legacy log types will use custom keys, and subclasses can also alter the key depending on the entry itself. Stable to override

Returns
string Message key

Reimplemented in BlockLogFormatter, DeleteLogFormatter, ImportLogFormatter, MoveLogFormatter, PatrolLogFormatter, ProtectLogFormatter, RightsLogFormatter, and TagLogFormatter.

Definition at line 502 of file LogFormatter.php.

References $type.

Referenced by getActionMessage().

◆ getMessageParameters()

LogFormatter::getMessageParameters ( )
protected

Formats parameters intented for action message from array of all parameters.

There are three hardcoded parameters (array is zero-indexed, this list not):

  • 1: user name with premade link
  • 2: usable for gender magic function
  • 3: target page with premade link Stable to override
    Returns
    array

Reimplemented in BlockLogFormatter, ContentModelLogFormatter, DeleteLogFormatter, MergeLogFormatter, MoveLogFormatter, NewUsersLogFormatter, PageLangLogFormatter, PatrolLogFormatter, ProtectLogFormatter, RightsLogFormatter, and TagLogFormatter.

Definition at line 573 of file LogFormatter.php.

References $entry, $parsedParameters, canView(), LogPage\DELETED_USER, extractParameters(), LogEntry\getPerformer(), getPerformerElement(), LogEntry\getTarget(), makePageLink(), and Message\rawParam().

Referenced by getActionMessage(), and getMessageParametersForTesting().

◆ getMessageParametersForTesting()

LogFormatter::getMessageParametersForTesting ( )
Returns
array Output of getMessageParameters() for testing

Definition at line 821 of file LogFormatter.php.

References getMessageParameters().

◆ getParametersForApi()

LogFormatter::getParametersForApi ( )
protected

Get the array of parameters, converted from legacy format if necessary.

Since
1.25 Stable to override
Returns
array

Reimplemented in BlockLogFormatter, DeleteLogFormatter, MergeLogFormatter, MoveLogFormatter, PatrolLogFormatter, ProtectLogFormatter, RightsLogFormatter, and UploadLogFormatter.

Definition at line 834 of file LogFormatter.php.

Referenced by formatParametersForApi().

◆ getPerformerElement()

LogFormatter::getPerformerElement ( )

Provides the name of the user who performed the log action.

Used as part of log action message or standalone, depending which parts of the log entry has been hidden.

Returns
string

Definition at line 704 of file LogFormatter.php.

References canView(), LogPage\DELETED_USER, getRestrictedElement(), makeUserLink(), and styleRestricedElement().

Referenced by LegacyLogFormatter\getActionMessage(), getActionText(), and getMessageParameters().

◆ getPlainActionText()

LogFormatter::getPlainActionText ( )

Ugly hack to produce plaintext version of the message.

Usually you also want to set extraneous request context to avoid formatting for any particular user.

See also
getActionText()
Returns
string Plain text
-taint tainted

Definition at line 211 of file LogFormatter.php.

References getActionText().

Referenced by getIRCActionText().

◆ getPreloadTitles()

LogFormatter::getPreloadTitles ( )

Stable to override.

Returns
array Array of titles that should be preloaded with LinkBatch

Reimplemented in BlockLogFormatter, MergeLogFormatter, MoveLogFormatter, NewUsersLogFormatter, and ProtectLogFormatter.

Definition at line 814 of file LogFormatter.php.

◆ getRestrictedElement()

LogFormatter::getRestrictedElement (   $message)
protected

Helper method for displaying restricted element.

Parameters
string$message
Returns
string HTML or wiki text
-taint onlysafefor_html

Definition at line 744 of file LogFormatter.php.

References $content, and msg().

Referenced by getActionText(), getComment(), and getPerformerElement().

◆ makePageLink()

LogFormatter::makePageLink ( Title  $title = null,
  $parameters = [],
  $html = null 
)
protected

Helper to make a link to the page, taking the plaintext value in consideration.

Stable to override

Parameters
Title | null$titleThe page
array$parametersQuery parameters
string | null$htmlLinktext of the link as raw html
Returns
string

Reimplemented in RightsLogFormatter.

Definition at line 678 of file LogFormatter.php.

References $title, getLinkRenderer(), and msg().

Referenced by formatParameterValue(), BlockLogFormatter\getMessageParameters(), getMessageParameters(), MergeLogFormatter\getMessageParameters(), MoveLogFormatter\getMessageParameters(), and ProtectLogFormatter\getMessageParameters().

◆ makeUserLink()

LogFormatter::makeUserLink ( User  $user,
  $toolFlags = 0 
)
protected
Parameters
User$user
int$toolFlagsCombination of Linker::TOOL_LINKS_* flags
Returns
string wikitext or html
-taint onlysafefor_html

Definition at line 785 of file LogFormatter.php.

References User\getEditCount(), User\getId(), User\getName(), Linker\userLink(), and Linker\userToolLinks().

Referenced by formatParameterValue(), BlockLogFormatter\getMessageParameters(), NewUsersLogFormatter\getMessageParameters(), and getPerformerElement().

◆ msg()

◆ newFromEntry()

static LogFormatter::newFromEntry ( LogEntry  $entry)
static

◆ newFromRow()

static LogFormatter::newFromRow (   $row)
static

Handy shortcut for constructing a formatter directly from database row.

Parameters
stdClass | array$row
See also
DatabaseLogEntry::getSelectQueryData
Returns
LogFormatter

Definition at line 72 of file LogFormatter.php.

References newFromEntry().

Referenced by ChangesListSpecialPage\execute(), ApiQueryWatchlist\extractOutputData(), ApiQueryRecentChanges\extractRowInfo(), FeedUtils\formatDiff(), ChangeTagsLogItem\getHTML(), RevDelLogItem\getHTML(), LogPager\getStartBody(), and ChangesList\insertLogEntry().

◆ setAudience()

LogFormatter::setAudience (   $audience)

Set the visibility restrictions for displaying content.

If set to public, and an item is deleted, then it will be replaced with a placeholder even if the context user is allowed to view it.

Parameters
int$audienceConst self::FOR_THIS_USER or self::FOR_PUBLIC

Definition at line 157 of file LogFormatter.php.

References $audience, FOR_PUBLIC, and FOR_THIS_USER.

◆ setContext()

LogFormatter::setContext ( IContextSource  $context)

Replace the default context.

Parameters
IContextSource$context

Definition at line 127 of file LogFormatter.php.

References $context.

◆ setLinkRenderer()

LogFormatter::setLinkRenderer ( LinkRenderer  $linkRenderer)
Since
1.30
Parameters
LinkRenderer$linkRenderer

Definition at line 135 of file LogFormatter.php.

References $linkRenderer.

◆ setShowUserToolLinks()

LogFormatter::setShowUserToolLinks (   $value)

If set to true, will produce user tool links after the user name.

This should be replaced with generic CSS/JS solution.

Parameters
bool$value

Definition at line 199 of file LogFormatter.php.

Referenced by formatParameterValue().

◆ styleRestricedElement()

LogFormatter::styleRestricedElement (   $content)
protected

Helper method for styling restricted element.

Parameters
string$content
Returns
string HTML or wiki text

Definition at line 760 of file LogFormatter.php.

References $content.

Referenced by getActionText(), getComment(), and getPerformerElement().

Member Data Documentation

◆ $audience

int LogFormatter::$audience = self::FOR_PUBLIC
protected

Constant for handling log_deleted.

Definition at line 82 of file LogFormatter.php.

Referenced by setAudience().

◆ $context

IContextSource LogFormatter::$context

Context for logging.

Definition at line 85 of file LogFormatter.php.

Referenced by setContext().

◆ $entry

◆ $irctext

string LogFormatter::$irctext = false
protected

Definition at line 100 of file LogFormatter.php.

◆ $linkFlood

bool LogFormatter::$linkFlood = false
protected

Whether to output user tool links.

Definition at line 88 of file LogFormatter.php.

Referenced by formatParameterValue().

◆ $linkRenderer

◆ $parsedParameters

array LogFormatter::$parsedParameters
protected
See also
LogFormatter::getMessageParameters

Definition at line 111 of file LogFormatter.php.

Referenced by getMessageParameters().

◆ $plaintext

string LogFormatter::$plaintext = false
protected

Set to true if we are constructing a message text that is going to be included in page history or send to IRC feed.

Links are replaced with plaintext or with [[pagename]] kind of syntax, that is parsed by page histories and IRC feeds.

Definition at line 97 of file LogFormatter.php.

◆ FOR_PUBLIC

const LogFormatter::FOR_PUBLIC = 1

Definition at line 42 of file LogFormatter.php.

Referenced by setAudience().

◆ FOR_THIS_USER

const LogFormatter::FOR_THIS_USER = 2

Definition at line 43 of file LogFormatter.php.

Referenced by ChangeTagsLogItem\getHTML(), RevDelLogItem\getHTML(), and setAudience().


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