MediaWiki master
MediaWiki\Parser\ParserOutput Class Reference

ParserOutput is a rendering of a Content object or a message. More...

Inherits CacheTime, and ContentMetadataCollector.

Collaboration diagram for MediaWiki\Parser\ParserOutput:

Public Member Functions

 __clone ()
 
 __construct ( $text=null, $languageLinks=[], $categoryLinks=[], $unused=false, $titletext='')
 
 __get ( $name)
 
 __set ( $name, $value)
 
 __sleep ()
 
 __wakeup ()
 
 addCacheMessage (string $msg)
 Adds a comment notice about cache state to the text of the page.
 
 addCategory ( $c, $sort='')
 Add a category.
 
 addExternalLink ( $url)
 
 addExtraCSPDefaultSrc ( $src)
 Add an extra value to Content-Security-Policy default-src directive.
 
 addExtraCSPScriptSrc ( $src)
 Add an extra value to Content-Security-Policy script-src directive.
 
 addExtraCSPStyleSrc ( $src)
 Add an extra value to Content-Security-Policy style-src directive.
 
 addHeadItem ( $section, $tag=false)
 Add some text to the "<head>".
 
 addImage ( $name, $timestamp=null, $sha1=null)
 Register a file dependency for this output.
 
 addInterwikiLink ( $link)
 
 addJsConfigVars ( $keys, $value=null)
 Add one or more variables to be set in mw.config in JavaScript.
 
 addLanguageLink ( $t)
 Add a language link.
 
 addLink (ParsoidLinkTarget $link, $id=null)
 Record a local or interwiki inline link for saving in future link tables.
 
 addModules (array $modules)
 
 addModuleStyles (array $modules)
 
 addOutputPageMetadata (OutputPage $out)
 Accommodate very basic transcluding of a temporary OutputPage object into parser output.
 
 addTemplate ( $link, $page_id, $rev_id)
 Register a template dependency for this output.
 
 addWarningMsg (string $msg,... $args)
 Add a warning to the output for this page.
 
 addWrapperDivClass ( $class)
 Add a CSS class to use for the wrapping div.
 
 appendExtensionData (string $key, $value, string $strategy=self::MW_MERGE_STRATEGY_UNION)
 Appends arbitrary data to this ParserObject.
 
 appendJsConfigVar (string $key, string $value, string $strategy=self::MW_MERGE_STRATEGY_UNION)
 Append a value to a variable to be set in mw.config in JavaScript.
 
 appendOutputStrings (string $name, array $value)
 Provides a uniform interface to various string sets stored in the ParserOutput.
 
 clearWrapperDivClass ()
 Clears the CSS class to use for the wrapping div, effectively disabling the wrapper div until addWrapperDivClass() is called.
 
 collectMetadata (ContentMetadataCollector $metadata)
 Adds the metadata collected in this ParserOutput to the supplied ContentMetadataCollector.
 
 finalizeAdaptiveCacheExpiry ()
 Call this when parsing is done to lower the TTL based on low parse times.
 
 getAllFlags ()
 
 getCacheMessage ()
 
 getCategoryMap ()
 Return category names and sort keys as a map.
 
 getCategoryNames ()
 Return the names of the categories on this page.
 
 getCategorySortKey (string $name)
 Return the sort key for a given category name, or null if the category is not present in this ParserOutput.
 
 getContentHolderText ()
 Returns the content holder text of the ParserOutput.
 
 getDisplayTitle ()
 Get the title to be used for display.
 
 getEnableOOUI ()
 
 getExtensionData ( $key)
 Gets extensions data previously attached to this ParserOutput using setExtensionData().
 
getExternalLinks ()
 
 getExtraCSPDefaultSrcs ()
 Get extra Content-Security-Policy 'default-src' directives.
 
 getExtraCSPScriptSrcs ()
 Get extra Content-Security-Policy 'script-src' directives.
 
 getExtraCSPStyleSrcs ()
 Get extra Content-Security-Policy 'style-src' directives.
 
getFileSearchOptions ()
 
 getHeadItems ()
 
 getHideNewSection ()
 
getImages ()
 
 getIndexPolicy ()
 
 getIndicators ()
 
 getInterwikiLinks ()
 
 getJsConfigVars (bool $showStrategyKeys=false)
 
 getLanguage ()
 Get the primary language code of the output.
 
getLanguageLinks ()
 
 getLimitReportData ()
 
 getLimitReportJSData ()
 
getLinks ()
 
getLinksSpecial ()
 
 getModules ()
 
 getModuleStyles ()
 
 getNewSection ()
 
 getNoGallery ()
 
 getOutputFlag (string $name)
 Provides a uniform interface to various boolean flags stored in the ParserOutput.
 
 getOutputStrings (string $name)
 Provides a uniform interface to various boolean string sets stored in the ParserOutput.
 
 getPageProperties ()
 Return all the page properties set on this ParserOutput.
 
 getPageProperty (string $name)
 Look up a page property.
 
 getPreventClickjacking ()
 Get the prevent-clickjacking flag.
 
 getRawText ()
 Get the cacheable text with <mw:editsection> markers still in it.
 
 getRedirectHeader ()
 Return an HTML prefix to be applied on redirect pages, or null if this is not a redirect.
 
 getRenderId ()
 Return the unique rendering id for this ParserOutput.
 
 getRevisionTimestamp ()
 
 getRevisionTimestampUsed ()
 
 getRevisionUsedSha1Base36 ()
 
 getSections ()
 
 getSpeculativePageIdUsed ()
 
 getSpeculativeRevIdUsed ()
 
getTemplateIds ()
 
getTemplates ()
 
 getText ( $options=[])
 Get the output HTML.
 
 getTimeProfile (string $clock)
 Returns the time that elapsed between the most recent call to resetParseStartTime() and the first call to recordTimeProfile() after that.
 
 getTimeSinceStart ( $clock)
 Returns the time since resetParseStartTime() was last called.
 
 getTimestamp ()
 
 getTitleText ()
 
 getTOCData ()
 
 getWarnings ()
 
 getWrapperDivClass ()
 Returns the class (or classes) to be used with the wrapper div for this output.
 
 hasReducedExpiry ()
 Check whether the cache TTL was lowered from the site default.
 
 hasText ()
 Returns true if text was passed to the constructor, or set using setText().
 
 mergeHtmlMetaDataFrom (ParserOutput $source)
 Merges HTML metadata such as head items, JS config vars, and HTTP cache control info from $source into this ParserOutput.
 
 mergeInternalMetaDataFrom (ParserOutput $source)
 Merges internal metadata such as flags, accessed options, and profiling info from $source into this ParserOutput.
 
 mergeTrackingMetaDataFrom (ParserOutput $source)
 Merges dependency tracking metadata such as backlinks, images used, and extension data from $source into this ParserOutput.
 
 recordTimeProfile ()
 Record the time since resetParseStartTime() was last called.
 
 resetParseStartTime ()
 Resets the parse start timestamps for future calls to getTimeSinceStart() and recordTimeProfile().
 
 setCategories (array $c)
 Overwrite the category map.
 
 setContentHolderText (string $s)
 Sets the content holder text of the ParserOutput.
 
 setDisplayTitle ( $text)
 Override the title to be used for display.
 
 setEnableOOUI (bool $enable=false)
 Enables OOUI, if true, in any OutputPage instance this ParserOutput object is added to.
 
 setExtensionData ( $key, $value)
 Attaches arbitrary data to this ParserObject.
 
 setFromParserOptions (ParserOptions $parserOptions)
 Transfer parser options which affect post-processing from ParserOptions to this ParserOutput.
 
 setHideNewSection (bool $value)
 
 setIndexPolicy ( $policy)
 
 setIndicator ( $id, $content)
 
 setJsConfigVar (string $key, $value)
 Add a variable to be set in mw.config in JavaScript.
 
 setLanguage (Bcp47Code $lang)
 Set the primary language of the output.
 
 setLanguageLinks ( $ll)
 
 setLimitReportData ( $key, $value)
 Sets parser limit report data for a key.
 
 setNewSection ( $value)
 
 setNoGallery ( $value)
 
 setNumericPageProperty (string $propName, $numericValue)
 Set a numeric page property whose value is intended to be sorted and indexed.
 
 setOutputFlag (string $name, bool $val=true)
 Provides a uniform interface to various boolean flags stored in the ParserOutput.
 
 setPageProperty (string $name, $value)
 Set a page property to be stored in the page_props database table.
 
 setPreventClickjacking (bool $flag)
 Set the prevent-clickjacking flag.
 
 setRawText (?string $text)
 Set the raw text of the ParserOutput.
 
 setRedirectHeader (string $html)
 Set an HTML prefix to be applied on redirect pages.
 
 setRenderId (string $renderId)
 Store a unique rendering id for this ParserOutput.
 
 setRevisionTimestamp (?string $timestamp)
 
 setRevisionTimestampUsed ( $timestamp)
 
 setRevisionUsedSha1Base36 ( $hash)
 
 setSections (array $sectionArray)
 
 setSpeculativePageIdUsed ( $id)
 
 setSpeculativeRevIdUsed ( $id)
 
 setText ( $text)
 Set the raw text of the ParserOutput.
 
 setTimestamp ( $timestamp)
 
 setTitleText ( $t)
 
 setTOCData (TOCData $tocData)
 
 setUnsortedPageProperty (string $propName, string $value='')
 Set a page property whose value is not intended to be sorted and indexed.
 
 unsetPageProperty (string $name)
 Remove a page property.
 
 updateRuntimeAdaptiveExpiry ( $ttl)
 Lower the runtime adaptive TTL to at most this value.
 
