From 68692ebb69042d0464a92db08340d49f601fd1e4 Mon Sep 17 00:00:00 2001 From: cenarium Date: Sat, 21 Nov 2015 13:24:17 +0100 Subject: [PATCH] Add user and previous rev to HistoryRevisionTools, and user to DiffRevisionTools The next revision in the page history isn't necessarily the previous revision (due to selective undeletions, history merges, etc). This passes the next revision to HistoryRevisionTools so extensions can check if needed. Also, it passes the user to this hook and DiffRevisionTools to avoid use of wgUser or having to retrieve context. Change-Id: Ibc68f19040eebe3614e07f753f26bbfd376ae28d --- docs/hooks.txt | 3 +++ includes/actions/HistoryAction.php | 2 +- includes/diff/DifferenceEngine.php | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/hooks.txt b/docs/hooks.txt index c65cdb6e03..0cb4756b94 100644 --- a/docs/hooks.txt +++ b/docs/hooks.txt @@ -1094,6 +1094,7 @@ diff view, i.e. undo, etc. $newRev: Revision object of the "new" revision &$links: Array of HTML links $oldRev: Revision object of the "old" revision (may be null) +$user: Current user object 'DiffViewHeader': Called before diff display $diff: DifferenceEngine object that's calling @@ -1554,6 +1555,8 @@ Special:Version, use this to change the list. page history view, i.e. undo, rollback, etc. $rev: Revision object &$links: Array of HTML links +$prevRev: Revision object, next in line in page history, or null +$user: Current user object 'HTMLFileCache::useFileCache': Override whether a page should be cached in file cache. diff --git a/includes/actions/HistoryAction.php b/includes/actions/HistoryAction.php index 4da51c93ae..ca47fcec19 100644 --- a/includes/actions/HistoryAction.php +++ b/includes/actions/HistoryAction.php @@ -735,7 +735,7 @@ class HistoryPager extends ReverseChronologicalPager { } } // Allow extension to add their own links here - Hooks::run( 'HistoryRevisionTools', array( $rev, &$tools ) ); + Hooks::run( 'HistoryRevisionTools', array( $rev, &$tools, $prevRev, $user ) ); if ( $tools ) { $s2 .= ' ' . $this->msg( 'parentheses' )->rawParams( $lang->pipeList( $tools ) )->escaped(); diff --git a/includes/diff/DifferenceEngine.php b/includes/diff/DifferenceEngine.php index ae610fad53..93f0f6ce52 100644 --- a/includes/diff/DifferenceEngine.php +++ b/includes/diff/DifferenceEngine.php @@ -388,7 +388,8 @@ class DifferenceEngine extends ContextSource { $rdel = $this->revisionDeleteLink( $this->mNewRev ); # Allow extensions to define their own revision tools - Hooks::run( 'DiffRevisionTools', array( $this->mNewRev, &$revisionTools, $this->mOldRev ) ); + Hooks::run( 'DiffRevisionTools', + array( $this->mNewRev, &$revisionTools, $this->mOldRev, $user ) ); $formattedRevisionTools = array(); // Put each one in parentheses (poor man's button) foreach ( $revisionTools as $key => $tool ) { -- 2.20.1