Revision Class Reference

List of all members.

Public Member Functions

 Revision ($row)
 Constructor.
 getId ()
 Get revision ID.
 getTextId ()
 Get text row ID.
 getParentId ()
 Get parent revision ID (the original previous page revision).
 getSize ()
 Returns the length of the text in this revision, or null if unknown.
 getTitle ()
 Returns the title of the page associated with this entry.
 setTitle ($title)
 Set the title of the revision.
 getPage ()
 Get the page ID.
 getUser ($audience=self::FOR_PUBLIC)
 Fetch revision's user id if it's available to the specified audience.
 getRawUser ()
 Fetch revision's user id without regard for the current user's permissions.
 getUserText ($audience=self::FOR_PUBLIC)
 Fetch revision's username if it's available to the specified audience.
 getRawUserText ()
 Fetch revision's username without regard for view restrictions.
 getComment ($audience=self::FOR_PUBLIC)
 Fetch revision comment if it's available to the specified audience.
 getRawComment ()
 Fetch revision comment without regard for the current user's permissions.
 isMinor ()
 isUnpatrolled ()
 isDeleted ($field)
 int $field one of DELETED_* bitfield constants
 getVisibility ()
 Get the deletion bitfield of the revision.
 getText ($audience=self::FOR_PUBLIC)
 Fetch revision text if it's available to the specified audience.
 revText ()
 Alias for getText(Revision::FOR_THIS_USER).
 getRawText ()
 Fetch revision text without regard for view restrictions.
 getTimestamp ()
 isCurrent ()
 getPrevious ()
 Get previous revision for this title.
 getNext ()
 Get next revision for this title.
 insertOn ($dbw)
 Insert a new revision into the database, returning the new revision ID number on success and dies horribly on failure.
 userCan ($field)
 Determine if the current user is allowed to view a particular field of this revision, if it's marked as deleted.

Static Public Member Functions

static newFromId ($id)
 Load a page revision from a given revision ID number.
static newFromTitle ($title, $id=0)
 Load either the current, or a specified, revision that's attached to a given title.
static newFromArchiveRow ($row, $overrides=array())
 Make a fake revision object from an archive table row.
static loadFromId ($db, $id)
 Load a page revision from a given revision ID number.
static loadFromPageId ($db, $pageid, $id=0)
 Load either the current, or a specified, revision that's attached to a given page.
static loadFromTitle ($db, $title, $id=0)
 Load either the current, or a specified, revision that's attached to a given page.
static loadFromTimestamp ($db, $title, $timestamp)
 Load the revision for the given title with the given timestamp.
static newFromConds ($conditions)
 Given a set of conditions, fetch a revision.
static fetchRevision ($title)
 Return a wrapper for a series of database rows to fetch all of a given page's revisions in turn.
static selectFields ()
 Return the list of revision fields that should be selected to create a new revision.
static selectTextFields ()
 Return the list of text fields that should be selected to read the revision text.
static selectPageFields ()
 Return the list of page fields that should be selected from page table.
static getRevisionText ($row, $prefix= 'old_')
 Get revision text associated with an old or archive row $row is usually an object from wfFetchRow(), both the flags and the text field must be included.
static compressRevisionText (&$text)
 If $wgCompressRevisions is enabled, we will compress data.
static newNullRevision ($dbw, $pageId, $summary, $minor)
 Create a new null-revision for insertion into a page's history.
static userCanBitfield ($bitfield, $field)
 Determine if the current user is allowed to view a particular field of this revision, if it's marked as deleted.
static getTimestampFromId ($title, $id)
 Get rev_timestamp from rev_id, without loading the rest of the row.
static countByPageId ($db, $id)
 Get count of revisions per page.
static countByTitle ($db, $title)
 Get count of revisions per page.

Public Attributes

const DELETED_TEXT = 1
const DELETED_COMMENT = 2
const DELETED_USER = 4
const DELETED_RESTRICTED = 8
const SUPPRESSED_USER = 12
const FOR_PUBLIC = 1
const FOR_THIS_USER = 2
const RAW = 3