- Public Member Functions inherited from CacheTime
 expired ( $touched)
 Return true if this cached output object predates the global or per-article cache invalidation timestamps, or if it comes from an incompatible older version.
 
 getCacheExpiry ()
 Returns the number of seconds after which this object should expire.
 
 getCacheRevisionId ()
 
 getCacheTime ()
 
 getUsedOptions ()
 Returns the options from its ParserOptions which have been taken into account to produce the output.
 
 hasCacheTime ()
 
 isCacheable ()
 
 isDifferentRevision ( $id)
 Return true if this cached output object is for a different revision of the page.
 
 recordOption (string $option)
 Tags a parser option for use in the cache key for this parser output.
 
 recordOptions (array $options)
 Tags a list of parser option names for use in the cache key for this parser output.
 
 setCacheRevisionId ( $id)
 
 setCacheTime ( $t)
 setCacheTime() sets the timestamp expressing when the page has been rendered.
 
 updateCacheExpiry ( $seconds)
 Sets the number of seconds after which this object should expire.
 

Static Public Member Functions

static isLinkInternal ( $internal, $url)
 Checks, if a url is pointing to the own server.
 
static newFromJsonArray (JsonUnserializer $unserializer, array $json)
 Creates a new instance of the class and initialized it from the $json array.
 

Public Attributes

const MW_MERGE_STRATEGY_KEY = '_mw-strategy'
 
const MW_MERGE_STRATEGY_UNION = 'union'
 Merge strategy to use for ParserOutput accumulators: "union" means that values are strings, stored as a set, and exposed as a PHP associative array mapping from values to true.
 
const SUPPORTS_STATELESS_TRANSFORMS = 1
 Feature flags to indicate to extensions that MediaWiki core supports and uses getText() stateless transforms.
 
const SUPPORTS_UNWRAP_TRANSFORM = 1
 

Protected Member Functions

 initFromJson (JsonUnserializer $unserializer, array $jsonData)
 Initialize member fields from an array returned by jsonSerialize().
 
 toJsonArray ()
 Returns a JSON serializable structure representing this ParserOutput instance.
 

Additional Inherited Members

- Protected Attributes inherited from CacheTime
int null $mCacheExpiry = null
 Seconds after which the object should expire, use 0 for not cacheable.
 
int null $mCacheRevisionId = null
 Revision ID that was parsed.
 
string int $mCacheTime = ''
 TS_MW timestamp when this object was generated, or -1 for not cacheable.
 
true[] $mParseUsedOptions = []
 ParserOptions which have been taken into account to produce output, option names stored in array keys.
 

Detailed Description

ParserOutput is a rendering of a Content object or a message.

Content objects and messages often contain wikitext, but not always.

ParserOutput object combine the HTML rendering of Content objects or messages, available via ::getRawText(), with various bits of metadata generated during rendering, which may include categories, links, page properties, and extension data, among others.

ParserOutput objects corresponding to the content of page revisions are created by the ParserOutputAccess service, which automatically caches them via ParserCache where appropriate and produces new output via ContentHandler as needed.

In addition, wikitext from system messages as well as odd bits of wikitext rendered to create special pages and other UX elements are rendered to ParserOutput objects. In these cases the metadata from the ParserOutput is generally discarded and the ParserOutput is not cached. These bits of wikitext are generally rendered with ParserOptions::setInterfaceMessage(true) when content is intended to be in the user interface language, but sometimes rendered to the content language and displayed in the content area instead.

A ParserOutput object corresponding to a given revision may be a combination of the renderings of multiple "slots": the Multi-Content Revisions (MCR) work allows articles to be composed from multiple Content objects. Each Content renders to a ParserOutput, and those ParserOutputs are merged by RevisionRenderer::combineSlotOutput() to create the final article output.

Similarly, OutputPage maintains metadata overlapping with the metadata kept by ParserOutput (T301020) and may merge several ParserOutputs using OutputPage::addParserOutput() to create the final output page. Parsoid parses certain transclusions in independent top-level contexts using Parser::parseExtensionTagAsTopLevelDoc() and these also result in ParserOutputs which are merged via ParserOutput::collectMetadata().

Future plans for incremental parsing and asynchronous rendering may result in several of these component ParserOutput objects being cached independently and then recombined asynchronously, so operations on ParserOutput objects should be compatible with that model (T300979).

Definition at line 95 of file ParserOutput.php.

Constructor & Destructor Documentation

◆ __construct()

MediaWiki\Parser\ParserOutput::__construct ( $text = null,
$languageLinks = [],
$categoryLinks = [],
$unused = false,
$titletext = '' )
Parameters
string | null$textHTML. Use null to indicate that this ParserOutput contains only meta-data, and the HTML output is undetermined, as opposed to empty. Passing null here causes hasText() to return false. In 1.39 the default value changed from '' to null.
array$languageLinks
array$categoryLinks
bool$unused
string$titletext

Definition at line 377 of file ParserOutput.php.

Member Function Documentation

◆ __clone()

MediaWiki\Parser\ParserOutput::__clone ( )

Definition at line 2885 of file ParserOutput.php.

◆ __get()

MediaWiki\Parser\ParserOutput::__get ( $name)

Reimplemented from CacheTime.

Definition at line 2925 of file ParserOutput.php.

References wfDeprecatedMsg().

◆ __set()

MediaWiki\Parser\ParserOutput::__set ( $name,
$value )

Reimplemented from CacheTime.

Definition at line 2940 of file ParserOutput.php.

References wfDeprecatedMsg().

◆ __sleep()

MediaWiki\Parser\ParserOutput::__sleep ( )

Definition at line 2213 of file ParserOutput.php.

◆ __wakeup()

MediaWiki\Parser\ParserOutput::__wakeup ( )

Reimplemented from CacheTime.

Definition at line 2852 of file ParserOutput.php.

References $mText.

◆ addCacheMessage()

MediaWiki\Parser\ParserOutput::addCacheMessage ( string $msg)

Adds a comment notice about cache state to the text of the page.

Parameters
string$msg
Access: internal
used by ParserCache

Definition at line 487 of file ParserOutput.php.

Referenced by MediaWiki\Parser\RevisionOutputCache\save(), and ParserCache\save().

◆ addCategory()

MediaWiki\Parser\ParserOutput::addCategory ( $c,
$sort = '' )

Add a category.

Although ParserOutput::getCategorySortKey() will return exactly the sort key you specify here, before storing in the database all sort keys will be language converted, HTML entities will be decoded, newlines stripped, and then they will be truncated to 255 bytes. Thus the "effective" sort key in the DB may be different from what is passed to $sort here and returned by ::getCategorySortKey().

Parameters
string | ParsoidLinkTarget$cThe category name
string$sortThe sort key; an empty string indicates that the default sort key for the page should be used.

Definition at line 927 of file ParserOutput.php.

◆ addExternalLink()

MediaWiki\Parser\ParserOutput::addExternalLink ( $url)

Definition at line 1045 of file ParserOutput.php.

◆ addExtraCSPDefaultSrc()

MediaWiki\Parser\ParserOutput::addExtraCSPDefaultSrc ( $src)

Add an extra value to Content-Security-Policy default-src directive.

Call this if you are including a resource (e.g. image) from a third party domain. This is used for all source types except style and script.

Since
1.35
Parameters
string$srcCSP source e.g. example.com

