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