Pass archived page id to ArticleUndelete hook.
authorRob Moen <rmoen@wikimedia.org>
Thu, 15 May 2014 22:51:52 +0000 (15:51 -0700)
committerRobmoen <rmoen@wikimedia.org>
Tue, 20 May 2014 16:05:49 +0000 (16:05 +0000)
Needed for instrumentation of PageRestoration schema

Rationale:  By the time the hook runs, there is no longer record
of the previous page id.

Change-Id: If87a73e47def7a4404858f374780c3f1cf4d69b5
See: https://meta.wikimedia.org/wiki/Schema:PageRestoration
Needed by: Id40347ec268658dc854e4ab2dd38570b19db1477

includes/specials/SpecialUndelete.php

index 6d6b2c1..51235ee 100644 (file)
@@ -550,6 +550,7 @@ class PageArchive {
 
                $ret->seek( $rev_count - 1 ); // move to last
                $row = $ret->fetchObject(); // get newest archived rev
+               $oldPageId = (int)$row->ar_page_id; // pass this to ArticleUndelete hook
                $ret->seek( 0 ); // move back
 
                // grab the content to check consistency with global state before restoring the page.
@@ -642,7 +643,7 @@ class PageArchive {
                        );
                }
 
-               wfRunHooks( 'ArticleUndelete', array( &$this->title, $created, $comment ) );
+               wfRunHooks( 'ArticleUndelete', array( &$this->title, $created, $comment, $oldPageId ) );
 
                if ( $this->title->getNamespace() == NS_FILE ) {
                        $update = new HTMLCacheUpdate( $this->title, 'imagelinks' );