Definition at line 2134 of file ParserOutput.php.

◆ addExtraCSPScriptSrc()

MediaWiki\Parser\ParserOutput::addExtraCSPScriptSrc ( $src)

Add an extra value to Content-Security-Policy script-src directive.

Call this if you are loading third-party Javascript

Since
1.35
Parameters
string$srcCSP source e.g. example.com

Definition at line 2156 of file ParserOutput.php.

◆ addExtraCSPStyleSrc()

MediaWiki\Parser\ParserOutput::addExtraCSPStyleSrc ( $src)

Add an extra value to Content-Security-Policy style-src directive.

Since
1.35
Parameters
string$srcCSP source e.g. example.com

Definition at line 2144 of file ParserOutput.php.

◆ addHeadItem()

MediaWiki\Parser\ParserOutput::addHeadItem ( $section,
$tag = false )

Add some text to the "<head>".

If $tag is set, the section with that tag will only be included once in a given page.

Parameters
string$section
string | false$tag

Definition at line 1152 of file ParserOutput.php.

◆ addImage()

MediaWiki\Parser\ParserOutput::addImage ( $name,
$timestamp = null,
$sha1 = null )

Register a file dependency for this output.

Parameters
string | ParsoidLinkTarget$nameTitle dbKey
string | false | null$timestampMW timestamp of file creation (or false if non-existing)
string | false | null$sha1Base 36 SHA-1 of file (or false if non-existing)

Definition at line 1103 of file ParserOutput.php.

◆ addInterwikiLink()

MediaWiki\Parser\ParserOutput::addInterwikiLink ( $link)
Parameters
ParsoidLinkTarget$linkmust be an interwiki link (used to require Title until 1.38).

Definition at line 1137 of file ParserOutput.php.

◆ addJsConfigVars()

MediaWiki\Parser\ParserOutput::addJsConfigVars ( $keys,
$value = null )

Add one or more variables to be set in mw.config in JavaScript.

Parameters
string | array$keysKey or array of key/value pairs.
mixed | null$value[optional] Value of the configuration variable.
Since
1.23
Deprecated
since 1.38, use ::setJsConfigVar() or ::appendJsConfigVar() which ensures compatibility with asynchronous parsing.

Definition at line 1187 of file ParserOutput.php.

◆ addLanguageLink()

MediaWiki\Parser\ParserOutput::addLanguageLink ( $t)

Add a language link.

Parameters
ParsoidLinkTarget | string$t

Definition at line 968 of file ParserOutput.php.

◆ addLink()

MediaWiki\Parser\ParserOutput::addLink ( ParsoidLinkTarget $link,
$id = null )

Record a local or interwiki inline link for saving in future link tables.

Parameters
ParsoidLinkTarget$link(used to require Title until 1.38)
int | null$idOptional known page_id so we can skip the lookup

Definition at line 1069 of file ParserOutput.php.

Referenced by WikitextContentHandler\fillParserOutput().

◆ addModules()

MediaWiki\Parser\ParserOutput::addModules ( array $modules)
See also
OutputPage::addModules
Parameters
string[]$modules

Definition at line 1164 of file ParserOutput.php.

◆ addModuleStyles()

MediaWiki\Parser\ParserOutput::addModuleStyles ( array $modules)
See also
OutputPage::addModuleStyles
Parameters
string[]$modules

Definition at line 1173 of file ParserOutput.php.

Referenced by JsonContentHandler\fillParserOutput(), and WikitextContentHandler\fillParserOutput().

◆ addOutputPageMetadata()

MediaWiki\Parser\ParserOutput::addOutputPageMetadata ( OutputPage $out)

Accommodate very basic transcluding of a temporary OutputPage object into parser output.

This is a fragile method that cannot be relied upon in any meaningful way. It exists solely to support the wikitext feature of transcluding a SpecialPage, and only has to work for that use case to ensure relevant styles are loaded, and that essential config vars needed between SpecialPage and a JS feature are added.

This relies on there being no overlap between modules or config vars added by the SpecialPage and those added by parser extensions. If there is overlap, then arise and break one or both sides. This is expected and unsupported.

Access: internal
For use by Parser for basic special page transclusion
Parameters
OutputPage$out

Definition at line 1277 of file ParserOutput.php.

◆ addTemplate()

MediaWiki\Parser\ParserOutput::addTemplate ( $link,
$page_id,
$rev_id )

Register a template dependency for this output.

Parameters
ParsoidLinkTarget$link(used to require Title until 1.38)
int$page_id
int$rev_id

Definition at line 1120 of file ParserOutput.php.

References wfDeprecated().

◆ addWarningMsg()

MediaWiki\Parser\ParserOutput::addWarningMsg ( string $msg,
$args )

Add a warning to the output for this page.

Parameters
string$msgThe localization message key for the warning
mixed|JsonUnserializable...$args Optional arguments for the message. These arguments must be serializable/unserializable with JsonCodec; see the
Note
on ParserOutput::setExtensionData()
Since
1.38

Definition at line 986 of file ParserOutput.php.

References wfDeprecatedMsg().

◆ addWrapperDivClass()

MediaWiki\Parser\ParserOutput::addWrapperDivClass ( $class)

Add a CSS class to use for the wrapping div.

If no class is given, no wrapper is added.

Parameters
string$class

Definition at line 496 of file ParserOutput.php.

◆ appendExtensionData()

MediaWiki\Parser\ParserOutput::appendExtensionData ( string $key,
$value,
string $strategy = self::MW_MERGE_STRATEGY_UNION )

Appends arbitrary data to this ParserObject.

This can be used to store some information in the ParserOutput object for later use during page output. The data will be cached along with the ParserOutput object, but unlike data set using setPageProperty(), it is not recorded in the database.

See setExtensionData() for more details on rationale and use.

In order to provide for out-of-order/asynchronous/incremental parsing, this method appends values to a set. See setExtensionData() for the flag-like version of this method.

Note
Only values which can be array keys are currently supported as values.
Parameters
string$keyThe key for accessing the data. Extensions should take care to avoid conflicts in naming keys. It is suggested to use the extension's name as a prefix.
int | string$valueThe value to append to the list.
string$strategyMerge strategy: only MW_MERGE_STRATEGY_UNION is currently supported and external callers should treat this parameter as
Access: internal
at this time and omit it.
Since
1.38

Definition at line 1884 of file ParserOutput.php.

◆ appendJsConfigVar()

MediaWiki\Parser\ParserOutput::appendJsConfigVar ( string $key,
string $value,
string $strategy = self::MW_MERGE_STRATEGY_UNION )

Append a value to a variable to be set in mw.config in JavaScript.

In order to ensure the result is independent of the parse order, the value of this key will be an associative array, mapping all of the values set under that key to true. (The array is implicitly ordered in PHP, but you should treat it as unordered.) If you want a non-array type for the key, and can ensure that only a single value will be set, you should use ::setJsConfigVar() instead.

Parameters
string$keyKey to use under mw.config
string$valueValue to append to the configuration variable.
string$strategyMerge strategy: only MW_MERGE_STRATEGY_UNION is currently supported and external callers should treat this parameter as
Access: internal
at this time and omit it.
Since
1.38

Definition at line 1241 of file ParserOutput.php.

◆ appendOutputStrings()

MediaWiki\Parser\ParserOutput::appendOutputStrings ( string $name,
array $value )

Provides a uniform interface to various string sets stored in the ParserOutput.

String sets internal to MediaWiki core should have names which are constants in ParserOutputStringSets. Extensions should use ::appendExtensionData() rather than creating new string sets with ::appendOutputStrings() in order to prevent namespace conflicts.

Parameters
string$nameA string set name
string[]$value
Since
1.41

Definition at line 1738 of file ParserOutput.php.

◆ clearWrapperDivClass()

MediaWiki\Parser\ParserOutput::clearWrapperDivClass ( )

Clears the CSS class to use for the wrapping div, effectively disabling the wrapper div until addWrapperDivClass() is called.

Definition at line 504 of file ParserOutput.php.

Referenced by CssContentHandler\fillParserOutput(), JavaScriptContentHandler\fillParserOutput(), and TextContentHandler\fillParserOutput().

◆ collectMetadata()

MediaWiki\Parser\ParserOutput::collectMetadata ( ContentMetadataCollector $metadata)

Adds the metadata collected in this ParserOutput to the supplied ContentMetadataCollector.

This is similar to ::mergeHtmlMetaDataFrom() but in the opposite direction, since ParserOutput is read/write while ContentMetadataCollector is write-only.

