MediaWiki  1.30.0
Revision Class Reference
Inheritance diagram for Revision:
Collaboration diagram for Revision:

Public Member Functions

 __construct ( $row)
 
 getComment ( $audience=self::FOR_PUBLIC, User $user=null)
 Fetch revision comment if it's available to the specified audience. More...
 
 getContent ( $audience=self::FOR_PUBLIC, User $user=null)
 Fetch revision content if it's available to the specified audience. More...
 
 getContentFormat ()
 Returns the content format for this revision. More...
 
 getContentHandler ()
 Returns the content handler appropriate for this revision's content model. More...
 
 getContentModel ()
 Returns the content model for this revision. More...
 
 getId ()
 Get revision ID. More...
 
 getNext ()
 Get next revision for this title. More...
 
 getPage ()
 Get the page ID. More...
 
 getParentId ()
 Get parent revision ID (the original previous page revision) More...
 
 getPrevious ()
 Get previous revision for this title. More...
 
 getRawComment ()
 Fetch revision comment without regard for the current user's permissions. More...
 
 getRawUser ()
 Fetch revision's user id without regard for the current user's permissions. More...
 
 getRawUserText ()
 Fetch revision's username without regard for view restrictions. More...
 
 getRecentChange ( $flags=0)
 Get the RC object belonging to the current revision, if there's one. More...
 
 getSerializedData ()
 Get original serialized data (without checking view restrictions) More...
 
 getSha1 ()
 Returns the base36 sha1 of the text in this revision, or null if unknown. More...
 
 getSize ()
 Returns the length of the text in this revision, or null if unknown. More...
 
 getTextId ()
 Get text row ID. More...
 
 getTimestamp ()
 
 getTitle ()
 Returns the title of the page associated with this entry or null. More...
 
 getUser ( $audience=self::FOR_PUBLIC, User $user=null)
 Fetch revision's user id if it's available to the specified audience. More...
 
 getUserText ( $audience=self::FOR_PUBLIC, User $user=null)
 Fetch revision's username if it's available to the specified audience. More...
 
 getVisibility ()
 Get the deletion bitfield of the revision. More...
 
 insertOn ( $dbw)
 Insert a new revision into the database, returning the new revision ID number on success and dies horribly on failure. More...
 
 isCurrent ()
 
 isDeleted ( $field)
 
 isMinor ()
 
 isUnpatrolled ()
 
 setId ( $id)
 Set the revision ID. More...
 
 setTitle ( $title)
 Set the title of the revision. More...
 
 setUserIdAndName ( $id, $name)
 Set the user ID/name. More...
 
 userCan ( $field, User $user=null)
 Determine if the current user is allowed to view a particular field of this revision, if it's marked as deleted. More...
 

Static Public Member Functions

static base36Sha1 ( $text)
 Get the base 36 SHA-1 value for a string of text. More...
 
static compressRevisionText (&$text)
 If $wgCompressRevisions is enabled, we will compress data. More...
 
static countByPageId ( $db, $id)
 Get count of revisions per page...not very efficient. More...
 
static countByTitle ( $db, $title)
 Get count of revisions per page...not very efficient. More...
 
static decompressRevisionText ( $text, $flags)
 Re-converts revision text according to it's flags. More...
 
static fetchRevision (LinkTarget $title)
 Return a wrapper for a series of database rows to fetch all of a given page's revisions in turn. More...
 
static getParentLengths ( $db, array $revIds)
 Do a batched query to get the parent revision lengths. More...
 
static getRevisionText ( $row, $prefix='old_', $wiki=false)
 Get revision text associated with an old or archive row. More...
 
static getTimestampFromId ( $title, $id, $flags=0)
 Get rev_timestamp from rev_id, without loading the rest of the row. More...
 
static loadFromId ( $db, $id)
 Load a page revision from a given revision ID number. More...
 
static loadFromPageId ( $db, $pageid, $id=0)
 Load either the current, or a specified, revision that's attached to a given page. More...
 
static loadFromTimestamp ( $db, $title, $timestamp)
 Load the revision for the given title with the given timestamp. More...
 
static loadFromTitle ( $db, $title, $id=0)
 Load either the current, or a specified, revision that's attached to a given page. More...
 
static newFromArchiveRow ( $row, $overrides=[])
 Make a fake revision object from an archive table row. More...
 
static newFromId ( $id, $flags=0)
 Load a page revision from a given revision ID number. More...
 
static newFromPageId ( $pageId, $revId=0, $flags=0)
 Load either the current, or a specified, revision that's attached to a given page ID. More...
 
static newFromRow ( $row)
 
static newFromTitle (LinkTarget $linkTarget, $id=0, $flags=0)
 Load either the current, or a specified, revision that's attached to a given link target. More...
 
static newKnownCurrent (IDatabase $db, $pageId, $revId)
 Load a revision based on a known page ID and current revision ID from the DB. More...
 
static newNullRevision ( $dbw, $pageId, $summary, $minor, $user=null)
 Create a new null-revision for insertion into a page's history. More...
 
static pageJoinCond ()
 Return the value of a select() page conds array for the page table. More...
 
static selectArchiveFields ()
 Return the list of revision fields that should be selected to create a new revision from an archive row. More...
 
static selectFields ()
 Return the list of revision fields that should be selected to create a new revision. More...
 
static selectPageFields ()
 Return the list of page fields that should be selected from page table. More...
 
static selectTextFields ()
 Return the list of text fields that should be selected to read the revision text. More...
 
static selectUserFields ()
 Return the list of user fields that should be selected from user table. More...
 
static userCanBitfield ( $bitfield, $field, User $user=null, Title $title=null)
 Determine if the current user is allowed to view a particular field of this revision, if it's marked as deleted. More...
 
static userJoinCond ()
 Return the value of a select() JOIN conds array for the user table. More...
 
static userWasLastToEdit ( $db, $pageId, $userId, $since)
 Check if no edits were made by other users since the time a user started editing the page. More...
 

Public Attributes

const DELETED_COMMENT = 2
 
const DELETED_RESTRICTED = 8
 
const DELETED_TEXT = 1
 
const DELETED_USER = 4
 
