diff options
author | Daimona Eaytoy <daimona.wiki@gmail.com> | 2021-08-23 14:11:22 +0200 |
---|---|---|
committer | Daimona Eaytoy <daimona.wiki@gmail.com> | 2021-09-16 19:13:35 +0200 |
commit | 377342de8628f7849c5419ae6071b53a4894bf1b (patch) | |
tree | 651a83e3d4d9a513485b5f06f0e9c4be21c57481 /includes/HookContainer | |
parent | 76ba780e41df7b303c9e2a5ad780b957e9322480 (diff) | |
download | mediawikicore-377342de8628f7849c5419ae6071b53a4894bf1b.tar.gz mediawikicore-377342de8628f7849c5419ae6071b53a4894bf1b.zip |
Deprecate and replace legacy hooks in DeletePage
In both cases the typehints were changed to the new interfaces. For the
ArticleDelete hook, the replacement has no $error param and requires the
caller to set a fatal status if it wants to abort.
Bug: T288758
Change-Id: I9540f6ab2075bcf56bd4fdc79c611c883246cdce
Diffstat (limited to 'includes/HookContainer')
-rw-r--r-- | includes/HookContainer/DeprecatedHooks.php | 2 | ||||
-rw-r--r-- | includes/HookContainer/HookRunner.php | 34 |
2 files changed, 36 insertions, 0 deletions
diff --git a/includes/HookContainer/DeprecatedHooks.php b/includes/HookContainer/DeprecatedHooks.php index 35ff2512d782..f8a4bfa0df55 100644 --- a/includes/HookContainer/DeprecatedHooks.php +++ b/includes/HookContainer/DeprecatedHooks.php @@ -60,6 +60,8 @@ class DeprecatedHooks { 'UserSetCookies' => [ 'deprecatedVersion' => '1.27' ], 'WikiPageDeletionUpdates' => [ 'deprecatedVersion' => '1.32', 'silent' => true ], 'userCan' => [ 'deprecatedVersion' => '1.37' ], + 'ArticleDelete' => [ 'deprecatedVersion' => '1.37', 'silent' => true ], + 'ArticleDeleteComplete' => [ 'deprecatedVersion' => '1.37', 'silent' => true ], ]; /** diff --git a/includes/HookContainer/HookRunner.php b/includes/HookContainer/HookRunner.php index 99d939746023..c93aa475bf24 100644 --- a/includes/HookContainer/HookRunner.php +++ b/includes/HookContainer/HookRunner.php @@ -5,14 +5,18 @@ namespace MediaWiki\HookContainer; use Article; use Config; use IContextSource; +use ManualLogEntry; use MediaWiki\Linker\LinkRenderer; use MediaWiki\Linker\LinkTarget; +use MediaWiki\Page\ProperPageIdentity; +use MediaWiki\Permissions\Authority; use MediaWiki\Revision\RevisionRecord; use MediaWiki\User\UserIdentity; use ParserOptions; use ResourceLoaderContext; use Skin; use SpecialPage; +use StatusValue; use Title; /** @@ -449,6 +453,8 @@ class HookRunner implements \MediaWiki\Page\Hook\ImagePageShowTOCHook, \MediaWiki\Page\Hook\IsFileCacheableHook, \MediaWiki\Page\Hook\OpportunisticLinksUpdateHook, + \MediaWiki\Page\Hook\PageDeleteCompleteHook, + \MediaWiki\Page\Hook\PageDeleteHook, \MediaWiki\Page\Hook\PageDeletionDataUpdatesHook, \MediaWiki\Page\Hook\PageViewUpdatesHook, \MediaWiki\Page\Hook\RevisionFromEditCompleteHook, @@ -2708,6 +2714,34 @@ class HookRunner implements ); } + public function onPageDelete( + ProperPageIdentity $page, + Authority $deleter, + string $reason, + StatusValue $status, + bool $suppress + ) { + return $this->container->run( + 'PageDelete', + [ $page, $deleter, $reason, $status, $suppress ] + ); + } + + public function onPageDeleteComplete( + ProperPageIdentity $page, + Authority $deleter, + string $reason, + int $pageID, + RevisionRecord $deletedRev, + ManualLogEntry $logEntry, + int $archivedRevisionCount + ) { + return $this->container->run( + 'PageDeleteComplete', + [ $page, $deleter, $reason, $pageID, $deletedRev, $logEntry, $archivedRevisionCount ] + ); + } + public function onPageDeletionDataUpdates( $title, $revision, &$updates ) { return $this->container->run( 'PageDeletionDataUpdates', |