Parameters
ContentMetadataCollector$metadata
Since
1.38

Definition at line 2423 of file ParserOutput.php.

◆ finalizeAdaptiveCacheExpiry()

MediaWiki\Parser\ParserOutput::finalizeAdaptiveCacheExpiry ( )

Call this when parsing is done to lower the TTL based on low parse times.

Since
1.28

Definition at line 2165 of file ParserOutput.php.

◆ getAllFlags()

MediaWiki\Parser\ParserOutput::getAllFlags ( )
Returns
string[] List of flags signifying special cases
Access: internal

Definition at line 1442 of file ParserOutput.php.

Referenced by MediaWiki\Output\OutputPage\addParserOutputMetadata().

◆ getCacheMessage()

MediaWiki\Parser\ParserOutput::getCacheMessage ( )
Access: internal
Returns
string

Definition at line 675 of file ParserOutput.php.

◆ getCategoryMap()

MediaWiki\Parser\ParserOutput::getCategoryMap ( )

Return category names and sort keys as a map.

BEWARE that numeric category names get converted to 'int' when stored as array keys. Because of this, use of this method is not recommended in new code; using ::getCategoryNames() and ::getCategorySortKey() will be less error-prone.

Returns
array<string|int,string>
Access: internal

Definition at line 627 of file ParserOutput.php.

Referenced by MediaWiki\Output\OutputPage\addParserOutputMetadata().

◆ getCategoryNames()

MediaWiki\Parser\ParserOutput::getCategoryNames ( )

Return the names of the categories on this page.

Unlike ::getCategories(), sort keys are not included in the return value.

Returns
array<string> The names of the categories
Since
1.38

Definition at line 609 of file ParserOutput.php.

Referenced by MediaWiki\Search\ParserOutputSearchDataExtractor\getCategories(), and MediaWiki\Deferred\LinksUpdate\CategoryLinksTable\setParserOutput().

◆ getCategorySortKey()

MediaWiki\Parser\ParserOutput::getCategorySortKey ( string $name)

Return the sort key for a given category name, or null if the category is not present in this ParserOutput.

Returns the empty string if the category is to use the default sort key.

Note
The effective sort key in the database may vary from what is returned here; see note in ParserOutput::addCategory().
Parameters
string$nameThe category name
Returns
?string The sort key for the category, or null if the category is not present in this ParserOutput
Since
1.40

Definition at line 644 of file ParserOutput.php.

Referenced by MediaWiki\Deferred\LinksUpdate\CategoryLinksTable\setParserOutput().

◆ getContentHolderText()

MediaWiki\Parser\ParserOutput::getContentHolderText ( )

Returns the content holder text of the ParserOutput.

This will eventually be replaced by something like getContentHolder()->getText() when we have a ContentHolder/HtmlHolder class.

Access: internal
Stability: unstable
Returns
string

Definition at line 2910 of file ParserOutput.php.

◆ getDisplayTitle()

MediaWiki\Parser\ParserOutput::getDisplayTitle ( )

Get the title to be used for display.

As per the contract of setDisplayTitle(), this is safe HTML, ready to be served to the client.

Returns
string|false HTML

Definition at line 1324 of file ParserOutput.php.

◆ getEnableOOUI()

MediaWiki\Parser\ParserOutput::getEnableOOUI ( )

◆ getExtensionData()

MediaWiki\Parser\ParserOutput::getExtensionData ( $key)

Gets extensions data previously attached to this ParserOutput using setExtensionData().

Typically, such data would be set while parsing the page, e.g. by a parser function.

Since
1.21
Parameters
string$keyThe key to look up.
Returns
mixed|null The value previously set for the given key using setExtensionData() or null if no value was set for this key.

Definition at line 1916 of file ParserOutput.php.

Referenced by MediaWiki\Parser\Parsoid\PageBundleParserOutputConverter\hasPageBundle().

◆ getExternalLinks()

& MediaWiki\Parser\ParserOutput::getExternalLinks ( )

◆ getExtraCSPDefaultSrcs()

MediaWiki\Parser\ParserOutput::getExtraCSPDefaultSrcs ( )

Get extra Content-Security-Policy 'default-src' directives.

Since
1.35
Returns
string[]

Definition at line 807 of file ParserOutput.php.

Referenced by MediaWiki\Output\OutputPage\addParserOutputMetadata().

◆ getExtraCSPScriptSrcs()

MediaWiki\Parser\ParserOutput::getExtraCSPScriptSrcs ( )

Get extra Content-Security-Policy 'script-src' directives.

Since
1.35
Returns
string[]

Definition at line 816 of file ParserOutput.php.

Referenced by MediaWiki\Output\OutputPage\addParserOutputMetadata().

◆ getExtraCSPStyleSrcs()

MediaWiki\Parser\ParserOutput::getExtraCSPStyleSrcs ( )

Get extra Content-Security-Policy 'style-src' directives.

Since
1.35
Returns
string[]

Definition at line 825 of file ParserOutput.php.

Referenced by MediaWiki\Output\OutputPage\addParserOutputMetadata().

◆ getFileSearchOptions()

& MediaWiki\Parser\ParserOutput::getFileSearchOptions ( )

◆ getHeadItems()

MediaWiki\Parser\ParserOutput::getHeadItems ( )

◆ getHideNewSection()

MediaWiki\Parser\ParserOutput::getHideNewSection ( )

◆ getImages()

& MediaWiki\Parser\ParserOutput::getImages ( )

◆ getIndexPolicy()

MediaWiki\Parser\ParserOutput::getIndexPolicy ( )

Definition at line 765 of file ParserOutput.php.

Referenced by Article\getRobotPolicy().

◆ getIndicators()

MediaWiki\Parser\ParserOutput::getIndicators ( )
Returns
string[]
Since
1.25

Definition at line 655 of file ParserOutput.php.

Referenced by MediaWiki\Output\OutputPage\addParserOutputMetadata().

◆ getInterwikiLinks()

MediaWiki\Parser\ParserOutput::getInterwikiLinks ( )

◆ getJsConfigVars()

MediaWiki\Parser\ParserOutput::getJsConfigVars ( bool $showStrategyKeys = false)
Parameters
bool$showStrategyKeysDefaults to false; if set to true will expose the internal MW_MERGE_STRATEGY_KEY in the result. This should only be used internally to allow safe merge of config vars.
Returns
array
Since
1.23

Definition at line 750 of file ParserOutput.php.

Referenced by MediaWiki\Output\OutputPage\addParserOutputContent(), and MediaWiki\Output\OutputPage\addParserOutputMetadata().

◆ getLanguage()

MediaWiki\Parser\ParserOutput::getLanguage ( )

Get the primary language code of the output.

This returns the primary language of the output, including any LanguageConverter variant applied.

NOTE: This may differ from the wiki's default content language ($wgLanguageCode, MediaWikiServices::getContentLanguage), because each page may have its own "page language" set (PageStoreRecord, Title::getDbPageLanguageCode, ContentHandler::getPageLanguage).

NOTE: This may differ from the "page language" when parsing user interface messages, in which case this reflects the user language (including any variant preference).

NOTE: This may differ from the Parser's "target language" that was set while the Parser was parsing the page, because the final output is converted to the current user's preferred LanguageConverter variant (assuming this is a variant of the target language). See Parser::getTargetLanguageConverter()->getPreferredVariant(); use LanguageFactory::getParentLanguage() on the language code to obtain the base language code. LanguageConverter::getPreferredVariant() depends on the global RequestContext for the URL and the User language preference.

Finally, note that a single ParserOutput object may contain HTML content in multiple different languages and directions (T114640). Authors of wikitext and of parser extensions are expected to mark such subtrees with a lang attribute (set to a BCP-47 value, see Language::toBcp47Code()) and a corresponding dir attribute (see Language::getDir()). This method returns the language code for wrapper of the HTML content.

See also
Parser::internalParseHalfParsed
Since
1.40
Returns
?Bcp47Code The primary language for this output, or null if a language was not set.

Definition at line 1370 of file ParserOutput.php.

◆ getLanguageLinks()

& MediaWiki\Parser\ParserOutput::getLanguageLinks ( )

◆ getLimitReportData()

MediaWiki\Parser\ParserOutput::getLimitReportData ( )

Definition at line 790 of file ParserOutput.php.

◆ getLimitReportJSData()

MediaWiki\Parser\ParserOutput::getLimitReportJSData ( )

◆ getLinks()

◆ getLinksSpecial()

