Add user and previous rev to HistoryRevisionTools, and user to DiffRevisionTools
authorcenarium <cenarium.sysop@gmail.com>
Sat, 21 Nov 2015 12:24:17 +0000 (13:24 +0100)
committerLegoktm <legoktm.wikipedia@gmail.com>
Mon, 14 Dec 2015 00:35:59 +0000 (00:35 +0000)
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
includes/actions/HistoryAction.php
includes/diff/DifferenceEngine.php

index c65cdb6..0cb4756 100644 (file)
@@ -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.
index 4da51c9..ca47fce 100644 (file)
@@ -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();
index ae610fa..93f0f6c 100644 (file)
@@ -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 ) {