MediaWiki REL1_37
Article Class Reference

Class for viewing MediaWiki article and history. More...

Inheritance diagram for Article:
Collaboration diagram for Article:

Public Member Functions

 __construct (Title $title, $oldId=null)
 
 __get ( $fname)
 
 __set ( $fname, $fvalue)
 
 addHelpLink ( $to, $overrideBaseUrl=false)
 Adds help link with an icon via page indicators.
 
 adjustDisplayTitle (ParserOutput $pOutput)
 Adjust title for pages with displaytitle, -{T|}- or language conversion.
 
 clear ()
 
 doDelete ( $reason, $suppress=false, $immediate=false)
 Perform a deletion and output success or failure messages.
 
 fetchRevisionRecord ()
 Fetches the revision to work on.
 
 getActionOverrides ()
 Call to WikiPage function for backwards compatibility.
 
 getContext ()
 Gets the context this Article is executed in.
 
 getOldID ()
 
 getOldIDFromRequest ()
 Sets $this->mRedirectUrl to a correct URL if the query parameters are incorrect.
 
 getPage ()
 Get the WikiPage object of this instance.
 
 getParserOptions ()
 Get parser options suitable for rendering the primary article wikitext.
 
 getParserOutput ( $oldid=null, UserIdentity $user=null)
 #-
 
 getRedirectedFrom ()
 Get the page this view was redirected from.
 
 getRevIdFetched ()
 Use this to fetch the rev ID used on page views.
 
 getRobotPolicy ( $action, ParserOutput $pOutput=null)
 Get the robot policy to be used for the current view.
 
 getTimestamp ()
 
 getTitle ()
 Get the title object of the article.
 
 isCurrent ()
 Returns true if the currently-referenced revision is the current edit to this page (and it exists).
 
 isFileCacheable ( $mode=HTMLFileCache::MODE_NORMAL)
 Check if the page can be cached.
 
 protect ()
 action=protect handler
 
 render ()
 Handle action=render.
 
 setContext ( $context)
 Sets the context this Article is executed in.
 
 setOldSubtitle ( $oldid=0)
 Generate the navigation links when browsing through an article revisions It shows the information as: Revision as of \<date\>; view current revision \<- Previous version | Next Version -\>
 
 setRedirectedFrom (Title $from)
 Tell the page view functions that this view was redirected from another page on the wiki.
 
 showDeletedRevisionHeader ()
 If the revision requested for view is deleted, check permissions.
 
 showMissingArticle ()
 Show the error text for a missing article.
 
 showNamespaceHeader ()
 Show a header specific to the namespace currently being viewed, like [[MediaWiki:Talkpagetext]].
 
 showPatrolFooter ()
 If patrol is possible, output a patrol UI box.
 
 showRedirectedFromHeader ()
 If this request is a redirect view, send "redirected from" subtitle to the output.
 
 showViewFooter ()
 Show the footer section of an ordinary page view.
 
 unprotect ()
 action=unprotect handler (alias)
 
 view ()
 This is the default action of the index.php entry point: just view the page of the given title.
 
 viewRedirect ( $target, $appendSubtitle=true, $forceKnown=false)
 Return the HTML for the top of a redirect page.
 

Static Public Member Functions

static formatRobotPolicy ( $policy)
 Converts a String robot policy into an associative array, to allow merging of several policies using array_merge().
 
static getRedirectHeaderHtml (Language $lang, $target, $forceKnown=false)
 Return the HTML for the top of a redirect page.
 
static newFromID ( $id)
 Constructor from a page id.
 
static newFromTitle ( $title, IContextSource $context)
 Create an Article object of the appropriate class for the given page.
 
static newFromWikiPage (WikiPage $page, IContextSource $context)
 Create an Article object of the appropriate class for the given page.
 
static purgePatrolFooterCache ( $articleID)
 Purge the cache used to check if it is worth showing the patrol footer For example, it is done during re-uploads when file patrol is used.
 

Public Attributes

int null $mOldId
 The oldid of the article that was requested to be shown, 0 for the current revision.
 
ParserOutput null false $mParserOutput = null
 The ParserOutput generated for viewing the page, initialized by view().
 
Title null $mRedirectedFrom = null
 Title from which we were redirected here, if any.
 
