diff --git a/src/Content/Item.php b/src/Content/Item.php index ee20e3d168..9c9cd10bed 100644 --- a/src/Content/Item.php +++ b/src/Content/Item.php @@ -12,7 +12,6 @@ use Friendica\AppHelper; use Friendica\Content\Text\BBCode; use Friendica\Content\Text\BBCode\Video; use Friendica\Content\Text\HTML; -use Friendica\Core\Hook; use Friendica\Core\L10n; use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues; use Friendica\Core\Protocol; @@ -449,7 +448,9 @@ class Item $args = ['item' => $item, 'menu' => $menu]; - Hook::callAll('item_photo_menu', $args); + $args = $this->eventDispatcher->dispatch( + new ArrayFilterEvent(ArrayFilterEvent::ITEM_PHOTO_MENU, $args), + )->getArray(); $menu = $args['menu']; diff --git a/src/Core/Hooks/HookEventBridge.php b/src/Core/Hooks/HookEventBridge.php index 99290480b7..1a517a712c 100644 --- a/src/Core/Hooks/HookEventBridge.php +++ b/src/Core/Hooks/HookEventBridge.php @@ -51,6 +51,7 @@ final class HookEventBridge ArrayFilterEvent::CONVERSATION_START => 'conversation_start', ArrayFilterEvent::DISPLAY_ITEM => 'display_item', ArrayFilterEvent::RENDER_LOCATION => 'render_location', + ArrayFilterEvent::ITEM_PHOTO_MENU => 'item_photo_menu', HtmlFilterEvent::HEAD => 'head', HtmlFilterEvent::FOOTER => 'footer', HtmlFilterEvent::PAGE_HEADER => 'page_header', @@ -81,6 +82,7 @@ final class HookEventBridge ArrayFilterEvent::CONVERSATION_START => 'onArrayFilterEvent', ArrayFilterEvent::DISPLAY_ITEM => 'onArrayFilterEvent', ArrayFilterEvent::RENDER_LOCATION => 'onArrayFilterEvent', + ArrayFilterEvent::ITEM_PHOTO_MENU => 'onArrayFilterEvent', HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', diff --git a/src/Event/ArrayFilterEvent.php b/src/Event/ArrayFilterEvent.php index 4b9ed3ce3e..2c37cb8f27 100644 --- a/src/Event/ArrayFilterEvent.php +++ b/src/Event/ArrayFilterEvent.php @@ -40,6 +40,8 @@ final class ArrayFilterEvent extends Event public const RENDER_LOCATION = 'friendica.data.render_location'; + public const ITEM_PHOTO_MENU = 'friendica.data.item_photo_menu'; + 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 de2b43f15c..e65ebaa6c8 100644 --- a/tests/Unit/Core/Hooks/HookEventBridgeTest.php +++ b/tests/Unit/Core/Hooks/HookEventBridgeTest.php @@ -40,6 +40,7 @@ class HookEventBridgeTest extends TestCase ArrayFilterEvent::CONVERSATION_START => 'onArrayFilterEvent', ArrayFilterEvent::DISPLAY_ITEM => 'onArrayFilterEvent', ArrayFilterEvent::RENDER_LOCATION => 'onArrayFilterEvent', + ArrayFilterEvent::ITEM_PHOTO_MENU => 'onArrayFilterEvent', HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', @@ -171,6 +172,7 @@ class HookEventBridgeTest extends TestCase [ArrayFilterEvent::CONVERSATION_START, 'conversation_start'], [ArrayFilterEvent::DISPLAY_ITEM, 'display_item'], [ArrayFilterEvent::RENDER_LOCATION, 'render_location'], + [ArrayFilterEvent::ITEM_PHOTO_MENU, 'item_photo_menu'], ]; } diff --git a/tests/Unit/Event/ArrayFilterEventTest.php b/tests/Unit/Event/ArrayFilterEventTest.php index c709e0ff0a..4ed37337c7 100644 --- a/tests/Unit/Event/ArrayFilterEventTest.php +++ b/tests/Unit/Event/ArrayFilterEventTest.php @@ -26,6 +26,18 @@ class ArrayFilterEventTest extends TestCase { return [ [ArrayFilterEvent::APP_MENU, 'friendica.data.app_menu'], + [ArrayFilterEvent::NAV_INFO, 'friendica.data.nav_info'], + [ArrayFilterEvent::FEATURE_ENABLED, 'friendica.data.feature_enabled'], + [ArrayFilterEvent::FEATURE_GET, 'friendica.data.feature_get'], + [ArrayFilterEvent::POST_LOCAL_START, 'friendica.data.post_local_start'], + [ArrayFilterEvent::POST_LOCAL, 'friendica.data.post_local'], + [ArrayFilterEvent::POST_LOCAL_END, 'friendica.data.post_local_end'], + [ArrayFilterEvent::PHOTO_UPLOAD_FORM, 'friendica.data.photo_upload_form'], + [ArrayFilterEvent::NETWORK_TO_NAME, 'friendica.data.network_to_name'], + [ArrayFilterEvent::CONVERSATION_START, 'friendica.data.conversation_start'], + [ArrayFilterEvent::DISPLAY_ITEM, 'friendica.data.display_item'], + [ArrayFilterEvent::RENDER_LOCATION, 'friendica.data.render_location'], + [ArrayFilterEvent::ITEM_PHOTO_MENU, 'friendica.data.item_photo_menu'], ]; }