const FOR_PUBLIC = 1
 
const FOR_THIS_USER = 2
 
const RAW = 3
 
const SUPPRESSED_ALL = 15
 
const SUPPRESSED_USER = 12
 
const TEXT_CACHE_GROUP = 'revisiontext:10'
 
- Public Attributes inherited from IDBAccessObject
const READ_LOCKING = 3
 Constants for object loading bitfield flags (higher => higher QoS) More...
 
const READ_NONE = -1
 

Protected Member Functions

 checkContentModel ()
 
 getContentInternal ()
 Gets the content object for the revision (or null on failure). More...
 

Protected Attributes

string $mComment
 
Content null bool $mContent
 
string $mContentFormat
 
null ContentHandler $mContentHandler
 
string $mContentModel
 
bool $mCurrent
 
int $mDeleted
 
int null $mId
 
bool $mMinorEdit
 
string $mOrigUserText
 
int null $mPage
 
int $mParentId
 
int $mQueryFlags = 0
 
bool $mRefreshMutableFields = false
 Used for cached values to reload user text and rev_deleted. More...
 
string $mSha1
 
int $mSize
 
string $mText
 
int $mTextId
 
stdClass null $mTextRow
 
string $mTimestamp
 
null Title $mTitle
 
int $mUnpatrolled
 
int $mUser
 
string $mUserText
 
string $mWiki = false
 Wiki ID; false means the current wiki. More...
 

Private Member Functions

 fetchText ()
 
 getPreviousRevisionId ( $db)
 Get previous revision Id for this page_id This is used to populate rev_parent_id on save. More...
 
 loadMutableFields ()
 For cached revisions, make sure the user name and rev_deleted is up-to-date. More...
 
 loadText ()
 Lazy-load the revision's text. More...
 

Static Private Member Functions

static fetchFromConds ( $db, $conditions, $flags=0)
 Given a set of conditions, return a ResultWrapper which will return matching database rows with the fields necessary to build Revision objects. More...
 
static getCacheTTL (WANObjectCache $cache)
 Get the text cache TTL. More...
 
static loadFromConds ( $db, $conditions, $flags=0)
 Given a set of conditions, fetch a revision from the given database connection. More...
 
static newFromConds ( $conditions, $flags=0)
 Given a set of conditions, fetch a revision. More...
 

Detailed Description

Todo:
document

Definition at line 33 of file Revision.php.

Constructor & Destructor Documentation

◆ __construct()

Revision::__construct (   $row)
Parameters
object | array$rowEither a database row or an array
Exceptions
MWException
Access:\n private

Definition at line 574 of file Revision.php.

References $handler, $mPage, $wgUser, base36Sha1(), DB_REPLICA, getContentFormat(), getContentHandler(), getContentModel(), global, needed(), Title\newFromRow(), CommentStore\newKey(), on, wfDebug(), wfGetDB(), and wfTimestampNow().

Member Function Documentation

◆ base36Sha1()

static Revision::base36Sha1 (   $text)
static

Get the base 36 SHA-1 value for a string of text.

Parameters
string$text
Returns
string

Definition at line 1600 of file Revision.php.

Referenced by __construct(), RevisionTest\dataGetSha1(), insertOn(), PopulateRevisionSha1\upgradeLegacyArchiveRow(), and PopulateRevisionSha1\upgradeRow().

◆ checkContentModel()

◆ compressRevisionText()

static Revision::compressRevisionText ( $text)
static

If $wgCompressRevisions is enabled, we will compress data.

The input string is modified in place. Return value is the flags field: contains 'gzip' if the data is compressed, and 'utf-8' if we're saving in UTF-8 mode.

Parameters
mixed&$textReference to a text
Returns
string

Definition at line 1323 of file Revision.php.

References $flags, $wgCompressRevisions, global, wfDebug(), and wfLogWarning().

Referenced by CheckStorage\importRevision(), insertOn(), RevisionTest\testCompressRevisionTextUtf8(), and RevisionTest\testCompressRevisionTextUtf8Gzip().

◆ countByPageId()

static Revision::countByPageId (   $db,
  $id 
)
static

Get count of revisions per page...not very efficient.

Parameters
IDatabase$db
int$idPage id
Returns
int

Definition at line 1862 of file Revision.php.

Referenced by countByTitle().

◆ countByTitle()

static Revision::countByTitle (   $db,
  $title 
)
static

Get count of revisions per page...not very efficient.

Parameters
IDatabase$db
Title$title
Returns
int

Definition at line 1878 of file Revision.php.

References $title, and countByPageId().

◆ decompressRevisionText()

static Revision::decompressRevisionText (   $text,
  $flags 
)
static

Re-converts revision text according to it's flags.

Parameters
mixed$textReference to a text
array$flagsCompression flags
Returns
string|bool Decompressed text, or false on failure

Definition at line 1355 of file Revision.php.

References $flags, $wgContLang, $wgLegacyEncoding, global, unserialize(), and wfLogWarning().

Referenced by getRevisionText().

◆ fetchFromConds()

static Revision::fetchFromConds (   $db,
  $conditions,
  $flags = 0 
)
staticprivate

Given a set of conditions, return a ResultWrapper which will return matching database rows with the fields necessary to build Revision objects.

Parameters
IDatabase$db
array$conditions
int$flags(optional)
Returns
stdClass

Definition at line 405 of file Revision.php.

References $flags, and $options.

Referenced by fetchRevision(), and loadFromConds().

◆ fetchRevision()

static Revision::fetchRevision ( LinkTarget  $title)
static

Return a wrapper for a series of database rows to fetch all of a given page's revisions in turn.

Each row can be fed to the constructor to get objects.

Parameters
LinkTarget$title
Returns
ResultWrapper
Deprecated:
Since 1.28

Definition at line 382 of file Revision.php.

References $title, DB_REPLICA, fetchFromConds(), and wfGetDB().

Referenced by RevisionStorageTest\testFetchRevision().

◆ fetchText()

◆ getCacheTTL()

static Revision::getCacheTTL ( WANObjectCache  $cache)
staticprivate

Get the text cache TTL.

Parameters
WANObjectCache$cache
Returns
int