string bool $mRedirectUrl = false
 URL to redirect to or false if none.
 

Protected Member Functions

 newPage (Title $title)
 
 showDiffPage ()
 Show a diff page according to current request variables.
 
 tryFileCache ()
 checkLastModified returns true if it has taken care of all output to the client that is necessary for this request.
 

Protected Attributes

LinkRenderer $linkRenderer
 
IContextSource null $mContext
 The context this Article is executed in.
 
WikiPage $mPage
 The WikiPage object of this instance.
 
bool $viewIsRenderAction = false
 Whether render() was called.
 

Private Member Functions

 doOutputFromParserCache (ParserOutput $pOutput, OutputPage $outputPage, array $textOptions)
 
 doOutputFromRenderStatus (?RevisionRecord $rev, Status $renderStatus, OutputPage $outputPage, array $textOptions)
 
 doOutputMetaData (?ParserOutput $pOutput, OutputPage $outputPage)
 
 generateContentOutput (Authority $performer, ParserOptions $parserOptions, int $oldid, OutputPage $outputPage, array $textOptions)
 Determines the desired ParserOutput and passes it to $outputPage.
 
 getRevisionRedirectTarget (RevisionRecord $revision)
 
 showViewError (string $errortext)
 Show error text for errors generated in Article::view().
 

Private Attributes

Status null $fetchResult = null
 represents the outcome of fetchRevisionRecord().
 
RevisionRecord null $mRevisionRecord = null
 Revision to be shown.
 
RevisionStore $revisionStore
 
UserNameUtils $userNameUtils
 
WatchlistManager $watchlistManager
 

Detailed Description

Class for viewing MediaWiki article and history.

This maintains WikiPage functions for backwards compatibility.

Todo:
Move and rewrite code to an Action class

Note: edit user interface and cache support functions have been moved to separate EditPage and HTMLFileCache classes.

Definition at line 49 of file Article.php.

Constructor & Destructor Documentation

◆ __construct()

Article::__construct ( Title  $title,
  $oldId = null 
)
Parameters
Title$title
int | null$oldIdRevision ID, null to fetch from request, zero for current

Definition at line 127 of file Article.php.

References $title, and newPage().

Member Function Documentation

◆ __get()

Article::__get (   $fname)
Deprecated:
since 1.35, use Article::getPage() instead

Use PHP's magic __get handler to handle accessing of raw WikiPage fields for backwards compatibility

Parameters
string$fnameField name
Returns
mixed

Definition at line 1973 of file Article.php.

References wfDeprecatedMsg().

◆ __set()

Article::__set (   $fname,
  $fvalue 
)
Deprecated:
since 1.35, use Article::getPage() instead

Use PHP's magic __set handler to handle setting of raw WikiPage fields for backwards compatibility

Parameters
string$fnameField name
mixed$fvalueNew value

Definition at line 1992 of file Article.php.

References wfDeprecatedMsg().

◆ addHelpLink()

Article::addHelpLink (   $to,
  $overrideBaseUrl = false 
)

Adds help link with an icon via page indicators.

Link target can be overridden by a local message containing a wikilink: the message key is: 'namespace-' + namespace number + '-helppage'.

Parameters
string$toTarget MediaWiki.org page title or encoded URL.
bool$overrideBaseUrlWhether $url is a full URL, to avoid MW.o.
Since
1.25

Definition at line 1754 of file Article.php.

References $title, getContext(), and getTitle().

Referenced by CategoryPage\closeShowCategory().

◆ adjustDisplayTitle()

Article::adjustDisplayTitle ( ParserOutput  $pOutput)

Adjust title for pages with displaytitle, -{T|}- or language conversion.

Parameters
ParserOutput$pOutput

Definition at line 815 of file Article.php.

References getContext(), and ParserOutput\getTitleText().

◆ clear()

Article::clear ( )

Definition at line 238 of file Article.php.

◆ doDelete()

Article::doDelete (   $reason,
  $suppress = false,
  $immediate = false 
)

Perform a deletion and output success or failure messages.

Parameters
string$reason
bool$suppress
bool$immediatefalse allows deleting over time via the job queue
Exceptions
FatalError
MWException

Definition at line 1802 of file Article.php.

