/** */
require_once( 'Database.php' );
-require_once( 'Article.php' );
-
-/** @+ */
-define( 'MW_REV_DELETED_TEXT', 1 );
-define( 'MW_REV_DELETED_COMMENT', 2 );
-define( 'MW_REV_DELETED_USER', 4 );
-define( 'MW_REV_DELETED_RESTRICTED', 8 );
-/** @- */
/**
* @package MediaWiki
* @todo document
*/
class Revision {
+ const DELETED_TEXT = 1;
+ const DELETED_COMMENT = 2;
+ const DELETED_USER = 4;
+ const DELETED_RESTRICTED = 8;
+
/**
* Load a page revision from a given revision ID number.
* Returns null if no such revision can be found.
$this->mTitle = null; # Load on demand if needed
$this->mCurrent = false;
} else {
- wfDebugDieBacktrace( 'Revision constructor passed invalid row format.' );
+ throw new MWException( 'Revision constructor passed invalid row format.' );
}
}
array( 'page_namespace', 'page_title' ),
array( 'page_id=rev_page',
'rev_id' => $this->mId ),
- 'Revision::getTItle' );
+ 'Revision::getTitle' );
if( $row ) {
$this->mTitle = Title::makeTitle( $row->page_namespace,
$row->page_title );
return $this->mTitle;
}
+ /**
+ * Set the title of the revision
+ * @param Title $title
+ */
+ function setTitle( $title ) {
+ $this->mTitle = $title;
+ }
+
/**
* @return int
*/
* @return int
*/
function getUser() {
- if( $this->isDeleted( MW_REV_DELETED_USER ) ) {
+ if( $this->isDeleted( self::DELETED_USER ) ) {
return 0;
} else {
return $this->mUser;
* @return string
*/
function getUserText() {
- if( $this->isDeleted( MW_REV_DELETED_USER ) ) {
+ if( $this->isDeleted( self::DELETED_USER ) ) {
return "";
} else {
return $this->mUserText;
* @return string
*/
function getComment() {
- if( $this->isDeleted( MW_REV_DELETED_COMMENT ) ) {
+ if( $this->isDeleted( self::DELETED_COMMENT ) ) {
return "";
} else {
return $this->mComment;
}
/**
- * int $field one of MW_REV_DELETED_* bitfield constants
+ * int $field one of DELETED_* bitfield constants
* @return bool
*/
function isDeleted( $field ) {
* @return string
*/
function getText() {
- if( $this->isDeleted( MW_REV_DELETED_TEXT ) ) {
+ if( $this->isDeleted( self::DELETED_TEXT ) ) {
return "";
} else {
return $this->getRawText();
$data = ExternalStore::insert( $store, $data );
if ( !$data ) {
# This should only happen in the case of a configuration error, where the external store is not valid
- wfDebugDieBacktrace( "Unable to store text to external storage $store" );
+ throw new MWException( "Unable to store text to external storage $store" );
}
if ( $flags ) {
$flags .= ',';
/**
* Determine if the current user is allowed to view a particular
* field of this revision, if it's marked as deleted.
- * @param int $field one of MW_REV_DELETED_TEXT,
- * MW_REV_DELETED_COMMENT,
- * MW_REV_DELETED_USER
+ * @param int $field one of self::DELETED_TEXT,
+ * self::DELETED_COMMENT,
+ * self::DELETED_USER
* @return bool
*/
function userCan( $field ) {
if( ( $this->mDeleted & $field ) == $field ) {
global $wgUser;
- $permission = ( $this->mDeleted & MW_REV_DELETED_RESTRICTED ) == MW_REV_DELETED_RESTRICTED
+ $permission = ( $this->mDeleted & self::DELETED_RESTRICTED ) == self::DELETED_RESTRICTED
? 'hiderevision'
: 'deleterevision';
wfDebug( "Checking for $permission due to $field match on $this->mDeleted\n" );
}
}
+
+ /**
+ * Get rev_timestamp from rev_id, without loading the rest of the row
+ * @param integer $id
+ */
+ static function getTimestampFromID( $id ) {
+ $timestamp = $dbr->selectField( 'revision', 'rev_timestamp',
+ array( 'rev_id' => $id ), __METHOD__ );
+ if ( $timestamp === false ) {
+ # Not in slave, try master
+ $dbw =& wfGetDB( DB_MASTER );
+ $timestamp = $dbw->selectField( 'revision', 'rev_timestamp',
+ array( 'rev_id' => $id ), __METHOD__ );
+ }
+ return $timestamp;
+ }
}
+/**
+ * Aliases for backwards compatibility with 1.6
+ */
+define( 'MW_REV_DELETED_TEXT', Revision::DELETED_TEXT );
+define( 'MW_REV_DELETED_COMMENT', Revision::DELETED_COMMENT );
+define( 'MW_REV_DELETED_USER', Revision::DELETED_USER );
+define( 'MW_REV_DELETED_RESTRICTED', Revision::DELETED_RESTRICTED );
+
+
?>