diff --git a/src/Content/Smilies.php b/src/Content/Smilies.php index f6b69065d7..bce403a371 100644 --- a/src/Content/Smilies.php +++ b/src/Content/Smilies.php @@ -8,8 +8,8 @@ namespace Friendica\Content; use Friendica\Content\Text\BBCode; -use Friendica\Core\Hook; use Friendica\DI; +use Friendica\Event\ArrayFilterEvent; use Friendica\Util\Strings; /** @@ -133,8 +133,13 @@ class Smilies 'redred#matrixmatrix' ]; + $eventDispatcher = DI::eventDispatcher(); + $params = ['texts' => $texts, 'icons' => $icons]; - Hook::callAll('smilie', $params); + + $params = $eventDispatcher->dispatch( + new ArrayFilterEvent(ArrayFilterEvent::SMILEY_LIST, $params), + )->getArray(); return $params; } diff --git a/src/Core/Hooks/HookEventBridge.php b/src/Core/Hooks/HookEventBridge.php index 1479e41d54..ec79484f28 100644 --- a/src/Core/Hooks/HookEventBridge.php +++ b/src/Core/Hooks/HookEventBridge.php @@ -54,6 +54,7 @@ final class HookEventBridge ArrayFilterEvent::ITEM_PHOTO_MENU => 'item_photo_menu', ArrayFilterEvent::OEMBED_FETCH_END => 'oembed_fetch_url', ArrayFilterEvent::PAGE_INFO => 'page_info_data', + ArrayFilterEvent::SMILEY_LIST => 'smilie', HtmlFilterEvent::HEAD => 'head', HtmlFilterEvent::FOOTER => 'footer', HtmlFilterEvent::PAGE_HEADER => 'page_header', @@ -87,6 +88,7 @@ final class HookEventBridge ArrayFilterEvent::ITEM_PHOTO_MENU => 'onArrayFilterEvent', ArrayFilterEvent::OEMBED_FETCH_END => 'onOembedFetchEndEvent', ArrayFilterEvent::PAGE_INFO => 'onArrayFilterEvent', + ArrayFilterEvent::SMILEY_LIST => 'onArrayFilterEvent', HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', diff --git a/src/Event/ArrayFilterEvent.php b/src/Event/ArrayFilterEvent.php index 41158c7eb3..d5f9b4e96d 100644 --- a/src/Event/ArrayFilterEvent.php +++ b/src/Event/ArrayFilterEvent.php @@ -46,6 +46,8 @@ final class ArrayFilterEvent extends Event public const PAGE_INFO = 'friendica.data.page_info'; + public const SMILEY_LIST = 'friendica.data.smiley_list'; + 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 d6d7801f13..58c9e29853 100644 --- a/tests/Unit/Core/Hooks/HookEventBridgeTest.php +++ b/tests/Unit/Core/Hooks/HookEventBridgeTest.php @@ -43,6 +43,7 @@ class HookEventBridgeTest extends TestCase ArrayFilterEvent::ITEM_PHOTO_MENU => 'onArrayFilterEvent', ArrayFilterEvent::OEMBED_FETCH_END => 'onOembedFetchEndEvent', ArrayFilterEvent::PAGE_INFO => 'onArrayFilterEvent', + ArrayFilterEvent::SMILEY_LIST => 'onArrayFilterEvent', HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', @@ -198,6 +199,7 @@ class HookEventBridgeTest extends TestCase [ArrayFilterEvent::RENDER_LOCATION, 'render_location'], [ArrayFilterEvent::ITEM_PHOTO_MENU, 'item_photo_menu'], [ArrayFilterEvent::PAGE_INFO, 'page_info_data'], + [ArrayFilterEvent::SMILEY_LIST, 'smilie'], ]; } diff --git a/tests/Unit/Event/ArrayFilterEventTest.php b/tests/Unit/Event/ArrayFilterEventTest.php index 00e47f4b61..2fa8f78663 100644 --- a/tests/Unit/Event/ArrayFilterEventTest.php +++ b/tests/Unit/Event/ArrayFilterEventTest.php @@ -40,6 +40,7 @@ class ArrayFilterEventTest extends TestCase [ArrayFilterEvent::ITEM_PHOTO_MENU, 'friendica.data.item_photo_menu'], [ArrayFilterEvent::OEMBED_FETCH_END, 'friendica.data.oembed_fetch_end'], [ArrayFilterEvent::PAGE_INFO, 'friendica.data.page_info'], + [ArrayFilterEvent::SMILEY_LIST, 'friendica.data.smiley_list'], ]; }