]> git.mxchange.org Git - friendica.git/commitdiff
create event for tagged hook
authorArt4 <art4@wlabs.de>
Mon, 17 Mar 2025 09:29:49 +0000 (09:29 +0000)
committerArt4 <art4@wlabs.de>
Mon, 17 Mar 2025 09:29:49 +0000 (09:29 +0000)
src/Core/Hooks/HookEventBridge.php
src/Event/ArrayFilterEvent.php
src/Model/Item.php
tests/Unit/Core/Hooks/HookEventBridgeTest.php
tests/Unit/Event/ArrayFilterEventTest.php

index 2406fb70372612de59842b0a949cc4994f65c9b9..95ecad13bf169812f1dc451afee79e6cae54a08d 100644 (file)
@@ -55,6 +55,7 @@ final class HookEventBridge
                ArrayFilterEvent::PHOTO_UPLOAD_FORM               => 'photo_upload_form',
                ArrayFilterEvent::NETWORK_TO_NAME                 => 'network_to_name',
                ArrayFilterEvent::CONVERSATION_START              => 'conversation_start',
+               ArrayFilterEvent::ITEM_TAGGED                     => 'tagged',
                ArrayFilterEvent::DISPLAY_ITEM                    => 'display_item',
                ArrayFilterEvent::DETECT_LANGUAGES                => 'detect_languages',
                ArrayFilterEvent::RENDER_LOCATION                 => 'render_location',
@@ -118,6 +119,7 @@ final class HookEventBridge
                        ArrayFilterEvent::PHOTO_UPLOAD_FORM               => 'onArrayFilterEvent',
                        ArrayFilterEvent::NETWORK_TO_NAME                 => 'onArrayFilterEvent',
                        ArrayFilterEvent::CONVERSATION_START              => 'onArrayFilterEvent',
+                       ArrayFilterEvent::ITEM_TAGGED                     => 'onArrayFilterEvent',
                        ArrayFilterEvent::DISPLAY_ITEM                    => 'onArrayFilterEvent',
                        ArrayFilterEvent::DETECT_LANGUAGES                => 'onArrayFilterEvent',
                        ArrayFilterEvent::RENDER_LOCATION                 => 'onArrayFilterEvent',
index 44aa403b18b5bef699dcb346d78720a67426311a..84c1d4cff656e00929909385d203d4d0fb22044c 100644 (file)
@@ -60,6 +60,8 @@ final class ArrayFilterEvent extends Event
 
        public const CONVERSATION_START = 'friendica.data.conversation_start';
 
+       public const ITEM_TAGGED = 'friendica.data.item_tagged';
+
        public const DISPLAY_ITEM = 'friendica.data.display_item';
 
        public const DETECT_LANGUAGES = 'friendica.data.detect_languages';
index 954c0ce11cdcb87db736cd45faa267e0ceb96b49..9be9f2b27a737707db7fc507b962a0f520aece47 100644 (file)
@@ -2285,9 +2285,16 @@ class Item
                                return true;
                        }
 
-                       $arr = ['item' => $item, 'user' => $owner];
+                       $eventDispatcher = DI::eventDispatcher();
+
+                       $arr = [
+                               'item' => $item,
+                               'user' => $owner,
+                       ];
 
-                       Hook::callAll('tagged', $arr);
+                       $eventDispatcher->dispatch(
+                               new ArrayFilterEvent(ArrayFilterEvent::ITEM_TAGGED, $arr),
+                       );
                } else {
                        if (Tag::isMentioned($item['parent-uri-id'], $owner['url'])) {
                                DI::logger()->info('Mention found in parent tag.', ['uri' => $item['uri'], 'uid' => $uid, 'id' => $item_id, 'uri-id' => $item['uri-id'], 'guid' => $item['guid']]);
index e0e9a3eb8e80cce3c8de5db947148cf8637c3fa0..ac33ba42808585de03426a0336c04ca382e2c618 100644 (file)
@@ -44,6 +44,7 @@ class HookEventBridgeTest extends TestCase
                        ArrayFilterEvent::PHOTO_UPLOAD_FORM               => 'onArrayFilterEvent',
                        ArrayFilterEvent::NETWORK_TO_NAME                 => 'onArrayFilterEvent',
                        ArrayFilterEvent::CONVERSATION_START              => 'onArrayFilterEvent',
+                       ArrayFilterEvent::ITEM_TAGGED                     => 'onArrayFilterEvent',
                        ArrayFilterEvent::DISPLAY_ITEM                    => 'onArrayFilterEvent',
                        ArrayFilterEvent::DETECT_LANGUAGES                => 'onArrayFilterEvent',
                        ArrayFilterEvent::RENDER_LOCATION                 => 'onArrayFilterEvent',
@@ -351,6 +352,7 @@ class HookEventBridgeTest extends TestCase
                        [ArrayFilterEvent::PHOTO_UPLOAD_FORM, 'photo_upload_form'],
                        [ArrayFilterEvent::NETWORK_TO_NAME, 'network_to_name'],
                        [ArrayFilterEvent::CONVERSATION_START, 'conversation_start'],
+                       [ArrayFilterEvent::ITEM_TAGGED, 'tagged'],
                        [ArrayFilterEvent::DISPLAY_ITEM, 'display_item'],
                        [ArrayFilterEvent::DETECT_LANGUAGES, 'detect_languages'],
                        [ArrayFilterEvent::RENDER_LOCATION, 'render_location'],
index d079cacdec631d645f9a122acedbed8d1766ad0a..806e8ad014f3581447985470cc32f2521ceeeaf8 100644 (file)
@@ -41,6 +41,7 @@ class ArrayFilterEventTest extends TestCase
                        [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::ITEM_TAGGED, 'friendica.data.item_tagged'],
                        [ArrayFilterEvent::DISPLAY_ITEM, 'friendica.data.display_item'],
                        [ArrayFilterEvent::DETECT_LANGUAGES, 'friendica.data.detect_languages'],
                        [ArrayFilterEvent::RENDER_LOCATION, 'friendica.data.render_location'],