reedy@deploy1001:/srv/mediawiki-staging/php-1.32.0-wmf.24/extensions$ grep -R *Echo* | grep -v Echo/ | grep \.php Thanks/extension.json: "EchoCoreThanksPresentationModel": "includes/EchoCoreThanksPresentationModel.php", Thanks/extension.json: "EchoFlowThanksPresentationModel": "includes/EchoFlowThanksPresentationModel.php", Thanks/includes/ThanksHooks.php: * Add Thanks events to Echo Thanks/includes/ThanksHooks.php: * @param array &$notifications array of Echo notifications Thanks/includes/ThanksHooks.php: * @param array &$notificationCategories array of Echo notification categories Thanks/includes/ThanksHooks.php: public static function onBeforeCreateEchoEvent( Thanks/includes/ThanksHooks.php: 'presentation-model' => 'EchoCoreThanksPresentationModel', Thanks/includes/ThanksHooks.php: 'presentation-model' => 'EchoFlowThanksPresentationModel', Thanks/includes/ThanksHooks.php: * @param EchoEvent $event The event. Thanks/includes/ThanksHooks.php: public static function onEchoGetDefaultNotifiedUsers( $event, &$users ) { Thanks/includes/ThanksHooks.php: * Handler for EchoGetBundleRule hook, which defines the bundle rules for each notification. Thanks/includes/ThanksHooks.php: * @param EchoEvent $event The event being notified. Thanks/includes/ThanksHooks.php: public static function onEchoGetBundleRules( $event, &$bundleString ) { Thanks/includes/EchoCoreThanksPresentationModel.php:class EchoCoreThanksPresentationModel extends EchoEventPresentationModel { Thanks/includes/EchoFlowThanksPresentationModel.php:class EchoFlowThanksPresentationModel extends Flow\FlowPresentationModel { Thanks/includes/ApiThank.php: // Writes to the Echo database and sometimes log tables. Thanks/includes/ApiCoreThank.php: $excerpt = EchoDiscussionParser::getEditExcerpt( $revision, $this->getLanguage() ); Thanks/includes/ApiCoreThank.php: // Create the notification via Echo extension Thanks/includes/ApiCoreThank.php: EchoEvent::create( [ Thanks/includes/ApiFlowThank.php: // Create the notification via Echo extension Thanks/includes/ApiFlowThank.php: EchoEvent::create( [ Thanks/Thanks.php: * specific revisions. It relies on the Echo extension to send the actual thanks. Thanks/tests/phan/config.php: './../../extensions/Echo', Thanks/tests/phan/config.php: './../../extensions/Echo', CentralAuth/includes/specials/SpecialCentralAutoLogin.php: // Do not cache this, we want updated Echo numbers and such. Newsletter/NewsletterHooks.php: * Function to be called before EchoEvent Newsletter/NewsletterHooks.php: * @param array[] &$notifications Echo notifications Newsletter/NewsletterHooks.php: * @param array[] &$notificationCategories Echo notification categories Newsletter/NewsletterHooks.php: public static function onBeforeCreateEchoEvent( &$notifications, &$notificationCategories ) { Newsletter/NewsletterHooks.php: 'EchoNewsletterUserLocator::locateNewsletterSubscribedUsers', Newsletter/NewsletterHooks.php: 'presentation-model' => 'EchoNewsletterPresentationModel', Newsletter/NewsletterHooks.php: [ 'EchoUserLocator::locateFromEventExtra', [ 'new-publishers-id' ] ] Newsletter/NewsletterHooks.php: 'presentation-model' => 'EchoNewsletterPublisherAddedPresentationModel', Newsletter/NewsletterHooks.php: [ 'EchoUserLocator::locateFromEventExtra', [ 'del-publishers-id' ] ] Newsletter/NewsletterHooks.php: 'presentation-model' => 'EchoNewsletterPublisherRemovedPresentationModel', Newsletter/NewsletterHooks.php: [ 'EchoUserLocator::locateFromEventExtra', [ 'new-subscribers-id' ] ] Newsletter/NewsletterHooks.php: 'presentation-model' => 'EchoNewsletterSubscribedPresentationModel', Newsletter/NewsletterHooks.php: [ 'EchoUserLocator::locateFromEventExtra', [ 'removed-subscribers-id' ] ] Newsletter/NewsletterHooks.php: 'presentation-model' => 'EchoNewsletterUnsubscribedPresentationModel', Newsletter/includes/Newsletter.php: EchoEvent::create( $notification ); Newsletter/includes/specials/SpecialNewsletter.php: // Echo handles read-only mode on their own but we'll now let the user know Newsletter/includes/specials/SpecialNewsletter.php: * Echo event). This assumes that permissions check etc has been done already. Newsletter/includes/specials/SpecialNewsletter.php: * @throws Exception if Echo is not installed Newsletter/includes/specials/SpecialNewsletter.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Newsletter/includes/specials/SpecialNewsletter.php: throw new Exception( 'Echo extension is not installed.' ); Newsletter/includes/specials/SpecialNewsletter.php: // DB insert failed. :( so don't create an Echo event and stop from here Newsletter/includes/specials/SpecialNewsletter.php: EchoEvent::create( Newsletter/includes/specials/SpecialNewsletter.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Newsletter/includes/specials/SpecialNewsletter.php: throw new Exception( 'Echo extension is not installed.' ); Newsletter/includes/specials/SpecialNewsletter.php: EchoEvent::create( Newsletter/includes/specials/SpecialNewsletter.php: EchoEvent::create( GlobalPreferences/includes/Hooks.php: // Echo notifications. Don't allow these through if the main checkbox is not checked. Flow/maintenance/FlowUpdateResolvedNotifTitles.php: $this->mDescription = "Update the titles of flow-topic-resolved Echo events to point to boards instead of topics"; Flow/maintenance/FlowUpdateResolvedNotifTitles.php: $dbFactory = MWEchoDbFactory::newFromDefault(); Flow/maintenance/FlowUpdateResolvedNotifTitles.php: $dbw = $dbFactory->getEchoDb( DB_MASTER ); Flow/maintenance/FlowUpdateResolvedNotifTitles.php: $dbr = $dbFactory->getEchoDb( DB_REPLICA ); Flow/maintenance/FlowFixLinks.php: // disable Echo notifications for this script Flow/maintenance/FlowFixLinks.php: global $wgEchoNotifications; Flow/maintenance/FlowFixLinks.php: $wgEchoNotifications = []; Flow/includes/Utils/NamespaceIterator.php:use EchoCallbackIterator; Flow/includes/Utils/NamespaceIterator.php: return new EchoCallbackIterator( $it, function ( $row ) use ( $namespace ) { Flow/includes/Utils/PagesWithPropertyIterator.php:use EchoCallbackIterator; Flow/includes/Utils/PagesWithPropertyIterator.php: return new EchoCallbackIterator( $it, function ( $row ) { Flow/includes/Import/Postprocessor/LqtNotifications.php:use EchoCallbackIterator; Flow/includes/Import/Postprocessor/LqtNotifications.php:use EchoEvent; Flow/includes/Import/Postprocessor/LqtNotifications.php: * Converts LQT unread notifications into Echo notifications after a topic is imported Flow/includes/Import/Postprocessor/LqtNotifications.php: global $wgEchoNotifications; Flow/includes/Import/Postprocessor/LqtNotifications.php: unset( $wgEchoNotifications[$type]['user-locators'] ); Flow/includes/Import/Postprocessor/LqtNotifications.php: $wgEchoNotifications[$type]['immediate'] = true; Flow/includes/Import/Postprocessor/LqtNotifications.php: $wgEchoNotifications['flow-post-reply']['user-locators'] = [ Flow/includes/Import/Postprocessor/LqtNotifications.php: function ( EchoEvent $event ) use ( $self ) { Flow/includes/Import/Postprocessor/LqtNotifications.php: * @param EchoEvent $event Flow/includes/Import/Postprocessor/LqtNotifications.php: public function locateUsersWithPendingLqtNotifications( EchoEvent $event, $batchSize = 500 ) { Flow/includes/Import/Postprocessor/LqtNotifications.php: $it = new EchoCallbackIterator( $it, function ( $row ) { Flow/includes/Import/LiquidThreadsApi/Objects.php: $users = \EchoDiscussionParser::extractUsersFromLine( $signatureText ); Flow/includes/Import/Wikitext/ConversionStrategy.php: * It is plausible something with the EchoDiscussionParser could be worked up Flow/includes/Notifications/FlowPresentationModel.php:use EchoEventPresentationModel; Flow/includes/Notifications/FlowPresentationModel.php:abstract class FlowPresentationModel extends EchoEventPresentationModel { Flow/includes/Notifications/UserLocator.php:use EchoEvent; Flow/includes/Notifications/UserLocator.php:use EchoUserLocator; Flow/includes/Notifications/UserLocator.php:class NotificationsUserLocator extends EchoUserLocator { Flow/includes/Notifications/UserLocator.php: * @param EchoEvent $event Flow/includes/Notifications/UserLocator.php: public static function locateUsersWatchingTopic( EchoEvent $event ) { Flow/includes/Notifications/UserLocator.php: * @param EchoEvent $event Flow/includes/Notifications/UserLocator.php: public static function locatePostAuthors( EchoEvent $event ) { Flow/includes/Notifications/UserLocator.php: * @param EchoEvent $event Flow/includes/Notifications/UserLocator.php: public static function locateMentionedUsers( EchoEvent $event ) { Flow/includes/Notifications/MentionStatusPresentationModel.php:class MentionStatusPresentationModel extends \EchoMentionStatusPresentationModel { Flow/includes/Notifications/Controller.php:use EchoEventMapper; Flow/includes/Notifications/Controller.php:use EchoModerationController; Flow/includes/Notifications/Controller.php:use EchoEvent; Flow/includes/Notifications/Controller.php: public static function onBeforeCreateEchoEvent( &$notifs, &$categories, &$icons ) { Flow/includes/Notifications/Controller.php: * @return array Array of created EchoEvent objects. Flow/includes/Notifications/Controller.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Flow/includes/Notifications/Controller.php: $events = [ EchoEvent::create( [ 'type' => 'flow-description-edited' ] + $info ) ]; Flow/includes/Notifications/Controller.php: $events[] = EchoEvent::create( [ 'type' => 'flowusertalk-description-edited' ] + $info ); Flow/includes/Notifications/Controller.php: * @return array Array of created EchoEvent objects. Flow/includes/Notifications/Controller.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Flow/includes/Notifications/Controller.php: $events = [ EchoEvent::create( [ 'type' => $eventName ] + $info ) ]; Flow/includes/Notifications/Controller.php: $events[] = EchoEvent::create( [ 'type' => $usertalkEvent ] + $info ); Flow/includes/Notifications/Controller.php: * @return array Array of created EchoEvent objects. Flow/includes/Notifications/Controller.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Flow/includes/Notifications/Controller.php: $events = [ EchoEvent::create( [ 'type' => 'flow-summary-edited' ] + $info ) ]; Flow/includes/Notifications/Controller.php: $events[] = EchoEvent::create( [ 'type' => 'flowusertalk-summary-edited' ] + $info ); Flow/includes/Notifications/Controller.php: * @return array Array of created EchoEvent objects. Flow/includes/Notifications/Controller.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Flow/includes/Notifications/Controller.php: $events[] = EchoEvent::create( [ 'type' => 'flow-new-topic' ] + $eventData ); Flow/includes/Notifications/Controller.php: $events[] = EchoEvent::create( [ 'type' => 'flowusertalk-new-topic' ] + $eventData ); Flow/includes/Notifications/Controller.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Flow/includes/Notifications/Controller.php: $events = [ EchoEvent::create( [ 'type' => 'flow-topic-resolved' ] + $info ) ]; Flow/includes/Notifications/Controller.php: $events[] = EchoEvent::create( [ 'type' => 'flowusertalk-topic-resolved' ] + $info ); Flow/includes/Notifications/Controller.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Flow/includes/Notifications/Controller.php: $events[] = EchoEvent::create( [ Flow/includes/Notifications/Controller.php: * @return bool|EchoEvent[] Flow/includes/Notifications/Controller.php: global $wgEchoMentionStatusNotifications, $wgFlowMaxMentionCount; Flow/includes/Notifications/Controller.php: $events[] = EchoEvent::create( [ Flow/includes/Notifications/Controller.php: if ( $wgEchoMentionStatusNotifications && $mentionsSkipped ) { Flow/includes/Notifications/Controller.php: $events[] = EchoEvent::create( [ Flow/includes/Notifications/Controller.php: * Handler for EchoGetBundleRule hook, which defines the bundle rules for each notification Flow/includes/Notifications/Controller.php: * @param EchoEvent $event Flow/includes/Notifications/Controller.php: public static function onEchoGetBundleRules( $event, &$bundleString ) { Flow/includes/Notifications/Controller.php: * @param EchoEvent[] $bundledEvents Flow/includes/Notifications/Controller.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Flow/includes/Notifications/Controller.php: $eventMapper = new EchoEventMapper(); Flow/includes/Notifications/Controller.php: EchoModerationController::moderate( $eventIds, $moderated ); Flow/includes/Notifications/Controller.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Flow/includes/Notifications/Controller.php: $eventMapper = new \EchoEventMapper(); Flow/includes/Notifications/Controller.php: EchoModerationController::moderate( $eventIds, $moderated ); Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateUsersWatchingTitle', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateUsersWatchingTitle', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner' Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateTalkPageOwner', Flow/includes/Notifications/Notifications.php: 'EchoUserLocator::locateEventAgent' Flow/includes/Formatter/RevisionFormatter.php: * Mimic Echo parameter formatting Flow/Hooks.php: * Flow has its own notifications through Echo. Flow/Hooks.php: * Suppress all Echo notifications generated by the Talk page manager user Flow/Hooks.php: * @param EchoEvent $event Flow/Hooks.php: public static function onBeforeEchoEventInsert( EchoEvent $event ) { Flow/Hooks.php: * @param EchoEvent $event Flow/Hooks.php: public static function onEchoAbortEmailNotification( User $user, EchoEvent $event ) { Flow/tests/phpunit/Import/LiquidThreadsApi/ConversionStrategyTest.php: // Stash existing $wgEchoNotifications and provide a dummy for these Flow/tests/phpunit/Import/LiquidThreadsApi/ConversionStrategyTest.php: global $wgEchoNotifications; Flow/tests/phpunit/Import/LiquidThreadsApi/ConversionStrategyTest.php: $this->setMwGlobals( 'wgEchoNotifications', $wgEchoNotifications ); Flow/tests/phpunit/Notifications/NotifiedUsersTest.php:use EchoNotificationController; Flow/tests/phpunit/Notifications/NotifiedUsersTest.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Flow/tests/phpunit/Notifications/NotifiedUsersTest.php: $iterator = EchoNotificationController::getUsersToNotifyForEvent( $event ); MassMessage/includes/MassMessage.php: * Modified from the Echo extension MassMessage/includes/MassMessageHooks.php:use EchoEvent; MassMessage/includes/MassMessageHooks.php: * Echo! MassMessage/includes/MassMessageHooks.php: * @param EchoEvent $event MassMessage/includes/MassMessageHooks.php: public static function onBeforeEchoEventInsert( EchoEvent $event ) { MassMessage/tests/phan/stubs/EchoEvent.php: * Stub of Echo's EchoEvent class for phan MassMessage/tests/phan/stubs/EchoEvent.php:class EchoEvent { MobileFrontend/includes/MobileFrontend.hooks.php: * * Modules for the notifications overlay, if the Echo extension is loaded. MobileFrontend/includes/MobileFrontend.hooks.php: // add Echo, if it's installed MobileFrontend/includes/MobileFrontend.hooks.php: if ( ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { MobileFrontend/includes/MobileFrontend.hooks.php: // defined in Echo OAuth/extension.json: "MediaWiki\\Extensions\\OAuth\\EchoOAuthStageChangePresentationModel": "frontend/EchoOAuthStageChangePresentationModel.php", OAuth/frontend/MWOAuthUI.hooks.php: public static function onBeforeCreateEchoEvent( OAuth/frontend/MWOAuthUI.hooks.php: EchoOAuthStageChangePresentationModel::getDefinition( $eventName ); OAuth/frontend/EchoOAuthStageChangePresentationModel.php:use EchoAttributeManager; OAuth/frontend/EchoOAuthStageChangePresentationModel.php:use EchoEventPresentationModel; OAuth/frontend/EchoOAuthStageChangePresentationModel.php:class EchoOAuthStageChangePresentationModel extends EchoEventPresentationModel { OAuth/frontend/EchoOAuthStageChangePresentationModel.php: * Helper function for $wgEchoNotifications OAuth/frontend/EchoOAuthStageChangePresentationModel.php: EchoAttributeManager::ATTR_LOCATORS => [ MWOAuthUtils::class . '::locateUsersToNotify' ], OAuth/backend/MWOAuthUtils.php:use EchoEvent; OAuth/backend/MWOAuthUtils.php: * Will be used as an EchoAttributeManager::ATTR_LOCATORS callback. OAuth/backend/MWOAuthUtils.php: * @param EchoEvent $event OAuth/backend/MWOAuthUtils.php: public static function locateUsersToNotify( EchoEvent $event ) { OAuth/control/MWOAuthConsumerSubmitControl.php: } elseif ( !class_exists( '\EchoEvent' ) ) { OAuth/control/MWOAuthConsumerSubmitControl.php: \EchoEvent::create( [ ContentTranslation/includes/Notification.php: \EchoEvent::create( [ ContentTranslation/includes/Notification.php: \EchoEvent::create( [ ContentTranslation/includes/Notification.php: \EchoEvent::create( [ ContentTranslation/includes/Notification.php: \EchoEvent::create( [ ContentTranslation/includes/Notification.php: \EchoEvent::create( [ ContentTranslation/includes/DeletedDraftNotificationPresentationModel.php:use EchoEventPresentationModel; ContentTranslation/includes/DeletedDraftNotificationPresentationModel.php:class DeletedDraftNotificationPresentationModel extends EchoEventPresentationModel { ContentTranslation/includes/EchoNotificationPresentationModel.php:class EchoNotificationPresentationModel extends \EchoEventPresentationModel { ContentTranslation/specials/ContentTranslationSpecialPage.php: // Display notification tools from Echo extension and ULS. ContentTranslation/specials/ContentTranslationSpecialPage.php: // from Echo extension to register event listeners correctly in the Echo code. ContentTranslation/api/ApiContentTranslationPublish.php: * - When relevant, Echo notifications about publishing milestones will be sent. ContentTranslation/api/ApiContentTranslationPublish.php: // Check if Echo is available. If not, skip. ContentTranslation/api/ApiContentTranslationPublish.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { ContentTranslation/ContentTranslation.hooks.php: * Add notification events to Echo ContentTranslation/ContentTranslation.hooks.php: * @param array &$notifications array of Echo notifications ContentTranslation/ContentTranslation.hooks.php: * @param array &$notificationCategories array of Echo notification categories ContentTranslation/ContentTranslation.hooks.php: public static function onBeforeCreateEchoEvent( ContentTranslation/ContentTranslation.hooks.php: 'presentation-model' => 'ContentTranslation\\EchoNotificationPresentationModel', ContentTranslation/ContentTranslation.hooks.php: 'presentation-model' => 'ContentTranslation\\EchoNotificationPresentationModel', ContentTranslation/ContentTranslation.hooks.php: 'presentation-model' => 'ContentTranslation\\EchoNotificationPresentationModel', ContentTranslation/ContentTranslation.hooks.php: 'presentation-model' => 'ContentTranslation\\EchoNotificationPresentationModel', ContentTranslation/ContentTranslation.hooks.php: * @param EchoEvent $event ContentTranslation/ContentTranslation.hooks.php: public static function onEchoGetDefaultNotifiedUsers( $event, &$users ) { ContentTranslation/ContentTranslation.hooks.php: * @param EchoEvent $event ContentTranslation/ContentTranslation.hooks.php: public static function onEchoGetBundleRules( $event, &$bundleString ) { Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php:use EchoEvent; Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php:use EchoEventPresentationModel; Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php:use Wikibase\Client\Hooks\EchoNotificationsHandlers; Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php: * Presentation model for Echo notifications Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php:class PageConnectionPresentationModel extends EchoEventPresentationModel { Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php: * @param EchoEvent $event Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php: public function callbackForBundleCount( EchoEvent $event ) { Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php: * @see EchoEventPresentationModel::getIconType() Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php: return EchoNotificationsHandlers::NOTIFICATION_TYPE; Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php: * @see EchoEventPresentationModel::canRender() Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php: * @see EchoEventPresentationModel::getHeaderMessage() Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php: * @see EchoEventPresentationModel::getSubjectMessageKey() Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php: * @see EchoEventPresentationModel::getSubjectMessage() Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php: * @see EchoEventPresentationModel::getPrimaryLink() Wikibase/client/includes/Notifications/PageConnectionPresentationModel.php: * @see EchoEventPresentationModel::getSecondaryLinks() Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php:use EchoAttributeManager; Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php:use EchoUserLocator; Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: * Handlers for hooks (e.g. BeforeCreateEchoEvent) called when Echo extension Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php:class EchoSetupHookHandlers { Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: private $sendEchoNotification; Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: * @param bool $sendEchoNotification Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: public function __construct( $sendEchoNotification, $echoIcon ) { Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: $this->sendEchoNotification = $sendEchoNotification; Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: $settings->getSetting( 'sendEchoNotification' ), Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: * Handler for BeforeCreateEchoEvent hook Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: * @see doBeforeCreateEchoEvent Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: public static function onBeforeCreateEchoEvent( Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: $self->doBeforeCreateEchoEvent( $notifications, $notificationCategories, $icons ); Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: public function doBeforeCreateEchoEvent( Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: if ( $this->sendEchoNotification !== true ) { Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: $notifications[EchoNotificationsHandlers::NOTIFICATION_TYPE] = [ Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: EchoAttributeManager::ATTR_LOCATORS => [ Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: EchoUserLocator::class . '::locateArticleCreator', Wikibase/client/includes/Hooks/EchoSetupHookHandlers.php: $icons[EchoNotificationsHandlers::NOTIFICATION_TYPE] = $this->echoIcon ?: [ Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php:use EchoEvent; Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php: * Handlers for client Echo notifications Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php:class EchoNotificationsHandlers { Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php: private $sendEchoNotification; Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php: * @param bool $sendEchoNotification Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php: $sendEchoNotification, Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php: $this->sendEchoNotification = $sendEchoNotification; Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php: $settings->getSetting( 'sendEchoNotification' ), Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php: * Handler for EchoGetBundleRules hook Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php: * @param EchoEvent $event Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php: public static function onEchoGetBundleRules( EchoEvent $event, &$bundleString ) { Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php: if ( $this->sendEchoNotification === true ) { Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php: if ( $this->sendEchoNotification !== true ) { Wikibase/client/includes/Hooks/EchoNotificationsHandlers.php: EchoEvent::create( [ Wikibase/client/config/WikibaseClient.default.php: 'sendEchoNotification' => false, Wikibase/client/WikibaseClient.php: // for client notifications (requires the Echo extension) Wikibase/client/WikibaseClient.php: // note that Echo calls BeforeCreateEchoEvent hook when it is being initialized, Wikibase/client/WikibaseClient.php: // thus we have to register these two handlers disregarding Echo is loaded or not Wikibase/client/WikibaseClient.php: $wgHooks['BeforeCreateEchoEvent'][] = '\Wikibase\Client\Hooks\EchoSetupHookHandlers::onBeforeCreateEchoEvent'; Wikibase/client/WikibaseClient.php: $wgHooks['EchoGetBundleRules'][] = '\Wikibase\Client\Hooks\EchoNotificationsHandlers::onEchoGetBundleRules'; Wikibase/client/ClientHooks.php:use Wikibase\Client\Hooks\EchoNotificationsHandlers; Wikibase/client/ClientHooks.php: // These hooks should only be run if we use the Echo extension Wikibase/client/ClientHooks.php: if ( ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Wikibase/client/ClientHooks.php: $wgHooks['LocalUserCreated'][] = EchoNotificationsHandlers::class . '::onLocalUserCreated'; Wikibase/client/ClientHooks.php: $wgHooks['WikibaseHandleChange'][] = EchoNotificationsHandlers::class . '::onWikibaseHandleChange'; Wikibase/client/autoload.php: 'Wikibase\\Client\\Hooks\\EchoNotificationsHandlers' => __DIR__ . '/includes/Hooks/EchoNotificationsHandlers.php', Wikibase/client/autoload.php: 'Wikibase\\Client\\Hooks\\EchoSetupHookHandlers' => __DIR__ . '/includes/Hooks/EchoSetupHookHandlers.php', Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php:use EchoEvent; Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php:use EchoEventPresentationModel; Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php:use Wikibase\Client\Hooks\EchoNotificationsHandlers; Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php:use Wikibase\Client\Hooks\EchoSetupHookHandlers; Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: $this->markTestSkipped( "Echo not loaded" ); Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: * @return EchoEvent Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: $event = $this->getMockBuilder( EchoEvent::class ) Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: ->will( $this->returnValue( EchoNotificationsHandlers::NOTIFICATION_TYPE ) ); Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: global $wgEchoNotifications, $wgEchoNotificationCategories, $wgEchoNotificationIcons; Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: $handlers = new EchoSetupHookHandlers( Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: $handlers->doBeforeCreateEchoEvent( Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: $wgEchoNotifications, $wgEchoNotificationCategories, $wgEchoNotificationIcons Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: EchoEventPresentationModel::supportsPresentationModel( $event->getType() ), Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: "Failed asserting that Echo supports our notification events" Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: $model = EchoEventPresentationModel::factory( $event, Language::factory( 'en' ), $user ); Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: $wgEchoNotificationIcons, Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: unset( $wgEchoNotifications[EchoNotificationsHandlers::NOTIFICATION_TYPE] ); Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: unset( $wgEchoNotificationCategories['wikibase-action'] ); Wikibase/client/tests/phpunit/includes/Notifications/PageConnectionPresentationModelTest.php: unset( $wgEchoNotificationIcons[EchoNotificationsHandlers::NOTIFICATION_TYPE] ); Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php:use Wikibase\Client\Hooks\EchoNotificationsHandlers; Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php:use Wikibase\Client\Hooks\EchoSetupHookHandlers; Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php: * @covers Wikibase\Client\Hooks\EchoSetupHookHandlers Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php:class EchoSetupHookHandlersTest extends MediaWikiTestCase { Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php: public function beforeCreateEchoEventProvider() { Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php: * @dataProvider beforeCreateEchoEventProvider Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php: public function testBeforeCreateEchoEvent( $register, $icon, $expectedIcon ) { Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php: $this->markTestSkipped( "Echo not loaded" ); Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php: $handlers = new EchoSetupHookHandlers( $register, $icon ); Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php: $handlers->doBeforeCreateEchoEvent( $notifications, $categories, $icons ); Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php: $this->assertSame( $register, isset( $notifications[EchoNotificationsHandlers::NOTIFICATION_TYPE] ) ); Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php: $this->assertSame( $register, isset( $icons[EchoNotificationsHandlers::NOTIFICATION_TYPE] ) ); Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php: array_keys( $icons[EchoNotificationsHandlers::NOTIFICATION_TYPE] ) Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php: $icons[EchoNotificationsHandlers::NOTIFICATION_TYPE]['path'] Wikibase/client/tests/phpunit/includes/Hooks/EchoSetupHookHandlersTest.php: $icons[EchoNotificationsHandlers::NOTIFICATION_TYPE] Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php:use Wikibase\Client\Hooks\EchoNotificationsHandlers; Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php: * @covers Wikibase\Client\Hooks\EchoNotificationsHandlers Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php:class EchoNotificationsHandlersTest extends MediaWikiTestCase { Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php: $this->markTestSkipped( "Echo not loaded" ); Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php: * @return EchoNotificationsHandlers Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php: return new EchoNotificationsHandlers( Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php: $settings->getSetting( 'sendEchoNotification' ), Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php: $settings->setSetting( 'sendEchoNotification', true ); Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php: $settings->setSetting( 'sendEchoNotification', false ); Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php: $settings->setSetting( 'sendEchoNotification', true ); Wikibase/client/tests/phpunit/includes/Hooks/EchoNotificationsHandlersTest.php: $handlers = new EchoNotificationsHandlers( Wikibase/tests/phan/stubs/echo.php: * the Echo extension. Wikibase/tests/phan/stubs/echo.php:class EchoAttributeManager { Wikibase/tests/phan/stubs/echo.php:class EchoEvent { Wikibase/tests/phan/stubs/echo.php: * @return EchoEvent|bool Wikibase/tests/phan/stubs/echo.php:class EchoEventPresentationModel { Wikibase/tests/phan/stubs/echo.php: * @var EchoEvent Wikibase/tests/phan/stubs/echo.php:class EchoUserLocator { Wikibase/lib/tests/phpunit/Formatters/TimeDetailsFormatterTest.php: public function testGivenInvalidTimeValue_formatEchoesTimeValueFields() { Wikibase/lib/tests/phpunit/Formatters/TimeDetailsFormatterTest.php: public function testGivenValidTimeValueWithInvalidPrecision_formatEchoesTimeValueFields() { Wikibase/lib/tests/phpunit/Formatters/TimeDetailsFormatterTest.php: public function testGivenValidTimeValueWithInvalidBeforeAndAfter_formatEchoesTimeValueFields() { BounceHandler/extension.json: "EchoBounceHandlerFormatter": "includes/EchoBounceHandlerFormatter.php", BounceHandler/extension.json: "EchoBounceHandlerPresentationModel": "includes/EchoBounceHandlerPresentationModel.php" BounceHandler/includes/EchoBounceHandlerFormatter.php:class EchoBounceHandlerFormatter extends EchoBasicFormatter { BounceHandler/includes/EchoBounceHandlerFormatter.php: * @param EchoEvent $event BounceHandler/includes/EchoBounceHandlerFormatter.php: protected function processParam( EchoEvent $event, $param, Message $message, User $user ) { BounceHandler/includes/EchoBounceHandlerFormatter.php: * Overriding implementation in EchoBasicFormatter BounceHandler/includes/EchoBounceHandlerFormatter.php: * @param EchoEvent $event BounceHandler/includes/EchoBounceHandlerFormatter.php: protected function getLinkParams( EchoEvent $event, User $user, $destination ) { BounceHandler/includes/BounceHandlerHooks.php: * Add BounceHandler events to Echo BounceHandler/includes/BounceHandlerHooks.php: * @param array &$notifications Echo notifications BounceHandler/includes/BounceHandlerHooks.php: public static function onBeforeCreateEchoEvent( array &$notifications ) { BounceHandler/includes/BounceHandlerHooks.php: 'presentation-model' => 'EchoBounceHandlerPresentationModel', BounceHandler/includes/BounceHandlerHooks.php: 'formatter-class' => 'EchoBounceHandlerFormatter', BounceHandler/includes/BounceHandlerHooks.php: // We cannot have additional Echo emails being sent after a user is un-subscribed BounceHandler/includes/BounceHandlerHooks.php: * @param EchoEvent $event BounceHandler/includes/BounceHandlerHooks.php: public static function onEchoGetDefaultNotifiedUsers( EchoEvent $event, array &$users ) { BounceHandler/includes/BounceHandlerNotificationJob.php: $unsubscribeNotification->createEchoNotification( $failedUserId, $failedUserEmailAddress ); BounceHandler/includes/BounceHandlerActions.php: * Function to trigger Echo notifications BounceHandler/includes/BounceHandlerActions.php: public function createEchoNotification( $userId, $email ) { BounceHandler/includes/BounceHandlerActions.php: if ( ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { BounceHandler/includes/BounceHandlerActions.php: EchoEvent::create( [ BounceHandler/includes/BounceHandlerActions.php: * Function to inject Echo notification to the last source of bounce for an BounceHandler/includes/BounceHandlerActions.php: $this->createEchoNotification( $bounceUserId, $originalEmail ); BounceHandler/includes/EchoBounceHandlerPresentationModel.php:class EchoBounceHandlerPresentationModel extends EchoEventPresentationModel { WikimediaEvents/includes/WikimediaEventsHooks.php: // Modified version of original method from the Echo extension WikimediaMaintenance/createExtensionTables.php: $this->output( "Using special database connection for Echo" ); WikimediaMaintenance/createExtensionTables.php: $dbw = MWEchoDbFactory::newFromDefault()->getEchoDb( DB_MASTER ); WikimediaMaintenance/createExtensionTables.php: $path = "$IP/extensions/Echo"; WikimediaMaintenance/addWiki.php: // Initialise Echo cluster if applicable. WikimediaMaintenance/addWiki.php: // It will create the Echo tables in the main database if WikimediaMaintenance/addWiki.php: $echoDbW = MWEchoDbFactory::newFromDefault()->getEchoDb( DB_MASTER ); UserMerge/MergeUser.php: // Check if a different database object was passed (Echo or Flow) PageTriage/includes/PageTriageUtil.php:use EchoEvent; PageTriage/includes/PageTriageUtil.php: * Attempt to create an Echo notification event for PageTriage/includes/PageTriageUtil.php: if ( !ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { PageTriage/includes/PageTriageUtil.php: EchoEvent::create( $params ); PageTriage/includes/Hooks.php:use EchoEvent; PageTriage/includes/Hooks.php: * Add PageTriage events to Echo PageTriage/includes/Hooks.php: public static function onBeforeCreateEchoEvent( PageTriage/includes/Hooks.php: global $wgPageTriageEnabledEchoEvents; PageTriage/includes/Hooks.php: if ( $wgPageTriageEnabledEchoEvents ) { PageTriage/includes/Hooks.php: if ( in_array( 'pagetriage-mark-as-reviewed', $wgPageTriageEnabledEchoEvents ) ) { PageTriage/includes/Hooks.php: if ( in_array( 'pagetriage-add-maintenance-tag', $wgPageTriageEnabledEchoEvents ) ) { PageTriage/includes/Hooks.php: if ( in_array( 'pagetriage-add-deletion-tag', $wgPageTriageEnabledEchoEvents ) ) { PageTriage/includes/Hooks.php: * @param EchoEvent $event PageTriage/includes/Hooks.php: public static function onEchoGetDefaultNotifiedUsers( $event, &$users ) { PageTriage/includes/Notifications/PageTriagePresentationModel.php:use EchoEventPresentationModel; PageTriage/includes/Notifications/PageTriagePresentationModel.php:abstract class PageTriagePresentationModel extends EchoEventPresentationModel { PageTriage/tests/phan/config.php: './../../extensions/Echo', PageTriage/tests/phan/config.php: './../../extensions/Echo', LoginNotify/includes/Hooks.php:use EchoAttributeManager; LoginNotify/includes/Hooks.php:use EchoEvent; LoginNotify/includes/Hooks.php: * Add LoginNotify events to Echo LoginNotify/includes/Hooks.php: * @param string[] &$notifications Array of Echo notifications LoginNotify/includes/Hooks.php: * @param string[] &$notificationCategories Array of Echo notification categories LoginNotify/includes/Hooks.php: public static function onBeforeCreateEchoEvent( LoginNotify/includes/Hooks.php: EchoAttributeManager::ATTR_LOCATORS => [ LoginNotify/includes/Hooks.php: 'EchoUserLocator::locateEventAgent' LoginNotify/includes/Hooks.php: * @param EchoEvent $event LoginNotify/includes/Hooks.php: public static function onEchoGetBundleRules( EchoEvent $event, &$bundleString ) { LoginNotify/includes/PresentationModel.php:use EchoEvent; LoginNotify/includes/PresentationModel.php:use EchoEventPresentationModel; LoginNotify/includes/PresentationModel.php:class PresentationModel extends EchoEventPresentationModel { LoginNotify/includes/PresentationModel.php: $totalAttempts = array_reduce( $this->getBundledEvents(), function ( $sum, EchoEvent $event ) { LoginNotify/includes/LoginNotify.php:use EchoEvent; LoginNotify/includes/LoginNotify.php: EchoEvent::create( [ LoginNotify/tests/phan/config.php: './../../extensions/Echo', LoginNotify/tests/phan/config.php: './../../extensions/Echo', OpenStackManager/OpenStackManager.php:$wgAutoloadClasses['EchoOpenStackManagerPresentationModel'] = OpenStackManager/OpenStackManager.php: $dir . 'EchoOpenStackManagerPresentationModel.php'; OpenStackManager/OpenStackManager.php:# Echo integration OpenStackManager/OpenStackManager.php:$wgHooks['BeforeCreateEchoEvent'][] = 'efOpenStackOnBeforeCreateEchoEvent'; OpenStackManager/OpenStackManager.php:$wgHooks['EchoGetDefaultNotifiedUsers'][] = 'efOpenStackGetDefaultNotifiedUsers'; OpenStackManager/OpenStackManager.php: * Add OSM events to Echo. OpenStackManager/OpenStackManager.php: * @param array &$notifications Echo notifications OpenStackManager/OpenStackManager.php: * @param array &$notificationCategories Echo notification categories OpenStackManager/OpenStackManager.php: * @param array &$icons Echo icons OpenStackManager/OpenStackManager.php:function efOpenStackOnBeforeCreateEchoEvent( OpenStackManager/OpenStackManager.php: 'presentation-model' => 'EchoOpenStackManagerPresentationModel', OpenStackManager/OpenStackManager.php: 'presentation-model' => 'EchoOpenStackManagerPresentationModel', OpenStackManager/OpenStackManager.php: 'presentation-model' => 'EchoOpenStackManagerPresentationModel', OpenStackManager/OpenStackManager.php: 'presentation-model' => 'EchoOpenStackManagerPresentationModel', OpenStackManager/OpenStackManager.php: * @param EchoEvent $event EchoEvent to get implicitly subscribed users for OpenStackManager/maintenance/onInstanceActionCompletion.php: * completed. It triggers an Echo notification to the relevant users OpenStackManager/maintenance/onInstanceActionCompletion.php: * Maintenance script that triggers an Echo notification for instance action completion. OpenStackManager/maintenance/onInstanceActionCompletion.php: $this->requireExtension( 'Echo' ); OpenStackManager/maintenance/onInstanceActionCompletion.php: $successful = EchoEvent::create( [ OpenStackManager/special/SpecialNovaProject.php: if ( ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { OpenStackManager/special/SpecialNovaProject.php: EchoEvent::create( [ OpenStackManager/EchoOpenStackManagerPresentationModel.php: * @see https://www.mediawiki.org/wiki/Echo_%28Notifications%29/New_formatter_system OpenStackManager/EchoOpenStackManagerPresentationModel.php:class EchoOpenStackManagerPresentationModel extends EchoEventPresentationModel { OpenStackManager/OpenStackManagerEvent.php: if ( ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) ) { OpenStackManager/OpenStackManagerEvent.php: EchoEvent::create( [ FlaggedRevs/business/RevisionReviewForm.php: ExtensionRegistry::getInstance()->isLoaded( 'Echo' ) FlaggedRevs/business/RevisionReviewForm.php: EchoEvent::create( [ FlaggedRevs/FlaggedRevs.php:$wgHooks['EchoGetDefaultNotifiedUsers'][] = 'FlaggedRevsHooks::onEchoGetDefaultNotifiedUsers'; FlaggedRevs/backend/FlaggedRevs.hooks.php: * Handler for EchoGetDefaultNotifiedUsers hook. FlaggedRevs/backend/FlaggedRevs.hooks.php: * @param EchoEvent $event EchoEvent to get implicitly subscribed users for FlaggedRevs/backend/FlaggedRevs.hooks.php: public static function onEchoGetDefaultNotifiedUsers( $event, &$users ) { reedy@deploy1001:/srv/mediawiki-staging/php-1.32.0-wmf.24/extensions$