]> git.mxchange.org Git - friendica.git/commitdiff
Create event for put_item_in_cache hook
authorArt4 <art4@wlabs.de>
Mon, 17 Mar 2025 09:40:27 +0000 (09:40 +0000)
committerArt4 <art4@wlabs.de>
Mon, 17 Mar 2025 09:40:27 +0000 (09:40 +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 95ecad13bf169812f1dc451afee79e6cae54a08d..f59a267230fb229788e6fe6d11b199027f996d02 100644 (file)
@@ -57,6 +57,7 @@ final class HookEventBridge
                ArrayFilterEvent::CONVERSATION_START              => 'conversation_start',
                ArrayFilterEvent::ITEM_TAGGED                     => 'tagged',
                ArrayFilterEvent::DISPLAY_ITEM                    => 'display_item',
+               ArrayFilterEvent::CACHE_ITEM                      => 'put_item_in_cache',
                ArrayFilterEvent::DETECT_LANGUAGES                => 'detect_languages',
                ArrayFilterEvent::RENDER_LOCATION                 => 'render_location',
                ArrayFilterEvent::ITEM_PHOTO_MENU                 => 'item_photo_menu',
@@ -121,6 +122,7 @@ final class HookEventBridge
                        ArrayFilterEvent::CONVERSATION_START              => 'onArrayFilterEvent',
                        ArrayFilterEvent::ITEM_TAGGED                     => 'onArrayFilterEvent',
                        ArrayFilterEvent::DISPLAY_ITEM                    => 'onArrayFilterEvent',
+                       ArrayFilterEvent::CACHE_ITEM                      => 'onArrayFilterEvent',
                        ArrayFilterEvent::DETECT_LANGUAGES                => 'onArrayFilterEvent',
                        ArrayFilterEvent::RENDER_LOCATION                 => 'onArrayFilterEvent',
                        ArrayFilterEvent::ITEM_PHOTO_MENU                 => 'onArrayFilterEvent',
index 84c1d4cff656e00929909385d203d4d0fb22044c..db57babfdab4dd3da7f60201804dc106aad0fa19 100644 (file)
@@ -64,6 +64,8 @@ final class ArrayFilterEvent extends Event
 
        public const DISPLAY_ITEM = 'friendica.data.display_item';
 
+       public const CACHE_ITEM = 'friendica.data.cache_item';
+
        public const DETECT_LANGUAGES = 'friendica.data.detect_languages';
 
        public const RENDER_LOCATION = 'friendica.data.render_location';
index 9be9f2b27a737707db7fc507b962a0f520aece47..d93ab1768da7c293e27a7ca157b4393e11f5ec6a 100644 (file)
@@ -3038,8 +3038,18 @@ class Item
                        $item['rendered-html'] = BBCode::convertForUriId($item['uri-id'], $item['body']);
                        $item['rendered-hash'] = hash('md5', BBCode::VERSION . '::' . $body);
 
-                       $hook_data = ['item' => $item, 'rendered-html' => $item['rendered-html'], 'rendered-hash' => $item['rendered-hash']];
-                       Hook::callAll('put_item_in_cache', $hook_data);
+                       $hook_data = [
+                               'rendered-html' => $item['rendered-html'],
+                               'rendered-hash' => $item['rendered-hash'],
+                               'item' => $item,
+                       ];
+
+                       $eventDispatcher = DI::eventDispatcher();
+
+                       $hook_data = $eventDispatcher->dispatch(
+                               new ArrayFilterEvent(ArrayFilterEvent::CACHE_ITEM, $hook_data),
+                       )->getArray();
+
                        $item['rendered-html'] = $hook_data['rendered-html'];
                        $item['rendered-hash'] = $hook_data['rendered-hash'];
                        unset($hook_data);
index ac33ba42808585de03426a0336c04ca382e2c618..0e4afb2448a282c13479d7df0ba68b526bb67a03 100644 (file)
@@ -46,6 +46,7 @@ class HookEventBridgeTest extends TestCase
                        ArrayFilterEvent::CONVERSATION_START              => 'onArrayFilterEvent',
                        ArrayFilterEvent::ITEM_TAGGED                     => 'onArrayFilterEvent',
                        ArrayFilterEvent::DISPLAY_ITEM                    => 'onArrayFilterEvent',
+                       ArrayFilterEvent::CACHE_ITEM                      => 'onArrayFilterEvent',
                        ArrayFilterEvent::DETECT_LANGUAGES                => 'onArrayFilterEvent',
                        ArrayFilterEvent::RENDER_LOCATION                 => 'onArrayFilterEvent',
                        ArrayFilterEvent::ITEM_PHOTO_MENU                 => 'onArrayFilterEvent',
@@ -354,6 +355,7 @@ class HookEventBridgeTest extends TestCase
                        [ArrayFilterEvent::CONVERSATION_START, 'conversation_start'],
                        [ArrayFilterEvent::ITEM_TAGGED, 'tagged'],
                        [ArrayFilterEvent::DISPLAY_ITEM, 'display_item'],
+                       [ArrayFilterEvent::CACHE_ITEM, 'put_item_in_cache'],
                        [ArrayFilterEvent::DETECT_LANGUAGES, 'detect_languages'],
                        [ArrayFilterEvent::RENDER_LOCATION, 'render_location'],
                        [ArrayFilterEvent::ITEM_PHOTO_MENU, 'item_photo_menu'],
index 806e8ad014f3581447985470cc32f2521ceeeaf8..e087856178f727050e1ab13a4dd98b91f3319aaa 100644 (file)
@@ -43,6 +43,7 @@ class ArrayFilterEventTest extends TestCase
                        [ArrayFilterEvent::CONVERSATION_START, 'friendica.data.conversation_start'],
                        [ArrayFilterEvent::ITEM_TAGGED, 'friendica.data.item_tagged'],
                        [ArrayFilterEvent::DISPLAY_ITEM, 'friendica.data.display_item'],
+                       [ArrayFilterEvent::CACHE_ITEM, 'friendica.data.cache_item'],
                        [ArrayFilterEvent::DETECT_LANGUAGES, 'friendica.data.detect_languages'],
                        [ArrayFilterEvent::RENDER_LOCATION, 'friendica.data.render_location'],
                        [ArrayFilterEvent::ITEM_PHOTO_MENU, 'friendica.data.item_photo_menu'],