References OutputPage\addHTML(), OutputPage\addWikiMsg(), getContext(), ContextSource\getOutput(), getTitle(), OutputPage\returnToMain(), OutputPage\setPageTitle(), OutputPage\setRobotPolicy(), wfEscapeWikiText(), wfMessage(), and OutputPage\wrapWikiTextAsInterface().

Referenced by DeleteAction\tempDeleteArticle().

◆ doOutputFromParserCache()

Article::doOutputFromParserCache ( ParserOutput  $pOutput,
OutputPage  $outputPage,
array  $textOptions 
)
private

◆ doOutputFromRenderStatus()

Article::doOutputFromRenderStatus ( ?RevisionRecord  $rev,
Status  $renderStatus,
OutputPage  $outputPage,
array  $textOptions 
)
private

◆ doOutputMetaData()

Article::doOutputMetaData ( ?ParserOutput  $pOutput,
OutputPage  $outputPage 
)
private
Parameters
?ParserOutput$pOutput
OutputPage$outputPage

Definition at line 717 of file Article.php.

References OutputPage\setFollowPolicy(), and OutputPage\setIndexPolicy().

Referenced by generateContentOutput().

◆ fetchRevisionRecord()

Article::fetchRevisionRecord ( )

Fetches the revision to work on.

The revision is loaded from the database. Refer to $this->fetchResult for the revision or any errors encountered while loading it.

Public since 1.35

Returns
RevisionRecord|null

Definition at line 338 of file Article.php.

References $title, StatusValue\fatal(), getOldID(), getTitle(), and wfDebug().

◆ formatRobotPolicy()

static Article::formatRobotPolicy (   $policy)
static

Converts a String robot policy into an associative array, to allow merging of several policies using array_merge().

Parameters
array | string$policyReturns empty array on null/false/'', transparent to already-converted arrays, converts string.
Returns
array 'index' => \<indexpolicy\>, 'follow' => \<followpolicy\>

Definition at line 973 of file Article.php.

◆ generateContentOutput()

Article::generateContentOutput ( Authority  $performer,
ParserOptions  $parserOptions,
int  $oldid,
OutputPage  $outputPage,
array  $textOptions 
)
private

Determines the desired ParserOutput and passes it to $outputPage.

Parameters
Authority$performer
ParserOptions$parserOptions
int$oldid
OutputPage$outputPage
array$textOptions
Returns
bool True if further processing like footer generation should be applied, false to skip further processing.

Definition at line 555 of file Article.php.

References doOutputMetaData().

Referenced by view().

◆ getActionOverrides()

Article::getActionOverrides ( )

Call to WikiPage function for backwards compatibility.

See also
ContentHandler::getActionOverrides
Returns
array

Definition at line 2011 of file Article.php.

Referenced by MediaWiki\Actions\ActionFactory\getAction().

◆ getContext()

Article::getContext ( )

Gets the context this Article is executed in.

Returns
IContextSource
Since
1.18

Definition at line 1954 of file Article.php.

References wfDebug().

Referenced by ImageHistoryList\__construct(), EditPage\__construct(), ProtectionForm\__construct(), and Action\factory().

◆ getOldID()

Article::getOldID ( )
See also
getOldIDFromRequest()
getRevIdFetched()
Returns
int The oldid of the article that is was requested in the constructor or via the context's WebRequest.

Definition at line 256 of file Article.php.

References getOldIDFromRequest().

Referenced by fetchRevisionRecord(), isCurrent(), view(), and ImagePage\view().

◆ getOldIDFromRequest()

Article::getOldIDFromRequest ( )

Sets $this->mRedirectUrl to a correct URL if the query parameters are incorrect.

Returns
int The old id for the request

Definition at line 269 of file Article.php.

References getContext(), and getTitle().

Referenced by getOldID().

◆ getPage()

◆ getParserOptions()

Article::getParserOptions ( )

Get parser options suitable for rendering the primary article wikitext.

Returns
ParserOptions

Definition at line 1934 of file Article.php.

References getContext().

Referenced by view().

◆ getParserOutput()

Article::getParserOutput (   $oldid = null,
UserIdentity  $user = null 
)

#-

Lightweight method to get the parser output for a page, checking the parser cache and so on. Doesn't consider most of the stuff that Article::view() is forced to consider, so it's not appropriate to use there.

