MediaWiki  REL1_24
Parser Class Reference

PHP Parser - Processes wiki markup (which uses a more user-friendly syntax, such as "[[link]]" for making links), and provides a one-way transformation of that wiki markup it into (X)HTML output / markup (which in turn the browser understands, and can display). More...

Collaboration diagram for Parser:

List of all members.

Public Member Functions

 __clone ()
 Allow extensions to clean up when the parser is cloned.
 __construct ($conf=array())
 __destruct ()
 Reduce memory usage to reduce the impact of circular references.
 addTrackingCategory ($msg)
 Add a tracking category, getting the title from a system message, or print a debug message if the title is invalid.
 areSubpagesAllowed ()
 Return true if subpage links should be expanded on this page.
 argSubstitution ($piece, $frame)
 Triple brace replacement -- used for template arguments.
 armorLinks ($text)
 Insert a NOPARSE hacky thing into any inline links in a chunk that's going to go through further parsing steps before inline URL expansion.
 attributeStripCallback (&$text, $frame=false)
 Callback from the Sanitizer for expanding items found in HTML attribute values, so they can be safely tested and escaped.
 braceSubstitution ($piece, $frame)
 Return the text of a template, after recursively replacing any variables or templates within the template.
 callParserFunction ($frame, $function, array $args=array())
 Call a parser function and return an array with text and flags.
 cleanSig ($text, $parsing=false)
 Clean up signature text.
 clearState ()
 Clear Parser state.
 clearTagHooks ()
 Remove all tag hooks.
 closeList ($char)
 closeParagraph ()
 #@+ Used by doBlockLevels()
 disableCache ()
 Set a flag in the output object indicating that the content is dynamic and shouldn't be cached.
 doAllQuotes ($text)
 Replace single quotes with HTML markup.
 doBlockLevels ($text, $linestart)
 #@-
 doDoubleUnderscore ($text)
 Strip double-underscore items like __NOGALLERY__ and __NOTOC__ Fills $this->mDoubleUnderscores, returns the modified text.
 doHeadings ($text)
 Parse headers and return html.
 doMagicLinks ($text)
 Replace special strings like "ISBN xxx" and "RFC xxx" with magic external links.
 doQuotes ($text)
 Helper function for doAllQuotes()
 doTableStuff ($text)
 parse the wiki syntax used to render tables
 extensionSubstitution ($params, $frame)
 Return the text to be used for a given extension tag.
 fetchFile ($title, $options=array())
 Fetch a file and its title and register a reference to it.
 fetchFileAndTitle ($title, $options=array())
 Fetch a file and its title and register a reference to it.
 fetchScaryTemplateMaybeFromCache ($url)
 fetchTemplate ($title)
 Fetch the unparsed text of a template and register a reference to it.
 fetchTemplateAndTitle ($title)
 Fetch the unparsed text of a template and register a reference to it.
 findColonNoLinks ($str, &$before, &$after)
 Split up a string on ':', ignoring any occurrences inside tags to prevent illegal overlapping.
 firstCallInit ()
 Do various kinds of initialisation on the first call of the parser.
 formatHeadings ($text, $origText, $isMain=true)
 This function accomplishes several tasks: 1) Auto-number headings if that option is enabled 2) Add an [edit] link to sections for users who have enabled the option and can edit the page 3) Add a Table of contents on the top for users who have enabled the option 4) Auto-anchor headings.
 getCommon ($st1, $st2)
 getCommon() returns the length of the longest common substring of both arguments, starting at the beginning of both.
 getConverterLanguage ()
 Get the language object for language conversion.
 getCustomDefaultSort ()
 Accessor for $mDefaultSort Unlike getDefaultSort(), will return false if none is set.
 getDefaultSort ()
 Accessor for $mDefaultSort Will use the empty string if none is set.
 getExternalLinkAttribs ($url=false)
 Get an associative array of additional HTML attributes appropriate for a particular external link.
 getFreshParser ()
 Return this parser if it is not doing anything, otherwise get a fresh parser.
 getFunctionHooks ()
 Get all registered function hook identifiers.
 getFunctionLang ()
 Get a language object for use in parser functions such as {{FORMATNUM:}}.
 getImageParams ($handler)
 getOptions ()
 Get the ParserOptions object.
 getOutput ()
 Get the ParserOutput object.
 getPreloadText ($text, Title $title, ParserOptions $options, $params=array())
 Process the wikitext for the "?preload=" feature.
 getPreprocessor ()
 Get a preprocessor object.
 getRevisionId ()
 Get the ID of the revision we are parsing.
 getRevisionObject ()
 Get the revision object for $this->mRevisionId.
 getRevisionSize ()
 Get the size of the revision.
 getRevisionTimestamp ()
 Get the timestamp associated with the current revision, adjusted for the default server-local timestamp.
 getRevisionUser ()
 Get the name of the user that edited the last revision.
 getSection ($text, $sectionId, $defaultText= '')
 This function returns the text of a section, specified by a number ($section).
 getStripList ()
 Get a list of strippable XML-like elements.
 getTags ()
 Accessor.
 getTargetLanguage ()
 Get the target language for the content being parsed.
 getTemplateDom ($title)
 Get the semi-parsed DOM representation of a template with a given title, and its redirect destination title.
 getTitle ()
 Accessor for the Title object.
 getUser ()
 Get a User object either from $this->mUser, if set, or from the ParserOptions object otherwise.
 getUserSig (&$user, $nickname=false, $fancySig=null)
 Fetch the user's signature text, if any, and normalize to validated, ready-to-insert wikitext.
 getVariableValue ($index, $frame=false)
 Return value of a magic variable (like PAGENAME)
 guessLegacySectionNameFromWikiText ($text)
 Same as guessSectionNameFromWikiText(), but produces legacy anchors instead.
 guessSectionNameFromWikiText ($text)
 Try to guess the section anchor name based on a wikitext fragment presumably extracted from a heading, for example "Header" from "== Header ==".
 incrementExpensiveFunctionCount ()
 Increment the expensive function count.
 incrementIncludeSize ($type, $size)
 Increment an include size counter.
 initialiseVariables ()
 initialise the magic variables (like CURRENTMONTHNAME) and substitution modifiers
 insertStripItem ($text)
 Add an item to the strip state Returns the unique tag which must be inserted into the stripped text The tag will be replaced with the original text in unstrip()
 internalParse ($text, $isMain=true, $frame=false)
 Helper function for parse() that transforms wiki markup into HTML.
 interwikiTransclude ($title, $action)
 Transclude an interwiki link.
 isValidHalfParsedText ($data)
 Returns true if the given array, presumed to be generated by serializeHalfParsedText(), is compatible with the current version of the parser.
 killMarkers ($text)
 Remove any strip markers found in the given text.
 limitationWarn ($limitationType, $current= '', $max= '')
 Warn the user when a parser limitation is reached Will warn at most once the user per limitation type.
 magicLinkCallback ($m)
 makeFreeExternalLink ($url)
 Make a free external link, given a user-supplied URL.
 makeImage ($title, $options, $holders=false)
 Parse image options text and use it to make an image.
 makeKnownLinkHolder ($nt, $text= '', $query=array(), $trail= '', $prefix= '')
 Render a forced-blue link inline; protect against double expansion of URLs if we're in a mode that prepends full URL prefixes to internal links.
 markerSkipCallback ($s, $callback)
 Call a callback function on all regions of the given text that are not inside strip markers, and replace those regions with the return value of the callback.
 maybeDoSubpageLink ($target, &$text)
 Handle link to subpage if necessary.
 nextItem ($char)
 TODO: document.
 nextLinkID ()
 openList ($char)
 These next three functions open, continue, and close the list element appropriate to the prefix character passed into them.
 Options ($x=null)
 Accessor/mutator for the ParserOptions object.
 OutputType ($x=null)
 Accessor/mutator for the output type.
 parse ($text, Title $title, ParserOptions $options, $linestart=true, $clearState=true, $revid=null)
 Convert wikitext to HTML Do not call this function recursively.
 parseWidthParam ($value)
 Parsed a width param of imagelink like 300px or 200x300px.
 preprocess ($text, Title $title=null, ParserOptions $options, $revid=null, $frame=false)
 Expand templates and variables in the text, producing valid, static wikitext.
 preprocessToDom ($text, $flags=0)
 Preprocess some wikitext and return the document tree.
 preSaveTransform ($text, Title $title, User $user, ParserOptions $options, $clearState=true)
 Transform wiki markup when saving a page by doing "\r\n" -> "\n" conversion, substitting signatures, {{subst:}} templates, etc.
 recursivePreprocess ($text, $frame=false)
 Recursive parser entry point that can be called from an extension tag hook.
 recursiveTagParse ($text, $frame=false)
 Recursive parser entry point that can be called from an extension tag hook.
 renderImageGallery ($text, $params)
 Renders an image gallery from a text with one line per image.
 replaceExternalLinks ($text)
 Replace external links (REL)
 replaceInternalLinks ($s)
 Process [[ ]] wikilinks.
 replaceInternalLinks2 (&$s)
 Process [[ ]] wikilinks (RIL)
 replaceLinkHolders (&$text, $options=0)
 replaceLinkHoldersText ($text)
 Replace "<!--LINK-->" link placeholders with plain text of links (not HTML-formatted).
 replaceSection ($oldText, $sectionId, $newText)
 This function returns $oldtext after the content of the section specified by $section has been replaced with $text.
 replaceTransparentTags ($text)
 Replace transparent tags in $text with the values given by the callbacks.
 replaceVariables ($text, $frame=false, $argsOnly=false)
 Replace magic variables, templates, and template arguments with the appropriate text.
 serializeHalfParsedText ($text)
 Save the parser state required to convert the given half-parsed text to HTML.
 setDefaultSort ($sort)
 Mutator for $mDefaultSort.
 setFunctionHook ($id, $callback, $flags=0)
 Create a function, e.g.
 setFunctionTagHook ($tag, $callback, $flags)
 Create a tag function, e.g.
 setHook ($tag, $callback)
 Create an HTML-style tag, e.g.
 setLinkID ($id)
 setOutputType ($ot)
 Set the output type.
 setTitle ($t)
 Set the context title.
 setTransparentTagHook ($tag, $callback)
 As setHook(), but letting the contents be parsed.
 setUser ($user)
 Set the current user.
 startExternalParse (Title $title=null, ParserOptions $options, $outputType, $clearState=true)
 Set up some variables which are usually set up in parse() so that an external function can call some class members with confidence.
 stripSectionName ($text)
 Strips a text string of wikitext for use in a section anchor.
 testPreprocess ($text, Title $title, ParserOptions $options)
 testPst ($text, Title $title, ParserOptions $options)
 testSrvus ($text, Title $title, ParserOptions $options, $outputType=self::OT_HTML)
 strip/replaceVariables/unstrip for preprocessor regression testing
 Title ($x=null)
 Accessor/mutator for the Title object.
 transformMsg ($text, $options, $title=null)
 Wrapper for preprocess()
 uniqPrefix ()
 Accessor for mUniqPrefix.
 unserializeHalfParsedText ($data)
 Load the parser state given in the $data array, which is assumed to have been generated by serializeHalfParsedText().
 validateSig ($text)
 Check that the user's signature contains no bad XML.