Definition at line 1610 of file Revision.php.

References $cache, $wgRevisionCacheExpiry, and global.

Referenced by getRevisionText().

◆ getComment()

Revision::getComment (   $audience = self::FOR_PUBLIC,
User  $user = null 
)

Fetch revision comment if it's available to the specified audience.

If the specified audience does not have access to the comment, an empty string will be returned.

Parameters
int$audienceOne of: Revision::FOR_PUBLIC to be displayed to all users Revision::FOR_THIS_USER to be displayed to the given user Revision::RAW get the text regardless of permissions
User | null$userUser object to check for, only if FOR_THIS_USER is passed to the $audience parameter
Returns
string

Definition at line 955 of file Revision.php.

References $mComment, $user, isDeleted(), and userCan().

Referenced by ApiQueryRevisionsBase\extractRevisionInfo(), and getRawComment().

◆ getContent()

Revision::getContent (   $audience = self::FOR_PUBLIC,
User  $user = null 
)

Fetch revision content if it's available to the specified audience.

If the specified audience does not have the ability to view this revision, null will be returned.

Parameters
int$audienceOne of: Revision::FOR_PUBLIC to be displayed to all users Revision::FOR_THIS_USER to be displayed to $wgUser Revision::RAW get the text regardless of permissions
User$userUser object to check for, only if FOR_THIS_USER is passed to the $audience parameter
Since
1.21
Returns
Content|null

Definition at line 1065 of file Revision.php.

References $user, getContentInternal(), isDeleted(), and userCan().

Referenced by checkContentModel(), WikiPage\doEditUpdates(), ApiQueryRevisionsBase\extractRevisionInfo(), ContentHandler\getUndoContent(), CategoryMembershipChangeJob\notifyUpdatesForRevision(), and BenchmarkParse\runParser().

◆ getContentFormat()

Revision::getContentFormat ( )

Returns the content format for this revision.

If no content format was stored in the database, the default format for this revision's content model is returned.

Returns
string The content format id associated with this revision, see the CONTENT_FORMAT_XXX constants.

Definition at line 1150 of file Revision.php.

References $handler, $mContentFormat, and getContentHandler().

Referenced by __construct(), RevisionStorageTest\assertRevEquals(), checkContentModel(), getContentHandler(), getContentInternal(), and insertOn().

◆ getContentHandler()

Revision::getContentHandler ( )

Returns the content handler appropriate for this revision's content model.

Exceptions
MWException
Returns
ContentHandler

Definition at line 1167 of file Revision.php.

References $mContentHandler, getContentFormat(), getContentModel(), and ContentHandler\getForModelID().

Referenced by __construct(), checkContentModel(), ApiQueryRevisionsBase\extractRevisionInfo(), getContentFormat(), getContentInternal(), and WikiPage\getUndoContent().

◆ getContentInternal()

Revision::getContentInternal ( )
protected

Gets the content object for the revision (or null on failure).

Note that for mutable Content objects, each call to this method will return a fresh clone.

Since
1.21
Returns
Content|null The Revision's content, or null on failure.

Definition at line 1099 of file Revision.php.

References $handler, getContentFormat(), getContentHandler(), and getSerializedData().

Referenced by getContent().

◆ getContentModel()

Revision::getContentModel ( )

Returns the content model for this revision.

If no content model was stored in the database, the default content model for the title is used to determine the content model to use. If no title is know, CONTENT_MODEL_WIKITEXT is used as a last resort.

Returns
string The content model id associated with this revision, see the CONTENT_MODEL_XXX constants.

Definition at line 1126 of file Revision.php.

References $mContentModel, $title, CONTENT_MODEL_WIKITEXT, ContentHandler\getDefaultModelFor(), and getTitle().

Referenced by __construct(), RevisionStorageTest\assertRevEquals(), checkContentModel(), ApiQueryRevisionsBase\extractRevisionInfo(), getContentHandler(), and insertOn().

◆ getId()

◆ getNext()

Revision::getNext ( )

Get next revision for this title.

Returns
Revision|null

Definition at line 1217 of file Revision.php.

References getId(), getTitle(), and newFromTitle().

◆ getPage()

Revision::getPage ( )

Get the page ID.

Returns
int|null

Definition at line 860 of file Revision.php.

References $mPage.

Referenced by RevisionStorageTest\assertRevEquals().

◆ getParentId()

Revision::getParentId ( )

Get parent revision ID (the original previous page revision)

Returns
int|null

Definition at line 788 of file Revision.php.

References $mParentId.

Referenced by ApiQueryRevisionsBase\extractRevisionInfo(), and CategoryMembershipChangeJob\notifyUpdatesForRevision().

◆ getParentLengths()

static Revision::getParentLengths (   $db,
array  $revIds 
)
static

Do a batched query to get the parent revision lengths.

Parameters
IDatabase$db
array$revIds
Returns
array

Definition at line 554 of file Revision.php.

References $res, and as.

Referenced by ContribsPager\doBatchLookups(), HistoryPager\doBatchLookups(), and ApiQueryContributions\execute().

◆ getPrevious()

Revision::getPrevious ( )

Get previous revision for this title.

Returns
Revision|null

Definition at line 1202 of file Revision.php.

References getId(), getTitle(), and newFromTitle().

◆ getPreviousRevisionId()

Revision::getPreviousRevisionId (   $db)
private

Get previous revision Id for this page_id This is used to populate rev_parent_id on save.

Parameters
IDatabase$db
Returns
int

Definition at line 1234 of file Revision.php.

Referenced by insertOn().

◆ getRawComment()

Revision::getRawComment ( )

Fetch revision comment without regard for the current user's permissions.

Returns
string
Deprecated:
since 1.25, use getComment( Revision::RAW )

Definition at line 971 of file Revision.php.

References getComment(), and wfDeprecated().

◆ getRawUser()

Revision::getRawUser ( )

Fetch revision's user id without regard for the current user's permissions.

Returns
int
Deprecated:
since 1.25, use getUser( Revision::RAW )

Definition at line 893 of file Revision.php.

References getUser(), and wfDeprecated().

◆ getRawUserText()