Since
1.16 (r52326) for LiquidThreads
Parameters
int | null$oldidRevision ID or null
UserIdentity | null$userThe relevant user
Returns
ParserOutput|bool ParserOutput or false if the given revision ID is not found

Definition at line 1920 of file Article.php.

◆ getRedirectedFrom()

Article::getRedirectedFrom ( )

Get the page this view was redirected from.

Returns
Title|null
Since
1.28

Definition at line 206 of file Article.php.

◆ getRedirectHeaderHtml()

static Article::getRedirectHeaderHtml ( Language  $lang,
  $target,
  $forceKnown = false 
)
static

Return the HTML for the top of a redirect page.

Chances are you should just be using the ParserOutput from WikitextContent::getParserOutput instead of calling this for redirects.

Since
1.23
Parameters
Language$lang
Title | Title[]$targetDestination(s) to redirect
bool$forceKnownShould the image be shown as a bluelink regardless of existence?
Returns
string Containing HTML with redirect link

Definition at line 1707 of file Article.php.

References $lang, $title, MediaWiki\Linker\LinkRenderer\makeKnownLink(), MediaWiki\Linker\LinkRenderer\makeLink(), and wfMessage().

◆ getRevIdFetched()

Article::getRevIdFetched ( )

Use this to fetch the rev ID used on page views.

Before fetchRevisionRecord was called, this returns the page's latest revision, regardless of what getOldID() returns.

Returns
int Revision ID of last article revision

Definition at line 415 of file Article.php.

Referenced by view().

◆ getRevisionRedirectTarget()

Article::getRevisionRedirectTarget ( RevisionRecord  $revision)
private
Parameters
RevisionRecord$revision
Returns
null|Title

Definition at line 803 of file Article.php.

References $content, and MediaWiki\Revision\RevisionRecord\getContent().

◆ getRobotPolicy()

Article::getRobotPolicy (   $action,
ParserOutput  $pOutput = null 
)

Get the robot policy to be used for the current view.

Parameters
string$actionThe action= GET parameter
ParserOutput | null$pOutput
Returns
string[] The policy that should be set
Todo:
actions other than 'view'

Definition at line 893 of file Article.php.

References $wgArticleRobotPolicies, $wgDefaultRobotPolicy, $wgNamespaceRobotPolicies, getContext(), getTitle(), NS_USER, and NS_USER_TALK.

◆ getTimestamp()

Article::getTimestamp ( )
Deprecated:
since 1.35, use WikiPage::getTimestamp instead
See also
WikiPage::getTimestamp
Returns
string

Definition at line 2020 of file Article.php.

References wfDeprecated().

◆ getTitle()

Article::getTitle ( )

Get the title object of the article.

Returns
Title Title object of this page

Definition at line 224 of file Article.php.

Referenced by ImageHistoryList\__construct(), EditPage\__construct(), and ProtectionForm\__construct().

◆ isCurrent()

Article::isCurrent ( )

Returns true if the currently-referenced revision is the current edit to this page (and it exists).

Returns
bool

Definition at line 396 of file Article.php.

References getOldID().

Referenced by view().

◆ isFileCacheable()

Article::isFileCacheable (   $mode = HTMLFileCache::MODE_NORMAL)

Check if the page can be cached.

Parameters
int$modeOne of the HTMLFileCache::MODE_* constants (since 1.28)
Returns
bool

Definition at line 1892 of file Article.php.

References getContext(), getTitle(), and HTMLFileCache\useFileCache().

◆ newFromID()

static Article::newFromID (   $id)
static

Constructor from a page id.

Parameters
int$idArticle ID to load
Returns
Article|null

Definition at line 151 of file Article.php.

References $t.

◆ newFromTitle()

static Article::newFromTitle (   $title,
IContextSource  $context 
)
static

Create an Article object of the appropriate class for the given page.

Parameters
Title$title
IContextSource$context
Returns
Article

Definition at line 163 of file Article.php.

References $title, NS_CATEGORY, NS_FILE, and NS_MEDIA.

◆ newFromWikiPage()

static Article::newFromWikiPage ( WikiPage  $page,
IContextSource  $context 
)
static

Create an Article object of the appropriate class for the given page.

Parameters
WikiPage$page
IContextSource$context
Returns
Article

Definition at line 195 of file Article.php.

