Implemented param tracking for hook users, feels a bit hackish
[lhc/web/wiklou.git] / includes / Revision.php
index 31814fe..0335ab1 100644 (file)
@@ -82,6 +82,9 @@ class Revision {
                if ( isset( $row->ar_text ) && !$row->ar_text_id ) {
                        // Pre-1.5 ar_text row
                        $attribs['text'] = self::getRevisionText( $row, 'ar_' );
+                       if ( $attribs['text'] === false ) {
+                               throw new MWException( 'Unable to load text from archive row (possibly bug 22624)' );
+                       }
                }
                return new self( $attribs );
        }
@@ -149,7 +152,7 @@ class Revision {
         * WARNING: Timestamps may in some circumstances not be unique,
         * so this isn't the best key to use.
         *
-        * @param $db Database
+        * @param $db DatabaseBase
         * @param $title Title
         * @param $timestamp String
         * @return Revision or null
@@ -246,7 +249,7 @@ class Revision {
         * Return the list of revision fields that should be selected to create
         * a new revision.
         */
-       static function selectFields() {
+       public static function selectFields() {
                return array(
                        'rev_id',
                        'rev_page',
@@ -290,7 +293,7 @@ class Revision {
         * @param $row Mixed: either a database row or an array
         * @access private
         */
-       function Revision( $row ) {
+       function __construct( $row ) {
                if( is_object( $row ) ) {
                        $this->mId        = intval( $row->rev_id );
                        $this->mPage      = intval( $row->rev_page );
@@ -314,8 +317,7 @@ class Revision {
 
                        if( isset( $row->page_latest ) ) {
                                $this->mCurrent = ( $row->rev_id == $row->page_latest );
-                               $this->mTitle = Title::makeTitle( $row->page_namespace, $row->page_title );
-                               $this->mTitle->resetArticleID( $this->mPage );
+                               $this->mTitle = Title::newFromRow( $row );
                        } else {
                                $this->mCurrent = false;
                                $this->mTitle = null;
@@ -605,6 +607,7 @@ class Revision {
         * @return String
         */
        public function revText() {
+               wfDeprecated();
                return $this->getText( self::FOR_THIS_USER );
        }
 
@@ -799,7 +802,7 @@ class Revision {
         * Insert a new revision into the database, returning the new revision ID
         * number on success and dies horribly on failure.
         *
-        * @param $dbw DatabaseBase (master connection)
+        * @param $dbw DatabaseBase: (master connection)
         * @return Integer
         */
        public function insertOn( $dbw ) {
@@ -997,7 +1000,6 @@ class Revision {
        public static function userCanBitfield( $bitfield, $field ) {
                if( $bitfield & $field ) { // aspect is deleted
                        global $wgUser;
-                       $permission = '';
                        if ( $bitfield & self::DELETED_RESTRICTED ) {
                                $permission = 'suppressrevision';
                        } elseif ( $field & self::DELETED_TEXT ) {