From 237ee32ccc2208a15dae8f5fa6bb00c5c5d8620e Mon Sep 17 00:00:00 2001 From: daniel Date: Mon, 25 Jun 2012 13:44:32 +0200 Subject: [PATCH] allow getParserOutput to be overwritten in DifferenceEngine Change-Id: I66fbd42c2ada05d5891f2738139b80c0090ecb1b --- includes/diff/DifferenceEngine.php | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/includes/diff/DifferenceEngine.php b/includes/diff/DifferenceEngine.php index fc95e8d584..178e7f28e1 100644 --- a/includes/diff/DifferenceEngine.php +++ b/includes/diff/DifferenceEngine.php @@ -527,15 +527,7 @@ class DifferenceEngine extends ContextSource { $wikiPage = WikiPage::factory( $this->mNewPage ); } - $parserOptions = ParserOptions::newFromContext( $this->getContext() ); - $parserOptions->enableLimitReport(); - $parserOptions->setTidy( true ); - - if ( !$this->mNewRev->isCurrent() ) { - $parserOptions->setEditSection( false ); - } - - $parserOutput = $wikiPage->getParserOutput( $parserOptions, $this->mNewid ); + $parserOutput = $this->getParserOutput( $wikiPage, $this->mNewRev ); # WikiPage::getParserOutput() should not return false, but just in case if( $parserOutput ) { @@ -549,6 +541,19 @@ class DifferenceEngine extends ContextSource { wfProfileOut( __METHOD__ ); } + protected function getParserOutput( WikiPage $page, Revision $rev ) { + $parserOptions = ParserOptions::newFromContext( $this->getContext() ); + $parserOptions->enableLimitReport(); + $parserOptions->setTidy( true ); + + if ( !$rev->isCurrent() || !$rev->getTitle()->quickUserCan( "edit" ) ) { + $parserOptions->setEditSection( false ); + } + + $parserOutput = $page->getParserOutput( $parserOptions, $rev->getId() ); + return $parserOutput; + } + /** * Get the diff text, send it to the OutputPage object * Returns false if the diff could not be generated, otherwise returns true -- 2.20.1