Revision::getRawUserText ( )

Fetch revision's username without regard for view restrictions.

Returns
string
Deprecated:
since 1.25, use getUserText( Revision::RAW )

Definition at line 937 of file Revision.php.

References getUserText(), and wfDeprecated().

◆ getRecentChange()

Revision::getRecentChange (   $flags = 0)

Get the RC object belonging to the current revision, if there's one.

Parameters
int$flags(optional) $flags include: Revision::READ_LATEST : Select the data from the master
Since
1.22
Returns
RecentChange|null

Definition at line 1008 of file Revision.php.

References $dbr, $flags, DB_REPLICA, DBAccessObjectUtils\getDBOptions(), getId(), getUserText(), list, RecentChange\newFromConds(), and wfGetDB().

Referenced by isUnpatrolled().

◆ getRevisionText()

static Revision::getRevisionText (   $row,
  $prefix = 'old_',
  $wiki = false 
)
static

Get revision text associated with an old or archive row.

Both the flags and the text field must be included. Including the old_id field will activate cache usage as long as the $wiki parameter is not set.

Parameters
stdClass$rowThe text data
string$prefixTable prefix (default 'old_')
string | bool$wikiThe name of the wiki to load the revision text from (same as the the wiki $row was loaded from) or false to indicate the local wiki (this is the default). Otherwise, it must be a symbolic wiki database identifier as understood by the LoadBalancer class.
Returns
string|false Text the text requested or false on failure

Definition at line 1266 of file Revision.php.

References $cache, $flags, captcha-old\count, decompressRevisionText(), ExternalStore\fetchFromURL(), getCacheTTL(), TEXT_CACHE_GROUP, and use.

Referenced by CompressOld\compressWithConcat(), FetchText\doGetText(), RecompressTracked\doOrphanList(), RecompressTracked\doPage(), ApiQueryDeletedrevs\execute(), fetchText(), TextPassDumper\getTextDb(), PageArchive\getTextFromRow(), MessageCache\loadFromDB(), newFromArchiveRow(), RevisionTest\testCompressRevisionTextUtf8(), RevisionTest\testCompressRevisionTextUtf8Gzip(), RevisionTest\testGetRevisionText(), RevisionTest\testGetRevisionTextGzip(), RevisionTest\testGetRevisionTextUtf8Legacy(), RevisionTest\testGetRevisionTextUtf8LegacyGzip(), RevisionTest\testGetRevisionTextUtf8Native(), RevisionTest\testGetRevisionTextUtf8NativeGzip(), and XmlDumpWriter\writeRevision().

◆ getSerializedData()

Revision::getSerializedData ( )

Get original serialized data (without checking view restrictions)

Since
1.21
Returns
string

Definition at line 1081 of file Revision.php.

References $mText, and loadText().

Referenced by getContentInternal().

◆ getSha1()

Revision::getSha1 ( )

Returns the base36 sha1 of the text in this revision, or null if unknown.

Returns
string|null

Definition at line 806 of file Revision.php.

References $mSha1.

Referenced by RevisionStorageTest\assertRevEquals(), and ApiQueryRevisionsBase\extractRevisionInfo().

◆ getSize()

Revision::getSize ( )

Returns the length of the text in this revision, or null if unknown.

Returns
int|null

Definition at line 797 of file Revision.php.

References $mSize.

Referenced by ApiQueryRevisionsBase\extractRevisionInfo().

◆ getTextId()

Revision::getTextId ( )

Get text row ID.

Returns
int|null

Definition at line 779 of file Revision.php.

References $mTextId.

Referenced by fetchText().

◆ getTimestamp()

◆ getTimestampFromId()

static Revision::getTimestampFromId (   $title,
  $id,
  $flags = 0 
)
static

Get rev_timestamp from rev_id, without loading the rest of the row.

Parameters
Title$title
int$id
int$flags
Returns
string|bool False if not found

Definition at line 1840 of file Revision.php.

References $flags, $title, DB_MASTER, DB_REPLICA, wfGetDB(), and wfTimestamp().

Referenced by ApiSetNotificationTimestamp\execute(), and Skin\lastModified().

◆ getTitle()

Revision::getTitle ( )

Returns the title of the page associated with this entry or null.

Will do a query, when title is not set and id is given.

Returns
Title|null

Definition at line 817 of file Revision.php.

References $dbr, $mTitle, DB_REPLICA, Title\newFromID(), Title\newFromRow(), wfGetLB(), and wfWikiID().

Referenced by checkContentModel(), ApiQueryRevisionsBase\extractRevisionInfo(), getContentModel(), getNext(), getPrevious(), insertOn(), and BenchmarkParse\runParser().

◆ getUser()

Revision::getUser (   $audience = self::FOR_PUBLIC,
User  $user = null 
)

Fetch revision's user id if it's available to the specified audience.

If the specified audience does not have access to it, zero will be returned.

Parameters
int$audienceOne of: Revision::FOR_PUBLIC to be displayed to all users Revision::FOR_THIS_USER to be displayed to the given user Revision::RAW get the ID regardless of permissions
User | null$userUser object to check for, only if FOR_THIS_USER is passed to the $audience parameter
Returns
int

Definition at line 877 of file Revision.php.

References $mUser, $user, isDeleted(), and userCan().

Referenced by RevisionStorageTest\assertRevEquals(), ApiQueryRevisionsBase\extractRevisionInfo(), and getRawUser().

◆ getUserText()

Revision::getUserText (   $audience = self::FOR_PUBLIC,
User  $user = null 
)

Fetch revision's username if it's available to the specified audience.

If the specified audience does not have access to the username, an empty string will be returned.

Parameters
int$audienceOne of: Revision::FOR_PUBLIC to be displayed to all users Revision::FOR_THIS_USER to be displayed to the given user Revision::RAW get the text regardless of permissions
User | null$userUser object to check for, only if FOR_THIS_USER is passed to the $audience parameter
Returns
string

Definition at line 911 of file Revision.php.

References $mOrigUserText, $mUserText, $user, isDeleted(), loadMutableFields(), userCan(), and User\whoIs().

Referenced by ApiQueryRevisionsBase\extractRevisionInfo(), getRawUserText(), and getRecentChange().