Protected Member Functions

 loadText ()
 Lazy-load the revision's text.

Private Member Functions

 getPreviousRevisionId ($db)
 Get previous revision Id for this page_id This is used to populate rev_parent_id on save.

Static Private Member Functions

static loadFromConds ($db, $conditions)
 Given a set of conditions, fetch a revision from the given database connection.
static fetchFromConds ($db, $conditions)
 Given a set of conditions, return a ResultWrapper which will return matching database rows with the fields necessary to build Revision objects.


Detailed Description

Todo:
document

Definition at line 6 of file Revision.php.


Member Function Documentation

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:
$text Mixed: reference to a text
Returns:
String

Definition at line 778 of file Revision.php.

References $wgCompressRevisions, and wfDebug().

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

static Revision::countByPageId ( db,
id 
) [static]

Get count of revisions per page.

..not very efficient

Parameters:
$db DatabaseBase
$id Integer: page id
Returns:
Integer

Definition at line 1045 of file Revision.php.

Referenced by countByTitle().

static Revision::countByTitle ( db,
title 
) [static]

Get count of revisions per page.

..not very efficient

Parameters:
$db DatabaseBase
$title Title
Returns:
Integer

Definition at line 1061 of file Revision.php.

References $title, and countByPageId().

static Revision::fetchFromConds ( db,
conditions 
) [static, private]

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

Parameters:
$db Database
$conditions Array
Returns:
ResultWrapper

Definition at line 230 of file Revision.php.

References $res, and selectFields().

Referenced by fetchRevision(), and loadFromConds().

