aboutsummaryrefslogtreecommitdiffstats
path: root/includes/HookContainer
diff options
context:
space:
mode:
authorDaimona Eaytoy <daimona.wiki@gmail.com>2021-08-23 14:11:22 +0200
committerDaimona Eaytoy <daimona.wiki@gmail.com>2021-09-16 19:13:35 +0200
commit377342de8628f7849c5419ae6071b53a4894bf1b (patch)
tree651a83e3d4d9a513485b5f06f0e9c4be21c57481 /includes/HookContainer
parent76ba780e41df7b303c9e2a5ad780b957e9322480 (diff)
downloadmediawikicore-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.php2
-rw-r--r--includes/HookContainer/HookRunner.php34
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',