From d4ba28a9971a408f7a045350b09539bb03b66ad3 Mon Sep 17 00:00:00 2001 From: Art4 Date: Fri, 14 Feb 2025 08:38:59 +0000 Subject: [PATCH] create event for conversation_start hook --- src/Content/Conversation.php | 6 +++++- src/Core/Hooks/HookEventBridge.php | 2 ++ src/Event/ArrayFilterEvent.php | 2 ++ tests/Unit/Core/Hooks/HookEventBridgeTest.php | 2 ++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Content/Conversation.php b/src/Content/Conversation.php index e8c193926d..16ca762698 100644 --- a/src/Content/Conversation.php +++ b/src/Content/Conversation.php @@ -22,6 +22,7 @@ use Friendica\Core\Renderer; use Friendica\Core\Session\Capability\IHandleUserSessions; use Friendica\Core\Theme; use Friendica\Database\DBA; +use Friendica\Event\ArrayFilterEvent; use Friendica\Event\HtmlFilterEvent; use Friendica\Model\Contact; use Friendica\Model\Item as ItemModel; @@ -564,7 +565,10 @@ class Conversation } $cb = ['items' => $items, 'mode' => $mode, 'update' => $update, 'preview' => $preview]; - Hook::callAll('conversation_start', $cb); + + $cb = $this->eventDispatcher->dispatch( + new ArrayFilterEvent(ArrayFilterEvent::CONVERSATION_START, $cb), + )->getArray(); $items = $cb['items']; diff --git a/src/Core/Hooks/HookEventBridge.php b/src/Core/Hooks/HookEventBridge.php index d04a3e60bd..f2fd9572f3 100644 --- a/src/Core/Hooks/HookEventBridge.php +++ b/src/Core/Hooks/HookEventBridge.php @@ -48,6 +48,7 @@ final class HookEventBridge ArrayFilterEvent::POST_LOCAL_END => 'post_local_end', ArrayFilterEvent::PHOTO_UPLOAD_FORM => 'photo_upload_form', ArrayFilterEvent::NETWORK_TO_NAME => 'network_to_name', + ArrayFilterEvent::CONVERSATION_START => 'conversation_start', HtmlFilterEvent::HEAD => 'head', HtmlFilterEvent::FOOTER => 'footer', HtmlFilterEvent::PAGE_HEADER => 'page_header', @@ -75,6 +76,7 @@ final class HookEventBridge ArrayFilterEvent::POST_LOCAL_END => 'onArrayFilterEvent', ArrayFilterEvent::PHOTO_UPLOAD_FORM => 'onArrayFilterEvent', ArrayFilterEvent::NETWORK_TO_NAME => 'onArrayFilterEvent', + ArrayFilterEvent::CONVERSATION_START => 'onArrayFilterEvent', HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', diff --git a/src/Event/ArrayFilterEvent.php b/src/Event/ArrayFilterEvent.php index 15579788a6..6c90a9d01d 100644 --- a/src/Event/ArrayFilterEvent.php +++ b/src/Event/ArrayFilterEvent.php @@ -34,6 +34,8 @@ final class ArrayFilterEvent extends Event public const NETWORK_TO_NAME = 'friendica.data.network_to_name'; + public const CONVERSATION_START = 'friendica.data.conversation_start'; + 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 efafdd8395..037eb33c3a 100644 --- a/tests/Unit/Core/Hooks/HookEventBridgeTest.php +++ b/tests/Unit/Core/Hooks/HookEventBridgeTest.php @@ -37,6 +37,7 @@ class HookEventBridgeTest extends TestCase ArrayFilterEvent::POST_LOCAL_END => 'onArrayFilterEvent', ArrayFilterEvent::PHOTO_UPLOAD_FORM => 'onArrayFilterEvent', ArrayFilterEvent::NETWORK_TO_NAME => 'onArrayFilterEvent', + ArrayFilterEvent::CONVERSATION_START => 'onArrayFilterEvent', HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', @@ -165,6 +166,7 @@ class HookEventBridgeTest extends TestCase [ArrayFilterEvent::POST_LOCAL_END, 'post_local_end'], [ArrayFilterEvent::PHOTO_UPLOAD_FORM, 'photo_upload_form'], [ArrayFilterEvent::NETWORK_TO_NAME, 'network_to_name'], + [ArrayFilterEvent::CONVERSATION_START, 'conversation_start'], ]; }