MediaWiki REL1_34
ParserOutput Class Reference
Inheritance diagram for ParserOutput:
Collaboration diagram for ParserOutput:

Public Member Functions

 __construct ( $text='', $languageLinks=[], $categoryLinks=[], $unused=false, $titletext='')
 
 __sleep ()
 
 addCategory ( $c, $sort)
 
 addExternalLink ( $url)
 
 addHeadItem ( $section, $tag=false)
 Add some text to the "<head>".
 
 addImage ( $name, $timestamp=null, $sha1=null)
 Register a file dependency for this output.
 
 addInterwikiLink ( $title)
 
 addJsConfigVars ( $keys, $value=null)
 Add one or more variables to be set in mw.config in JavaScript.
 
 addLanguageLink ( $t)
 
 addLink (Title $title, $id=null)
 Record a local or interwiki inline link for saving in future link tables.
 
 addModules ( $modules)
 
 addModuleStyles ( $modules)
 
 addOutputHook ( $hook, $data=false)
 
 addOutputPageMetadata (OutputPage $out)
 Copy items from the OutputPage object into this one.
 
 addTemplate ( $title, $page_id, $rev_id)
 Register a template dependency for this output.
 
 addTrackingCategory ( $msg, $title)
 Add a tracking category, getting the title from a system message, or print a debug message if the title is invalid.
 
 addWarning ( $s)
 
 addWrapperDivClass ( $class)
 Add a CSS class to use for the wrapping div.
 
 clearWrapperDivClass ()
 Clears the CSS class to use for the wrapping div, effectively disabling the wrapper div until addWrapperDivClass() is called.
 
 finalizeAdaptiveCacheExpiry ()
 Call this when parsing is done to lower the TTL based on low parse times.
 
 getAllFlags ()
 
getCategories ()
 
 getCategoryLinks ()
 
 getDisplayTitle ()
 Get the title to be used for display.
 
 getEnableOOUI ()
 
 getExtensionData ( $key)
 Gets extensions data previously attached to this ParserOutput using setExtensionData().
 
getExternalLinks ()
 
getFileSearchOptions ()
 
 getFlag ( $flag)
 
 getHeadItems ()
 
 getHideNewSection ()
 
getImages ()
 
 getIndexPolicy ()
 
 getIndicators ()
 
 getInterwikiLinks ()
 
 getJsConfigVars ()
 
getLanguageLinks ()
 
 getLimitReportData ()
 
 getLimitReportJSData ()
 
getLinks ()
 
 getModules ()
 
 getModuleStyles ()
 
 getNewSection ()
 
 getNoGallery ()
 
 getOutputHooks ()
 
 getProperties ()
 
 getProperty ( $name)
 
 getRawText ()
 Get the cacheable text with <mw:editsection> markers still in it.
 
 getRevisionTimestampUsed ()
 
 getRevisionUsedSha1Base36 ()
 
 getSections ()
 
 getSpeculativePageIdUsed ()
 
 getSpeculativeRevIdUsed ()
 
getTemplateIds ()
 