Static Public Member Functions

static cleanSigInSig ($text)
 Strip ~~~, ~~~~ and ~~~~~ out of signatures.
static createAssocArgs ($args)
 Clean up argument array - refactored in 1.9 so parserfunctions can use it, too.
static extractTagsAndParams ($elements, $text, &$matches, $uniq_prefix= '')
 Replaces all occurrences of HTML-style comments and the given tags in the text with a random marker and returns the next text.
static getExternalLinkRel ($url=false, $title=null)
 Get the rel attribute for a particular external link.
static getRandomString ()
 Get a random string.
static normalizeLinkUrl ($url)
 Replace unusual escape codes in a URL with their equivalent characters.
static replaceUnusualEscapes ($url)
 Replace unusual escape codes in a URL with their equivalent characters.
static splitWhitespace ($s)
 Return a three-element array: leading whitespace, string contents, trailing whitespace.
static statelessFetchTemplate ($title, $parser=false)
 Static function to get a template Can be overridden via ParserOptions::setTemplateCallback().
static stripOuterParagraph ($html)
 Strip outer.

Public Attributes

 $mArgStack
 $mAutonumber
 $mConf
 $mDefaultSort
 $mDefaultStripList = array()
 $mDoubleUnderscores
 $mDTopen
 $mExpensiveFunctionCount
 $mExtLinkBracketedRegex
 $mFirstCall = true
 $mForceTocPosition
 $mFunctionHooks = array()
 $mFunctionSynonyms = array( 0 => array(), 1 => array() )
 $mFunctionTagHooks = array()
 $mGeneratedPPNodeCount
 $mHeadings
 $mHighestExpansionDepth
 $mImageParams = array()
 $mImageParamsMagicArray = array()
 $mIncludeCount
 $mIncludeSizes
bool $mInParse = false
 Recursive call protection.
 $mInPre
 $mInputSize = false
