From 88f8ab8e90a77f1d51785ba63f2eac10599c3063 Mon Sep 17 00:00:00 2001 From: Daniel Kinzler Date: Tue, 27 Mar 2012 14:08:04 +0000 Subject: [PATCH] use factory method to get difference engine everywhere --- includes/Article.php | 4 +++- includes/FeedUtils.php | 3 ++- includes/actions/RollbackAction.php | 3 ++- includes/api/ApiComparePages.php | 3 ++- includes/api/ApiQueryRevisions.php | 4 ++-- includes/specials/SpecialComparePages.php | 3 ++- includes/specials/SpecialUndelete.php | 7 ++++--- 7 files changed, 17 insertions(+), 10 deletions(-) diff --git a/includes/Article.php b/includes/Article.php index 9fccdf68de..fd575aa05a 100644 --- a/includes/Article.php +++ b/includes/Article.php @@ -725,7 +725,9 @@ class Article extends Page { $unhide = $wgRequest->getInt( 'unhide' ) == 1; $oldid = $this->getOldID(); - $de = new DifferenceEngine( $this->getContext(), $oldid, $diff, $rcid, $purge, $unhide ); + $contentHandler = ContentHandler::getForTitle( $this->getTitle() ); + $de = $contentHandler->getDifferenceEngine( $this->getContext(), $oldid, $diff, $rcid, $purge, $unhide ); + // DifferenceEngine directly fetched the revision: $this->mRevIdFetched = $de->mNewid; $de->showDiffPage( $diffOnly ); diff --git a/includes/FeedUtils.php b/includes/FeedUtils.php index 8df4745031..d189428c14 100644 --- a/includes/FeedUtils.php +++ b/includes/FeedUtils.php @@ -117,7 +117,8 @@ class FeedUtils { // Don't bother generating the diff if we won't be able to show it if ( $wgFeedDiffCutoff > 0 ) { - $de = new DifferenceEngine( $title, $oldid, $newid ); + $contentHandler = ContentHandler::getForTitle( $title ); + $de = $contentHandler->getDifferenceEngine( $title, $oldid, $newid ); $diffText = $de->getDiff( wfMsg( 'previousrevision' ), // hack wfMsg( 'revisionasof', diff --git a/includes/actions/RollbackAction.php b/includes/actions/RollbackAction.php index 8379e27678..dd477933c3 100644 --- a/includes/actions/RollbackAction.php +++ b/includes/actions/RollbackAction.php @@ -109,7 +109,8 @@ class RollbackAction extends FormlessAction { $this->getOutput()->returnToMain( false, $this->getTitle() ); if ( !$request->getBool( 'hidediff', false ) && !$this->getUser()->getBoolOption( 'norollbackdiff', false ) ) { - $de = new DifferenceEngine( $this->getContext(), $current->getId(), $newId, false, true ); + $contentHandler = ContentHandler::getForTitle( $this->getTitle() ); + $de = $contentHandler->getDifferenceEngine( $this->getContext(), $current->getId(), $newId, false, true ); $de->showDiff( '', '' ); } } diff --git a/includes/api/ApiComparePages.php b/includes/api/ApiComparePages.php index 4bb94c4af9..3c987aacb3 100644 --- a/includes/api/ApiComparePages.php +++ b/includes/api/ApiComparePages.php @@ -35,7 +35,8 @@ class ApiComparePages extends ApiBase { $rev1 = $this->revisionOrTitle( $params['fromrev'], $params['fromtitle'] ); $rev2 = $this->revisionOrTitle( $params['torev'], $params['totitle'] ); - $de = new DifferenceEngine( $this->getContext(), + $contentHandler = ContentHandler::getForModelName( $rev1->getContentModelName() ); + $de = $contentHandler->getDifferenceEngine( $this->getContext(), $rev1, $rev2, null, // rcid diff --git a/includes/api/ApiQueryRevisions.php b/includes/api/ApiQueryRevisions.php index 82e15eed3c..11ea37100d 100644 --- a/includes/api/ApiQueryRevisions.php +++ b/includes/api/ApiQueryRevisions.php @@ -114,7 +114,7 @@ class ApiQueryRevisions extends ApiQueryBase { } if ( !is_null( $params['difftotext'] ) ) { - $this->difftotext = $params['difftotext']; + $this->difftotext = $params['difftotext']; #FIXME: handle non-text content! } elseif ( !is_null( $params['diffto'] ) ) { if ( $params['diffto'] == 'cur' ) { $params['diffto'] = 0; @@ -507,7 +507,7 @@ class ApiQueryRevisions extends ApiQueryBase { if ( !is_null( $this->difftotext ) ) { $engine = $handler->getDifferenceEngine( $context ); - $engine->setText( $text, $this->difftotext ); #FIXME: use content object! + $engine->setText( $text, $this->difftotext ); #FIXME: use content objects!... } else { $engine = $handler->getDifferenceEngine( $context, $revision->getID(), $this->diffto ); $vals['diff']['from'] = $engine->getOldid(); diff --git a/includes/specials/SpecialComparePages.php b/includes/specials/SpecialComparePages.php index 9e3c52b981..878bda0416 100644 --- a/includes/specials/SpecialComparePages.php +++ b/includes/specials/SpecialComparePages.php @@ -111,7 +111,8 @@ class SpecialComparePages extends SpecialPage { $rev2 = self::revOrTitle( $data['Revision2'], $data['Page2'] ); if( $rev1 && $rev2 ) { - $de = new DifferenceEngine( $form->getContext(), + $contentHandler = ContentHandler::getForModelName( $rev1->getContentModelName() ); + $de = $contentHandler->getDifferenceEngine( $form->getContext(), $rev1, $rev2, null, // rcid diff --git a/includes/specials/SpecialUndelete.php b/includes/specials/SpecialUndelete.php index 1cf63dd582..cfe1b85dac 100644 --- a/includes/specials/SpecialUndelete.php +++ b/includes/specials/SpecialUndelete.php @@ -892,7 +892,8 @@ class SpecialUndelete extends SpecialPage { * @return String: HTML */ function showDiff( $previousRev, $currentRev ) { - $diffEngine = new DifferenceEngine( $this->getContext() ); + $contentHandler = ContentHandler::getForTitle( $this->getTitle() ); + $diffEngine = $contentHandler->getDifferenceEngine( $this->getContext() ); $diffEngine->showDiffStyle(); $this->getOutput()->addHTML( "
" . @@ -909,8 +910,8 @@ class SpecialUndelete extends SpecialPage { $this->diffHeader( $currentRev, 'n' ) . "\n" . "" . - $diffEngine->generateDiffBody( - $previousRev->getText(), $currentRev->getText() ) . + $diffEngine->generateContentDiffBody( + $previousRev->getContent(), $currentRev->getContent() ) . "" . "
\n" ); -- 2.20.1