& MediaWiki\Parser\ParserOutput::getLinksSpecial ( )
Returns
array Keys are DBKs for the links to special pages in the document
Since
1.35

Definition at line 699 of file ParserOutput.php.

◆ getModules()

MediaWiki\Parser\ParserOutput::getModules ( )

◆ getModuleStyles()

MediaWiki\Parser\ParserOutput::getModuleStyles ( )

◆ getNewSection()

MediaWiki\Parser\ParserOutput::getNewSection ( )

◆ getNoGallery()

MediaWiki\Parser\ParserOutput::getNoGallery ( )

◆ getOutputFlag()

MediaWiki\Parser\ParserOutput::getOutputFlag ( string $name)

Provides a uniform interface to various boolean flags stored in the ParserOutput.

Flags internal to MediaWiki core should have names which are constants in ParserOutputFlags. Extensions should only use ::getOutputFlag() to query flags defined in ParserOutputFlags in core; they should use getExtensionData() to define their own flags.

Parameters
string$nameA flag name
Returns
bool The flag value
Since
1.38

Definition at line 1698 of file ParserOutput.php.

Referenced by MediaWiki\Output\OutputPage\addParserOutputMetadata().

◆ getOutputStrings()

MediaWiki\Parser\ParserOutput::getOutputStrings ( string $name)

Provides a uniform interface to various boolean string sets stored in the ParserOutput.

String sets internal to MediaWiki core should have names which are constants in ParserOutputStringSets. Extensions should only use ::getOutputStrings() to query string sets defined in ParserOutputStringSets in core; they should use ::appendExtensionData() to define their own string sets.

Parameters
string$nameA string set name
Returns
string[] The string set value
Since
1.41

Definition at line 1778 of file ParserOutput.php.

◆ getPageProperties()

MediaWiki\Parser\ParserOutput::getPageProperties ( )

Return all the page properties set on this ParserOutput.

Returns
array<string,int|float|string|bool|null>
Since
1.38

Definition at line 1619 of file ParserOutput.php.

Referenced by MediaWiki\Deferred\LinksUpdate\PagePropsTable\setParserOutput().

◆ getPageProperty()

MediaWiki\Parser\ParserOutput::getPageProperty ( string $name)

Look up a page property.

Parameters
string$nameThe page property name to look up.
Returns
int|float|string|bool|null The value previously set using ::setPageProperty(), ::setUnsortedPageProperty(), or ::setNumericPageProperty(). Returns null if no value was set for the given property name.
Note
You would need to use ::getPageProperties() to test for an explicitly-set null value; but see the note in ::setPageProperty() deprecating the use of null values.
Since
1.38

Definition at line 1601 of file ParserOutput.php.

Referenced by MediaWiki\Deferred\LinksUpdate\CategoryLinksTable\setParserOutput().

◆ getPreventClickjacking()

MediaWiki\Parser\ParserOutput::getPreventClickjacking ( )

Get the prevent-clickjacking flag.

Returns
bool Flag value
Since
1.38
See also
::setPreventClickjacking

Definition at line 2110 of file ParserOutput.php.

Referenced by MediaWiki\Output\OutputPage\addParserOutputMetadata().

◆ getRawText()

MediaWiki\Parser\ParserOutput::getRawText ( )

Get the cacheable text with <mw:editsection> markers still in it.

The return value is suitable for writing back via setText() but is not valid for display to the user.

Returns
string
Since
1.27

Definition at line 408 of file ParserOutput.php.

◆ getRedirectHeader()

MediaWiki\Parser\ParserOutput::getRedirectHeader ( )

Return an HTML prefix to be applied on redirect pages, or null if this is not a redirect.

Returns
?string HTML to prepend to redirect pages, or null
Access: internal

Definition at line 1397 of file ParserOutput.php.

◆ getRenderId()

MediaWiki\Parser\ParserOutput::getRenderId ( )

Return the unique rendering id for this ParserOutput.

This is used whenever a client needs to record a dependency on a specific parse.

Returns
string|null
Access: internal

Definition at line 1428 of file ParserOutput.php.

Referenced by MediaWiki\Parser\RevisionOutputCache\save(), and ParserCache\save().

◆ getRevisionTimestamp()

MediaWiki\Parser\ParserOutput::getRevisionTimestamp ( )
Returns
string|null TS_MW timestamp of the revision content

Definition at line 778 of file ParserOutput.php.

Referenced by MediaWiki\Parser\RevisionOutputCache\save().

◆ getRevisionTimestampUsed()

MediaWiki\Parser\ParserOutput::getRevisionTimestampUsed ( )
Returns
string|null TS_MW timestamp or null if not used
Since
1.34

Definition at line 563 of file ParserOutput.php.

◆ getRevisionUsedSha1Base36()

MediaWiki\Parser\ParserOutput::getRevisionUsedSha1Base36 ( )
Returns
string|null Lowercase SHA-1 base 36 hash, null if unused, or "" on inconsistency
Since
1.34

Definition at line 590 of file ParserOutput.php.

◆ getSections()

MediaWiki\Parser\ParserOutput::getSections ( )
Access: internal
Returns
array

Definition at line 683 of file ParserOutput.php.

◆ getSpeculativePageIdUsed()

MediaWiki\Parser\ParserOutput::getSpeculativePageIdUsed ( )
Returns
int|null
Since
1.34

Definition at line 547 of file ParserOutput.php.

◆ getSpeculativeRevIdUsed()

MediaWiki\Parser\ParserOutput::getSpeculativeRevIdUsed ( )
Returns
int|null
Since
1.28

Definition at line 531 of file ParserOutput.php.

◆ getTemplateIds()

& MediaWiki\Parser\ParserOutput::getTemplateIds ( )

◆ getTemplates()

& MediaWiki\Parser\ParserOutput::getTemplates ( )

◆ getText()

MediaWiki\Parser\ParserOutput::getText ( $options = [])

Get the output HTML.

T293512: in the future, ParserOutput::getText() will be deprecated in favor of invoking the ParserOutputTransform pipeline directly on a ParserOutput.

Parameters
array$options(since 1.31) Transformations to apply to the HTML
  • allowTOC: (bool) Show the TOC, assuming there were enough headings to generate one and __NOTOC__ wasn't used. Default is true, but might be statefully overridden.
  • injectTOC: (bool) Replace the TOC_PLACEHOLDER with TOC contents; otherwise the marker will be left in the article (and the skin will be responsible for replacing or removing it). Default is true.
  • enableSectionEditLinks: (bool) Include section edit links, assuming section edit link tokens are present in the HTML. Default is true, but might be statefully overridden.
  • userLang: (Language) Language object used for localizing UX messages, for example the heading of the table of contents. If omitted, will use the language of the main request context.
  • skin: (Skin) Skin object used for transforming section edit links.
  • unwrap: (bool) Return text without a wrapper div. Default is false, meaning a wrapper div will be added if getWrapperDivClass() returns a non-empty string.
  • wrapperDivClass: (string) Wrap the output in a div and apply the given CSS class to that div. This overrides the output of getWrapperDivClass(). Setting this to an empty string has the same effect as 'unwrap' => true.
  • deduplicateStyles: (bool) When true, which is the default, <style> tags with the data-mw-deduplicate attribute set are deduplicated by value of the attribute: all but the first will be replaced by <link rel="mw-deduplicated-inline-style" href="mw-data:..."/> tags, where the scheme-specific-part of the href is the (percent-encoded) value of the data-mw-deduplicate attribute.
  • absoluteURLs: (bool) use absolute URLs in all links. Default: false
  • includeDebugInfo: (bool) render PP limit report in HTML. Default: false
Returns
string HTML
Deprecated
since 1.42, this method has side-effects on the ParserOutput (see T353257) and so should be avoided in favor of directly invoking the default output pipeline on a ParserOutput.

Definition at line 456 of file ParserOutput.php.

References MediaWiki\MediaWikiServices\getInstance().

Referenced by MediaWiki\Status\StatusFormatter\getHTML(), and MediaWiki\Message\Message\parseText().

◆ getTimeProfile()

MediaWiki\Parser\ParserOutput::getTimeProfile ( string $clock)

Returns the time that elapsed between the most recent call to resetParseStartTime() and the first call to recordTimeProfile() after that.

Clocks available are:

  • wall: Wall clock time
  • cpu: CPU time (requires getrusage)

If recordTimeProfile() has noit been called since the most recent call to resetParseStartTime(), or if resetParseStartTime() was never called, then this method will return null.

Parameters
string$clock
Since
1.42
Returns
float|null