References WikiPage\getTitle().

◆ newPage()

Article::newPage ( Title  $title)
protected
Parameters
Title$title
Returns
WikiPage

Reimplemented in CategoryPage, and ImagePage.

Definition at line 142 of file Article.php.

References $title.

Referenced by __construct().

◆ protect()

Article::protect ( )

action=protect handler

Definition at line 1782 of file Article.php.

◆ purgePatrolFooterCache()

static Article::purgePatrolFooterCache (   $articleID)
static

Purge the cache used to check if it is worth showing the patrol footer For example, it is done during re-uploads when file patrol is used.

Parameters
int$articleIDID of the article to purge
Since
1.27

Definition at line 1282 of file Article.php.

References $cache.

◆ render()

Article::render ( )

Handle action=render.

Definition at line 1771 of file Article.php.

References getContext().

◆ setContext()

Article::setContext (   $context)

Sets the context this Article is executed in.

Parameters
IContextSource$context
Since
1.18

Definition at line 1944 of file Article.php.

◆ setOldSubtitle()

Article::setOldSubtitle (   $oldid = 0)

Generate the navigation links when browsing through an article revisions It shows the information as: Revision as of \<date\>; view current revision \<- Previous version | Next Version -\>

Parameters
int$oldidRevision ID of this article revision

Definition at line 1529 of file Article.php.

References OutputPage\addModuleStyles(), OutputPage\addSubtitle(), getContext(), ContextSource\getOutput(), Linker\getRevDeleteLink(), getTitle(), Linker\revComment(), and Linker\revUserTools().

◆ setRedirectedFrom()

Article::setRedirectedFrom ( Title  $from)

Tell the page view functions that this view was redirected from another page on the wiki.

Parameters
Title$from

Definition at line 215 of file Article.php.

◆ showDeletedRevisionHeader()

Article::showDeletedRevisionHeader ( )

If the revision requested for view is deleted, check permissions.

Send either an error message or a warning header to the output.

Returns
bool True if the view is allowed, false if not.

Definition at line 1468 of file Article.php.

References getContext(), ContextSource\getOutput(), getTitle(), and ContextSource\msg().

◆ showDiffPage()

Article::showDiffPage ( )
protected

Show a diff page according to current request variables.

For use within Article::view() only, other callers should use the DifferenceEngine class.

Definition at line 830 of file Article.php.

References getContext(), and wfMessage().

Referenced by view().

◆ showMissingArticle()

Article::showMissingArticle ( )

◆ showNamespaceHeader()

Article::showNamespaceHeader ( )

Show a header specific to the namespace currently being viewed, like [[MediaWiki:Talkpagetext]].

For Article::view().

Definition at line 1076 of file Article.php.

References getContext(), getTitle(), and wfMessage().

Referenced by view().

◆ showPatrolFooter()

Article::showPatrolFooter ( )

If patrol is possible, output a patrol UI box.

This is called from the footer section of ordinary page views. If patrol is not possible or not desired, does nothing.

Side effect: When the patrol link is build, this method will call OutputPage::preventClickjacking() and load a JS module.

Returns
bool

Definition at line 1112 of file Article.php.

References $cache, $dbr, $title, $wgUseFilePatrol, $wgUseNPPatrol, $wgUseRCPatrol, OutputPage\addHTML(), OutputPage\addModules(), OutputPage\addModuleStyles(), DB_REPLICA, getAuthority(), getContext(), ContextSource\getOutput(), getTitle(), NS_FILE, OutputPage\preventClickjacking(), RC_LOG, wfGetDB(), and wfMessage().

◆ showRedirectedFromHeader()

Article::showRedirectedFromHeader ( )

If this request is a redirect view, send "redirected from" subtitle to the output.

Returns true if the header was needed, false if this is not a redirect view. Handles both local and remote redirects.

Returns
bool

Definition at line 1002 of file Article.php.

References $wgRedirectSources, OutputPage\addJsConfigVars(), OutputPage\addModules(), OutputPage\addSubtitle(), getContext(), ContextSource\getOutput(), getTitle(), Linker\makeExternalLink(), OutputPage\setCanonicalUrl(), and OutputPage\setRedirectedFrom().

Referenced by view().

◆ showViewError()

Article::showViewError ( string  $errortext)
private

