http://www.mediawiki.org/wiki/Special:Code/MediaWiki/94290

Revision: 94290
Author:   aaron
Date:     2011-08-11 21:54:46 +0000 (Thu, 11 Aug 2011)
Log Message:
-----------
Follow-up r94289: code changes to fill the new fields on insertion and select 
them

Modified Paths:
--------------
    trunk/phase3/includes/Revision.php
    trunk/phase3/includes/WikiPage.php
    trunk/phase3/includes/specials/SpecialUndelete.php

Modified: trunk/phase3/includes/Revision.php
===================================================================
--- trunk/phase3/includes/Revision.php  2011-08-11 21:52:54 UTC (rev 94289)
+++ trunk/phase3/includes/Revision.php  2011-08-11 21:54:46 UTC (rev 94290)
@@ -110,7 +110,9 @@
                        'minor_edit' => $row->ar_minor_edit,
                        'text_id'    => isset( $row->ar_text_id ) ? 
$row->ar_text_id : null,
                        'deleted'    => $row->ar_deleted,
-                       'len'        => $row->ar_len);
+                       'len'        => $row->ar_len,
+                       'sha1'       => $row->ar_sha1
+               );
                if ( isset( $row->ar_text ) && !$row->ar_text_id ) {
                        // Pre-1.5 ar_text row
                        $attribs['text'] = self::getRevisionText( $row, 'ar_' );
@@ -301,7 +303,8 @@
                        'rev_minor_edit',
                        'rev_deleted',
                        'rev_len',
-                       'rev_parent_id'
+                       'rev_parent_id',
+                       'rev_sha1'
                );
        }
 
@@ -357,6 +360,12 @@
                                $this->mSize = intval( $row->rev_len );
                        }
 
+                       if ( !isset( $row->rev_sha1 ) ) {
+                               $this->mSha1 = null;
+                       } else {
+                               $this->mSha1 = $row->rev_sha1;
+                       }
+
                        if( isset( $row->page_latest ) ) {
                                $this->mCurrent = ( $row->rev_id == 
$row->page_latest );
                                $this->mTitle = Title::newFromRow( $row );
@@ -375,7 +384,7 @@
                        }
                } elseif( is_array( $row ) ) {
                        // Build a new revision to be saved...
-                       global $wgUser;
+                       global $wgUser; // ugh
 
                        $this->mId        = isset( $row['id']         ) ? 
intval( $row['id']         ) : null;
                        $this->mPage      = isset( $row['page']       ) ? 
intval( $row['page']       ) : null;
@@ -387,6 +396,7 @@
                        $this->mDeleted   = isset( $row['deleted']    ) ? 
intval( $row['deleted']    ) : 0;
                        $this->mSize      = isset( $row['len']        ) ? 
intval( $row['len']        ) : null;
                        $this->mParentId  = isset( $row['parent_id']  ) ? 
intval( $row['parent_id']  ) : null;
+                       $this->mSha1      = isset( $row['sha1']  )      ? 
strval( $row['sha1']  )      : null;
 
                        // Enforce spacing trimming on supplied text
                        $this->mComment   = isset( $row['comment']    ) ?  
trim( strval( $row['comment'] ) ) : null;
@@ -899,8 +909,12 @@
                                'rev_timestamp'  => $dbw->timestamp( 
$this->mTimestamp ),
                                'rev_deleted'    => $this->mDeleted,
                                'rev_len'        => $this->mSize,
-                               'rev_parent_id'  => is_null($this->mParentId) ?
-                                       $this->getPreviousRevisionId( $dbw ) : 
$this->mParentId
+                               'rev_parent_id'  => is_null( $this->mParentId )
+                                       ? $this->getPreviousRevisionId( $dbw )
+                                       : $this->mParentId,
+                               'rev_sha1'       => is_null( $this->mSha1 )
+                                       ? Revision::base36Sha1( $this->mText )
+                                       : $this->mSha1
                        ), __METHOD__
                );
 
@@ -913,6 +927,15 @@
        }
 
        /**
+        * Get the base 36 SHA-1 value for a string of text
+        * @param $text String
+        * @return String
+        */
+       public static function base36Sha1( $text ) {
+               return wfBaseConvert( sha1( $text ), 16, 36, 31 );
+       }
+
+       /**
         * Lazy-load the revision's text.
         * Currently hardcoded to the 'text' table storage engine.
         *

Modified: trunk/phase3/includes/WikiPage.php
===================================================================
--- trunk/phase3/includes/WikiPage.php  2011-08-11 21:52:54 UTC (rev 94289)
+++ trunk/phase3/includes/WikiPage.php  2011-08-11 21:54:46 UTC (rev 94290)
@@ -1662,7 +1662,8 @@
                                'ar_flags'      => '\'\'', // MySQL's "strict 
mode"...
                                'ar_len'        => 'rev_len',
                                'ar_page_id'    => 'page_id',
-                               'ar_deleted'    => $bitfield
+                               'ar_deleted'    => $bitfield,
+                               'ar_sha1'       => 'rev_sha1'
                        ), array(
                                'page_id' => $id,
                                'page_id = rev_page'

Modified: trunk/phase3/includes/specials/SpecialUndelete.php
===================================================================
--- trunk/phase3/includes/specials/SpecialUndelete.php  2011-08-11 21:52:54 UTC 
(rev 94289)
+++ trunk/phase3/includes/specials/SpecialUndelete.php  2011-08-11 21:54:46 UTC 
(rev 94290)
@@ -124,7 +124,7 @@
                $res = $dbr->select( 'archive',
                        array(
                                'ar_minor_edit', 'ar_timestamp', 'ar_user', 
'ar_user_text',
-                               'ar_comment', 'ar_len', 'ar_deleted', 
'ar_rev_id'
+                               'ar_comment', 'ar_len', 'ar_deleted', 
'ar_rev_id', 'ar_sha1'
                        ),
                        array( 'ar_namespace' => $this->title->getNamespace(),
                                   'ar_title' => $this->title->getDBkey() ),
@@ -464,7 +464,8 @@
                                'ar_text_id',
                                'ar_deleted',
                                'ar_page_id',
-                               'ar_len' ),
+                               'ar_len',
+                               'ar_sha1' ),
                        /* WHERE */ array(
                                'ar_namespace' => $this->title->getNamespace(),
                                'ar_title'     => $this->title->getDBkey(),


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to