array $mLangLinkLanguages
 Array with the language name of each language link (i.e.
 $mLastSection
LinkHolderArray $mLinkHolders
 $mLinkID
 $mMarkerIndex = 0
ParserOptions $mOptions
ParserOutput $mOutput
 $mOutputType
 $mPPNodeCount
 $mPreprocessor
 $mRevIdForTs
 $mRevisionId
 $mRevisionObject
 $mRevisionSize
 $mRevisionTimestamp
 $mRevisionUser
 $mShowToc
 $mStripList = array()
StripState $mStripState
MagicWordArray $mSubstWords
 $mTagHooks = array()
Title $mTitle
 $mTplDomCache
 $mTplRedirCache
 $mTransparentTagHooks = array()
string $mUniqPrefix
 $mUrlProtocols
User $mUser
 $mVarCache = array()
MagicWordArray $mVariables
 $ot
const COLON_STATE_CLOSETAG = 3
const COLON_STATE_COMMENT = 5
const COLON_STATE_COMMENTDASH = 6
const COLON_STATE_COMMENTDASHDASH = 7
const COLON_STATE_TAG = 1
const COLON_STATE_TAGSLASH = 4
const COLON_STATE_TAGSTART = 2
const COLON_STATE_TEXT = 0
const EXT_IMAGE_REGEX
const EXT_LINK_URL_CLASS = '[^][<>"\\x00-\\x20\\x7F\p{Zs}]'
const HALF_PARSED_VERSION = 2
 Update this version number when the output of serialiseHalfParsedText() changes in an incompatible way.
const MARKER_SUFFIX = "-QINU\x7f"
const OT_HTML = 1
const OT_MSG = 3
const OT_PLAIN = 4
const OT_PREPROCESS = 3
const OT_WIKI = 2
const PTD_FOR_INCLUSION = 1
const SFH_NO_HASH = 1
const SFH_OBJECT_ARGS = 2
const TOC_END = '</mw:toc>'
const TOC_START = '<mw:toc>'
const VERSION = '1.6.4'
 Update this version number when the ParserOutput format changes in an incompatible way, so the parser cache can automatically discard old data.

Protected Member Functions

 fetchFileNoRegister ($title, $options=array())
 Helper function for fetchFileAndTitle.
 lock ()
 Lock the current instance of the parser.
 stripAltText ($caption, $holders)

Private Member Functions

 extractSections ($text, $sectionId, $mode, $newText= '')
 Break wikitext input into sections, and either pull or replace some particular section's text.
 maybeMakeExternalImage ($url)
 make an image if it's allowed, either through the global option, through the exception, or through the on-wiki whitelist
 pstPass2 ($text, $user)
 Pre-save transform helper function.
 startParse (Title $title=null, ParserOptions $options, $outputType, $clearState=true)

Static Private Member Functions

static normalizeUrlComponent ($component, $unsafe)

Detailed Description

PHP Parser - Processes wiki markup (which uses a more user-friendly syntax, such as "[[link]]" for making links), and provides a one-way transformation of that wiki markup it into (X)HTML output / markup (which in turn the browser understands, and can display).

There are seven main entry points into the Parser class:

Globals used: object: $wgContLang

Warning:
$wgUser or $wgTitle or $wgRequest or $wgLang. Keep them away!
Settings:
$wgNamespacesWithSubpages
Settings only within ParserOptions:
$wgAllowExternalImages $wgAllowSpecialInclusion $wgInterwikiMagic $wgMaxArticleSize

Definition at line 67 of file Parser.php.


Constructor & Destructor Documentation

Parser::__construct ( conf = array())
Parameters:
array$conf

Definition at line 211 of file Parser.php.

References wfDebug(), and wfUrlProtocols().

Reduce memory usage to reduce the impact of circular references.

Definition at line 236 of file Parser.php.


Member Function Documentation

Allow extensions to clean up when the parser is cloned.

Definition at line 248 of file Parser.php.

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

Please add any message that you use with this function to $wgTrackingCategories. That way they will be listed on Special:TrackingCategories.

Parameters:
string$msgMessage key
Returns:
bool Whether the addition was successful

Definition at line 4293 of file Parser.php.

Return true if subpage links should be expanded on this page.

Returns:
bool

Definition at line 2288 of file Parser.php.

Parser::argSubstitution ( piece,
frame 
)

Triple brace replacement -- used for template arguments.

Access:
private
Parameters:
array$piece
PPFrame$frame
Returns:
array

Definition at line 4063 of file Parser.php.

Parser::armorLinks ( text)

Insert a NOPARSE hacky thing into any inline links in a chunk that's going to go through further parsing steps before inline URL expansion.

Not needed quite as much as it used to be since free links are a bit more sensible these days. But bracketed links are still an issue.

Parameters:
string$textMore-or-less HTML
Returns:
string Less-or-more HTML with NOPARSE bits

Definition at line 2279 of file Parser.php.

Parser::attributeStripCallback ( &$  text,
frame = false 
)

Callback from the Sanitizer for expanding items found in HTML attribute values, so they can be safely tested and escaped.

Parameters:
string$text
bool | PPFrame$frame
Returns:
string

Definition at line 5713 of file Parser.php.

Parser::braceSubstitution ( piece,
frame 
)

Return the text of a template, after recursively replacing any variables or templates within the template.

Parameters:
array$pieceThe parts of the template $piece['title']: the title, i.e. the part before the | $piece['parts']: the parameter array $piece['lineStart']: whether the brace was at the start of a line
PPFrame$frameThe current frame, contains template arguments
Exceptions:
Exception
Returns:
string The text of the template

Definition at line 3349 of file Parser.php.

Parser::callParserFunction ( frame,
function,
array args = array() 
)

Call a parser function and return an array with text and flags.

The returned array will always contain a boolean 'found', indicating whether the parser function was found or not. It may also contain the following: text: string|object, resulting wikitext or PP DOM object isHTML: bool, $text is HTML, armour it against wikitext transformation isChildObj: bool, $text is a DOM node needing expansion in a child frame isLocalObj: bool, $text is a DOM node needing expansion in the current frame nowiki: bool, wiki markup in $text should be escaped

Since:
1.21
Parameters:
PPFrame$frameThe current frame, contains template arguments
string$functionFunction name
array$argsArguments to the function
Exceptions:
MWException
Returns:
array

Definition at line 3685 of file Parser.php.

Parser::cleanSig ( text,
parsing = false 
)

Clean up signature text.

1) Strip ~~~, ~~~~ and ~~~~~ out of signatures

See also:
cleanSigInSig 2) Substitute all transclusions
Parameters:
string$text
bool$parsingWhether we're cleaning (preferences save) or parsing
Returns:
string Signature text

Definition at line 4919 of file Parser.php.

References $wgTitle, MagicWord\get(), and global.

static Parser::cleanSigInSig ( text) [static]

Strip ~~~, ~~~~ and ~~~~~ out of signatures.

Parameters:
string$text
Returns:
string Signature text with /~{3,5}/ removed

Definition at line 4956 of file Parser.php.

Referenced by Preferences\cleanSignature().

Clear Parser state.

Access:
private

Definition at line 277 of file Parser.php.

Remove all tag hooks.

Definition at line 5092 of file Parser.php.

Parser::closeList ( char)
Todo:
Document
Parameters:
string$char
Returns:
string

Definition at line 2407 of file Parser.php.

#@+ Used by doBlockLevels()

Returns:
string

Definition at line 2311 of file Parser.php.

static Parser::createAssocArgs ( args) [static]

Clean up argument array - refactored in 1.9 so parserfunctions can use it, too.

Parameters:
array$args
Returns:
array

Definition at line 3283 of file Parser.php.

Set a flag in the output object indicating that the content is dynamic and shouldn't be cached.

Definition at line 5695 of file Parser.php.

Parser::doAllQuotes ( text)

Replace single quotes with HTML markup.

Access:
private
Parameters:
string$text
Returns:
string The altered text

Definition at line 1428 of file Parser.php.

Parser::doBlockLevels ( text,
linestart 
)

#@-

Make lists from lines starting with ':', '*', '#', etc. (DBL)

Parameters:
string$text
bool$linestartWhether or not this is at the start of a line.
Returns:
string The lists rendered as HTML

Definition at line 2434 of file Parser.php.

Strip double-underscore items like __NOGALLERY__ and __NOTOC__ Fills $this->mDoubleUnderscores, returns the modified text.

Parameters:
string$text
Returns:
string

Definition at line 4229 of file Parser.php.

Parser::doHeadings ( text)

Parse headers and return html.

Access:
private
Parameters:
string$text
Returns:
string

Definition at line 1410 of file Parser.php.

Parser::doMagicLinks ( text)

Replace special strings like "ISBN xxx" and "RFC xxx" with magic external links.

DML

Access:
private
Parameters:
string$text
Returns:
string

Definition at line 1277 of file Parser.php.

Parser::doQuotes ( text)

Helper function for doAllQuotes()

Parameters:
string$text
Returns:
string

Definition at line 1447 of file Parser.php.

Parser::doTableStuff ( text)

parse the wiki syntax used to render tables

Parameters:
string$text
Returns:
string

Definition at line 999 of file Parser.php.

Parser::extensionSubstitution ( params,
frame 
)

Return the text to be used for a given extension tag.

This is the ghost of strip().

Parameters:
array$paramsAssociative array of parameters: name PPNode for the tag name attr PPNode for unparsed text where tag attributes are thought to be attributes Optional associative array of parsed attributes inner Contents of extension element noClose Original text did not have a close tag
PPFrame$frame
Exceptions:
MWException
Returns:
string

Definition at line 4118 of file Parser.php.

Parser::extractSections ( text,
sectionId,
mode,
newText = '' 
) [private]

Break wikitext input into sections, and either pull or replace some particular section's text.

External callers should use the getSection and replaceSection methods.

Parameters:
string$textPage wikitext
string | number$sectionIdA section identifier string of the form: "<flag1> - <flag2> - ... - <section number>"

Currently the only recognised flag is "T", which means the target section number was derived during a template inclusion parse, in other words this is a template section edit link. If no flags are given, it was an ordinary section edit link. This flag is required to avoid a section numbering mismatch when a section is enclosed by "<includeonly>" (bug 6563).

The section number 0 pulls the text before the first heading; other numbers will pull the given section along with its lower-level subsections. If the section is not found, $mode=get will return $newtext, and $mode=replace will return $text.