Definition at line 1994 of file ParserOutput.php.

Referenced by MediaWiki\Parser\Parsoid\ParsoidParser\makeLimitReport().

◆ getTimeSinceStart()

MediaWiki\Parser\ParserOutput::getTimeSinceStart ( $clock)

Returns the time since resetParseStartTime() was last called.

Clocks available are:

  • wall: Wall clock time
  • cpu: CPU time (requires getrusage)
Since
1.22
Deprecated
since 1.42, use getTimeProfile() instead.
Parameters
string$clock
Returns
float|null

Definition at line 2010 of file ParserOutput.php.

References wfDeprecated().

◆ getTimestamp()

MediaWiki\Parser\ParserOutput::getTimestamp ( )
Returns
string|null TS_MW timestamp of the revision content
Deprecated
since 1.42; use ::getRevisionTimestamp() instead

Definition at line 786 of file ParserOutput.php.

◆ getTitleText()

MediaWiki\Parser\ParserOutput::getTitleText ( )

Definition at line 659 of file ParserOutput.php.

Referenced by Article\adjustDisplayTitle().

◆ getTOCData()

MediaWiki\Parser\ParserOutput::getTOCData ( )
Returns
?TOCData the table of contents data, or null if it hasn't been set.

Definition at line 667 of file ParserOutput.php.

Referenced by MediaWiki\Output\OutputPage\addParserOutputMetadata().

◆ getWarnings()

MediaWiki\Parser\ParserOutput::getWarnings ( )

Definition at line 761 of file ParserOutput.php.

◆ getWrapperDivClass()

MediaWiki\Parser\ParserOutput::getWrapperDivClass ( )

Returns the class (or classes) to be used with the wrapper div for this output.

If there is no wrapper class given, no wrapper div should be added. The wrapper div is added automatically by getText().

Returns
string

Definition at line 515 of file ParserOutput.php.

Referenced by MediaWiki\Output\OutputPage\addParserOutputMetadata().

◆ hasReducedExpiry()

MediaWiki\Parser\ParserOutput::hasReducedExpiry ( )

Check whether the cache TTL was lowered from the site default.

When content is determined by more than hard state (e.g. page edits), such as template/file transclusions based on the current timestamp or extension tags that generate lists based on queries, this return true.

This method mainly exists to facilitate the logic in WikiPage::triggerOpportunisticLinksUpdate. As such, beware that reducing the TTL for reasons that do not relate to "dynamic content", may have the side-effect of incurring more RefreshLinksJob executions.

Access: internal
For use by Parser and WikiPage
Since
1.37
Returns
bool

Definition at line 2080 of file ParserOutput.php.

Referenced by MediaWiki\Parser\Parsoid\ParsoidParser\makeLimitReport(), and WikiPage\triggerOpportunisticLinksUpdate().

◆ hasText()

MediaWiki\Parser\ParserOutput::hasText ( )

Returns true if text was passed to the constructor, or set using setText().

Returns false if null was passed to the $text parameter of the constructor to indicate that this ParserOutput only contains meta-data, and the HTML output is undetermined.

Since
1.32
Returns
bool Whether this ParserOutput contains rendered text. If this returns false, the ParserOutput contains meta-data only.

Definition at line 396 of file ParserOutput.php.

Referenced by MediaWiki\Parser\RevisionOutputCache\save(), and ParserCache\save().

◆ initFromJson()

MediaWiki\Parser\ParserOutput::initFromJson ( JsonUnserializer $unserializer,
array $jsonData )
protected

Initialize member fields from an array returned by jsonSerialize().

Parameters
JsonUnserializer$unserializer
array$jsonData

Reimplemented from CacheTime.

Definition at line 2741 of file ParserOutput.php.

◆ isLinkInternal()

static MediaWiki\Parser\ParserOutput::isLinkInternal ( $internal,
$url )
static

Checks, if a url is pointing to the own server.

Parameters
string$internalThe server to check against
string$urlThe url to check
Returns
bool
Access: internal

Definition at line 1034 of file ParserOutput.php.

◆ mergeHtmlMetaDataFrom()

MediaWiki\Parser\ParserOutput::mergeHtmlMetaDataFrom ( ParserOutput $source)

Merges HTML metadata such as head items, JS config vars, and HTTP cache control info from $source into this ParserOutput.

This should be used whenever the HTML in $source has been somehow merged into the HTML of this ParserOutput.

Parameters
ParserOutput$source

Definition at line 2307 of file ParserOutput.php.

Referenced by MediaWiki\Parser\Parsoid\PageBundleParserOutputConverter\parserOutputFromPageBundle().

◆ mergeInternalMetaDataFrom()

MediaWiki\Parser\ParserOutput::mergeInternalMetaDataFrom ( ParserOutput $source)

Merges internal metadata such as flags, accessed options, and profiling info from $source into this ParserOutput.

This should be used whenever the state of $source has any impact on the state of this ParserOutput.

Parameters
ParserOutput$source

Definition at line 2233 of file ParserOutput.php.

◆ mergeTrackingMetaDataFrom()

MediaWiki\Parser\ParserOutput::mergeTrackingMetaDataFrom ( ParserOutput $source)

Merges dependency tracking metadata such as backlinks, images used, and extension data from $source into this ParserOutput.

This allows dependency tracking to be done for the combined output of multiple content slots.

Parameters
ParserOutput$source

Definition at line 2385 of file ParserOutput.php.

◆ newFromJsonArray()

static MediaWiki\Parser\ParserOutput::newFromJsonArray ( JsonUnserializer $unserializer,
array $json )
static

Creates a new instance of the class and initialized it from the $json array.

Parameters
JsonUnserializer$unserializeran instance of JsonUnserializer to use for nested properties if they need special care.
array$json
Returns
JsonUnserializable

Reimplemented from CacheTime.

Definition at line 2730 of file ParserOutput.php.

◆ recordTimeProfile()

MediaWiki\Parser\ParserOutput::recordTimeProfile ( )

Record the time since resetParseStartTime() was last called.

The recorded time can be accessed using getTimeProfile().

After resetParseStartTime() was called, the first call to recordTimeProfile() will record the time profile. Subsequent calls to recordTimeProfile() will have no effect until resetParseStartTime() is called again.

Since
1.42

Definition at line 1959 of file ParserOutput.php.

◆ resetParseStartTime()

MediaWiki\Parser\ParserOutput::resetParseStartTime ( )

Resets the parse start timestamps for future calls to getTimeSinceStart() and recordTimeProfile().

Since
1.22

Definition at line 1944 of file ParserOutput.php.

◆ setCategories()

MediaWiki\Parser\ParserOutput::setCategories ( array $c)

Overwrite the category map.

Parameters
array<string,string>$c Map of category names to sort keys
Since
1.38

Definition at line 939 of file ParserOutput.php.

◆ setContentHolderText()

MediaWiki\Parser\ParserOutput::setContentHolderText ( string $s)

Sets the content holder text of the ParserOutput.

This will eventually be replaced by something like getContentHolder()->setText() when we have a ContentHolder/HtmlHolder class.

Access: internal
Stability: unstable

Definition at line 2921 of file ParserOutput.php.

◆ setDisplayTitle()

MediaWiki\Parser\ParserOutput::setDisplayTitle ( $text)

Override the title to be used for display.

Note
this is assumed to have been validated (check equal normalisation, etc.)
this is expected to be safe HTML, ready to be served to the client.
Parameters
string$textDesired title text

Definition at line 1311 of file ParserOutput.php.

◆ setEnableOOUI()

MediaWiki\Parser\ParserOutput::setEnableOOUI ( bool $enable = false)

Enables OOUI, if true, in any OutputPage instance this ParserOutput object is added to.

Since
1.26
Parameters
bool$enableIf OOUI should be enabled or not

Definition at line 960 of file ParserOutput.php.

◆ setExtensionData()

MediaWiki\Parser\ParserOutput::setExtensionData ( $key,
$value )

Attaches arbitrary data to this ParserObject.

This can be used to store some information in the ParserOutput object for later use during page output. The data will be cached along with the ParserOutput object, but unlike data set using setPageProperty(), it is not recorded in the database.

This method is provided to overcome the unsafe practice of attaching extra information to a ParserObject by directly assigning member variables.

To use setExtensionData() to pass extension information from a hook inside the parser to a hook in the page output, use this in the parser hook:

Example:
$parser->getOutput()->setExtensionData( 'my_ext_foo', '...' );

And then later, in OutputPageParserOutput or similar:

