From 3295b9055f28ab520e4f7fa74aa09b74feb888b2 Mon Sep 17 00:00:00 2001 From: Art4 Date: Thu, 13 Feb 2025 15:29:52 +0000 Subject: [PATCH] Create event for network_to_name hook --- src/Content/ContactSelector.php | 7 ++++++- src/Core/Hooks/HookEventBridge.php | 2 ++ src/Event/ArrayFilterEvent.php | 2 ++ tests/Unit/Core/Hooks/HookEventBridgeTest.php | 2 ++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Content/ContactSelector.php b/src/Content/ContactSelector.php index 1bd891a844..4cdb78e996 100644 --- a/src/Content/ContactSelector.php +++ b/src/Content/ContactSelector.php @@ -11,6 +11,7 @@ use Friendica\Core\Hook; use Friendica\Core\Protocol; use Friendica\Database\DBA; use Friendica\DI; +use Friendica\Event\ArrayFilterEvent; use Friendica\Util\Strings; /** @@ -113,6 +114,8 @@ class ContactSelector */ public static function networkToName(string $network, string $protocol = '', int $gsid = null): string { + $eventDispatcher = DI::eventDispatcher(); + $nets = [ Protocol::DFRN => DI::l10n()->t('DFRN'), Protocol::OSTATUS => DI::l10n()->t('OStatus'), @@ -135,7 +138,9 @@ class ContactSelector Protocol::BLUESKY => DI::l10n()->t('Bluesky'), ]; - Hook::callAll('network_to_name', $nets); + $nets = $eventDispatcher->dispatch( + new ArrayFilterEvent(ArrayFilterEvent::NETWORK_TO_NAME, $nets), + )->getArray(); $search = array_keys($nets); $replace = array_values($nets); diff --git a/src/Core/Hooks/HookEventBridge.php b/src/Core/Hooks/HookEventBridge.php index 1a66b74221..fca179a75b 100644 --- a/src/Core/Hooks/HookEventBridge.php +++ b/src/Core/Hooks/HookEventBridge.php @@ -47,6 +47,7 @@ final class HookEventBridge ArrayFilterEvent::POST_LOCAL => 'post_local', ArrayFilterEvent::POST_LOCAL_END => 'post_local_end', ArrayFilterEvent::PHOTO_UPLOAD_FORM => 'photo_upload_form', + ArrayFilterEvent::NETWORK_TO_NAME => 'network_to_name', HtmlFilterEvent::HEAD => 'head', HtmlFilterEvent::FOOTER => 'footer', HtmlFilterEvent::PAGE_HEADER => 'page_header', @@ -72,6 +73,7 @@ final class HookEventBridge ArrayFilterEvent::POST_LOCAL => 'onArrayFilterEvent', ArrayFilterEvent::POST_LOCAL_END => 'onArrayFilterEvent', ArrayFilterEvent::PHOTO_UPLOAD_FORM => 'onArrayFilterEvent', + ArrayFilterEvent::NETWORK_TO_NAME => 'onArrayFilterEvent', HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', diff --git a/src/Event/ArrayFilterEvent.php b/src/Event/ArrayFilterEvent.php index 2afb92998f..15579788a6 100644 --- a/src/Event/ArrayFilterEvent.php +++ b/src/Event/ArrayFilterEvent.php @@ -32,6 +32,8 @@ final class ArrayFilterEvent extends Event public const PHOTO_UPLOAD_FORM = 'friendica.data.photo_upload_form'; + public const NETWORK_TO_NAME = 'friendica.data.network_to_name'; + private array $array; public function __construct(string $name, array $array) diff --git a/tests/Unit/Core/Hooks/HookEventBridgeTest.php b/tests/Unit/Core/Hooks/HookEventBridgeTest.php index 688e39ecfa..195f0a0d0b 100644 --- a/tests/Unit/Core/Hooks/HookEventBridgeTest.php +++ b/tests/Unit/Core/Hooks/HookEventBridgeTest.php @@ -36,6 +36,7 @@ class HookEventBridgeTest extends TestCase ArrayFilterEvent::POST_LOCAL => 'onArrayFilterEvent', ArrayFilterEvent::POST_LOCAL_END => 'onArrayFilterEvent', ArrayFilterEvent::PHOTO_UPLOAD_FORM => 'onArrayFilterEvent', + ArrayFilterEvent::NETWORK_TO_NAME => 'onArrayFilterEvent', HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', @@ -162,6 +163,7 @@ class HookEventBridgeTest extends TestCase [ArrayFilterEvent::POST_LOCAL, 'post_local'], [ArrayFilterEvent::POST_LOCAL_END, 'post_local_end'], [ArrayFilterEvent::PHOTO_UPLOAD_FORM, 'photo_upload_form'], + [ArrayFilterEvent::NETWORK_TO_NAME, 'network_to_name'], ]; } -- 2.39.5