Show error text for errors generated in Article::view().

Parameters
string$errortextlocalized wikitext error message

Definition at line 1453 of file Article.php.

References OutputPage\clearHTML(), OutputPage\enableClientCache(), getContext(), ContextSource\getOutput(), OutputPage\setPageTitle(), OutputPage\setRobotPolicy(), and OutputPage\wrapWikiTextAsInterface().

◆ showViewFooter()

Article::showViewFooter ( )

Show the footer section of an ordinary page view.

Definition at line 1088 of file Article.php.

References getContext(), getTitle(), and NS_USER_TALK.

Referenced by view().

◆ tryFileCache()

Article::tryFileCache ( )
protected

checkLastModified returns true if it has taken care of all output to the client that is necessary for this request.

(that is, it has sent a cached version of the page)

Returns
bool True if cached version send, false otherwise

Definition at line 1861 of file Article.php.

References $cache, getContext(), getTitle(), and wfDebug().

Referenced by view().

◆ unprotect()

Article::unprotect ( )

action=unprotect handler (alias)

Definition at line 1790 of file Article.php.

◆ view()

Article::view ( )

◆ viewRedirect()

Article::viewRedirect (   $target,
  $appendSubtitle = true,
  $forceKnown = false 
)

Return the HTML for the top of a redirect page.

Chances are you should just be using the ParserOutput from WikitextContent::getParserOutput instead of calling this for redirects.

Parameters
Title | array$targetDestination(s) to redirect
bool$appendSubtitle[optional]
bool$forceKnownShould the image be shown as a bluelink regardless of existence?
Returns
string Containing HTML with redirect link
Deprecated:
since 1.30

Definition at line 1685 of file Article.php.

References $lang, getContext(), getTitle(), and wfMessage().

Member Data Documentation

◆ $fetchResult

Status null Article::$fetchResult = null
private

represents the outcome of fetchRevisionRecord().

$fetchResult->value is the RevisionRecord object, if the operation was successful.

Definition at line 79 of file Article.php.

◆ $linkRenderer

LinkRenderer Article::$linkRenderer
protected

Definition at line 98 of file Article.php.

Referenced by ImagePage\imageDupes(), ImagePage\imageLinks(), and ImagePage\openShowImage().

◆ $mContext

IContextSource null Article::$mContext
protected

The context this Article is executed in.

If null, RequestContext::getMain() is used.

Deprecated:
since 1.35, must be private, use getContext

Definition at line 58 of file Article.php.

◆ $mOldId

int null Article::$mOldId

The oldid of the article that was requested to be shown, 0 for the current revision.

Definition at line 67 of file Article.php.

◆ $mPage

WikiPage Article::$mPage
protected

The WikiPage object of this instance.

Definition at line 61 of file Article.php.

◆ $mParserOutput

ParserOutput null false Article::$mParserOutput = null

The ParserOutput generated for viewing the page, initialized by view().

If no ParserOutput could be generated, this is set to false.

Deprecated:
since 1.32

Definition at line 86 of file Article.php.

◆ $mRedirectedFrom

Title null Article::$mRedirectedFrom = null

Title from which we were redirected here, if any.

Definition at line 70 of file Article.php.

◆ $mRedirectUrl

string bool Article::$mRedirectUrl = false

URL to redirect to or false if none.

Definition at line 73 of file Article.php.

◆ $mRevisionRecord

RevisionRecord null Article::$mRevisionRecord = null
private

Revision to be shown.

Initialized by getOldIDFromRequest() or fetchRevisionRecord(). While the output of Article::view is typically based on this revision, it may be replaced by extensions.

Definition at line 121 of file Article.php.

◆ $revisionStore

RevisionStore Article::$revisionStore
private

Definition at line 103 of file Article.php.

◆ $userNameUtils

UserNameUtils Article::$userNameUtils
private

Definition at line 113 of file Article.php.

◆ $viewIsRenderAction

bool Article::$viewIsRenderAction = false
protected

Whether render() was called.

With the way subclasses work here, there doesn't seem to be any other way to stop calling OutputPage::enableSectionEditLinks() and still have it work as it did before.

Definition at line 93 of file Article.php.

◆ $watchlistManager

WatchlistManager Article::$watchlistManager
private

Definition at line 108 of file Article.php.


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