getTemplates ()
 
 getText ( $options=[])
 Get the output HTML.
 
 getTimeSinceStart ( $clock)
 Returns the time since resetParseStartTime() was last called.
 
 getTimestamp ()
 
 getTitleText ()
 
 getTOCHTML ()
 
 getUsedOptions ()
 Returns the options from its ParserOptions which have been taken into account to produce this output.
 
 getWarnings ()
 
 getWrapperDivClass ()
 Returns the class (or classes) to be used with the wrapper div for this otuput.
 
 hasDynamicContent ()
 Check whether the cache TTL was lowered due to dynamic content.
 
 hasText ()
 Returns true if text was passed to the constructor, or set using setText().
 
 hideNewSection ( $value)
 
 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.
 
 preventClickjacking ( $flag=null)
 Get or set the prevent-clickjacking flag.
 
 recordOption ( $option)
 Tags a parser option for use in the cache key for this parser output.
 
 resetParseStartTime ()
 Resets the parse start timestamps for future calls to getTimeSinceStart()
 
 setCategoryLinks ( $cl)
 
 setDisplayTitle ( $text)
 Override the title to be used for display.
 
 setEnableOOUI ( $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.
 
 setFlag ( $flag)
 Attach a flag to the output so that it can be checked later to handle special cases.
 
 setIndexPolicy ( $policy)
 
 setIndicator ( $id, $content)
 
 setLanguageLinks ( $ll)
 
 setLimitReportData ( $key, $value)
 Sets parser limit report data for a key.
 
 setNewSection ( $value)
 
 setNoGallery ( $value)
 
 setProperty ( $name, $value)
 Set a property to be stored in the page_props database table.
 
 setRevisionTimestampUsed ( $timestamp)
 
 setRevisionUsedSha1Base36 ( $hash)
 
 setSections ( $toc)
 
 setSpeculativePageIdUsed ( $id)
 
 setSpeculativeRevIdUsed ( $id)
 
 setText ( $text)
 
 setTimestamp ( $timestamp)
 
 setTitleText ( $t)
 
 setTOCHTML ( $tochtml)
 
 unsetProperty ( $name)
 
 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 ()
 
 isCacheable ()
 
 isDifferentRevision ( $id)
 Return true if this cached output object is for a different revision of the page.
 
 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.
 

Public Attributes

 $mCategories
 
 $mEnableOOUI = false
 
 $mExternalLinks = []
 
 $mFileSearchOptions = []
 
 $mHeadItems = []
 
 $mHideNewSection = false
 
 $mImages = []
 
 $mIndicators = []
 
 $mInterwikiLinks = []
 
 $mJsConfigVars = []
 
 $mLanguageLinks
 
 $mLinks = []
 
 $mModules = []
 
 $mModuleStyles = []
 
 $mNewSection = false
 
 $mNoGallery = false
 
 $mOutputHooks = []
 
 $mProperties = []
 
 $mSections = []
 
 $mTemplateIds = []
 
 $mTemplates = []
 
 $mText = null
 
 $mTimestamp
 
 $mTitleText
 
 $mTOCHTML = ''
 
 $mWarnings = []
 
const EDITSECTION_REGEX
 
const FAST_AR_TTL = 60
 
const MIN_AR_TTL = 15
 
const PARSE_FAST_SEC = 0.100
 
const PARSE_SLOW_SEC = 1.0
 
const SLOW_AR_TTL = 3600
 
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
 
- Public 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.
 
string[] $mUsedOptions
 ParserOptions which have been taken into account to produce output.
 
string null $mVersion = Parser::VERSION
 Compatibility check.
 

Static Private Member Functions

static getTimes ( $clock=null)
 
static merge2D (array $a, array $b)
 
static mergeList (array $a, array $b)
 
static mergeMap (array $a, array $b)
 
static mergeMixedList (array $a, array $b)
 
static useEachMinValue (array $a, array $b)
 
static useMaxValue ( $a, $b)
 
static useMinValue ( $a, $b)
 

Private Attributes

 $mAccessedOptions = []
 
 $mExtensionData = []
 
 $mFlags = []
 
 $mIndexPolicy = ''
 
 $mLimitReportData = []
 
array $mLimitReportJSData = []
 Parser limit report data for JSON.
 
int $mMaxAdaptiveExpiry = INF
 Upper bound of expiry based on parse duration.
 
 $mParseStartTime = []
 
 $mPreventClickjacking = false
 
int null $mSpeculativeRevId
 Assumed rev ID for {{REVISIONID}} if no revision is set.
 
 $mWrapperDivClasses = []
 string CSS classes to use for the wrapping div, stored in the array keys.
 
int null $revisionTimestampUsed
 Assumed rev timestamp for {{REVISIONTIMESTAMP}} if no revision is set.
 
string null $revisionUsedSha1Base36
 SHA-1 base 36 hash of any self-transclusion.
 
int null $speculativePageIdUsed
 Assumed page ID for {{PAGEID}} if no revision is set.
 

Static Private Attributes

static string[] $speculativeFields
 

Detailed Description

Definition at line 25 of file ParserOutput.php.

Constructor & Destructor Documentation

◆ __construct()

ParserOutput::__construct (   $text = '',
  $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.
array$languageLinks
array$categoryLinks
bool$unused
string$titletext

Definition at line 259 of file ParserOutput.php.

Member Function Documentation

◆ __sleep()

ParserOutput::__sleep ( )

Definition at line 1328 of file ParserOutput.php.

◆ addCategory()

ParserOutput::addCategory (   $c,
  $sort 
)

Definition at line 672 of file ParserOutput.php.

References $sort.

Referenced by addTrackingCategory().

◆ addExternalLink()

ParserOutput::addExternalLink (   $url)

Definition at line 742 of file ParserOutput.php.

References $wgRegisterInternalExternals, and $wgServer.

◆ addHeadItem()

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 | bool$tag

Definition at line 847 of file ParserOutput.php.

◆ addImage()

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

Register a file dependency for this output.

Parameters
string$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 799 of file ParserOutput.php.

◆ addInterwikiLink()

ParserOutput::addInterwikiLink (   $title)
Parameters
Title$titleTitle object, must be an interwiki link
Exceptions
MWExceptionIf given invalid input

Definition at line 829 of file ParserOutput.php.

References $title.

Referenced by addLink().

◆ addJsConfigVars()

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

Definition at line 876 of file ParserOutput.php.

References $keys.

Referenced by addOutputPageMetadata().

◆ addLanguageLink()

ParserOutput::addLanguageLink (   $t)

Definition at line 696 of file ParserOutput.php.

References $t.

◆ addLink()

ParserOutput::addLink ( Title  $title,
  $id = null 
)

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

Parameters
Title$title
int | null$idOptional known page_id so we can skip the lookup

Definition at line 765 of file ParserOutput.php.

References $title, addInterwikiLink(), NS_FILE, NS_MEDIA, and NS_SPECIAL.

Referenced by WikitextContent\fillParserOutput().

◆ addModules()

ParserOutput::addModules (   $modules)
See also
OutputPage::addModules

Definition at line 858 of file ParserOutput.php.

References $modules.

Referenced by addOutputPageMetadata().

◆ addModuleStyles()

ParserOutput::addModuleStyles (   $modules)
See also
OutputPage::addModuleStyles

Definition at line 865 of file ParserOutput.php.

References $modules.

Referenced by addOutputPageMetadata(), JsonContent\fillParserOutput(), and WikitextContent\fillParserOutput().

◆ addOutputHook()

ParserOutput::addOutputHook (   $hook,
  $data = false 
)

Definition at line 704 of file ParserOutput.php.

◆ addOutputPageMetadata()

ParserOutput::addOutputPageMetadata ( OutputPage  $out)

◆ addTemplate()

ParserOutput::addTemplate (   $title,
  $page_id,
  $rev_id 
)

Register a template dependency for this output.

Parameters
Title$title
int$page_id
int$rev_id

Definition at line 812 of file ParserOutput.php.

References $title.

◆ addTrackingCategory()

ParserOutput::addTrackingCategory (   $msg,
  $title 
)

Add a tracking category, getting the title from a system message, or print a debug message if the title is invalid.

Any message used with this function should be registered so it will show up on Special:TrackingCategories. Core messages should be added to SpecialTrackingCategories::$coreTrackingCategories, and extensions should add to "TrackingCategories" in their extension.json.

Todo:
Migrate some code to TrackingCategories
Parameters
string$msgMessage key
Title$titletitle of the page which is being tracked
Returns
bool Whether the addition was successful
Since
1.25

Definition at line 917 of file ParserOutput.php.

References $title, addCategory(), NS_CATEGORY, wfDebug(), and wfMessage().

◆ addWarning()

ParserOutput::addWarning (   $s)

Definition at line 700 of file ParserOutput.php.

References $s.

◆ addWrapperDivClass()

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 423 of file ParserOutput.php.

◆ clearWrapperDivClass()

ParserOutput::clearWrapperDivClass ( )

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

Definition at line 431 of file ParserOutput.php.

Referenced by TextContent\fillParserOutput().

◆ finalizeAdaptiveCacheExpiry()

ParserOutput::finalizeAdaptiveCacheExpiry ( )

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

Since
1.28

Definition at line 1308 of file ParserOutput.php.

References getTimeSinceStart(), and CacheTime\updateCacheExpiry().

◆ getAllFlags()

ParserOutput::getAllFlags ( )
Returns
string[] List of flags signifying special cases
Since
1.34

Definition at line 997 of file ParserOutput.php.

◆ getCategories()

& ParserOutput::getCategories ( )

◆ getCategoryLinks()

ParserOutput::getCategoryLinks ( )

◆ getDisplayTitle()

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 HTML

Definition at line 968 of file ParserOutput.php.

References $t, and getTitleText().

◆ getEnableOOUI()

ParserOutput::getEnableOOUI ( )

Definition at line 636 of file ParserOutput.php.

Referenced by OutputPage\addParserOutputMetadata().

◆ getExtensionData()

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 1175 of file ParserOutput.php.

◆ getExternalLinks()

& ParserOutput::getExternalLinks ( )

◆ getFileSearchOptions()

& ParserOutput::getFileSearchOptions ( )

Definition at line 569 of file ParserOutput.php.

Referenced by OutputPage\addParserOutputMetadata().

◆ getFlag()

ParserOutput::getFlag (   $flag)
Parameters
string$flag
Returns
bool Whether the given flag was set to signify a special case

Definition at line 989 of file ParserOutput.php.

Referenced by MediaWiki\Revision\RenderedRevision\outputVariesOnRevisionMetaData(), and MediaWiki\Storage\PageEditStash\storeStashValue().

◆ getHeadItems()

ParserOutput::getHeadItems ( )

Definition at line 585 of file ParserOutput.php.

Referenced by OutputPage\addParserOutputMetadata().

◆ getHideNewSection()

ParserOutput::getHideNewSection ( )

Definition at line 716 of file ParserOutput.php.

Referenced by OutputPage\addParserOutputMetadata().

◆ getImages()

& ParserOutput::getImages ( )

Definition at line 565 of file ParserOutput.php.

Referenced by LinksUpdate\__construct().

◆ getIndexPolicy()

ParserOutput::getIndexPolicy ( )

Definition at line 613 of file ParserOutput.php.

◆ getIndicators()

ParserOutput::getIndicators ( )
Returns
array
Since
1.25

Definition at line 541 of file ParserOutput.php.

Referenced by OutputPage\addParserOutputMetadata().

◆ getInterwikiLinks()

ParserOutput::getInterwikiLinks ( )

Definition at line 525 of file ParserOutput.php.

Referenced by LinksUpdate\__construct().

◆ getJsConfigVars()

ParserOutput::getJsConfigVars ( )
Returns
array
Since
1.23

Definition at line 601 of file ParserOutput.php.

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

◆ getLanguageLinks()

& ParserOutput::getLanguageLinks ( )

◆ getLimitReportData()

ParserOutput::getLimitReportData ( )

Definition at line 628 of file ParserOutput.php.

◆ getLimitReportJSData()

ParserOutput::getLimitReportJSData ( )

Definition at line 632 of file ParserOutput.php.

Referenced by OutputPage\addParserOutputMetadata().

◆ getLinks()

& ParserOutput::getLinks ( )

◆ getModules()

ParserOutput::getModules ( )

◆ getModuleStyles()

ParserOutput::getModuleStyles ( )

◆ getNewSection()

ParserOutput::getNewSection ( )

Definition at line 720 of file ParserOutput.php.

Referenced by OutputPage\addParserOutputMetadata().

◆ getNoGallery()

ParserOutput::getNoGallery ( )

Definition at line 581 of file ParserOutput.php.

Referenced by OutputPage\addParserOutputMetadata().

◆ getOutputHooks()

ParserOutput::getOutputHooks ( )

Definition at line 605 of file ParserOutput.php.

Referenced by OutputPage\addParserOutputMetadata().

◆ getProperties()

ParserOutput::getProperties ( )

Definition at line 1081 of file ParserOutput.php.

Referenced by LinksUpdate\__construct().

◆ getProperty()

ParserOutput::getProperty (   $name)
Parameters
string$nameThe property name to look up.
Returns
mixed|bool The value previously set using setProperty(). False if null or no value was set for the given property name.
Note
You need to use getProperties() to check for boolean and null properties.

Definition at line 1073 of file ParserOutput.php.

◆ getRawText()

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 290 of file ParserOutput.php.

References $mText.

Referenced by WikitextContent\fillParserOutput(), and getText().

◆ getRevisionTimestampUsed()

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

Definition at line 490 of file ParserOutput.php.

Referenced by MediaWiki\Revision\RenderedRevision\outputVariesOnRevisionMetaData().

◆ getRevisionUsedSha1Base36()

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

Definition at line 517 of file ParserOutput.php.

Referenced by MediaWiki\Revision\RenderedRevision\outputVariesOnRevisionMetaData().

◆ getSections()

ParserOutput::getSections ( )

Definition at line 549 of file ParserOutput.php.

◆ getSpeculativePageIdUsed()

ParserOutput::getSpeculativePageIdUsed ( )
Returns
int|null
Since
1.34

Definition at line 474 of file ParserOutput.php.

Referenced by MediaWiki\Revision\RenderedRevision\outputVariesOnRevisionMetaData().

◆ getSpeculativeRevIdUsed()

ParserOutput::getSpeculativeRevIdUsed ( )
Returns
int|null
Since
1.28

Definition at line 458 of file ParserOutput.php.

Referenced by MediaWiki\Revision\RenderedRevision\outputVariesOnRevisionMetaData().

◆ getTemplateIds()

& ParserOutput::getTemplateIds ( )

Definition at line 561 of file ParserOutput.php.

Referenced by OutputPage\addParserOutputMetadata().

◆ getTemplates()

& ParserOutput::getTemplates ( )

◆ getText()

ParserOutput::getText (   $options = [])

Get the output HTML.

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.
  • enableSectionEditLinks: (bool) Include section edit links, assuming section edit link tokens are present in the HTML. Default is true, but might be statefully overridden.
  • 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.
Returns
string HTML
-taint escaped

Definition at line 323 of file ParserOutput.php.

References $context, getRawText(), getWrapperDivClass(), and wfUrlencode().

Referenced by OutputPage\addParserOutputText(), Status\getHTML(), and Message\parseText().

◆ getTimes()

static ParserOutput::getTimes (   $clock = null)
staticprivate

Definition at line 1179 of file ParserOutput.php.

References wfGetRusage().

◆ getTimeSinceStart()

array $mParseStartTime Timestamps for 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
Parameters
string$clock
Returns
float|null

Definition at line 1213 of file ParserOutput.php.

Referenced by finalizeAdaptiveCacheExpiry().

◆ getTimestamp()

ParserOutput::getTimestamp ( )
Returns
string|null TS_MW timestamp of the revision content

Definition at line 624 of file ParserOutput.php.

◆ getTitleText()

ParserOutput::getTitleText ( )

Definition at line 545 of file ParserOutput.php.

Referenced by Article\adjustDisplayTitle(), and getDisplayTitle().

◆ getTOCHTML()

ParserOutput::getTOCHTML ( )

Definition at line 617 of file ParserOutput.php.

Referenced by OutputPage\addParserOutputMetadata().

◆ getUsedOptions()

ParserOutput::getUsedOptions ( )

Returns the options from its ParserOptions which have been taken into account to produce this output.

Returns
string[]

Definition at line 1093 of file ParserOutput.php.

Referenced by ParserCache\save().

◆ getWarnings()

ParserOutput::getWarnings ( )

Definition at line 609 of file ParserOutput.php.

◆ getWrapperDivClass()

ParserOutput::getWrapperDivClass ( )

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

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 442 of file ParserOutput.php.

Referenced by getText().

◆ hasDynamicContent()

ParserOutput::hasDynamicContent ( )

Check whether the cache TTL was lowered due to dynamic content.

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.

Returns
bool
Since
1.25

Definition at line 1275 of file ParserOutput.php.

References $wgParserCacheExpireTime, and CacheTime\getCacheExpiry().

Referenced by WikiPage\triggerOpportunisticLinksUpdate().

◆ hasText()

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 278 of file ParserOutput.php.

Referenced by ParserCache\save().

◆ hideNewSection()

ParserOutput::hideNewSection (   $value)

Definition at line 712 of file ParserOutput.php.

◆ isLinkInternal()

static 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

Definition at line 731 of file ParserOutput.php.

◆ merge2D()

static ParserOutput::merge2D ( array  $a,
array  $b 
)
staticprivate

Definition at line 1486 of file ParserOutput.php.

References $keys.

◆ mergeHtmlMetaDataFrom()

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 mered into the HTML of this ParserOutput.

Parameters
ParserOutput$source

Definition at line 1387 of file ParserOutput.php.

References $source.

◆ mergeInternalMetaDataFrom()

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 1351 of file ParserOutput.php.

References $source, useEachMinValue(), useMaxValue(), and wfLogWarning().

◆ mergeList()

static ParserOutput::mergeList ( array  $a,
array  $b 
)
staticprivate

Definition at line 1478 of file ParserOutput.php.

◆ mergeMap()

static ParserOutput::mergeMap ( array  $a,
array  $b 
)
staticprivate

Definition at line 1482 of file ParserOutput.php.

◆ mergeMixedList()

static ParserOutput::mergeMixedList ( array  $a,
array  $b 
)
staticprivate

Definition at line 1474 of file ParserOutput.php.

◆ mergeTrackingMetaDataFrom()

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 1444 of file ParserOutput.php.

References $source.

◆ preventClickjacking()

ParserOutput::preventClickjacking (   $flag = null)

Get or set the prevent-clickjacking flag.

Since
1.24
Parameters
bool | null$flagNew flag value, or null to leave it unchanged
Returns
bool Old flag value

Definition at line 1288 of file ParserOutput.php.

References wfSetVar().

Referenced by OutputPage\addParserOutputMetadata().

◆ recordOption()

ParserOutput::recordOption (   $option)

Tags a parser option for use in the cache key for this parser output.

Registered as a watcher at ParserOptions::registerWatcher() by Parser::clearState(). The information gathered here is available via getUsedOptions(), and is used by ParserCache::save().

See also
ParserCache::getKey
ParserCache::save
ParserOptions::addExtraKey
ParserOptions::optionsHash
Parameters
string$option

Definition at line 1112 of file ParserOutput.php.

◆ resetParseStartTime()

ParserOutput::resetParseStartTime ( )

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

Since
1.22

Definition at line 1198 of file ParserOutput.php.

◆ setCategoryLinks()

ParserOutput::setCategoryLinks (   $cl)

Definition at line 648 of file ParserOutput.php.

References wfSetVar().

◆ setDisplayTitle()

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 955 of file ParserOutput.php.

References setProperty(), and setTitleText().

◆ setEnableOOUI()

ParserOutput::setEnableOOUI (   $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 692 of file ParserOutput.php.

◆ setExtensionData()

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 setProperty(), 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 = '...';
Since
1.21
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$valueThe value to set. Setting a value to null is equivalent to removing the value.

Definition at line 1156 of file ParserOutput.php.

◆ setFlag()

ParserOutput::setFlag (   $flag)

Attach a flag to the output so that it can be checked later to handle special cases.

Parameters
string$flag

Definition at line 981 of file ParserOutput.php.

Referenced by WikitextContent\fillParserOutput().

◆ setIndexPolicy()

ParserOutput::setIndexPolicy (   $policy)

Definition at line 660 of file ParserOutput.php.

References wfSetVar().

◆ setIndicator()

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

Definition at line 681 of file ParserOutput.php.

References $content.

◆ setLanguageLinks()

ParserOutput::setLanguageLinks (   $ll)

Definition at line 644 of file ParserOutput.php.

References wfSetVar().

◆ setLimitReportData()

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 sanity of display in the "NewPP limit report" comment.

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

Definition at line 1241 of file ParserOutput.php.

◆ setNewSection()

ParserOutput::setNewSection (   $value)

Definition at line 708 of file ParserOutput.php.

◆ setNoGallery()

ParserOutput::setNoGallery (   $value)

Definition at line 577 of file ParserOutput.php.

◆ setProperty()

ParserOutput::setProperty (   $name,
  $value 
)

Set a 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.

setProperty() 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 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
Do not use setProperty() 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. You can just hook OutputPageParserOutput and get your data out of the ParserOutput object.

If you are writing an extension where you want to set a property in the parser which is used by an OutputPageParserOutput hook, you have to associate the extension data directly with the ParserOutput object. Since MediaWiki 1.21, you can use setExtensionData() to do this:

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 = '...';
Parameters
string$name
mixed$value

Definition at line 1061 of file ParserOutput.php.

Referenced by setDisplayTitle().

◆ setRevisionTimestampUsed()

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

Definition at line 482 of file ParserOutput.php.

◆ setRevisionUsedSha1Base36()

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

Definition at line 498 of file ParserOutput.php.

◆ setSections()

ParserOutput::setSections (   $toc)

Definition at line 656 of file ParserOutput.php.

References wfSetVar().

◆ setSpeculativePageIdUsed()

ParserOutput::setSpeculativePageIdUsed (   $id)
Parameters
int$id
Since
1.34

Definition at line 466 of file ParserOutput.php.

◆ setSpeculativeRevIdUsed()

ParserOutput::setSpeculativeRevIdUsed (   $id)
Parameters
int$id
Since
1.28

Definition at line 450 of file ParserOutput.php.

◆ setText()

◆ setTimestamp()

ParserOutput::setTimestamp (   $timestamp)

Definition at line 668 of file ParserOutput.php.

References wfSetVar().

Referenced by ParserCache\save().

◆ setTitleText()

ParserOutput::setTitleText (   $t)

Definition at line 652 of file ParserOutput.php.

References $t, and wfSetVar().

Referenced by setDisplayTitle().

◆ setTOCHTML()

ParserOutput::setTOCHTML (   $tochtml)

Definition at line 664 of file ParserOutput.php.

References wfSetVar().

◆ unsetProperty()

ParserOutput::unsetProperty (   $name)

Definition at line 1077 of file ParserOutput.php.

◆ updateRuntimeAdaptiveExpiry()

ParserOutput::updateRuntimeAdaptiveExpiry (   $ttl)

Lower the runtime adaptive TTL to at most this value.

Parameters
int$ttl
Since
1.28

Definition at line 1298 of file ParserOutput.php.

References CacheTime\updateCacheExpiry().

◆ useEachMinValue()

static ParserOutput::useEachMinValue ( array  $a,
array  $b 
)
staticprivate

Definition at line 1505 of file ParserOutput.php.

References $keys.

Referenced by mergeInternalMetaDataFrom().

◆ useMaxValue()

static ParserOutput::useMaxValue (   $a,
  $b 
)
staticprivate

Definition at line 1532 of file ParserOutput.php.

Referenced by mergeInternalMetaDataFrom().

◆ useMinValue()

static ParserOutput::useMinValue (   $a,
  $b 
)
staticprivate

Definition at line 1520 of file ParserOutput.php.

Member Data Documentation

◆ $mAccessedOptions

ParserOutput::$mAccessedOptions = []
private

Definition at line 183 of file ParserOutput.php.

◆ $mCategories

ParserOutput::$mCategories

Definition at line 53 of file ParserOutput.php.

◆ $mEnableOOUI

ParserOutput::$mEnableOOUI = false

Definition at line 173 of file ParserOutput.php.

◆ $mExtensionData

ParserOutput::$mExtensionData = []
private

Definition at line 188 of file ParserOutput.php.

◆ $mExternalLinks

ParserOutput::$mExternalLinks = []

Definition at line 96 of file ParserOutput.php.

◆ $mFileSearchOptions

ParserOutput::$mFileSearchOptions = []

Definition at line 91 of file ParserOutput.php.

◆ $mFlags

ParserOutput::$mFlags = []
private

Definition at line 211 of file ParserOutput.php.

◆ $mHeadItems

ParserOutput::$mHeadItems = []

Definition at line 122 of file ParserOutput.php.

◆ $mHideNewSection

ParserOutput::$mHideNewSection = false

Definition at line 112 of file ParserOutput.php.

◆ $mImages

ParserOutput::$mImages = []

Definition at line 86 of file ParserOutput.php.

◆ $mIndexPolicy

ParserOutput::$mIndexPolicy = ''
private

Definition at line 178 of file ParserOutput.php.

◆ $mIndicators

ParserOutput::$mIndicators = []

Definition at line 58 of file ParserOutput.php.

◆ $mInterwikiLinks

ParserOutput::$mInterwikiLinks = []

Definition at line 102 of file ParserOutput.php.

◆ $mJsConfigVars

ParserOutput::$mJsConfigVars = []

Definition at line 137 of file ParserOutput.php.

◆ $mLanguageLinks

ParserOutput::$mLanguageLinks

Definition at line 48 of file ParserOutput.php.

◆ $mLimitReportData

ParserOutput::$mLimitReportData = []
private

Definition at line 193 of file ParserOutput.php.

◆ $mLimitReportJSData

array ParserOutput::$mLimitReportJSData = []
private

Parser limit report data for JSON.

Definition at line 196 of file ParserOutput.php.

◆ $mLinks

ParserOutput::$mLinks = []

Definition at line 69 of file ParserOutput.php.

◆ $mMaxAdaptiveExpiry

int ParserOutput::$mMaxAdaptiveExpiry = INF
private

Upper bound of expiry based on parse duration.

Definition at line 236 of file ParserOutput.php.

◆ $mModules

ParserOutput::$mModules = []

Definition at line 127 of file ParserOutput.php.

◆ $mModuleStyles

ParserOutput::$mModuleStyles = []

Definition at line 132 of file ParserOutput.php.

◆ $mNewSection

ParserOutput::$mNewSection = false

Definition at line 107 of file ParserOutput.php.

◆ $mNoGallery

ParserOutput::$mNoGallery = false

Definition at line 117 of file ParserOutput.php.

◆ $mOutputHooks

ParserOutput::$mOutputHooks = []

Definition at line 142 of file ParserOutput.php.

◆ $mParseStartTime

ParserOutput::$mParseStartTime = []
private

Definition at line 201 of file ParserOutput.php.

◆ $mPreventClickjacking

ParserOutput::$mPreventClickjacking = false
private

Definition at line 206 of file ParserOutput.php.

◆ $mProperties

ParserOutput::$mProperties = []

Definition at line 158 of file ParserOutput.php.

◆ $mSections

ParserOutput::$mSections = []

Definition at line 153 of file ParserOutput.php.

◆ $mSpeculativeRevId

int null ParserOutput::$mSpeculativeRevId
private

Assumed rev ID for {{REVISIONID}} if no revision is set.

Definition at line 221 of file ParserOutput.php.

◆ $mTemplateIds

ParserOutput::$mTemplateIds = []

Definition at line 81 of file ParserOutput.php.

◆ $mTemplates

ParserOutput::$mTemplates = []

Definition at line 75 of file ParserOutput.php.

◆ $mText

ParserOutput::$mText = null

Definition at line 42 of file ParserOutput.php.

◆ $mTimestamp

ParserOutput::$mTimestamp

Definition at line 168 of file ParserOutput.php.

◆ $mTitleText

ParserOutput::$mTitleText

Definition at line 63 of file ParserOutput.php.

◆ $mTOCHTML

ParserOutput::$mTOCHTML = ''

Definition at line 163 of file ParserOutput.php.

◆ $mWarnings

ParserOutput::$mWarnings = []

Definition at line 148 of file ParserOutput.php.

◆ $mWrapperDivClasses

ParserOutput::$mWrapperDivClasses = []
private

string CSS classes to use for the wrapping div, stored in the array keys.

If no class is given, no wrapper is added.

Definition at line 233 of file ParserOutput.php.

◆ $revisionTimestampUsed

int null ParserOutput::$revisionTimestampUsed
private

Assumed rev timestamp for {{REVISIONTIMESTAMP}} if no revision is set.

Definition at line 225 of file ParserOutput.php.

◆ $revisionUsedSha1Base36

string null ParserOutput::$revisionUsedSha1Base36
private

SHA-1 base 36 hash of any self-transclusion.

Definition at line 228 of file ParserOutput.php.

◆ $speculativeFields

string [] ParserOutput::$speculativeFields
staticprivate
Initial value:
= [
'speculativePageIdUsed',
'mSpeculativeRevId',
'revisionTimestampUsed'
]

Definition at line 214 of file ParserOutput.php.

◆ $speculativePageIdUsed

int null ParserOutput::$speculativePageIdUsed
private

Assumed page ID for {{PAGEID}} if no revision is set.

Definition at line 223 of file ParserOutput.php.

◆ EDITSECTION_REGEX

const ParserOutput::EDITSECTION_REGEX
Initial value:
=
'#<(?:mw:)?editsection page="(.*?)" section="(.*?)"(?:/>|>(.*?)(</(?:mw:)?editsection>))#s'

Definition at line 238 of file ParserOutput.php.

◆ FAST_AR_TTL

const ParserOutput::FAST_AR_TTL = 60

Definition at line 246 of file ParserOutput.php.

◆ MIN_AR_TTL

const ParserOutput::MIN_AR_TTL = 15

Definition at line 248 of file ParserOutput.php.

◆ PARSE_FAST_SEC

const ParserOutput::PARSE_FAST_SEC = 0.100

Definition at line 244 of file ParserOutput.php.

◆ PARSE_SLOW_SEC

const ParserOutput::PARSE_SLOW_SEC = 1.0

Definition at line 245 of file ParserOutput.php.

◆ SLOW_AR_TTL

const ParserOutput::SLOW_AR_TTL = 3600

Definition at line 247 of file ParserOutput.php.

◆ SUPPORTS_STATELESS_TRANSFORMS

const 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 32 of file ParserOutput.php.

◆ SUPPORTS_UNWRAP_TRANSFORM

const ParserOutput::SUPPORTS_UNWRAP_TRANSFORM = 1
Since
1.31

Definition at line 37 of file ParserOutput.php.


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