Section 0 is always considered to exist, even if it only contains the empty string. If $text is the empty string and section 0 is replaced, $newText is returned.

Parameters:
string$modeOne of "get" or "replace"
string$newTextReplacement text for section data.
Returns:
string For "get", the extracted section text. for "replace", the whole page with the section replaced.

Definition at line 5793 of file Parser.php.

static Parser::extractTagsAndParams ( elements,
text,
&$  matches,
uniq_prefix = '' 
) [static]

Replaces all occurrences of HTML-style comments and the given tags in the text with a random marker and returns the next text.

The output parameter $matches will be an associative array filled with data in the form:

   'UNIQ-xxxxx' => array(
     'element',
     'tag content',
     array( 'param' => 'x' ),
     '<element param="x">tag content</element>' ) )
Parameters:
array$elementsList of element names. Comments are always extracted.
string$textSource text string.
array$matchesOut parameter, Array: extracted tags
string$uniq_prefix
Returns:
string Stripped text

Definition at line 905 of file Parser.php.

Parser::fetchFile ( title,
options = array() 
)

Fetch a file and its title and register a reference to it.

If 'broken' is a key in $options then the file will appear as a broken thumbnail.

Parameters:
Title$title
array$optionsArray of options to RepoGroup::findFile
Returns:
File|bool

Definition at line 3948 of file Parser.php.

Parser::fetchFileAndTitle ( title,
options = array() 
)

Fetch a file and its title and register a reference to it.

If 'broken' is a key in $options then the file will appear as a broken thumbnail.

Parameters:
Title$title
array$optionsArray of options to RepoGroup::findFile
Returns:
array ( File or false, Title of file )

Definition at line 3960 of file Parser.php.

Parser::fetchFileNoRegister ( title,
options = array() 
) [protected]

Helper function for fetchFileAndTitle.

Also useful if you need to fetch a file but not use it yet, for example to get the file's handler.

Parameters:
Title$title
array$optionsArray of options to RepoGroup::findFile
Returns:
File|bool

Definition at line 3985 of file Parser.php.

References $file, RepoGroup\singleton(), and wfFindFile().

Parameters:
string$url
Returns:
mixed|string

Definition at line 4023 of file Parser.php.

References wfMessage().

Parser::fetchTemplate ( title)

Fetch the unparsed text of a template and register a reference to it.

Parameters:
Title$title
Returns:
string|bool

Definition at line 3850 of file Parser.php.

Fetch the unparsed text of a template and register a reference to it.

Parameters:
Title$title
Returns:
array ( string or false, Title )

Definition at line 3826 of file Parser.php.

Parser::findColonNoLinks ( str,
&$  before,
&$  after 
)

Split up a string on ':', ignoring any occurrences inside tags to prevent illegal overlapping.

Parameters:
string$strThe string to split
string&$beforeSet to everything before the ':'
string&$afterSet to everything after the ':'
Exceptions:
MWException
Returns:
string The position of the ':', or false if none found

Definition at line 2652 of file Parser.php.

References wfDebug(), wfProfileIn(), and wfProfileOut().

Do various kinds of initialisation on the first call of the parser.

Definition at line 256 of file Parser.php.

Parser::formatHeadings ( text,
origText,
isMain = true 
)

This function accomplishes several tasks: 1) Auto-number headings if that option is enabled 2) Add an [edit] link to sections for users who have enabled the option and can edit the page 3) Add a Table of contents on the top for users who have enabled the option 4) Auto-anchor headings.

It loops through all headlines, collects the necessary data, then splits up the string and re-inserts the newly formatted headlines.

Parameters:
string$text
string$origTextOriginal, untouched wikitext
bool$isMain
Returns:
mixed|string

Definition at line 4335 of file Parser.php.

Parser::getCommon ( st1,
st2 
)

getCommon() returns the length of the longest common substring of both arguments, starting at the beginning of both.

Parameters:
string$st1
string$st2
Returns:
int

Definition at line 2331 of file Parser.php.

Get the language object for language conversion.

Returns:
Language|null

Definition at line 855 of file Parser.php.

Accessor for $mDefaultSort Unlike getDefaultSort(), will return false if none is set.

Returns:
string|bool

Definition at line 6067 of file Parser.php.

Accessor for $mDefaultSort Will use the empty string if none is set.

This value is treated as a prefix, so the empty string is equivalent to sorting by page name.

Returns:
string

Definition at line 6053 of file Parser.php.

Get an associative array of additional HTML attributes appropriate for a particular external link.