◆ getVisibility()

Revision::getVisibility ( )

Get the deletion bitfield of the revision.

Returns
int

Definition at line 1045 of file Revision.php.

References $mDeleted, and loadMutableFields().

Referenced by isDeleted(), CategoryMembershipChange\notifyCategorization(), and userCan().

◆ insertOn()

Revision::insertOn (   $dbw)

◆ isCurrent()

Revision::isCurrent ( )
Returns
bool

Definition at line 1193 of file Revision.php.

References $mCurrent.

Referenced by DifferenceEngine\getParserOutput(), DifferenceEngine\getRevisionHeader(), and isDeleted().

◆ isDeleted()

Revision::isDeleted (   $field)
Parameters
int$fieldOne of DELETED_* bitfield constants
Returns
bool

Definition at line 1029 of file Revision.php.

References getVisibility(), and isCurrent().

Referenced by ApiQueryRevisionsBase\extractRevisionInfo(), getComment(), getContent(), getUser(), and getUserText().

◆ isMinor()

Revision::isMinor ( )
Returns
bool

Definition at line 979 of file Revision.php.

References $mMinorEdit.

Referenced by WikiPage\doEditUpdates(), and ApiQueryRevisionsBase\extractRevisionInfo().

◆ isUnpatrolled()

Revision::isUnpatrolled ( )
Returns
int Rcid of the unpatrolled row, zero if there isn't one

Definition at line 986 of file Revision.php.

References $mUnpatrolled, and getRecentChange().

◆ loadFromConds()

static Revision::loadFromConds (   $db,
  $conditions,
  $flags = 0 
)
staticprivate

Given a set of conditions, fetch a revision from the given database connection.

Parameters
IDatabase$db
array$conditions
int$flags(optional)
Returns
Revision|null

Definition at line 361 of file Revision.php.

References $flags, $rev, and fetchFromConds().

Referenced by loadFromId(), loadFromPageId(), loadFromTimestamp(), loadFromTitle(), newFromConds(), newFromPageId(), and newFromTitle().

◆ loadFromId()

static Revision::loadFromId (   $db,
  $id 
)
static

Load a page revision from a given revision ID number.

Returns null if no such revision can be found.

Parameters
IDatabase$db
int$id
Returns
Revision|null

Definition at line 250 of file Revision.php.

References loadFromConds().

◆ loadFromPageId()

static Revision::loadFromPageId (   $db,
  $pageid,
  $id = 0 
)
static

Load either the current, or a specified, revision that's attached to a given page.

If not attached to that page, will return null.

Parameters
IDatabase$db
int$pageid
int$id
Returns
Revision|null

Definition at line 264 of file Revision.php.

References loadFromConds().

Referenced by newKnownCurrent(), and Maintenance\updateSearchIndexForPage().

◆ loadFromTimestamp()

static Revision::loadFromTimestamp (   $db,
  $title,
  $timestamp 
)
static

Load the revision for the given title with the given timestamp.

WARNING: Timestamps may in some circumstances not be unique, so this isn't the best key to use.

Parameters
IDatabase$db
Title$title
string$timestamp
Returns
Revision|null

Definition at line 309 of file Revision.php.

References $title, and loadFromConds().

Referenced by AttachLatest\execute(), EditPage\getBaseRevision(), User\getNewMessageLinks(), and WikiPage\replaceSectionContent().

◆ loadFromTitle()

static Revision::loadFromTitle (   $db,
  $title,
  $id = 0 
)
static

Load either the current, or a specified, revision that's attached to a given page.

If not attached to that page, will return null.

Parameters
IDatabase$db
Title$title
int$id
Returns
Revision|null

Definition at line 284 of file Revision.php.

References $title, and loadFromConds().

Referenced by EditPage\mergeChangesIntoContent().

◆ loadMutableFields()

Revision::loadMutableFields ( )
private

For cached revisions, make sure the user name and rev_deleted is up-to-date.

Definition at line 1964 of file Revision.php.

References $dbr, DB_REPLICA, and wfGetLB().

Referenced by getUserText(), and getVisibility().

◆ loadText()

Revision::loadText ( )
private

Lazy-load the revision's text.

Currently hardcoded to the 'text' table storage engine.

Returns
string|bool The revision's text, or false on failure

Definition at line 1629 of file Revision.php.

References $cache, fetchText(), ObjectCache\getMainWANInstance(), and TEXT_CACHE_GROUP.

Referenced by getSerializedData().

◆ newFromArchiveRow()

◆ newFromConds()

static Revision::newFromConds (   $conditions,
  $flags = 0 
)
staticprivate

Given a set of conditions, fetch a revision.

This method is used then a revision ID is qualified and will incorporate some basic replica DB/master fallback logic

Parameters
array$conditions
int$flags(optional)
Returns
Revision|null

Definition at line 329 of file Revision.php.

References $flags, $rev, DB_MASTER, DB_REPLICA, loadFromConds(), wfGetDB(), and wfGetLB().

Referenced by newFromId(), newFromPageId(), and newFromTitle().

◆ newFromId()

static Revision::newFromId (   $id,
  $flags = 0 
)
static

Load a page revision from a given revision ID number.

Returns null if no such revision can be found.

$flags include: Revision::READ_LATEST : Select the data from the master Revision::READ_LOCKING : Select & lock the data from the master

Parameters
int$id
int$flags(optional)
Returns
Revision|null

Definition at line 116 of file Revision.php.

References $flags, and newFromConds().

