jenkins-bot has submitted this change and it was merged.
Change subject: Add hook for custom difference engine (WikEdDiff)
......................................................................
Add hook for custom difference engine (WikEdDiff)
The new Extension:WikEdDiff is a custom inline difference engine.
There is currently no hook to integrate custom difference engines.
This patch adds a new hook called 'GetDifferenceEngine' in
/includes/content/ContentHandler.php in function
'createDifferenceEngine()'.
Passed variables:
$context: IContextSource context to be used for diff
$old: Revision ID to show and diff with
$new: Either a revision ID or one of the strings 'cur', 'prev' or 'next'
$refreshCache: If set, refreshes the diff cache
$unhide: If set, allow viewing deleted revs
&$differenceEngine: output parameter, difference engine object to be used
for diff
If the hook handler returns false, a valid difference engine object is
returned in the passed-by-reference variable $differenceEngine.
If the handler returns true, the default engine is used as fallback.
The specified diff engine class will typically be an extension of the
class DifferenceEngine (includes/diff/DifferenceEngine.php) with
modifications, e.g. of function generateTextDiffBody() and
__construct() (without deprecated parameter $rcid).
Also fixes a missing declaration in DifferenceEngine that is required for
extending this class.
Bug: 71916
Change-Id: I9da63c1ceb339bfeba7beddc712be51977b95f65
---
M docs/hooks.txt
M includes/content/ContentHandler.php
M includes/diff/DifferenceEngine.php
3 files changed, 21 insertions(+), 1 deletion(-)
Approvals:
Daniel Kinzler: Looks good to me, approved
jenkins-bot: Verified
diff --git a/docs/hooks.txt b/docs/hooks.txt
index 7ec6ff5..5bf9ef2 100644
--- a/docs/hooks.txt
+++ b/docs/hooks.txt
@@ -989,6 +989,15 @@
$old: the ?old= param value from the url
$new: the ?new= param value from the url
+'GetDifferenceEngine': Called when getting a new difference engine interface
object
+Return false for valid object in $differenceEngine or true for the default
difference engine
+$context: IContextSource context to be used for diff
+$old: Revision ID to show and diff with
+$new: Either a revision ID or one of the strings 'cur', 'prev' or 'next'
+$refreshCache: If set, refreshes the diff cache
+$unhide: If set, allow viewing deleted revs
+&$differenceEngine: output parameter, difference engine object to be used for
diff
+
'DiffRevisionTools': Override or extend the revision tools available from the
diff view, i.e. undo, etc.
$newRev: Revision object of the "new" revision
diff --git a/includes/content/ContentHandler.php
b/includes/content/ContentHandler.php
index ac41722..bcecefa 100644
--- a/includes/content/ContentHandler.php
+++ b/includes/content/ContentHandler.php
@@ -626,8 +626,15 @@
public function createDifferenceEngine( IContextSource $context, $old =
0, $new = 0,
$rcid = 0, //FIXME: Deprecated, no longer used
$refreshCache = false, $unhide = false ) {
- $diffEngineClass = $this->getDiffEngineClass();
+ // hook: get difference engine
+ $differenceEngine = null;
+ if ( !wfRunHooks( 'GetDifferenceEngine',
+ array( $context, $old, $new, $refreshCache, $unhide,
&$differenceEngine )
+ ) ) {
+ return $differenceEngine;
+ }
+ $diffEngineClass = $this->getDiffEngineClass();
return new $diffEngineClass( $context, $old, $new, $rcid,
$refreshCache, $unhide );
}
diff --git a/includes/diff/DifferenceEngine.php
b/includes/diff/DifferenceEngine.php
index dd5f3c7..ba9878f 100644
--- a/includes/diff/DifferenceEngine.php
+++ b/includes/diff/DifferenceEngine.php
@@ -94,6 +94,10 @@
/** @var bool Show rev_deleted content if allowed */
protected $unhide = false;
+
+ /** @var bool Refresh the diff cache */
+ protected $mRefreshCache = false;
+
/**#@-*/
/**
--
To view, visit https://gerrit.wikimedia.org/r/166143
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: merged
Gerrit-Change-Id: I9da63c1ceb339bfeba7beddc712be51977b95f65
Gerrit-PatchSet: 10
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Cacycle <[email protected]>
Gerrit-Reviewer: Anomie <[email protected]>
Gerrit-Reviewer: BryanDavis <[email protected]>
Gerrit-Reviewer: Cacycle <[email protected]>
Gerrit-Reviewer: Daniel Kinzler <[email protected]>
Gerrit-Reviewer: PleaseStand <[email protected]>
Gerrit-Reviewer: Reedy <[email protected]>
Gerrit-Reviewer: jenkins-bot <>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits