aboutsummaryrefslogtreecommitdiffstats
path: root/includes/MovePage.php
diff options
context:
space:
mode:
authorDannyS712 <DannyS712.enwiki@gmail.com>2020-05-05 03:41:16 +0000
committerDannyS712 <DannyS712.enwiki@gmail.com>2020-05-05 04:03:46 +0000
commit1e2e9851ef3e45a50d8a48bd5606c2928ef7f652 (patch)
tree44f2b14883bf1cf9a6754e68c9318749beefd293 /includes/MovePage.php
parente2ab6a945befd275cf9c13d1fd01b69ef56a6cae (diff)
downloadmediawikicore-1e2e9851ef3e45a50d8a48bd5606c2928ef7f652.tar.gz
mediawikicore-1e2e9851ef3e45a50d8a48bd5606c2928ef7f652.zip
MovePage::moveToInternal - remove use of Revision::insertOn
Construct a MutableRevisionRecord instead of creating a Revision object with an array Bug: T251856 Change-Id: Ia322a2a1faef53522a47974043e8d69a7290ce49
Diffstat (limited to 'includes/MovePage.php')
-rw-r--r--includes/MovePage.php39
1 files changed, 24 insertions, 15 deletions
diff --git a/includes/MovePage.php b/includes/MovePage.php
index f90e441122df..7e3b42b3f88f 100644
--- a/includes/MovePage.php
+++ b/includes/MovePage.php
@@ -24,6 +24,7 @@ use MediaWiki\Content\IContentHandlerFactory;
use MediaWiki\MediaWikiServices;
use MediaWiki\Page\PageHandlerFactory;
use MediaWiki\Permissions\PermissionManager;
+use MediaWiki\Revision\MutableRevisionRecord;
use MediaWiki\Revision\RevisionRecord;
use MediaWiki\Revision\RevisionStore;
use MediaWiki\Revision\SlotRecord;
@@ -831,11 +832,12 @@ class MovePage {
// But not $this->oldTitle yet, see below (T47348).
$nt->resetArticleID( $oldid );
+ $commentObj = CommentStoreComment::newUnsavedComment( $comment );
# Save a null revision in the page's history notifying of the move
$nullRevision = $this->revisionStore->newNullRevision(
$dbw,
$nt,
- CommentStoreComment::newUnsavedComment( $comment ),
+ $commentObj,
true,
$user
);
@@ -882,25 +884,32 @@ class MovePage {
$newid = $redirectArticle->insertOn( $dbw );
if ( $newid ) { // sanity
$this->oldTitle->resetArticleID( $newid );
- $redirectRevision = new Revision( [
- 'title' => $this->oldTitle, // for determining the default content model
- 'page' => $newid,
- 'user_text' => $user->getName(),
- 'user' => $user->getId(),
- 'comment' => $comment,
- 'content' => $redirectContent ] );
- $redirectRevId = $redirectRevision->insertOn( $dbw );
- $redirectArticle->updateRevisionOn(
- $dbw,
- $redirectRevision->getRevisionRecord(),
- 0
+ $redirectRevisionRecord = new MutableRevisionRecord( $this->oldTitle );
+ $redirectRevisionRecord->setPageId( $newid );
+ $redirectRevisionRecord->setUser( $user );
+ $redirectRevisionRecord->setComment( $commentObj );
+ $redirectRevisionRecord->setContent( SlotRecord::MAIN, $redirectContent );
+ $redirectRevisionRecord->setTimestamp( MWTimestamp::now( TS_MW ) );
+
+ $inserted = $this->revisionStore->insertRevisionOn(
+ $redirectRevisionRecord,
+ $dbw
);
+ $redirectRevId = $inserted->getId();
+ $redirectArticle->updateRevisionOn( $dbw, $inserted, 0 );
+ // TODO replace hook with one using RevisionRecord
+ $redirectRevisionObj = new Revision( $inserted );
$fakeTags = [];
Hooks::run( 'NewRevisionFromEditComplete',
- [ $redirectArticle, $redirectRevision, false, $user, &$fakeTags ] );
+ [ $redirectArticle, $redirectRevisionObj, false, $user, &$fakeTags ] );
- $redirectArticle->doEditUpdates( $redirectRevision, $user, [ 'created' => true ] );
+ // TODO WikiPage::doEditUpdates is deprecated
+ $redirectArticle->doEditUpdates(
+ $redirectRevisionObj,
+ $user,
+ [ 'created' => true ]
+ );
// make a copy because of log entry below
$redirectTags = $changeTags;