Referenced by SpecialComparePages\checkExistingRevision(), Orphans\checkSeparation(), User\clearNotification(), WikiPage\commitRollback(), EditPage\edit(), ApiComparePages\execute(), ApiExpandTemplates\execute(), ApiPatrol\execute(), CheckBadRedirects\execute(), ApiEditPage\execute(), ApiParse\execute(), ImportTextFiles\execute(), BenchmarkParse\execute(), SpecialNewpages\feedItemDesc(), Article\fetchContentObject(), FeedUtils\formatDiffRow(), EditPage\getBaseRevision(), EditPage\getContentObject(), ApiComparePages\getDiffContent(), Article\getOldIDFromRequest(), PageArchive\getPreviousRevision(), CategoryMembershipChange\getPreviousRevisionTimestamp(), ApiComparePages\guessTitleAndModel(), DifferenceEngine\loadRevisionData(), CategoryMembershipChangeJob\notifyUpdatesForRevision(), ApiQueryRevisionsBase\parseParameters(), MediaWiki\parseTitle(), WikiPage\prepareContentForEdit(), ApiTag\processIndividual(), WikiPage\replaceSectionAtRev(), RefreshLinksJob\runForTitle(), Article\setOldSubtitle(), SpecialComparePages\showDiff(), RevDelRevisionList\suggestTarget(), CategoryMembershipChangeTest\testChangeAddedWithRev(), CategoryMembershipChangeTest\testChangeRemovedWithRev(), RevisionStorageTest\testGetContent(), RevisionStorageTest\testGetContentFormat(), RevisionStorageTest\testGetContentModel(), RevisionStorageTest\testGetPage(), ApiRevisionDeleteTest\testHidingRevisions(), RevisionStorageTest\testIsCurrent(), RevisionStorageTest\testNewFromId(), and ChangeTags\updateTagsWithChecks().

◆ newFromPageId()

static Revision::newFromPageId (   $pageId,
  $revId = 0,
  $flags = 0 
)
static

Load either the current, or a specified, revision that's attached to a given page ID.

Returns null if no such revision can be found.

$flags include: Revision::READ_LATEST : Select the data from the master (since 1.20) Revision::READ_LOCKING : Select & lock the data from the master

Parameters
int$pageId
int$revId(optional)
int$flagsBitfield (optional)
Returns
Revision|null

Definition at line 165 of file Revision.php.

References $flags, DB_MASTER, DB_REPLICA, loadFromConds(), newFromConds(), and wfGetDB().

Referenced by NamespaceConflictChecker\canMerge(), ApiStashEdit\execute(), and WikiPage\loadLastEdit().

◆ newFromRow()

static Revision::newFromRow (   $row)
static

◆ newFromTitle()

static Revision::newFromTitle ( LinkTarget  $linkTarget,
  $id = 0,
  $flags = 0 
)
static

Load either the current, or a specified, revision that's attached to a given link target.

If not attached to that link target, will return null.

$flags include: Revision::READ_LATEST : Select the data from the master Revision::READ_LOCKING : Select & lock the data from the master

Parameters
LinkTarget$linkTarget
int$id(optional)
int$flagsBitfield (optional)
Returns
Revision|null

Definition at line 134 of file Revision.php.

References $flags, DB_MASTER, DB_REPLICA, MediaWiki\Linker\LinkTarget\getDBkey(), MediaWiki\Linker\LinkTarget\getNamespace(), loadFromConds(), newFromConds(), and wfGetDB().

Referenced by NamespaceConflictChecker\canMerge(), cleanupArticle(), CleanupSpam\cleanupArticle(), Title\countRevisionsBetween(), PoolWorkArticleView\doWork(), ApiEditPage\execute(), GetTextMaint\execute(), BenchmarkParse\execute(), MediaWikiGadgetsDefinitionRepo\fetchStructuredList(), Title\getAuthorsBetween(), ContentHandler\getAutoDeleteReason(), LocalFile\getDescriptionText(), GadgetDefinitionNamespaceRepo\getGadget(), Skin\getNewtalks(), getNext(), getPrevious(), RawAction\getRawText(), FixDefaultJsonContentPages\handleRow(), SearchResult\initFromTitle(), InfoAction\invalidateCache(), MovePage\isValidMoveTarget(), Title\isValidMoveTarget(), DifferenceEngine\loadRevisionData(), SimpleCaptcha\loadText(), DoubleRedirectJob\run(), RefreshLinksJob\runForTitle(), SpecialCiteThisPage\showCitations(), SpecialBookSources\showList(), ApiQueryWatchlistIntegrationTest\testCategorizeTypeParameter(), and SpecialChangeContentModel\validateTitle().

◆ newKnownCurrent()

static Revision::newKnownCurrent ( IDatabase  $db,
  $pageId,
  $revId 
)
static

Load a revision based on a known page ID and current revision ID from the DB.

This method allows for the use of caching, though accessing anything that normally requires permission checks (aside from the text) will trigger a small DB lookup. The title will also be lazy loaded, though setTitle() can be used to preload it.

Parameters
IDatabase$db
int$pageIdPage ID
int$revIdKnown current revision of this page
Returns
Revision|bool Returns false if missing
Since
1.28

Definition at line 1940 of file Revision.php.

References $cache, $rev, array(), Wikimedia\Rdbms\IDatabase\getDomainID(), loadFromPageId(), and use.

Referenced by ResourceLoaderWikiModule\getContentObj(), MessageCache\getMsgFromNamespace(), and WikiPage\loadLastEdit().

◆ newNullRevision()

static Revision::newNullRevision (   $dbw,
  $pageId,
  $summary,
  $minor,
  $user = null 
)
static

Create a new null-revision for insertion into a page's history.

This will not re-save the text, but simply refer to the text from the previous version.

Such revisions can for instance identify page rename operations and other such meta-modifications.

Parameters
IDatabase$dbw
int$pageIdID number of the page to read from
string$summaryRevision's summary
bool$minorWhether the revision should be considered as minor
User | null$userUser object to use or null for $wgUser
Returns
Revision|null Revision or null on error

Definition at line 1715 of file Revision.php.

References $user, $wgContentHandlerUseDB, $wgUser, global, and Title\makeTitle().

Referenced by WikiPage\insertProtectNullRevision(), MovePage\moveToInternal(), LocalFile\recordUpload2(), ImportReporter\reportPage(), and RevisionStorageTest\testNewNullRevision().

◆ pageJoinCond()

static Revision::pageJoinCond ( )
static

Return the value of a select() page conds array for the page table.

This will assure that the revision(s) are not orphaned from live pages.

Since
1.19
Returns
array

Definition at line 441 of file Revision.php.