Example:
$output->getExtensionData( 'my_ext_foo' );

In MediaWiki 1.20 and older, you have to use a custom member variable within the ParserOutput object:

Example:
$parser->getOutput()->my_ext_foo = '...';
Note
Only scalar values, e.g. numbers, strings, arrays or MediaWiki\Json\JsonUnserializable instances are supported as a value. Attempt to set other class instance as extension data will break ParserCache for the page.
Since MW 1.38 the practice of setting conflicting values for the same key has been deprecated. As with ::setJsConfigVar(), if you set the same key multiple times on a ParserOutput, it is expected that the value will be identical each time. If you want to collect multiple pieces of data under a single key, use ::appendExtensionData().
Parameters
string$keyThe key for accessing the data. Extensions should take care to avoid conflicts in naming keys. It is suggested to use the extension's name as a prefix.
mixed | JsonUnserializable$valueThe value to set. Setting a value to null is equivalent to removing the value.
Since
1.21

Definition at line 1844 of file ParserOutput.php.

◆ setFromParserOptions()

MediaWiki\Parser\ParserOutput::setFromParserOptions ( ParserOptions $parserOptions)

Transfer parser options which affect post-processing from ParserOptions to this ParserOutput.

Parameters
ParserOptions$parserOptions

Definition at line 2190 of file ParserOutput.php.

References ParserOptions\getInterfaceMessage(), ParserOptions\getIsPreview(), ParserOptions\getSuppressSectionEditLinks(), and ParserOptions\getWrapOutputClass().

◆ setHideNewSection()

MediaWiki\Parser\ParserOutput::setHideNewSection ( bool $value)
Parameters
bool$valueHide the new section link?

Definition at line 1014 of file ParserOutput.php.

◆ setIndexPolicy()

MediaWiki\Parser\ParserOutput::setIndexPolicy ( $policy)

Definition at line 885 of file ParserOutput.php.

◆ setIndicator()

MediaWiki\Parser\ParserOutput::setIndicator ( $id,
$content )
Parameters
string$id
string$content
Since
1.25

Definition at line 949 of file ParserOutput.php.

◆ setJsConfigVar()

MediaWiki\Parser\ParserOutput::setJsConfigVar ( string $key,
$value )

Add a variable to be set in mw.config in JavaScript.

In order to ensure the result is independent of the parse order, the values set here must be unique – that is, you can pass the same $key multiple times but ONLY if the $value is identical each time. If you want to collect multiple pieces of data under a single key, use ::appendJsConfigVar().

Parameters
string$keyKey to use under mw.config
mixed | null$valueValue of the configuration variable.
Since
1.38

Definition at line 1211 of file ParserOutput.php.

◆ setLanguage()

MediaWiki\Parser\ParserOutput::setLanguage ( Bcp47Code $lang)

Set the primary language of the output.

See the discussion and caveats in ::getLanguage().

Parameters
Bcp47Code$langThe primary language for this output, including any variant specification.
Since
1.40

Definition at line 1387 of file ParserOutput.php.

◆ setLanguageLinks()

MediaWiki\Parser\ParserOutput::setLanguageLinks ( $ll)
Deprecated
since 1.42, use ::addLanguageLink() instead.

Definition at line 860 of file ParserOutput.php.

References wfSetVar().

◆ setLimitReportData()

MediaWiki\Parser\ParserOutput::setLimitReportData ( $key,
$value )

Sets parser limit report data for a key.

The key is used as the prefix for various messages used for formatting:

  • $key: The label for the field in the limit report
  • $key-value-text: Message used to format the value in the "NewPP limit report" HTML comment. If missing, uses $key-format.
  • $key-value-html: Message used to format the value in the preview limit report table. If missing, uses $key-format.
  • $key-value: Message used to format the value. If missing, uses "$1".

Note that all values are interpreted as wikitext, and so should be encoded with htmlspecialchars() as necessary, but should avoid complex HTML for display in the "NewPP limit report" comment.

Since
1.22
Parameters
string$keyMessage key
mixed$valueAppropriate for Message::params()

Definition at line 2040 of file ParserOutput.php.

Referenced by MediaWiki\Parser\Parsoid\ParsoidParser\makeLimitReport().

◆ setNewSection()

MediaWiki\Parser\ParserOutput::setNewSection ( $value)

Definition at line 1007 of file ParserOutput.php.

◆ setNoGallery()

MediaWiki\Parser\ParserOutput::setNoGallery ( $value)

Definition at line 723 of file ParserOutput.php.

◆ setNumericPageProperty()

MediaWiki\Parser\ParserOutput::setNumericPageProperty ( string $propName,
$numericValue )

Set a numeric page property whose value is intended to be sorted and indexed.

The sort key used for the property will be the value, coerced to a number.

See ::setPageProperty() for details.

In the future, we may allow the value to be specified independent of sort key (T357783).

Parameters
string$propNameThe name of the page property
int | float | string$numericValuethe numeric value
Since
1.42

Definition at line 1559 of file ParserOutput.php.

◆ setOutputFlag()

MediaWiki\Parser\ParserOutput::setOutputFlag ( string $name,
bool $val = true )

Provides a uniform interface to various boolean flags stored in the ParserOutput.

Flags internal to MediaWiki core should have names which are constants in ParserOutputFlags. Extensions should use setExtensionData() rather than creating new flags with ::setOutputFlag() in order to prevent namespace conflicts.

Flags are always combined with OR. That is, the flag is set in the resulting ParserOutput if the flag is set in any of the fragments composing the ParserOutput.

Note
The combination policy means that a ParserOutput may end up with both INDEX_POLICY and NO_INDEX_POLICY set. It is expected that NO_INDEX_POLICY "wins" in that case. (T16899) (This resolution is implemented in ::getIndexPolicy().)
Parameters
string$nameA flag name
bool$val
Since
1.38

Definition at line 1646 of file ParserOutput.php.

Referenced by CssContentHandler\fillParserOutput(), JavaScriptContentHandler\fillParserOutput(), and WikitextContentHandler\fillParserOutput().

◆ setPageProperty()

MediaWiki\Parser\ParserOutput::setPageProperty ( string $name,
$value )

Set a page property to be stored in the page_props database table.

page_props is a key-value store indexed by the page ID. This allows the parser to set a property on a page which can then be quickly retrieved given the page ID or via a DB join when given the page title.

Since 1.23, page_props are also indexed by numeric value, to allow for efficient "top k" queries of pages wrt a given property. This only works if the value is passed as a int, float, or bool. Since 1.42 you should use ::setNumericPageProperty() if you want your page property value to be indexed, which will ensure that the value is of the proper type.

setPageProperty() is thus used to propagate properties from the parsed page to request contexts other than a page view of the currently parsed article.

Some applications examples:

  • To implement hidden categories, hiding pages from category listings by storing a page property.
  • Overriding the displayed article title (ParserOutput::setDisplayTitle()).
  • To implement image tagging, for example displaying an icon on an image thumbnail to indicate that it is listed for deletion on Wikimedia Commons. This is not actually implemented, yet but would be pretty cool.
Note
Use of non-scalar values (anything other than string|int|float|bool) has been deprecated in 1.42. Although any JSON-serializable value can be stored/fetched in ParserOutput, when the values are stored to the database (in deferred/LinksUpdate/PagePropsTable.php) they will be converted: booleans will be converted to '0' and '1', null will become '', and everything else will be cast to string (not JSON-serialized). Page properties obtained from the PageProps service will thus always be strings.
The sort key stored in the database will be NULL unless the value passed here is an int|float|bool. If you do not want your property value indexed and sorted (for example, the value is a title string which can be numeric but only incidentally, like when it gets retrieved from an array key) be sure to cast to string or use ::setUnsortedPageProperty(). If you do want your property value indexed and sorted, you should use ::setNumericPageProperty() instead as this will ensure the value type is correct. Note that either way it is possible to efficiently look up all the pages with a certain property; we are only talking about sorting the values assigned to the property, for example for a "top N values of the property" query.
Note that ::getPageProperty()/::setPageProperty() do not do any conversions themselves; you should therefore be careful to distinguish values returned from the PageProp service (always strings) from values retrieved from a ParserOutput.
Do not use setPageProperty() to set a property which is only used in a context where the ParserOutput object itself is already available, for example a normal page view. There is no need to save such a property in the database since the text is already parsed; use setExtensionData() instead.
Example:
$parser->getOutput()->setExtensionData( 'my_ext_foo', '...' );

