MediaWiki REL1_39
|
Page revision base class. More...
Public Member Functions | |
__construct (PageIdentity $page, RevisionSlots $slots, $wikiId=self::LOCAL) | |
audienceCan ( $field, $audience, Authority $performer=null) | |
Check that the given audience has access to the given field. | |
getComment ( $audience=self::FOR_PUBLIC, Authority $performer=null) | |
Fetch revision comment, if it's available to the specified audience. | |
getContent ( $role, $audience=self::FOR_PUBLIC, Authority $performer=null) | |
Returns the Content of the given slot of this revision. | |
getId ( $wikiId=self::LOCAL) | |
Get revision ID. | |
getInheritedSlots () | |
Returns slots inherited from some previous revision. | |
getOriginalSlots () | |
Returns the slots that originate in this revision. | |
getPage () | |
Returns the page this revision belongs to. | |
getPageAsLinkTarget () | |
Returns the title of the page this revision is associated with as a LinkTarget object. | |
getPageId ( $wikiId=self::LOCAL) | |
Get the page ID. | |
getParentId ( $wikiId=self::LOCAL) | |
Get parent revision ID (the original previous page revision). | |
getPrimarySlots () | |
Returns primary slots (those that are not derived). | |
getSha1 () | |
Returns the base36 sha1 of this revision. | |
getSize () | |
Returns the nominal size of this revision, in bogo-bytes. | |
getSlot ( $role, $audience=self::FOR_PUBLIC, Authority $performer=null) | |
Returns meta-data for the given slot. | |
getSlotRoles () | |
Returns the slot names (roles) of all slots present in this revision. | |
getSlots () | |
Returns the slots defined for this revision. | |
getTimestamp () | |
MCR migration note: this replaced Revision::getTimestamp. | |
getUser ( $audience=self::FOR_PUBLIC, Authority $performer=null) | |
Fetch revision's author's user identity, if it's available to the specified audience. | |
getVisibility () | |
Get the deletion bitfield of the revision. | |
getWikiId () | |
Get the ID of the wiki this revision belongs to. | |
hasSameContent (RevisionRecord $rec) | |
hasSlot ( $role) | |
Returns whether the given slot is defined in this revision. | |
isCurrent () | |
Checks whether the revision record is a stored current revision. | |
isDeleted ( $field) | |
MCR migration note: this replaced Revision::isDeleted. | |
isMinor () | |
MCR migration note: this replaced Revision::isMinor. | |
isReadyForInsertion () | |
Returns whether this RevisionRecord is ready for insertion, that is, whether it contains all information needed to save it to the database. | |
userCan ( $field, Authority $performer) | |
Determine if the give authority is allowed to view a particular field of this revision, if it's marked as deleted. | |
Public Member Functions inherited from MediaWiki\DAO\WikiAwareEntity | |
assertWiki ( $wikiId) | |
Throws if $wikiId is different from the return value of getWikiId(). | |
Static Public Member Functions | |
static | userCanBitfield ( $bitfield, $field, Authority $performer, PageIdentity $page=null) |
Determine if the current user is allowed to view a particular field of this revision, if it's marked as deleted. | |
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 |
const | SUPPRESSED_USER = self::DELETED_USER | self::DELETED_RESTRICTED |
Protected Attributes | |
CommentStoreComment null | $mComment |
int | $mDeleted = 0 |
using the DELETED_XXX and SUPPRESSED_XXX flags | |
int null | $mId |
bool | $mMinorEdit = false |
PageIdentity | $mPage |
int | $mPageId |
int null | $mParentId |
string null | $mSha1 |
int null | $mSize |
RevisionSlots | $mSlots |
string null | $mTimestamp |
UserIdentity null | $mUser |
string false | $wikiId = false |
Wiki ID; false means the current wiki. | |
Page revision base class.
RevisionRecords are considered value objects, but they may use callbacks for lazy loading. Note that while the base class has no setters, subclasses may offer a mutable interface.
Definition at line 47 of file RevisionRecord.php.
MediaWiki\Revision\RevisionRecord::__construct | ( | PageIdentity | $page, |
RevisionSlots | $slots, | ||
$wikiId = self::LOCAL ) |
PageIdentity | $page | The page this RevisionRecord is associated with. |
RevisionSlots | $slots | The slots of this revision. |
false | string | $wikiId | Relevant wiki id or self::LOCAL for the current one. |
Definition at line 103 of file RevisionRecord.php.
References MediaWiki\Revision\RevisionRecord\$wikiId.
MediaWiki\Revision\RevisionRecord::audienceCan | ( | $field, | |
$audience, | |||
Authority | $performer = null ) |
Check that the given audience has access to the given field.
MCR migration note: this corresponded to Revision::userCan
int | $field | One of self::DELETED_TEXT, self::DELETED_COMMENT, self::DELETED_USER |
int | $audience | One of: RevisionRecord::FOR_PUBLIC to be displayed to all users RevisionRecord::FOR_THIS_USER to be displayed to the given user RevisionRecord::RAW get the text regardless of permissions |
Authority | null | $performer | user on who's behalf to check |
Definition at line 480 of file RevisionRecord.php.
Referenced by MediaWiki\Revision\RevisionRenderer\getRenderedRevision().
MediaWiki\Revision\RevisionRecord::getComment | ( | $audience = self::FOR_PUBLIC, | |
Authority | $performer = null ) |
Fetch revision comment, if it's available to the specified audience.
If the specified audience does not have access to the comment, this will return null. Depending on the concrete subclass, null may also be returned if the comment is not yet specified.
MCR migration note: this replaced Revision::getComment
int | $audience | One of: RevisionRecord::FOR_PUBLIC to be displayed to all users RevisionRecord::FOR_THIS_USER to be displayed to the given user RevisionRecord::RAW get the text regardless of permissions |
Authority | null | $performer | user on who's behalf to check |
Reimplemented in MediaWiki\Revision\RevisionArchiveRecord, and MediaWiki\Revision\RevisionStoreRecord.
Definition at line 414 of file RevisionRecord.php.
Referenced by ApiQueryRevisionsBase\extractRevisionInfo(), ApiFeedContributions\feedItemDesc(), and MediaWiki\Revision\RevisionStore\insertRevisionOn().
MediaWiki\Revision\RevisionRecord::getContent | ( | $role, | |
$audience = self::FOR_PUBLIC, | |||
Authority | $performer = null ) |
Returns the Content of the given slot of this revision.
Call getSlotNames() to get a list of available slots.
Note that for mutable Content objects, each call to this method will return a fresh clone.
MCR migration note: this replaced Revision::getContent
string | $role | The role name of the desired slot |
int | $audience | |
Authority | null | $performer | user on whose behalf to check |
Definition at line 156 of file RevisionRecord.php.
Referenced by ApiFeedContributions\feedItemDesc(), WikiPage\replaceSectionAtRev(), DifferenceEngine\setRevisions(), and WikiPage\updateRevisionOn().
MediaWiki\Revision\RevisionRecord::getId | ( | $wikiId = self::LOCAL | ) |
Get revision ID.
Depending on the concrete subclass, this may return null if the revision ID is not known (e.g. because the revision does not yet exist in the database).
MCR migration note: this replaced Revision::getId
string | false | $wikiId | The wiki ID expected by the caller. |
Reimplemented in MediaWiki\Revision\RevisionArchiveRecord, and MediaWiki\Revision\RevisionStoreRecord.
Definition at line 279 of file RevisionRecord.php.
Referenced by ApiQueryRevisionsBase\extractRevisionInfo(), DifferenceEngine\getParserOutput(), MediaWiki\Revision\RevisionStore\getRecentChange(), MediaWiki\Revision\RevisionRenderer\getRenderedRevision(), Linker\getRevDeleteLink(), DifferenceEngine\getRevisionHeader(), MediaWiki\Revision\RevisionStore\insertRevisionOn(), MediaWiki\Storage\DerivedPageDataUpdater\isReusableFor(), DifferenceEngine\loadRevisionData(), MediaWiki\Revision\MutableRevisionRecord\newFromParentRevision(), WikiPage\onArticleEdit(), McrUndoAction\onSubmit(), MediaWiki\Storage\DerivedPageDataUpdater\prepareUpdate(), ChangesList\revDateLink(), MediaWiki\Parser\RevisionOutputCache\save(), DifferenceEngine\setRevisions(), MediaWiki\Revision\RenderedRevision\updateRevision(), and WikiPage\updateRevisionOn().
MediaWiki\Revision\RevisionRecord::getInheritedSlots | ( | ) |
Returns slots inherited from some previous revision.
"Inherited" slots are all slots that do not originate in this revision. Note that these slots may still differ from the one in the parent revision. This is the case for rollbacks: slots of a rollback revision are inherited from the rollback target, and are different from the slots in the parent revision, which was rolled back.
Definition at line 255 of file RevisionRecord.php.
MediaWiki\Revision\RevisionRecord::getOriginalSlots | ( | ) |
Returns the slots that originate in this revision.
Note that this does not include any slots inherited from some earlier revision, even if they are different from the slots in the immediate parent revision. This is the case for rollbacks: slots of a rollback revision are inherited from the rollback target, and are different from the slots in the parent revision, which was rolled back.
To find all slots modified by this revision against its immediate parent revision, use RevisionSlotsUpdate::newFromRevisionSlots().
Definition at line 240 of file RevisionRecord.php.
MediaWiki\Revision\RevisionRecord::getPage | ( | ) |
Returns the page this revision belongs to.
MCR migration note: this replaced Revision::getTitle
Definition at line 371 of file RevisionRecord.php.
Referenced by DifferenceEngine\getRevisionHeader(), MediaWiki\Revision\RevisionStore\insertRevisionOn(), and MediaWiki\Revision\MutableRevisionRecord\newFromParentRevision().
MediaWiki\Revision\RevisionRecord::getPageAsLinkTarget | ( | ) |
Returns the title of the page this revision is associated with as a LinkTarget object.
InvalidArgumentException | if this revision does not belong to a local wiki |
Definition at line 355 of file RevisionRecord.php.
Referenced by Linker\buildRollbackLink(), ApiQueryRevisionsBase\extractRevisionInfo(), DifferenceEngine\getRevisionHeader(), ChangesList\revDateLink(), and DifferenceEngine\setRevisions().
MediaWiki\Revision\RevisionRecord::getPageId | ( | $wikiId = self::LOCAL | ) |
Get the page ID.
If the page does not yet exist, the page ID is 0.
MCR migration note: this replaced Revision::getPage
string | false | $wikiId | The wiki ID expected by the caller. |
Definition at line 335 of file RevisionRecord.php.
Referenced by PoolWorkArticleViewCurrent\__construct(), Linker\getRollbackEditCount(), MediaWiki\Revision\RevisionStore\insertRevisionOn(), and MediaWiki\Revision\MutableRevisionRecord\newFromParentRevision().
MediaWiki\Revision\RevisionRecord::getParentId | ( | $wikiId = self::LOCAL | ) |
Get parent revision ID (the original previous page revision).
If there is no parent revision, this returns 0. If the parent revision is undefined or unknown, this returns null.
MCR migration note: this replaced Revision::getParentId
string | false | $wikiId | The wiki ID expected by the caller. |
Definition at line 297 of file RevisionRecord.php.
Referenced by ApiQueryRevisionsBase\extractRevisionInfo(), MediaWiki\Revision\RevisionStore\insertRevisionOn(), MediaWiki\Storage\DerivedPageDataUpdater\isReusableFor(), CategoryMembershipChangeJob\notifyUpdatesForRevision(), and MediaWiki\Storage\DerivedPageDataUpdater\prepareUpdate().
MediaWiki\Revision\RevisionRecord::getPrimarySlots | ( | ) |
Returns primary slots (those that are not derived).
Definition at line 265 of file RevisionRecord.php.
|
abstract |
Returns the base36 sha1 of this revision.
This hash is derived from the hashes of all slots associated with the revision. May be calculated on the fly if not known, which may in the worst case may involve loading all content.
MCR migration note: this replaced Revision::getSha1
RevisionAccessException | if the hash was unknown and could not be calculated. |
Reimplemented in MediaWiki\Revision\MutableRevisionRecord, MediaWiki\Revision\RevisionArchiveRecord, and MediaWiki\Revision\RevisionStoreRecord.
Referenced by ApiQueryRevisionsBase\extractRevisionInfo(), and MediaWiki\Revision\RevisionStore\insertRevisionOn().
|
abstract |
Returns the nominal size of this revision, in bogo-bytes.
May be calculated on the fly if not known, which may in the worst case may involve loading all content.
MCR migration note: this replaced Revision::getSize
RevisionAccessException | if the size was unknown and could not be calculated. |
Reimplemented in MediaWiki\Revision\MutableRevisionRecord, MediaWiki\Revision\RevisionArchiveRecord, and MediaWiki\Revision\RevisionStoreRecord.
Referenced by ApiQueryRevisionsBase\extractRevisionInfo(), and MediaWiki\Revision\RevisionStore\insertRevisionOn().
MediaWiki\Revision\RevisionRecord::getSlot | ( | $role, | |
$audience = self::FOR_PUBLIC, | |||
Authority | $performer = null ) |
Returns meta-data for the given slot.
string | $role | The role name of the desired slot |
int | $audience | |
Authority | null | $performer | user on who's behalf to check |
RevisionAccessException | if the slot does not exist or slot data could not be lazy-loaded. |
Definition at line 180 of file RevisionRecord.php.
Referenced by MediaWiki\Revision\RevisionStore\insertRevisionOn(), MediaWiki\ResourceLoader\WikiModule\invalidateModuleCache(), MediaWiki\Revision\MutableRevisionRecord\newFromParentRevision(), Article\showDiffPage(), and WikiPage\updateRevisionOn().
MediaWiki\Revision\RevisionRecord::getSlotRoles | ( | ) |
Returns the slot names (roles) of all slots present in this revision.
getContent() will succeed only for the names returned by this method.
Definition at line 207 of file RevisionRecord.php.
Referenced by ApiQueryRevisionsBase\extractRevisionInfo(), MediaWiki\Revision\RevisionStore\insertRevisionOn(), MediaWiki\Revision\MutableRevisionRecord\newFromParentRevision(), and McrUndoAction\onSubmit().
MediaWiki\Revision\RevisionRecord::getSlots | ( | ) |
Returns the slots defined for this revision.
Reimplemented in MediaWiki\Revision\MutableRevisionRecord.
Definition at line 222 of file RevisionRecord.php.
Referenced by WikiPage\hasDifferencesOutsideMainSlot(), MediaWiki\Storage\DerivedPageDataUpdater\isReusableFor(), MediaWiki\Storage\DerivedPageDataUpdater\prepareUpdate(), and MediaWiki\Revision\RenderedRevision\updateRevision().
MediaWiki\Revision\RevisionRecord::getTimestamp | ( | ) |
MCR migration note: this replaced Revision::getTimestamp.
May return null if the timestamp was not specified.
Reimplemented in MediaWiki\Revision\RevisionArchiveRecord, and MediaWiki\Revision\RevisionStoreRecord.
Definition at line 460 of file RevisionRecord.php.
Referenced by CategoryMembershipChange\__construct(), ApiQueryRevisionsBase\extractRevisionInfo(), MediaWiki\Revision\RevisionRenderer\getRenderedRevision(), Linker\getRevDeleteLink(), DifferenceEngine\getRevisionHeader(), MediaWiki\Revision\RevisionStore\insertRevisionOn(), ChangesList\revDateLink(), MediaWiki\Parser\RevisionOutputCache\save(), and WikiPage\updateRevisionOn().
MediaWiki\Revision\RevisionRecord::getUser | ( | $audience = self::FOR_PUBLIC, | |
Authority | $performer = null ) |
Fetch revision's author's user identity, if it's available to the specified audience.
If the specified audience does not have access to it, null will be returned. Depending on the concrete subclass, null may also be returned if the user is not yet specified.
MCR migration note: this replaced Revision::getUser
int | $audience | One of: RevisionRecord::FOR_PUBLIC to be displayed to all users RevisionRecord::FOR_THIS_USER to be displayed to the given user RevisionRecord::RAW get the ID regardless of permissions |
Authority | null | $performer | user on who's behalf to check |
Reimplemented in MediaWiki\Revision\RevisionArchiveRecord, MediaWiki\Revision\RevisionStoreCacheRecord, and MediaWiki\Revision\RevisionStoreRecord.
Definition at line 390 of file RevisionRecord.php.
Referenced by Linker\buildRollbackLink(), ApiQueryRevisionsBase\extractRevisionInfo(), ApiFeedContributions\feedItemAuthor(), WikiPage\getCreator(), Linker\getRollbackEditCount(), MediaWiki\Revision\RevisionStore\insertRevisionOn(), MediaWiki\Storage\DerivedPageDataUpdater\prepareUpdate(), Linker\revUserLink(), and Linker\revUserTools().
MediaWiki\Revision\RevisionRecord::getVisibility | ( | ) |
Get the deletion bitfield of the revision.
MCR migration note: this replaced Revision::getVisibility
Reimplemented in MediaWiki\Revision\RevisionStoreCacheRecord.
Definition at line 449 of file RevisionRecord.php.
Referenced by Linker\getRevDeleteLink().
MediaWiki\Revision\RevisionRecord::getWikiId | ( | ) |
Get the ID of the wiki this revision belongs to.
Implements MediaWiki\DAO\WikiAwareEntity.
Definition at line 345 of file RevisionRecord.php.
Referenced by MediaWiki\Revision\RevisionRenderer\getRenderedRevision(), and MediaWiki\Revision\MutableRevisionRecord\newFromParentRevision().
MediaWiki\Revision\RevisionRecord::hasSameContent | ( | RevisionRecord | $rec | ) |
RevisionRecord | $rec |
Definition at line 118 of file RevisionRecord.php.
MediaWiki\Revision\RevisionRecord::hasSlot | ( | $role | ) |
Returns whether the given slot is defined in this revision.
string | $role | The role name of the desired slot |
Definition at line 197 of file RevisionRecord.php.
MediaWiki\Revision\RevisionRecord::isCurrent | ( | ) |
Checks whether the revision record is a stored current revision.
Reimplemented in MediaWiki\Revision\RevisionStoreRecord.
Definition at line 588 of file RevisionRecord.php.
Referenced by DifferenceEngine\getRevisionHeader().
MediaWiki\Revision\RevisionRecord::isDeleted | ( | $field | ) |
MCR migration note: this replaced Revision::isDeleted.
int | $field | One of DELETED_* bitfield constants |
Reimplemented in MediaWiki\Revision\RevisionStoreRecord.
Definition at line 438 of file RevisionRecord.php.
Referenced by ApiQueryRevisionsBase\extractRevisionInfo(), Linker\getRevDeleteLink(), DifferenceEngine\getRevisionHeader(), CategoryMembershipChangeJob\notifyUpdatesForRevision(), ChangesList\revDateLink(), Linker\revUserLink(), and Linker\revUserTools().
MediaWiki\Revision\RevisionRecord::isMinor | ( | ) |
MCR migration note: this replaced Revision::isMinor.
Definition at line 427 of file RevisionRecord.php.
Referenced by ApiQueryRevisionsBase\extractRevisionInfo(), and SpecialUndelete\formatRevisionRow().
MediaWiki\Revision\RevisionRecord::isReadyForInsertion | ( | ) |
Returns whether this RevisionRecord is ready for insertion, that is, whether it contains all information needed to save it to the database.
This should trivially be true for RevisionRecords loaded from the database.
Note that this may return true even if getId() or getPage() return null or 0, since these are generally assigned while the revision is saved to the database, and may not be available before.
Reimplemented in MediaWiki\Revision\RevisionArchiveRecord, and MediaWiki\Revision\RevisionStoreRecord.
Definition at line 569 of file RevisionRecord.php.
References getTimestamp(), and getUser().
Referenced by MediaWiki\Revision\RevisionStore\insertRevisionOn().
MediaWiki\Revision\RevisionRecord::userCan | ( | $field, | |
Authority | $performer ) |
Determine if the give authority is allowed to view a particular field of this revision, if it's marked as deleted.
MCR migration note: this corresponded to Revision::userCan
int | $field | One of self::DELETED_TEXT, self::DELETED_COMMENT, self::DELETED_USER |
Authority | $performer | user on who's behalf to check |
Reimplemented in MediaWiki\Revision\RevisionStoreRecord.
Definition at line 510 of file RevisionRecord.php.
Referenced by SpecialUndelete\formatRevisionRow(), Linker\getRevDeleteLink(), ChangesList\revDateLink(), Linker\revUserLink(), and Linker\revUserTools().
|
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.
MCR migration note: this replaced Revision::userCanBitfield
int | $bitfield | Current field |
int | $field | One of self::DELETED_TEXT = File::DELETED_FILE, self::DELETED_COMMENT = File::DELETED_COMMENT, self::DELETED_USER = File::DELETED_USER |
Authority | $performer | user on who's behalf to check |
PageIdentity | null | $page | A PageIdentity object to check for per-page restrictions on, instead of just plain user rights |
Definition at line 530 of file RevisionRecord.php.
References MediaWiki\Permissions\Authority\authorizeRead(), MediaWiki\Permissions\Authority\isAllowedAny(), and wfDebug().
|
protected |
Definition at line 87 of file RevisionRecord.php.
|
protected |
using the DELETED_XXX and SUPPRESSED_XXX flags
Definition at line 79 of file RevisionRecord.php.
|
protected |
Definition at line 69 of file RevisionRecord.php.
|
protected |
Definition at line 75 of file RevisionRecord.php.
|
protected |
Definition at line 90 of file RevisionRecord.php.
|
protected |
Definition at line 71 of file RevisionRecord.php.
|
protected |
Definition at line 85 of file RevisionRecord.php.
|
protected |
Definition at line 83 of file RevisionRecord.php.
Referenced by MediaWiki\Revision\RevisionArchiveRecord\getSha1(), and MediaWiki\Revision\RevisionStoreRecord\getSha1().
|
protected |
Definition at line 81 of file RevisionRecord.php.
Referenced by MediaWiki\Revision\RevisionArchiveRecord\getSize(), and MediaWiki\Revision\RevisionStoreRecord\getSize().
|
protected |
Definition at line 93 of file RevisionRecord.php.
|
protected |
Definition at line 77 of file RevisionRecord.php.
|
protected |
Definition at line 73 of file RevisionRecord.php.
|
protected |
Wiki ID; false means the current wiki.
Definition at line 67 of file RevisionRecord.php.
Referenced by MediaWiki\Revision\RevisionRecord\__construct(), MediaWiki\Revision\RevisionStoreRecord\__construct(), MediaWiki\Revision\RevisionArchiveRecord\__construct(), MediaWiki\Revision\RevisionArchiveRecord\getId(), and MediaWiki\Revision\RevisionStoreRecord\getId().
const MediaWiki\Revision\RevisionRecord::DELETED_COMMENT = 2 |
Definition at line 54 of file RevisionRecord.php.
const MediaWiki\Revision\RevisionRecord::DELETED_RESTRICTED = 8 |
Definition at line 56 of file RevisionRecord.php.
const MediaWiki\Revision\RevisionRecord::DELETED_TEXT = 1 |
Definition at line 53 of file RevisionRecord.php.
Referenced by MediaWiki\Revision\RevisionRenderer\getRenderedRevision(), and MediaWiki\Revision\RenderedRevision\isContentDeleted().
const MediaWiki\Revision\RevisionRecord::DELETED_USER = 4 |
Definition at line 55 of file RevisionRecord.php.
const MediaWiki\Revision\RevisionRecord::FOR_PUBLIC = 1 |
Definition at line 62 of file RevisionRecord.php.
Referenced by MediaWiki\Revision\RevisionRenderer\getRenderedRevision().
const MediaWiki\Revision\RevisionRecord::FOR_THIS_USER = 2 |
Definition at line 63 of file RevisionRecord.php.
Referenced by MediaWiki\Revision\RenderedRevision\__construct(), and MediaWiki\Revision\RevisionRenderer\getRenderedRevision().
const MediaWiki\Revision\RevisionRecord::RAW = 3 |
Definition at line 64 of file RevisionRecord.php.
Referenced by MediaWiki\Revision\RevisionStore\insertRevisionOn().
const MediaWiki\Revision\RevisionRecord::SUPPRESSED_ALL |
Definition at line 58 of file RevisionRecord.php.
const MediaWiki\Revision\RevisionRecord::SUPPRESSED_USER = self::DELETED_USER | self::DELETED_RESTRICTED |
Definition at line 57 of file RevisionRecord.php.