Referenced by ChangeTagsRevisionList\doQuery(), RevDelRevisionList\doQuery(), RevisionList\doQuery(), MergeHistoryPager\getQueryInfo(), and ContribsPager\getQueryInfo().

◆ selectArchiveFields()

static Revision::selectArchiveFields ( )
static

Return the list of revision fields that should be selected to create a new revision from an archive row.

Todo:
Deprecate this in favor of a method that returns tables and joins as well, and use CommentStore::getJoin().
Returns
array

Definition at line 486 of file Revision.php.

References $wgContentHandlerUseDB, global, and CommentStore\newKey().

Referenced by DifferenceEngine\deletedLink(), PopulateRevisionLength\doDBUpdates(), RevDelArchiveList\doQuery(), RevDelRevisionList\doQuery(), ApiComparePages\getDiffContent(), ApiComparePages\guessTitleAndModel(), ApiQueryDeletedRevisions\run(), ApiQueryAllDeletedRevisions\run(), and RevisionStorageTest\testNewFromArchiveRow().

◆ selectFields()

◆ selectPageFields()

static Revision::selectPageFields ( )
static

Return the list of page fields that should be selected from page table.

Returns
array

Definition at line 529 of file Revision.php.

Referenced by BaseBlacklist\getArticleText(), RebuildTextIndex\populateSearchIndex(), ApiQueryAllRevisions\run(), and ApiQueryRevisions\run().

◆ selectTextFields()

static Revision::selectTextFields ( )
static

Return the list of text fields that should be selected to read the revision text.

Returns
array

Definition at line 518 of file Revision.php.

Referenced by BaseBlacklist\getArticleText(), RebuildTextIndex\populateSearchIndex(), ApiQueryAllRevisions\run(), and ApiQueryRevisions\run().

◆ selectUserFields()

static Revision::selectUserFields ( )
static

Return the list of user fields that should be selected from user table.

Returns
array

Definition at line 544 of file Revision.php.

Referenced by ChangeTagsRevisionList\doQuery(), RevDelRevisionList\doQuery(), RevisionList\doQuery(), MergeHistoryPager\getQueryInfo(), ContribsPager\getQueryInfo(), HistoryPager\getQueryInfo(), and ApiQueryRevisions\run().

◆ setId()

Revision::setId (   $id)

Set the revision ID.

This should only be used for proposed revisions that turn out to be null edits

Since
1.19
Parameters
int$id

Definition at line 755 of file Revision.php.

◆ setTitle()

Revision::setTitle (   $title)

Set the title of the revision.

Parameters
Title$title

Definition at line 851 of file Revision.php.

References $title.

◆ setUserIdAndName()

Revision::setUserIdAndName (   $id,
  $name 
)

Set the user ID/name.

This should only be used for proposed revisions that turn out to be null edits

Since
1.28
Parameters
int$idUser ID
string$nameUser name

Definition at line 768 of file Revision.php.

References $name.

◆ userCan()

Revision::userCan (   $field,
User  $user = null 
)

Determine if the current user is allowed to view a particular field of this revision, if it's marked as deleted.

Parameters
int$fieldOne of self::DELETED_TEXT, self::DELETED_COMMENT, self::DELETED_USER
User | null$userUser object to check, or null to use $wgUser
Returns
bool

Definition at line 1780 of file Revision.php.

References $user, getVisibility(), and userCanBitfield().

Referenced by ApiQueryRevisionsBase\extractRevisionInfo(), getComment(), getContent(), getUser(), and getUserText().

◆ userCanBitfield()

static Revision::userCanBitfield (   $bitfield,
  $field,
User  $user = null,
Title  $title = null 
)
static

Determine if the current user is allowed to view a particular field of this revision, if it's marked as deleted.

This is used by various classes to avoid duplication.

Parameters
int$bitfieldCurrent field
int$fieldOne of self::DELETED_TEXT = File::DELETED_FILE, self::DELETED_COMMENT = File::DELETED_COMMENT, self::DELETED_USER = File::DELETED_USER
User | null$userUser object to check, or null to use $wgUser
Title | null$titleA Title object to check for per-page restrictions on, instead of just plain userrights
Returns
bool

Definition at line 1798 of file Revision.php.

References $title, $user, $wgUser, as, global, and wfDebug().

Referenced by ApiQueryDeletedrevs\execute(), ApiQueryFilearchive\execute(), ApiQueryWatchlist\extractOutputData(), ApiQueryContributions\extractRowInfo(), ApiQueryRecentChanges\extractRowInfo(), OldLocalFile\userCan(), ArchivedFile\userCan(), ChangesList\userCan(), and userCan().

◆ userJoinCond()

static Revision::userJoinCond ( )
static

Return the value of a select() JOIN conds array for the user table.

This will get user table rows for logged-in users.

Since
1.19
Returns
array

Definition at line 431 of file Revision.php.

Referenced by ChangeTagsRevisionList\doQuery(), RevDelRevisionList\doQuery(), RevisionList\doQuery(), MergeHistoryPager\getQueryInfo(), ContribsPager\getQueryInfo(), HistoryPager\getQueryInfo(), and ApiQueryRevisions\run().

◆ userWasLastToEdit()

static Revision::userWasLastToEdit (   $db,
  $pageId,
  $userId,
  $since 
)
static

Check if no edits were made by other users since the time a user started editing the page.

Limit to 50 revisions for the sake of performance.

Since
1.20
Deprecated:
since 1.24
Parameters
IDatabase | int$dbThe Database to perform the check on. May be given as a Database object or a database identifier usable with wfGetDB.
int$pageIdThe ID of the page in question
int$userIdThe ID of the user in question
string$sinceLook at edits since this time
Returns
bool True if the given user was the only one to edit since the given timestamp

Definition at line 1902 of file Revision.php.

References $res, as, and wfGetDB().

Referenced by EditPage\internalAttemptSave(), and RevisionStorageTest\testUserWasLastToEdit().

Member Data Documentation

◆ $mComment

string Revision::$mComment
protected

Definition at line 57 of file Revision.php.

Referenced by getComment().

◆ $mContent

Content null bool Revision::$mContent
protected

Definition at line 78 of file Revision.php.

◆ $mContentFormat

string Revision::$mContentFormat
protected