This currently may include rel => nofollow (depending on configuration, namespace, and the URL's domain) and/or a target attribute (depending on configuration).

Parameters:
string | bool$urlOptional URL, to extract the domain from for rel => nofollow if appropriate
Returns:
array Associative array of HTML attributes

Definition at line 1740 of file Parser.php.

References $attribs, array(), and getExternalLinkRel().

Referenced by Linker\getImageLinkMTOParams().

static Parser::getExternalLinkRel ( url = false,
title = null 
) [static]

Get the rel attribute for a particular external link.

Since:
1.21
Parameters:
string | bool$urlOptional URL, to extract the domain from for rel => nofollow if appropriate
Title$titleOptional Title, for wgNoFollowNsExceptions lookups
Returns:
string|null Rel attribute for $url

Definition at line 1719 of file Parser.php.

Referenced by getExternalLinkAttribs(), and Linker\makeExternalLink().

Return this parser if it is not doing anything, otherwise get a fresh parser.

You can use this method by doing $myParser = $wgParser->getFreshParser(), or more simply $wgParser->getFreshParser()->parse( ... ); if you're unsure if $wgParser is safe to use.

Since:
1.24
Returns:
Parser A parser object that is not parsing anything

Definition at line 6380 of file Parser.php.

References global.

Get all registered function hook identifiers.

Returns:
array

Definition at line 5179 of file Parser.php.

Get a language object for use in parser functions such as {{FORMATNUM:}}.

Returns:
Language

Definition at line 824 of file Parser.php.

Parser::getImageParams ( handler)
Parameters:
string$handler
Returns:
array

Definition at line 5408 of file Parser.php.

Get the ParserOptions object.

Returns:
ParserOptions

Definition at line 792 of file Parser.php.

Get the ParserOutput object.

Returns:
ParserOutput

Definition at line 783 of file Parser.php.

Parser::getPreloadText ( text,
Title title,
ParserOptions options,
params = array() 
)

Process the wikitext for the "?preload=" feature.

(bug 5210)

"<noinclude>", "<includeonly>" etc. are parsed as for template transclusion, comments, templates, arguments, tags hooks and parser functions are untouched.

Parameters:
string$text
Title$title
ParserOptions$options
array$params
Returns:
string

Definition at line 662 of file Parser.php.

Get a preprocessor object.

Returns:
Preprocessor

Definition at line 877 of file Parser.php.

static Parser::getRandomString ( ) [static]

Get a random string.

Returns:
string

Definition at line 682 of file Parser.php.

Referenced by StripState\merge().

Get the ID of the revision we are parsing.

Returns:
int|null

Definition at line 5943 of file Parser.php.

Get the revision object for $this->mRevisionId.

Returns:
Revision|null Either a Revision object or null
Since:
1.23 (public since 1.23)

Definition at line 5953 of file Parser.php.

Get the size of the revision.

Returns:
int|null Revision size

Definition at line 6017 of file Parser.php.

Get the timestamp associated with the current revision, adjusted for the default server-local timestamp.

Returns:
string

Definition at line 5970 of file Parser.php.

Get the name of the user that edited the last revision.

Returns:
string User name

Definition at line 5997 of file Parser.php.

Parser::getSection ( text,
sectionId,
defaultText = '' 
)

This function returns the text of a section, specified by a number ($section).

A section is text under a heading like == Heading == or <h1>Heading</h1>, or the first section before any such heading (section 0).

If a section contains subsections, these are also returned.

Parameters:
string$textText to look in
string | number$sectionIdSection identifier as a number or string (e.g. 0, 1 or 'T-1').
string$defaultTextDefault to return if section is not found
Returns:
string Text of the requested section

Definition at line 5918 of file Parser.php.

Get a list of strippable XML-like elements.

Returns:
array

Definition at line 972 of file Parser.php.

Accessor.

Returns:
array

Definition at line 5724 of file Parser.php.

Get the target language for the content being parsed.

This is usually the language that the content is in.

Since:
1.19
Exceptions:
MWException
Returns:
Language

Definition at line 837 of file Parser.php.

Referenced by Linker\makeImageLink().

Parser::getTemplateDom ( title)

Get the semi-parsed DOM representation of a template with a given title, and its redirect destination title.

Cached.

Parameters:
Title$title
Returns:
array

Definition at line 3789 of file Parser.php.

Accessor for the Title object.

Returns:
Title

Definition at line 738 of file Parser.php.

Get a User object either from $this->mUser, if set, or from the ParserOptions object otherwise.

Returns:
User

Definition at line 865 of file Parser.php.

Parser::getUserSig ( &$  user,
nickname = false,
fancySig = null 
)

Fetch the user's signature text, if any, and normalize to validated, ready-to-insert wikitext.

If you have pre-fetched the nickname or the fancySig option, you can specify them here to save a database query. Do not reuse this parser instance after calling getUserSig(), as it may have changed if it's the $wgParser.

Parameters:
User$user
string | bool$nicknameNickname to use or false to use user's default nickname
bool | null$fancySigwhether the nicknname is the complete signature or null to use default value
Returns:
string

Definition at line 4856 of file Parser.php.

Parser::getVariableValue ( index,
frame = false 
)

Return value of a magic variable (like PAGENAME)

Parameters:
int$index
bool | PPFrame$frame
Exceptions:
MWException
Returns:
string

Definition at line 2820 of file Parser.php.

Same as guessSectionNameFromWikiText(), but produces legacy anchors instead.

For use in redirects, since IE6 interprets Redirect: headers as something other than UTF-8 (apparently?), resulting in breakage.

Parameters:
string$textThe section name
Returns:
string An anchor

Definition at line 6095 of file Parser.php.

Try to guess the section anchor name based on a wikitext fragment presumably extracted from a heading, for example "Header" from "== Header ==".

Parameters:
string$text
Returns:
string

Definition at line 6080 of file Parser.php.

Increment the expensive function count.

Returns:
bool False if the limit has been exceeded

Definition at line 4216 of file Parser.php.

Parser::incrementIncludeSize ( type,
size 
)

Increment an include size counter.

Parameters:
string$typeThe type of expansion
int$sizeThe size of the text
Returns:
bool False if this inclusion would take it over the maximum, true otherwise

Definition at line 4202 of file Parser.php.

initialise the magic variables (like CURRENTMONTHNAME) and substitution modifiers

Access:
private

Definition at line 3176 of file Parser.php.

Add an item to the strip state Returns the unique tag which must be inserted into the stripped text The tag will be replaced with the original text in unstrip()

Parameters:
string$text
Returns:
string

Definition at line 985 of file Parser.php.

Parser::internalParse ( text,
isMain = true,
frame = false 
)

Helper function for parse() that transforms wiki markup into HTML.

Only called for $mOutputType == self::OT_HTML.

Parameters:
string$text
bool$isMain
bool$frame
Returns:
string

Definition at line 1204 of file Parser.php.

Parser::interwikiTransclude ( title,
action 
)

Transclude an interwiki link.

Parameters:
Title$title
string$action
Returns:
string

Definition at line 4004 of file Parser.php.

Returns true if the given array, presumed to be generated by serializeHalfParsedText(), is compatible with the current version of the parser.

Parameters:
array$data
Returns:
bool

Definition at line 6293 of file Parser.php.

Parser::killMarkers ( text)

Remove any strip markers found in the given text.

Parameters:
string$textInput string
Returns:
string

Definition at line 6221 of file Parser.php.

Parser::limitationWarn ( limitationType,
current = '',
max = '' 
)

Warn the user when a parser limitation is reached Will warn at most once the user per limitation type.

Parameters:
string$limitationTypeShould be one of: 'expensive-parserfunction' (corresponding messages: 'expensive-parserfunction-warning', 'expensive-parserfunction-category') 'post-expand-template-argument' (corresponding messages: 'post-expand-template-argument-warning', 'post-expand-template-argument-category') 'post-expand-template-inclusion' (corresponding messages: 'post-expand-template-inclusion-warning', 'post-expand-template-inclusion-category') 'node-count-exceeded' (corresponding messages: 'node-count-exceeded-warning', 'node-count-exceeded-category') 'expansion-depth-exceeded' (corresponding messages: 'expansion-depth-exceeded-warning', 'expansion-depth-exceeded-category')
string | int | null$currentCurrent value
string | int | null$maxMaximum allowed, when an explicit limit has been exceeded, provide the values (optional)

Definition at line 3329 of file Parser.php.

Parser::lock ( ) [protected]

Lock the current instance of the parser.

This is meant to stop someone from calling the parser recursively and messing up all the strip state.

Exceptions:
MWExceptionIf parser is in a parse
Returns:
ScopedCallback The lock will be released once the return value goes out of scope.

Definition at line 6334 of file Parser.php.

Exceptions:
MWException
Parameters:
array$m
Returns:
HTML|string

Definition at line 1302 of file Parser.php.

Make a free external link, given a user-supplied URL.

Parameters:
string$url
Returns:
string HTML
Access:
private

Definition at line 1355 of file Parser.php.

Parser::makeImage ( title,
options,
holders = false 
)

Parse image options text and use it to make an image.

Parameters:
Title$title
string$options
LinkHolderArray | bool$holders
Returns:
string HTML

Definition at line 5456 of file Parser.php.

Parser::makeKnownLinkHolder ( nt,
text = '',
query = array(),
trail = '',
prefix = '' 
)

Render a forced-blue link inline; protect against double expansion of URLs if we're in a mode that prepends full URL prefixes to internal links.

Since this little disaster has to split off the trail text to avoid breaking URLs in the following text without breaking trails on the wiki links, it's been made into a horrible function.

Parameters:
Title$nt
string$text
array | string$query
string$trail
string$prefix
Returns:
string HTML-wikitext mix oh yuck

Definition at line 2254 of file Parser.php.

Parser::markerSkipCallback ( s,
callback 
)

Call a callback function on all regions of the given text that are not inside strip markers, and replace those regions with the return value of the callback.

For example, with input:

aaa<MARKER>bbb

This will call the callback function twice, with 'aaa' and 'bbb'. Those two strings will be replaced with the value returned by the callback in each case.

Parameters:
string$s
callable$callback
Returns:
string

Definition at line 6191 of file Parser.php.

Parser::maybeDoSubpageLink ( target,
&$  text 
)

Handle link to subpage if necessary.

Parameters:
string$targetThe source of the link
string&$textThe link text, modified as necessary
Returns:
string The full name of the link

Definition at line 2301 of file Parser.php.

Parser::maybeMakeExternalImage ( url) [private]

make an image if it's allowed, either through the global option, through the exception, or through the on-wiki whitelist

Parameters:
string$url
Returns:
string

Definition at line 1830 of file Parser.php.

Parser::nextItem ( char)

TODO: document.

Parameters:
string$char
Returns:
string

Definition at line 2381 of file Parser.php.

Returns:
int

Definition at line 809 of file Parser.php.

static Parser::normalizeLinkUrl ( url) [static]

Replace unusual escape codes in a URL with their equivalent characters.

This generally follows the syntax defined in RFC 3986, with special consideration for HTTP query strings.

Parameters:
string$url
Returns:
string

Definition at line 1771 of file Parser.php.

Referenced by ParserMethodsTest\testNormalizeLinkUrl().

static Parser::normalizeUrlComponent ( component,
unsafe 
) [static, private]

Definition at line 1807 of file Parser.php.

Parser::openList ( char)

These next three functions open, continue, and close the list element appropriate to the prefix character passed into them.

Parameters:
string$char
Returns:
string

Definition at line 2355 of file Parser.php.

Parser::Options ( x = null)

Accessor/mutator for the ParserOptions object.

Parameters:
ParserOptions$xNew value or null to just get the current one
Returns:
ParserOptions Current ParserOptions object

Definition at line 802 of file Parser.php.

Parser::OutputType ( x = null)

Accessor/mutator for the output type.

Parameters:
int | null$xNew value or null to just get the current one
Returns:
int

Definition at line 774 of file Parser.php.

Parser::parse ( text,
Title title,
ParserOptions options,
linestart = true,
clearState = true,
revid = null 
)

Convert wikitext to HTML Do not call this function recursively.

Parameters:
string$textText we want to parse
Title$title
ParserOptions$options
bool$linestart
bool$clearState
int$revidNumber to pass in {{REVISIONID}}
Returns:
ParserOutput A ParserOutput

Definition at line 349 of file Parser.php.

Parsed a width param of imagelink like 300px or 200x300px.

Parameters:
string$value
Returns:
array
Since:
1.20

Definition at line 6305 of file Parser.php.

Parser::preprocess ( text,
Title title = null,
ParserOptions options,
revid = null,
frame = false 
)

Expand templates and variables in the text, producing valid, static wikitext.

Also removes comments. Do not call this function recursively.

Parameters:
string$text
Title$title
ParserOptions$options
int | null$revid
bool | PPFrame$frame
Returns:
mixed|string

Definition at line 617 of file Parser.php.

Parser::preprocessToDom ( text,
flags = 0 
)

Preprocess some wikitext and return the document tree.

This is the ghost of replace_variables().

Parameters:
string$textThe text to parse
int$flagsBitwise combination of:
  • self::PTD_FOR_INCLUSION: Handle "<noinclude>" and "<includeonly>" as if the text is being included. Default is to assume a direct page view.

The generated DOM tree must depend only on the input text and the flags. The DOM tree must be the same in OT_HTML and OT_WIKI mode, to avoid a regression of bug 4899.

Any flag added to the $flags parameter here, or any other parameter liable to cause a change in the DOM tree for a given text, must be passed through the section identifier in the section edit link and thus back to extractSections().

The output of this function is currently only cached in process memory, but a persistent cache may be implemented at a later date which takes further advantage of these strict dependency requirements.

Returns:
PPNode

Definition at line 3208 of file Parser.php.

Parser::preSaveTransform ( text,
Title title,
User user,
ParserOptions options,
clearState = true 
)

Transform wiki markup when saving a page by doing "\r\n" -> "\n" conversion, substitting signatures, {{subst:}} templates, etc.

Parameters:
string$textThe text to transform
Title$titleThe Title object for the current article
User$userThe User object describing the current user
ParserOptions$optionsParsing options
bool$clearStateWhether to clear the parser state first
Returns:
string The altered wiki markup

Definition at line 4737 of file Parser.php.

Parser::pstPass2 ( text,
user 
) [private]

Pre-save transform helper function.

Parameters:
string$text
User$user
Returns:
string

Definition at line 4768 of file Parser.php.

Parser::recursivePreprocess ( text,
frame = false 
)

Recursive parser entry point that can be called from an extension tag hook.

Parameters:
string$textText to be expanded
bool | PPFrame$frameThe frame to use for expanding any template variables
Returns:
string
Since:
1.19

Definition at line 641 of file Parser.php.

Parser::recursiveTagParse ( text,
frame = false 
)

Recursive parser entry point that can be called from an extension tag hook.

If $frame is not provided, then template variables (e.g., {{{1}}}) within $text are not expanded

Parameters:
string$textText extension wants to have parsed
bool | PPFrame$frameThe frame to use for expanding any template variables
Returns:
string

Definition at line 597 of file Parser.php.

Parser::renderImageGallery ( text,
params 
)

Renders an image gallery from a text with one line per image.

text labels may be given by using |-style alternative text. E.g. Image:one.jpg|The number "1" Image:tree.jpg|A tree given as text will return the HTML of a gallery with two images, labeled 'The number "1"' and 'A tree'.

Parameters:
string$text
array$params
Returns:
string HTML

Definition at line 5247 of file Parser.php.

Replace external links (REL)

Note: this is all very hackish and the order of execution matters a lot. Make sure to run tests/parserTests.php if you change this code.

Access:
private
Parameters:
string$text
Exceptions:
MWException
Returns:
string

Definition at line 1637 of file Parser.php.

Process [[ ]] wikilinks.

Parameters:
string$s
Returns:
string Processed text
Access:
private

Definition at line 1889 of file Parser.php.

Process [[ ]] wikilinks (RIL)

Parameters:
string$s
Exceptions:
MWException
Returns:
LinkHolderArray
Access:
private

Definition at line 1902 of file Parser.php.

linkcache txt The LinkCache class maintains a list of article titles and the information about whether or not the article exists in the database This is used to mark up links when displaying a page If the same link appears more than once on any page then it only has to be looked up once In most cases link lookups are done in batches with the LinkBatch class or the equivalent in Parser::replaceLinkHolders ( &$  text,
options = 0 
)
Todo:
FIXME: Update documentation.

makeLinkObj() is deprecated. Replace "<!--LINK-->" link placeholders with actual links, in the buffer Placeholders created in Skin::makeLinkObj()

Parameters:
string$text
int$options
Returns:
array Array of link CSS classes, indexed by PDBK.

Definition at line 5219 of file Parser.php.

Replace "<!--LINK-->" link placeholders with plain text of links (not HTML-formatted).

Parameters:
string$text
Returns:
string

Definition at line 5230 of file Parser.php.

Parser::replaceSection ( oldText,
sectionId,
newText 
)

This function returns $oldtext after the content of the section specified by $section has been replaced with $text.

If the target section does not exist, $oldtext is returned unchanged.

Parameters:
string$oldTextFormer text of the article
string | number$sectionIdSection identifier as a number or string (e.g. 0, 1 or 'T-1').
string$newTextReplacing text
Returns:
string Modified text

Definition at line 5934 of file Parser.php.

Replace transparent tags in $text with the values given by the callbacks.

Transparent tag hooks are like regular XML-style tag hooks, except they operate late in the transformation sequence, on HTML instead of wikitext.

Parameters:
string$text
Returns:
string

Definition at line 5742 of file Parser.php.

References $content, $matches, $output, $params, array(), as, and list.

static Parser::replaceUnusualEscapes ( url) [static]

Replace unusual escape codes in a URL with their equivalent characters.

Deprecated:
since 1.24, use normalizeLinkUrl
Parameters:
string$url
Returns:
string

Definition at line 1757 of file Parser.php.

Parser::replaceVariables ( text,
frame = false,
argsOnly = false 
)

Replace magic variables, templates, and template arguments with the appropriate text.

Templates are substituted recursively, taking care to avoid infinite loops.

Note that the substitution depends on value of $mOutputType: self::OT_WIKI: only {{subst:}} templates self::OT_PREPROCESS: templates but not extension tags self::OT_HTML: all templates and extension tags

Parameters:
string$textThe text to transform
bool | PPFrame$frameObject describing the arguments passed to the template. Arguments may also be provided as an associative array, as was the usual case before MW1.12. Providing arguments this way may be useful for extensions wishing to perform variable replacement explicitly.
bool$argsOnlyOnly do argument (triple-brace) expansion, not double-brace expansion.
Returns:
string

Definition at line 3253 of file Parser.php.

Save the parser state required to convert the given half-parsed text to HTML.

"Half-parsed" in this context means the output of recursiveTagParse() or internalParse(). This output has strip markers from replaceVariables (extensionSubstitution() etc.), and link placeholders from replaceLinkHolders().

Returns an array which can be serialized and stored persistently. This array can later be loaded into another parser instance with unserializeHalfParsedText(). The text can then be safely incorporated into the return value of a parser hook.

Parameters:
string$text
Returns:
array

Definition at line 6241 of file Parser.php.

Mutator for $mDefaultSort.

Parameters:
string$sortNew value

Definition at line 6038 of file Parser.php.

Parser::setFunctionHook ( id,
callback,
flags = 0 
)

Create a function, e.g.

{{sum:1|2|3}} The callback function should have the form: function myParserFunction( &$parser, $arg1, $arg2, $arg3 ) { ... }

Or with SFH_OBJECT_ARGS: function myParserFunction( $parser, $frame, $args ) { ... }

The callback may either return the text result of the function, or an array with the text in element 0, and a number of flags in the other elements. The names of the flags are specified in the keys. Valid flags are: found The text returned is valid, stop processing the template. This is on by default. nowiki Wiki markup in the return value should be escaped isHTML The returned text is HTML, armour it against wikitext transformation

Parameters:
string$idThe magic word ID
callable$callbackThe callback function (and object) to use
int$flagsA combination of the following flags: SFH_NO_HASH No leading hash, i.e. {{plural:...}} instead of {{if:...}}

SFH_OBJECT_ARGS Pass the template arguments as PPNode objects instead of text. This allows for conditional expansion of the parse tree, allowing you to eliminate dead branches and thus speed up parsing. It is also possible to analyse the parse tree of the arguments, and to control the way they are expanded.

The $frame parameter is a PPFrame. This can be used to produce expanded text from the arguments, for instance: $text = isset( $args[0] ) ? $frame->expand( $args[0] ) : '';

For technical reasons, $args[0] is pre-expanded and will be a string. This may change in future versions. Please call $frame->expand() on it anyway so that your code keeps working if/when this is changed.

If you want whitespace to be trimmed from $args, you need to do it yourself, post- expansion.

Please read the documentation in includes/parser/Preprocessor.php for more information about the methods available in PPFrame and PPNode.

Exceptions:
MWException
Returns:
string|callable The old callback function for this name, if any

Definition at line 5141 of file Parser.php.

Parser::setFunctionTagHook ( tag,
callback,
flags 
)

Create a tag function, e.g.

"<test>some stuff</test>". Unlike tag hooks, tag functions are parsed at preprocessor level. Unlike parser functions, their content is not preprocessed.

Parameters:
string$tag
callable$callback
int$flags
Exceptions:
MWException
Returns:
null

Definition at line 5193 of file Parser.php.

References $flags, and array().

Parser::setHook ( tag,
callback 
)

Create an HTML-style tag, e.g.

"<yourtag>special text</yourtag>" The callback should have the following form: function myParserHook( $text, $params, $parser, $frame ) { ... }

Transform and return $text. Use $parser for any required context, e.g. use $parser->getTitle() and $parser->getOptions() not $wgTitle or $wgOut->mParserOptions

Hooks may return extended information by returning an array, of which the first numbered element (index 0) must be the return string, and all other entries are extracted into local variables within an internal function in the Parser class.

This interface (introduced r61913) appears to be undocumented, but 'markerName' is used by some core tag hooks to override which strip array their results are placed in. **Use great caution if attempting this interface, as it is not documented and injudicious use could smash private variables.**

Parameters:
string$tagThe tag to use, e.g. 'hook' for "<hook>"
callable$callbackThe callback function (and object) to use for the tag
Exceptions:
MWException
Returns:
callable|null The old value of the mTagHooks array associated with the hook

Definition at line 5047 of file Parser.php.

Parser::setLinkID ( id)
Parameters:
int$id

Definition at line 816 of file Parser.php.

Set the output type.

Parameters:
int$otNew value

Definition at line 757 of file Parser.php.

Parser::setTitle ( t)

Set the context title.

Parameters:
Title$t

Definition at line 719 of file Parser.php.

Parser::setTransparentTagHook ( tag,
callback 
)

As setHook(), but letting the contents be parsed.

Transparent tag hooks are like regular XML-style tag hooks, except they operate late in the transformation sequence, on HTML instead of wikitext.

This is probably obsoleted by things dealing with parser frames? The only extension currently using it is geoserver.

Since:
1.10
Todo:
better document or deprecate this
Parameters:
string$tagThe tag to use, e.g. 'hook' for "<hook>"
callable$callbackThe callback function (and object) to use for the tag
Exceptions:
MWException
Returns:
callable|null The old value of the mTagHooks array associated with the hook

Definition at line 5078 of file Parser.php.

Parser::setUser ( user)

Set the current user.

Should only be used when doing pre-save transform.

Parameters:
User | null$userUser object or null (to reset)

Definition at line 692 of file Parser.php.

static Parser::splitWhitespace ( s) [static]

Return a three-element array: leading whitespace, string contents, trailing whitespace.

Parameters:
string$s
Returns:
array

Definition at line 3220 of file Parser.php.

Parser::startExternalParse ( Title title = null,
ParserOptions options,
outputType,
clearState = true 
)

Set up some variables which are usually set up in parse() so that an external function can call some class members with confidence.

Parameters:
Title | null$title
ParserOptions$options
int$outputType
bool$clearState

Definition at line 4970 of file Parser.php.

Parser::startParse ( Title title = null,
ParserOptions options,
outputType,
clearState = true 
) [private]
Parameters:
Title | null$title
ParserOptions$options
int$outputType
bool$clearState

Definition at line 4982 of file Parser.php.

References startParse().

Referenced by startParse().

static Parser::statelessFetchTemplate ( title,
parser = false 
) [static]

Static function to get a template Can be overridden via ParserOptions::setTemplateCallback().

Parameters:
Title$title
bool | Parser$parser
Returns:
array

Definition at line 3864 of file Parser.php.

Parser::stripAltText ( caption,
holders 
) [protected]
Parameters:
string$caption
LinkHolderArray | bool$holders
Returns:
mixed|string

Definition at line 5672 of file Parser.php.

static Parser::stripOuterParagraph ( html) [static]

Strip outer.

tag from the HTML source of a single paragraph.

Returns original HTML if the

tag has any attributes, if there's no wrapping

tag, or if there is more than one

tag in the input HTML.

Parameters:
string$html
Returns:
string
Since:
1.24

Definition at line 6359 of file Parser.php.

References $html, and array().

Referenced by ParserMethodsTest\testStripOuterParagraph(), and wfMsgExt().

Strips a text string of wikitext for use in a section anchor.

Accepts a text string and then removes all wikitext from the string and leaves only the resultant text (i.e. the result of [[User:WikiSysop|Sysop]] would be "Sysop" and the result of [[User:WikiSysop]] would be "User:WikiSysop") - this is intended to create valid section anchors by mimicing the output of the parser when headings are parsed.

Parameters:
string$textText string to be stripped of wikitext for use in a Section anchor
Returns:
string Filtered text string

Definition at line 6116 of file Parser.php.

Parser::testPreprocess ( text,
Title title,
ParserOptions options 
)
Parameters:
string$text
Title$title
ParserOptions$options
Returns:
string

Definition at line 6171 of file Parser.php.

Parser::testPst ( text,
Title title,
ParserOptions options 
)
Parameters:
string$text
Title$title
ParserOptions$options
Returns:
string

Definition at line 6161 of file Parser.php.

Parser::testSrvus ( text,
Title title,
ParserOptions options,
outputType = self::OT_HTML 
)

strip/replaceVariables/unstrip for preprocessor regression testing

Parameters:
string$text
Title$title
ParserOptions$options
int$outputType
Returns:
string

Definition at line 6145 of file Parser.php.

Parser::Title ( x = null)

Accessor/mutator for the Title object.

Parameters:
Title$xTitle object or null to just get the current one
Returns:
Title

Definition at line 748 of file Parser.php.

Parser::transformMsg ( text,
options,
title = null 
)

Wrapper for preprocess()

Parameters:
string$textThe text to preprocess
ParserOptions$optionsOptions
Title | null$titleTitle object or null to use $wgTitle
Returns:
string

Definition at line 5001 of file Parser.php.

Accessor for mUniqPrefix.

Returns:
string

Definition at line 701 of file Parser.php.

Load the parser state given in the $data array, which is assumed to have been generated by serializeHalfParsedText().

The text contents is extracted from the array, and its markers are transformed into markers appropriate for the current Parser instance. This transformed text is returned, and can be safely included in the return value of a parser hook.

If the $data array has been stored persistently, the caller should first check whether it is still valid, by calling isValidHalfParsedText().

Parameters:
array$dataSerialized data
Exceptions:
MWException
Returns:
string

Definition at line 6268 of file Parser.php.

Parser::validateSig ( text)

Check that the user's signature contains no bad XML.

Parameters:
string$text
Returns:
string|bool An expanded string, or false if invalid.

Definition at line 4905 of file Parser.php.


Member Data Documentation

Parser::$mArgStack

Definition at line 157 of file Parser.php.

Parser::$mAutonumber

Definition at line 151 of file Parser.php.

Parser::$mConf

Definition at line 145 of file Parser.php.

Parser::$mDefaultSort

Definition at line 164 of file Parser.php.

Parser::$mDefaultStripList = array()

Definition at line 129 of file Parser.php.

Parser::$mDoubleUnderscores

Definition at line 165 of file Parser.php.

Parser::$mDTopen

Definition at line 151 of file Parser.php.

Parser::$mExpensiveFunctionCount

Definition at line 166 of file Parser.php.

Parser::$mExtLinkBracketedRegex

Definition at line 145 of file Parser.php.

Parser::$mFirstCall = true

Definition at line 134 of file Parser.php.

Parser::$mForceTocPosition

Definition at line 167 of file Parser.php.

Parser::$mFunctionHooks = array()

Definition at line 125 of file Parser.php.

Parser::$mFunctionSynonyms = array( 0 => array(), 1 => array() )

Definition at line 126 of file Parser.php.

Parser::$mFunctionTagHooks = array()

Definition at line 127 of file Parser.php.

Parser::$mGeneratedPPNodeCount

Definition at line 163 of file Parser.php.

Parser::$mHeadings

Definition at line 165 of file Parser.php.

Parser::$mHighestExpansionDepth

Definition at line 163 of file Parser.php.

Parser::$mImageParams = array()

Definition at line 131 of file Parser.php.

Parser::$mImageParamsMagicArray = array()

Definition at line 132 of file Parser.php.

Parser::$mIncludeCount

Definition at line 157 of file Parser.php.

Parser::$mIncludeSizes

Definition at line 163 of file Parser.php.

bool Parser::$mInParse = false

Recursive call protection.

This variable should be treated as if it were private.

Definition at line 206 of file Parser.php.

Parser::$mInPre

Definition at line 157 of file Parser.php.

Parser::$mInputSize = false

Definition at line 191 of file Parser.php.

array Parser::$mLangLinkLanguages

Array with the language name of each language link (i.e.

the interwiki prefix) in the key, value arbitrary. Used to avoid sending duplicate language links to the ParserOutput.

Definition at line 201 of file Parser.php.

Parser::$mLastSection

Definition at line 157 of file Parser.php.

LinkHolderArray Parser::$mLinkHolders

Definition at line 160 of file Parser.php.

Parser::$mLinkID

Definition at line 162 of file Parser.php.

Parser::$mMarkerIndex = 0

Definition at line 133 of file Parser.php.

ParserOptions Parser::$mOptions

Definition at line 178 of file Parser.php.

ParserOutput Parser::$mOutput

Definition at line 150 of file Parser.php.

Parser::$mOutputType

Definition at line 183 of file Parser.php.

Parser::$mPPNodeCount

Definition at line 163 of file Parser.php.

Parser::$mPreprocessor

Definition at line 145 of file Parser.php.

Parser::$mRevIdForTs

Definition at line 190 of file Parser.php.

Parser::$mRevisionId

Definition at line 186 of file Parser.php.

Parser::$mRevisionObject

Definition at line 185 of file Parser.php.

Parser::$mRevisionSize

Definition at line 189 of file Parser.php.

Parser::$mRevisionTimestamp

Definition at line 187 of file Parser.php.

Parser::$mRevisionUser

Definition at line 188 of file Parser.php.

Parser::$mShowToc

Definition at line 167 of file Parser.php.

Parser::$mStripList = array()

Definition at line 128 of file Parser.php.

StripState Parser::$mStripState

Definition at line 155 of file Parser.php.

MagicWordArray Parser::$mSubstWords

Definition at line 144 of file Parser.php.

Parser::$mTagHooks = array()

Definition at line 123 of file Parser.php.

Title Parser::$mTitle

Definition at line 182 of file Parser.php.

Parser::$mTplDomCache

Definition at line 165 of file Parser.php.

Parser::$mTplRedirCache

Definition at line 165 of file Parser.php.

Parser::$mTransparentTagHooks = array()

Definition at line 124 of file Parser.php.

string Parser::$mUniqPrefix

Definition at line 195 of file Parser.php.

Parser::$mUrlProtocols

Definition at line 145 of file Parser.php.

User Parser::$mUser

Definition at line 171 of file Parser.php.

Parser::$mVarCache = array()

Definition at line 130 of file Parser.php.

MagicWordArray Parser::$mVariables

Definition at line 140 of file Parser.php.

Parser::$ot

Definition at line 184 of file Parser.php.

Definition at line 98 of file Parser.php.

Definition at line 100 of file Parser.php.

Definition at line 101 of file Parser.php.

Definition at line 102 of file Parser.php.

Definition at line 96 of file Parser.php.

Definition at line 99 of file Parser.php.

Definition at line 97 of file Parser.php.

Definition at line 95 of file Parser.php.

Initial value:
 '/^(http:\/\/|https:\/\/)([^][<>"\\x00-\\x20\\x7F\p{Zs}]+)
        \\/([A-Za-z0-9_.,~%\\-+&;#*?!=()@\\x80-\\xFF]+)\\.((?i)gif|png|jpg|jpeg)$/Sxu'

Definition at line 91 of file Parser.php.

const Parser::EXT_LINK_URL_CLASS = '[^][<>"\\x00-\\x20\\x7F\p{Zs}]'

Definition at line 90 of file Parser.php.

Update this version number when the output of serialiseHalfParsedText() changes in an incompatible way.

Definition at line 79 of file Parser.php.

const Parser::OT_HTML = 1

Definition at line 109 of file Parser.php.

Referenced by ParserMethodsTest\testCallParserFunction().

const Parser::OT_MSG = 3

Definition at line 112 of file Parser.php.

const Parser::OT_PLAIN = 4

Definition at line 113 of file Parser.php.

Definition at line 111 of file Parser.php.

const Parser::OT_WIKI = 2

Definition at line 110 of file Parser.php.

Definition at line 105 of file Parser.php.

Definition at line 83 of file Parser.php.

Definition at line 84 of file Parser.php.

const Parser::TOC_END = '</mw:toc>'

Definition at line 120 of file Parser.php.

Referenced by ParserOutput\getText().

const Parser::TOC_START = '<mw:toc>'

Definition at line 119 of file Parser.php.

Referenced by ParserOutput\getText().

const Parser::VERSION = '1.6.4'

Update this version number when the ParserOutput format changes in an incompatible way, so the parser cache can automatically discard old data.

Definition at line 73 of file Parser.php.


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