diff --git a/extension.json b/extension.json index 7a59e4be..8adeffcf 100644 --- a/extension.json +++ b/extension.json @@ -19,8 +19,13 @@ "i18n" ] }, + "HookHandlers": { + "main": { + "class": "MediaWiki\\Extension\\Nuke\\Hooks" + } + }, "Hooks": { - "ContributionsToolLinks": "MediaWiki\\Extension\\Nuke\\Hooks::nukeContributionsLinks" + "ContributionsToolLinks": "main" }, "ResourceModules": { "ext.nuke.confirm": { diff --git a/includes/Hooks.php b/includes/Hooks.php index 74ab6f06..0a032000 100644 --- a/includes/Hooks.php +++ b/includes/Hooks.php @@ -2,29 +2,28 @@ namespace MediaWiki\Extension\Nuke; +use MediaWiki\Hook\ContributionsToolLinksHook; use SpecialPage; use Title; use Wikimedia\IPUtils; -class Hooks { +class Hooks implements ContributionsToolLinksHook { /** * Shows link to Special:Nuke on Special:Contributions/username if applicable * - * @param int $userId - * @param Title $userPageTitle - * @param string[] &$toolLinks - * @param SpecialPage $sp + * @param int $id + * @param Title $title + * @param string[] &$tools + * @param SpecialPage $specialPage */ - public static function nukeContributionsLinks( $userId, $userPageTitle, &$toolLinks, - SpecialPage $sp - ) { - $username = $userPageTitle->getText(); - if ( $sp->getUser()->isAllowed( 'nuke' ) && !IPUtils::isValidRange( $username ) ) { - $toolLinks['nuke'] = $sp->getLinkRenderer()->makeKnownLink( + public function onContributionsToolLinks( $id, Title $title, array &$tools, SpecialPage $specialPage ) { + $username = $title->getText(); + if ( $specialPage->getUser()->isAllowed( 'nuke' ) && !IPUtils::isValidRange( $username ) ) { + $tools['nuke'] = $specialPage->getLinkRenderer()->makeKnownLink( SpecialPage::getTitleFor( 'Nuke' ), - $sp->msg( 'nuke-linkoncontribs' )->text(), - [ 'title' => $sp->msg( 'nuke-linkoncontribs-text', $username )->text() ], + $specialPage->msg( 'nuke-linkoncontribs' )->text(), + [ 'title' => $specialPage->msg( 'nuke-linkoncontribs-text', $username )->text() ], [ 'target' => $username ] ); }