MediaWiki  1.34.0
DifferenceEngineSlotDiffRenderer.php
Go to the documentation of this file.
1 <?php
32 
35 
37  $this->differenceEngine = clone $differenceEngine;
38 
39  // Set state to loaded. This should not matter to any of the methods invoked by
40  // the adapter, but just in case a load does get triggered somehow, make sure it's a no-op.
41  $fakeContent = ContentHandler::getForModelID( CONTENT_MODEL_WIKITEXT )->makeEmptyContent();
42  $this->differenceEngine->setContent( $fakeContent, $fakeContent );
43 
44  $this->differenceEngine->markAsSlotDiffRenderer();
45  }
46 
48  public function getDiff( Content $oldContent = null, Content $newContent = null ) {
49  $this->normalizeContents( $oldContent, $newContent );
50  return $this->differenceEngine->generateContentDiffBody( $oldContent, $newContent );
51  }
52 
53  public function addModules( OutputPage $output ) {
54  $oldContext = null;
55  if ( $output !== $this->differenceEngine->getOutput() ) {
56  $oldContext = $this->differenceEngine->getContext();
57  $newContext = new DerivativeContext( $oldContext );
58  $newContext->setOutput( $output );
59  $this->differenceEngine->setContext( $newContext );
60  }
61  $this->differenceEngine->showDiffStyle();
62  if ( $oldContext ) {
63  $this->differenceEngine->setContext( $oldContext );
64  }
65  }
66 
67  public function getExtraCacheKeys() {
68  return $this->differenceEngine->getExtraCacheKeys();
69  }
70 
71 }
ContentHandler\getForModelID
static getForModelID( $modelId)
Returns the ContentHandler singleton for the given model ID.
Definition: ContentHandler.php:254
DifferenceEngineSlotDiffRenderer\$differenceEngine
DifferenceEngine $differenceEngine
Definition: DifferenceEngineSlotDiffRenderer.php:34
CONTENT_MODEL_WIKITEXT
const CONTENT_MODEL_WIKITEXT
Definition: Defines.php:215
SlotDiffRenderer\normalizeContents
normalizeContents(Content &$oldContent=null, Content &$newContent=null, $allowedClasses=null)
Helper method to normalize the input of getDiff().
Definition: SlotDiffRenderer.php:75
DerivativeContext
An IContextSource implementation which will inherit context from another source but allow individual ...
Definition: DerivativeContext.php:30
DifferenceEngineSlotDiffRenderer\getDiff
getDiff(Content $oldContent=null, Content $newContent=null)
Get a diff between two content objects.One of them might be null (meaning a slot was created or remov...
Definition: DifferenceEngineSlotDiffRenderer.php:48
$output
$output
Definition: SyntaxHighlight.php:335
DifferenceEngineSlotDiffRenderer\addModules
addModules(OutputPage $output)
Add modules needed for correct styling/behavior of the diff.
Definition: DifferenceEngineSlotDiffRenderer.php:53
DifferenceEngineSlotDiffRenderer\getExtraCacheKeys
getExtraCacheKeys()
Return any extra keys to split the diff cache by.
Definition: DifferenceEngineSlotDiffRenderer.php:67
Content
Base interface for content objects.
Definition: Content.php:34
DifferenceEngineSlotDiffRenderer\__construct
__construct(DifferenceEngine $differenceEngine)
Definition: DifferenceEngineSlotDiffRenderer.php:36
SlotDiffRenderer
Renders a diff for a single slot (that is, a diff between two content objects).
Definition: SlotDiffRenderer.php:39
DifferenceEngine
DifferenceEngine is responsible for rendering the difference between two revisions as HTML.
Definition: DifferenceEngine.php:51
DifferenceEngineSlotDiffRenderer
B/C adapter for turning a DifferenceEngine into a SlotDiffRenderer.
Definition: DifferenceEngineSlotDiffRenderer.php:31