From 08aa4418c30cfc18ccc69a0f0f9cb9e17be6c196 Mon Sep 17 00:00:00 2001 From: Pierre Schmitz Date: Mon, 12 Aug 2013 09:28:15 +0200 Subject: Update to MediaWiki 1.21.1 --- includes/api/ApiComparePages.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) (limited to 'includes/api/ApiComparePages.php') diff --git a/includes/api/ApiComparePages.php b/includes/api/ApiComparePages.php index ed72b29b..79ffcb0a 100644 --- a/includes/api/ApiComparePages.php +++ b/includes/api/ApiComparePages.php @@ -25,17 +25,21 @@ class ApiComparePages extends ApiBase { - public function __construct( $main, $action ) { - parent::__construct( $main, $action ); - } - public function execute() { $params = $this->extractRequestParams(); $rev1 = $this->revisionOrTitleOrId( $params['fromrev'], $params['fromtitle'], $params['fromid'] ); $rev2 = $this->revisionOrTitleOrId( $params['torev'], $params['totitle'], $params['toid'] ); - $de = new DifferenceEngine( $this->getContext(), + $revision = Revision::newFromId( $rev1 ); + + if ( !$revision ) { + $this->dieUsage( 'The diff cannot be retrieved, ' . + 'one revision does not exist or you do not have permission to view it.', 'baddiff' ); + } + + $contentHandler = $revision->getContentHandler(); + $de = $contentHandler->createDifferenceEngine( $this->getContext(), $rev1, $rev2, null, // rcid @@ -77,11 +81,11 @@ class ApiComparePages extends ApiBase { * @return int */ private function revisionOrTitleOrId( $revision, $titleText, $titleId ) { - if( $revision ){ + if( $revision ) { return $revision; } elseif( $titleText ) { $title = Title::newFromText( $titleText ); - if( !$title ){ + if( !$title || $title->isExternal() ) { $this->dieUsageMsg( array( 'invalidtitle', $titleText ) ); } return $title->getLatestRevID(); @@ -164,8 +168,4 @@ class ApiComparePages extends ApiBase { 'api.php?action=compare&fromrev=1&torev=2' => 'Create a diff between revision 1 and 2', ); } - - public function getVersion() { - return __CLASS__ . ': $Id$'; - } } -- cgit v1.2.2