diff options
author | DannyS712 <DannyS712.enwiki@gmail.com> | 2020-05-05 03:41:16 +0000 |
---|---|---|
committer | DannyS712 <DannyS712.enwiki@gmail.com> | 2020-05-05 04:03:46 +0000 |
commit | 1e2e9851ef3e45a50d8a48bd5606c2928ef7f652 (patch) | |
tree | 44f2b14883bf1cf9a6754e68c9318749beefd293 /includes/MovePage.php | |
parent | e2ab6a945befd275cf9c13d1fd01b69ef56a6cae (diff) | |
download | mediawikicore-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.php | 39 |
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; |