X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=includes%2Fspecials%2FSpecialUndelete.php;h=a92982040b119847897b672d573007b8578465af;hb=b7625d63a6f1f8867c911dbd6e93eebdaca3312f;hp=3069bd8654fef7c70b725f09f01cdf287f4ec8dc;hpb=5f4cf303e22c522a63d08cac61b38e74a8dfd0f7;p=lhc%2Fweb%2Fwiklou.git diff --git a/includes/specials/SpecialUndelete.php b/includes/specials/SpecialUndelete.php index 3069bd8654..a92982040b 100644 --- a/includes/specials/SpecialUndelete.php +++ b/includes/specials/SpecialUndelete.php @@ -21,6 +21,8 @@ * @ingroup SpecialPage */ +use MediaWiki\MediaWikiServices; +use MediaWiki\Storage\RevisionRecord; use Wikimedia\Rdbms\IResultWrapper; /** @@ -421,8 +423,9 @@ class SpecialUndelete extends SpecialPage { $t = $lang->userTime( $timestamp, $user ); $userLink = Linker::revUserTools( $rev ); - $content = $rev->getContent( Revision::FOR_THIS_USER, $user ); + $content = $rev->getContent( RevisionRecord::FOR_THIS_USER, $user ); + // TODO: MCR: this will have to become something like $hasTextSlots and $hasNonTextSlots $isText = ( $content instanceof TextContent ); if ( $this->mPreview || $isText ) { @@ -447,12 +450,23 @@ class SpecialUndelete extends SpecialPage { return; } - if ( ( $this->mPreview || !$isText ) && $content ) { + if ( $this->mPreview || !$isText ) { // NOTE: non-text content has no source view, so always use rendered preview $popts = $out->parserOptions(); + $renderer = MediaWikiServices::getInstance()->getRevisionRenderer(); + + $rendered = $renderer->getRenderedRevision( + $rev->getRevisionRecord(), + $popts, + $user, + [ 'audience' => RevisionRecord::FOR_THIS_USER ] + ); + + // Fail hard if the audience check fails, since we already checked + // at the beginning of this method. + $pout = $rendered->getRevisionParserOutput(); - $pout = $content->getParserOutput( $this->mTargetObj, $rev->getId(), $popts, true ); $out->addParserOutput( $pout, [ 'enableSectionEditLinks' => false, ] ); @@ -462,6 +476,7 @@ class SpecialUndelete extends SpecialPage { $buttonFields = []; if ( $isText ) { + // TODO: MCR: make this work for multiple slots // source view for textual content $sourceView = Xml::element( 'textarea', [ 'readonly' => 'readonly',