static Revision::fetchRevision ( 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:
$title Title
Returns:
ResultWrapper

Definition at line 212 of file Revision.php.

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

Revision::getComment ( audience = self::FOR_PUBLIC  ) 

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:
$audience Integer: one 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
Returns:
String

Definition at line 515 of file Revision.php.

References isDeleted(), and userCan().

Referenced by Linker::revComment().

Revision::getId (  ) 

Get revision ID.

Returns:
Integer

Definition at line 368 of file Revision.php.

Referenced by getNext(), getPrevious(), and isUnpatrolled().

Revision::getNext (  ) 

Get next revision for this title.

Returns:
Revision or null

Definition at line 657 of file Revision.php.

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

Revision::getPage (  ) 

Get the page ID.

Returns:
Integer

Definition at line 436 of file Revision.php.

Revision::getParentId (  ) 

Get parent revision ID (the original previous page revision).

Returns:
Integer

Definition at line 386 of file Revision.php.

Revision::getPrevious (  ) 

Get previous revision for this title.

Returns:
Revision or null

Definition at line 642 of file Revision.php.

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

Revision::getPreviousRevisionId ( db  )  [private]

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

Parameters:
$db DatabaseBase
Returns:
Integer

Definition at line 674 of file Revision.php.

Referenced by insertOn().

Revision::getRawComment (  ) 

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

Returns:
String

Definition at line 530 of file Revision.php.

Referenced by Linker::revComment().

Revision::getRawText (  ) 

Fetch revision text without regard for view restrictions.

Returns:
String

Definition at line 615 of file Revision.php.

References loadText().

Referenced by getText().

Revision::getRawUser (  ) 

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

Returns:
String

Definition at line 468 of file Revision.php.

Revision::getRawUserText (  ) 

Fetch revision's username without regard for view restrictions.

Returns:
String

Definition at line 499 of file Revision.php.

Referenced by isUnpatrolled().

static Revision::getRevisionText ( row,
prefix = 'old_' 
) [static]

Revision::getSize (  ) 

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

Returns:
Integer

Definition at line 395 of file Revision.php.

Revision::getText ( audience = self::FOR_PUBLIC  ) 

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

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

Parameters:
$audience Integer: one 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
Returns:
String

Definition at line 591 of file Revision.php.

References getRawText(), isDeleted(), and userCan().

Referenced by Article::getUndoText(), and revText().

Revision::getTextId (  ) 

Get text row ID.

Returns:
Integer

Definition at line 377 of file Revision.php.

Referenced by loadText().

Revision::getTimestamp (  ) 

Returns:
String

Definition at line 626 of file Revision.php.

References wfTimestamp().

static Revision::getTimestampFromId ( title,
id 
) [static]

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

Parameters:
$title Title
$id Integer
Returns:
String

Definition at line 1021 of file Revision.php.

References $dbr, $dbw, $title, wfGetDB(), wfGetLB(), and wfTimestamp().

Referenced by lastModified().

Revision::getTitle (  ) 

Returns the title of the page associated with this entry.

Returns:
Title

Definition at line 404 of file Revision.php.

References $dbr, Title::makeTitle(), and wfGetDB().

Referenced by getNext(), getPrevious(), and Linker::revComment().

Revision::getUser ( audience = self::FOR_PUBLIC  ) 

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:
$audience Integer: one of: Revision::FOR_PUBLIC to be displayed to all users Revision::FOR_THIS_USER to be displayed to $wgUser Revision::RAW get the ID regardless of permissions
Returns:
Integer

Definition at line 453 of file Revision.php.

References isDeleted(), and userCan().

Revision::getUserText ( audience = self::FOR_PUBLIC  ) 

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:
$audience Integer: one 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
Returns:
string

Definition at line 484 of file Revision.php.

References isDeleted(), and userCan().

Revision::getVisibility (  ) 

Get the deletion bitfield of the revision.

Definition at line 574 of file Revision.php.

Revision::insertOn ( dbw  ) 

Insert a new revision into the database, returning the new revision ID number on success and dies horribly on failure.

Parameters:
$dbw DatabaseBase (master connection)
Returns:
Integer

Definition at line 804 of file Revision.php.

References $dbw, $wgDefaultExternalStore, compressRevisionText(), getPreviousRevisionId(), ExternalStore::insertToDefault(), wfProfileIn(), wfProfileOut(), and wfRunHooks().

Revision::isCurrent (  ) 

Returns:
Boolean

Definition at line 633 of file Revision.php.

Revision::isDeleted ( field  ) 

int $field one of DELETED_* bitfield constants

Returns:
Boolean

Definition at line 567 of file Revision.php.

Referenced by getComment(), getText(), getUser(), getUserText(), and Linker::revComment().

Revision::isMinor (  ) 

Returns:
Boolean

Definition at line 537 of file Revision.php.

Revision::isUnpatrolled (  ) 

Returns:
Integer rcid of the unpatrolled row, zero if there isn't one

Definition at line 544 of file Revision.php.

References $dbr, getId(), getRawUserText(), and wfGetDB().

static Revision::loadFromConds ( db,
conditions 
) [static, private]

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

Parameters:
$db Database
$conditions Array
Returns:
Revision or null

Definition at line 190 of file Revision.php.

References $res, fetchFromConds(), and Revision().

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

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:
$db DatabaseBase
$id Integer
Returns:
Revision or null

Definition at line 97 of file Revision.php.

References loadFromConds().

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:
$db DatabaseBase
$pageid Integer
$id Integer
Returns:
Revision or null

Definition at line 113 of file Revision.php.

References loadFromConds().

Referenced by UpdateSearchIndex::doUpdateSearchIndex(), and Article::loadLastEdit().

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:
$db Database
$title Title
$timestamp String
Returns:
Revision or null

Definition at line 157 of file Revision.php.

References $title, and loadFromConds().

Referenced by AttachLatest::execute(), EditPage::getBaseRevision(), and Article::replaceSection().

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:
$db DatabaseBase
$title Title
$id Integer
Returns:
Revision or null

Definition at line 133 of file Revision.php.

References $title, and loadFromConds().

Referenced by EditPage::mergeChangesInto().

Revision::loadText (  )  [protected]

Lazy-load the revision's text.

Currently hardcoded to the 'text' table storage engine.

Returns:
String

Definition at line 875 of file Revision.php.

References $dbr, $dbw, $wgMemc, $wgRevisionCacheExpiry, getRevisionText(), getTextId(), wfDebug(), wfGetDB(), wfGetLB(), wfMemcKey(), wfProfileIn(), and wfProfileOut().

Referenced by getRawText().

static Revision::newFromArchiveRow ( row,
overrides = array() 
) [static]

Make a fake revision object from an archive table row.

This is queried for permissions or even inserted (as in Special:Undelete)

Todo:
Fixme: should be a subclass for RevisionDelete. [TS]

Definition at line 70 of file Revision.php.

References getRevisionText().

Referenced by RevDel_ArchiveItem::__construct(), UndeleteForm::formatRevisionRow(), PageArchive::getRevision(), and PageArchive::undeleteRevisions().

static Revision::newFromConds ( conditions  )  [static]

Given a set of conditions, fetch a revision.

Parameters:
$conditions Array
Returns:
Revision or null

Definition at line 172 of file Revision.php.

References $dbw, loadFromConds(), wfGetDB(), and wfGetLB().

Referenced by newFromId(), and newFromTitle().

static Revision::newFromId ( id  )  [static]

static Revision::newFromTitle ( title,
id = 0 
) [static]

static Revision::newNullRevision ( dbw,
pageId,
summary,
minor 
) [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:
$dbw DatabaseBase
$pageId Integer: ID number of the page to read from
$summary String: revision's summary
$minor Boolean: whether the revision should be considered as minor
Returns:
Mixed: Revision, or null on error

Definition at line 943 of file Revision.php.

References $dbw, Revision(), wfProfileIn(), and wfProfileOut().

Referenced by Title::moveOverExistingRedirect(), Title::moveToNewTitle(), LocalFile::recordUpload2(), ImportReporter::reportPage(), and Article::updateRestrictions().

Revision::Revision ( row  ) 

Constructor.

Parameters:
$row Mixed: either a database row or an array
Access:
private

Definition at line 293 of file Revision.php.

References $wgUser, Title::makeTitle(), and wfTimestamp().

Referenced by loadFromConds(), and newNullRevision().

Revision::revText (  ) 

Alias for getText(Revision::FOR_THIS_USER).

Returns:
String

Definition at line 606 of file Revision.php.

References getText().

static Revision::selectFields (  )  [static]

Return the list of revision fields that should be selected to create a new revision.

Definition at line 249 of file Revision.php.

Referenced by ApiQueryRevisions::execute(), fetchFromConds(), HistoryPage::fetchRevisions(), and HistoryPager::getQueryInfo().

static Revision::selectPageFields (  )  [static]

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

Definition at line 279 of file Revision.php.

Referenced by ApiQueryRevisions::execute().

static Revision::selectTextFields (  )  [static]

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

Definition at line 269 of file Revision.php.

Referenced by ApiQueryRevisions::execute().

Revision::setTitle ( title  ) 

Set the title of the revision.

Parameters:
$title Title

Definition at line 427 of file Revision.php.

References $title.

Revision::userCan ( field  ) 

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

Parameters:
$field Integer:one of self::DELETED_TEXT, self::DELETED_COMMENT, self::DELETED_USER
Returns:
Boolean

Definition at line 981 of file Revision.php.

References userCanBitfield().

Referenced by getComment(), getText(), getUser(), getUserText(), and Linker::revComment().

static Revision::userCanBitfield ( bitfield,
field 
) [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:
$bitfield Integer: current field
$field Integer: one of self::DELETED_TEXT = File::DELETED_FILE, self::DELETED_COMMENT = File::DELETED_COMMENT, self::DELETED_USER = File::DELETED_USER
Returns:
Boolean

Definition at line 996 of file Revision.php.

References $wgUser, and wfDebug().

Referenced by userCan(), OldLocalFile::userCan(), ArchivedFile::userCan(), and ChangesList::userCan().


Member Data Documentation

Definition at line 14 of file Revision.php.

Referenced by GetTextMaint::execute().

const Revision::RAW = 3

Definition at line 16 of file Revision.php.

Referenced by GetTextMaint::execute().

Definition at line 12 of file Revision.php.

Referenced by DeletedContribsPager::getQueryInfo(), and ContribsPager::getQueryInfo().


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

Generated on Sat Apr 30 22:57:48 2011 for MediaWiki by  doxygen 1.5.9