And then later, in OutputPageParserOutput or similar:

Example:
$output->getExtensionData( 'my_ext_foo' );
Note
The use of null as a value is deprecated since 1.42; use the empty string instead if you need a placeholder value, or ::unsetPageProperty() if you mean to remove a page property.
The use of non-string values is deprecated since 1.42; if you need an page property value with a sort index use ::setNumericPageProperty().
Parameters
string$name
int | float | string | bool | null$value
Since
1.38

Definition at line 1538 of file ParserOutput.php.

References wfDeprecated().

◆ setPreventClickjacking()

MediaWiki\Parser\ParserOutput::setPreventClickjacking ( bool $flag)

Set the prevent-clickjacking flag.

If set this will cause an X-Frame-Options header appropriate for edit pages to be sent. The header value is controlled by $wgEditPageFrameOptions.

This is the default for special pages. If you display a CSRF-protected form on an ordinary view page, then you need to call this function with $flag = true.

Parameters
bool$flagNew flag value
Since
1.38

Definition at line 2099 of file ParserOutput.php.

◆ setRawText()

MediaWiki\Parser\ParserOutput::setRawText ( ?string $text)

Set the raw text of the ParserOutput.

If you did not generate html, pass null to mark it as such.

Since
1.42
Parameters
string | null$textHTML content of ParserOutput or null if not generated

Definition at line 838 of file ParserOutput.php.

Referenced by CssContentHandler\fillParserOutput(), FallbackContentHandler\fillParserOutput(), JavaScriptContentHandler\fillParserOutput(), TextContentHandler\fillParserOutput(), JsonContentHandler\fillParserOutput(), WikitextContentHandler\fillParserOutput(), MediaWiki\Pager\TablePager\getBodyOutput(), and MediaWiki\Pager\TablePager\getFullOutput().

◆ setRedirectHeader()

MediaWiki\Parser\ParserOutput::setRedirectHeader ( string $html)

Set an HTML prefix to be applied on redirect pages.

Parameters
string$htmlHTML to prepend to redirect pages

Definition at line 1405 of file ParserOutput.php.

Referenced by WikitextContentHandler\fillParserOutput().

◆ setRenderId()

MediaWiki\Parser\ParserOutput::setRenderId ( string $renderId)

Store a unique rendering id for this ParserOutput.

This is used whenever a client needs to record a dependency on a specific parse. It is typically set only when a parser output is cached.

Parameters
string$renderIda UUID identifying a specific parse
Access: internal

Definition at line 1417 of file ParserOutput.php.

Referenced by MediaWiki\Parser\RevisionOutputCache\save(), and ParserCache\save().

◆ setRevisionTimestamp()

MediaWiki\Parser\ParserOutput::setRevisionTimestamp ( ?string $timestamp)
Parameters
?string$timestampTS_MW timestamp of the revision content

Definition at line 898 of file ParserOutput.php.

Referenced by MediaWiki\Parser\RevisionOutputCache\save().

◆ setRevisionTimestampUsed()

MediaWiki\Parser\ParserOutput::setRevisionTimestampUsed ( $timestamp)
Parameters
string$timestampTS_MW timestamp
Since
1.34

Definition at line 555 of file ParserOutput.php.

◆ setRevisionUsedSha1Base36()

MediaWiki\Parser\ParserOutput::setRevisionUsedSha1Base36 ( $hash)
Parameters
string$hashLowercase SHA-1 base 36 hash
Since
1.34

Definition at line 571 of file ParserOutput.php.

◆ setSections()

MediaWiki\Parser\ParserOutput::setSections ( array $sectionArray)
Parameters
array$sectionArray
Returns
array Previous value of ::getSections()

Definition at line 879 of file ParserOutput.php.

Referenced by CssContentHandler\fillParserOutput(), and JavaScriptContentHandler\fillParserOutput().

◆ setSpeculativePageIdUsed()

MediaWiki\Parser\ParserOutput::setSpeculativePageIdUsed ( $id)
Parameters
int$id
Since
1.34

Definition at line 539 of file ParserOutput.php.

◆ setSpeculativeRevIdUsed()

MediaWiki\Parser\ParserOutput::setSpeculativeRevIdUsed ( $id)
Parameters
int$id
Since
1.28

Definition at line 523 of file ParserOutput.php.

◆ setText()

MediaWiki\Parser\ParserOutput::setText ( $text)

Set the raw text of the ParserOutput.

If you did not generate html, pass null to mark it as such.

Since
1.39 You can now pass null to this function
Parameters
string | null$textHTML content of ParserOutput or null if not generated
Returns
string|null Previous value of ParserOutput's raw text
Deprecated
since 1.42; use ::setRawText() which matches the getter ::getRawText()

Definition at line 853 of file ParserOutput.php.

References wfSetVar().

◆ setTimestamp()

MediaWiki\Parser\ParserOutput::setTimestamp ( $timestamp)
Parameters
?string$timestampTS_MW timestamp of the revision content
Returns
?string The previous value of the timestamp
Deprecated
since 1.42; use ::setRevisionTimestamp() instead

Definition at line 908 of file ParserOutput.php.

References wfSetVar().

◆ setTitleText()

MediaWiki\Parser\ParserOutput::setTitleText ( $t)

Definition at line 864 of file ParserOutput.php.

References wfSetVar().

◆ setTOCData()

MediaWiki\Parser\ParserOutput::setTOCData ( TOCData $tocData)
Parameters
TOCData$tocDataTable of contents data for the page

Definition at line 871 of file ParserOutput.php.

Referenced by MediaWiki\Specials\SpecialVersion\execute(), MediaWiki\Specials\SpecialEditWatchlist\executeViewEditWatchlist(), and ApiHelp\getHelp().

◆ setUnsortedPageProperty()

MediaWiki\Parser\ParserOutput::setUnsortedPageProperty ( string $propName,
string $value = '' )

Set a page property whose value is not intended to be sorted and indexed.

See ::setPageProperty() for details. It is recommended to use the empty string if you need a placeholder value (ie, if it is the presence of the property which is important, not the value the property is set to).

It is still possible to efficiently look up all the pages with a certain property (the "presence" of it is indexed; see Special:PagesWithProp, list=pageswithprop).

Parameters
string$propNameThe name of the page property
string$valueOptional value; defaults to the empty string.
Since
1.42

Definition at line 1584 of file ParserOutput.php.

◆ toJsonArray()

MediaWiki\Parser\ParserOutput::toJsonArray ( )
protected

Returns a JSON serializable structure representing this ParserOutput instance.

See also
newFromJson()
Returns
array

Reimplemented from CacheTime.

Definition at line 2652 of file ParserOutput.php.

◆ unsetPageProperty()

MediaWiki\Parser\ParserOutput::unsetPageProperty ( string $name)

Remove a page property.

Parameters
string$nameThe page property name.
Since
1.38

Definition at line 1610 of file ParserOutput.php.

◆ updateRuntimeAdaptiveExpiry()

MediaWiki\Parser\ParserOutput::updateRuntimeAdaptiveExpiry ( $ttl)

Lower the runtime adaptive TTL to at most this value.

Parameters
int$ttl
Since
1.28

Definition at line 2120 of file ParserOutput.php.

Member Data Documentation

◆ MW_MERGE_STRATEGY_KEY

const MediaWiki\Parser\ParserOutput::MW_MERGE_STRATEGY_KEY = '_mw-strategy'
Access: internal
Since
1.38

Definition at line 120 of file ParserOutput.php.

◆ MW_MERGE_STRATEGY_UNION

const MediaWiki\Parser\ParserOutput::MW_MERGE_STRATEGY_UNION = 'union'

Merge strategy to use for ParserOutput accumulators: "union" means that values are strings, stored as a set, and exposed as a PHP associative array mapping from values to true.

This constant should be treated as

Access: internal
until we expose alternative merge strategies for external use.
Access: internal
Since
1.38

Definition at line 132 of file ParserOutput.php.

◆ SUPPORTS_STATELESS_TRANSFORMS

const MediaWiki\Parser\ParserOutput::SUPPORTS_STATELESS_TRANSFORMS = 1

Feature flags to indicate to extensions that MediaWiki core supports and uses getText() stateless transforms.

Since
1.31

Definition at line 109 of file ParserOutput.php.

◆ SUPPORTS_UNWRAP_TRANSFORM

const MediaWiki\Parser\ParserOutput::SUPPORTS_UNWRAP_TRANSFORM = 1
Since
1.31

Definition at line 114 of file ParserOutput.php.


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