Definition at line 75 of file Revision.php.

Referenced by getContentFormat().

◆ $mContentHandler

null ContentHandler Revision::$mContentHandler
protected

Definition at line 80 of file Revision.php.

Referenced by getContentHandler().

◆ $mContentModel

string Revision::$mContentModel
protected

Definition at line 73 of file Revision.php.

Referenced by getContentModel().

◆ $mCurrent

bool Revision::$mCurrent
protected

Definition at line 71 of file Revision.php.

Referenced by isCurrent().

◆ $mDeleted

int Revision::$mDeleted
protected

Definition at line 49 of file Revision.php.

Referenced by getVisibility(), and insertOn().

◆ $mId

int null Revision::$mId
protected

Definition at line 35 of file Revision.php.

Referenced by checkContentModel(), getId(), and insertOn().

◆ $mMinorEdit

bool Revision::$mMinorEdit
protected

Definition at line 45 of file Revision.php.

Referenced by isMinor().

◆ $mOrigUserText

string Revision::$mOrigUserText
protected

Definition at line 41 of file Revision.php.

Referenced by getUserText().

◆ $mPage

int null Revision::$mPage
protected

Definition at line 37 of file Revision.php.

Referenced by __construct(), getPage(), and insertOn().

◆ $mParentId

int Revision::$mParentId
protected

Definition at line 55 of file Revision.php.

Referenced by getParentId(), and insertOn().

◆ $mQueryFlags

int Revision::$mQueryFlags = 0
protected

Definition at line 83 of file Revision.php.

Referenced by fetchText().

◆ $mRefreshMutableFields

bool Revision::$mRefreshMutableFields = false
protected

Used for cached values to reload user text and rev_deleted.

Definition at line 85 of file Revision.php.

◆ $mSha1

string Revision::$mSha1
protected

Definition at line 53 of file Revision.php.

Referenced by getSha1(), and insertOn().

◆ $mSize

int Revision::$mSize
protected

Definition at line 51 of file Revision.php.

Referenced by getSize(), and insertOn().

◆ $mText

string Revision::$mText
protected

Definition at line 59 of file Revision.php.

Referenced by getSerializedData(), and insertOn().

◆ $mTextId

int Revision::$mTextId
protected

Definition at line 61 of file Revision.php.

Referenced by getTextId(), and insertOn().

◆ $mTextRow

stdClass null Revision::$mTextRow
protected

Definition at line 66 of file Revision.php.

Referenced by fetchText().

◆ $mTimestamp

string Revision::$mTimestamp
protected

Definition at line 47 of file Revision.php.

◆ $mTitle

null Title Revision::$mTitle
protected

Definition at line 69 of file Revision.php.

Referenced by getTitle().

◆ $mUnpatrolled

int Revision::$mUnpatrolled
protected

Definition at line 63 of file Revision.php.

Referenced by isUnpatrolled().

◆ $mUser

int Revision::$mUser
protected

Definition at line 43 of file Revision.php.

Referenced by getUser(), and insertOn().

◆ $mUserText

string Revision::$mUserText
protected

Definition at line 39 of file Revision.php.

Referenced by getUserText(), and insertOn().

◆ $mWiki

string Revision::$mWiki = false
protected

Wiki ID; false means the current wiki.

Definition at line 87 of file Revision.php.

◆ DELETED_COMMENT

◆ DELETED_RESTRICTED

◆ DELETED_TEXT

const Revision::DELETED_TEXT = 1

Definition at line 90 of file Revision.php.

Referenced by ApiParseTest\addDBDataOnce(), ApiComparePagesTest\addDBDataOnce(), RevDelRevisionItem\canViewContent(), RevisionItem\canViewContent(), CleanupSpam\cleanupArticle(), WikiPage\commitRollback(), HistoryPager\curLink(), HistoryPager\diffButtons(), ApiEditPage\execute(), ApiQueryDeletedrevs\execute(), ApiParse\execute(), ApiQueryRevisionsBase\extractRevisionInfo(), ApiQueryContributions\extractRowInfo(), ApiQueryRecentChanges\extractRowInfo(), DeletedContribsPager\formatRevisionRow(), SpecialMergeHistory\formatRevisionRow(), SpecialUndelete\formatRevisionRow(), ContribsPager\formatRow(), RevDelRevisionItem\getApiData(), ChangesList\getArticleLink(), RevisionDeleter\getChanges(), EditPage\getContentObject(), DifferenceEngine\getDiffBody(), EnhancedChangesList\getLineData(), EnhancedChangesList\getLogText(), SpecialUndelete\getPageLink(), DeleteLogFormatter\getParametersForApi(), ApiParse\getParsedContent(), RevDelRevisionList\getRevdelConstant(), DifferenceEngine\getRevisionHeader(), Linker\getRollbackEditCount(), HistoryPager\historyLine(), ChangesList\insertDiffHist(), RevDelRevisionItem\isDeleted(), RevisionItem\isDeleted(), RevDelRevisionItem\isHideCurrentOp(), HistoryPager\lastLink(), ApiQueryRevisionsBase\parseParameters(), HistoryPager\revLink(), ApiComparePages\setVals(), Article\showDeletedRevisionHeader(), RCCacheEntryFactory\showDiffLinks(), DifferenceEngine\showDiffPage(), EditPage\showHeader(), SpecialUndelete\showRevision(), PageArchive\undeleteRevisions(), and XmlDumpWriter\writeRevision().

◆ DELETED_USER

◆ FOR_PUBLIC

const Revision::FOR_PUBLIC = 1

◆ FOR_THIS_USER

◆ RAW

◆ SUPPRESSED_ALL

const Revision::SUPPRESSED_ALL = 15

Definition at line 95 of file Revision.php.

Referenced by LocalFileDeleteBatch\doDBInserts(), and WikiPage\doDeleteArticleReal().

◆ SUPPRESSED_USER

const Revision::SUPPRESSED_USER = 12

◆ TEXT_CACHE_GROUP

const Revision::TEXT_CACHE_GROUP = 'revisiontext:10'

Definition at line 102 of file Revision.php.

Referenced by getRevisionText(), and loadText().


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