]> git.mxchange.org Git - friendica.git/commitdiff
create event for render_location hook
authorArt4 <art4@wlabs.de>
Fri, 14 Feb 2025 10:19:55 +0000 (10:19 +0000)
committerArt4 <art4@wlabs.de>
Fri, 14 Feb 2025 10:19:55 +0000 (10:19 +0000)
src/Content/Conversation.php
src/Core/Hooks/HookEventBridge.php
src/Event/ArrayFilterEvent.php
src/Object/Post.php
tests/Unit/Core/Hooks/HookEventBridgeTest.php

index ec275af06a65df2990672cf527e101c02087adb8..722aaf27b558b51cacd91a76ec42796dd4b4e9ad 100644 (file)
@@ -14,7 +14,6 @@ use Friendica\App\Page;
 use Friendica\BaseModule;
 use Friendica\Core\ACL;
 use Friendica\Core\Config\Capability\IManageConfigValues;
-use Friendica\Core\Hook;
 use Friendica\Core\L10n;
 use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
 use Friendica\Core\Protocol;
@@ -1472,7 +1471,11 @@ class Conversation
                        }
 
                        $locate = ['location' => $item['location'], 'coord' => $item['coord'], 'html' => ''];
-                       Hook::callAll('render_location', $locate);
+
+                       $locate = $this->eventDispatcher->dispatch(
+                               new ArrayFilterEvent(ArrayFilterEvent::RENDER_LOCATION, $locate),
+                       )->getArray();
+
                        $location_html = $locate['html'] ?: Strings::escapeHtml($locate['location'] ?: $locate['coord'] ?: '');
 
                        $this->item->localize($item);
index 50f8945b4741f27577aeaa83279a8007c8df3cb2..99290480b7c5922dfef098cb4c868200ac26005a 100644 (file)
@@ -50,6 +50,7 @@ final class HookEventBridge
                ArrayFilterEvent::NETWORK_TO_NAME    => 'network_to_name',
                ArrayFilterEvent::CONVERSATION_START => 'conversation_start',
                ArrayFilterEvent::DISPLAY_ITEM       => 'display_item',
+               ArrayFilterEvent::RENDER_LOCATION    => 'render_location',
                HtmlFilterEvent::HEAD                => 'head',
                HtmlFilterEvent::FOOTER              => 'footer',
                HtmlFilterEvent::PAGE_HEADER         => 'page_header',
@@ -79,6 +80,7 @@ final class HookEventBridge
                        ArrayFilterEvent::NETWORK_TO_NAME    => 'onArrayFilterEvent',
                        ArrayFilterEvent::CONVERSATION_START => 'onArrayFilterEvent',
                        ArrayFilterEvent::DISPLAY_ITEM       => 'onArrayFilterEvent',
+                       ArrayFilterEvent::RENDER_LOCATION    => 'onArrayFilterEvent',
                        HtmlFilterEvent::HEAD                => 'onHtmlFilterEvent',
                        HtmlFilterEvent::FOOTER              => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_HEADER         => 'onHtmlFilterEvent',
index 75f1eb86207f6aa33c223e462dad0d80f74f1884..4b9ed3ce3effd09d7055054e7e7b0f7a78b94659 100644 (file)
@@ -38,6 +38,8 @@ final class ArrayFilterEvent extends Event
 
        public const DISPLAY_ITEM = 'friendica.data.display_item';
 
+       public const RENDER_LOCATION = 'friendica.data.render_location';
+
        private array $array;
 
        public function __construct(string $name, array $array)
index 769d74576c70e400ac67bfa88c90b9e2c3e9d4a1..d4b381a115d9990db4141e36cb950bd1e9994920 100644 (file)
@@ -10,7 +10,6 @@ namespace Friendica\Object;
 use Friendica\Content\ContactSelector;
 use Friendica\Content\Feature;
 use Friendica\Core\Addon;
-use Friendica\Core\Hook;
 use Friendica\Core\Protocol;
 use Friendica\Core\Renderer;
 use Friendica\DI;
@@ -315,8 +314,14 @@ class Post
                        $sparkle = ' sparkle';
                }
 
+               $eventDispatcher = DI::eventDispatcher();
+
                $locate = ['location' => $item['location'], 'coord' => $item['coord'], 'html' => ''];
-               Hook::callAll('render_location', $locate);
+
+               $locate = $eventDispatcher->dispatch(
+                       new ArrayFilterEvent(ArrayFilterEvent::RENDER_LOCATION, $locate),
+               )->getArray();
+
                $location_html = $locate['html'] ?: Strings::escapeHtml($locate['location'] ?: $locate['coord'] ?: '');
 
                // process action responses - e.g. like/dislike/attend/agree/whatever
@@ -631,8 +636,6 @@ class Post
                        ],
                ];
 
-               $eventDispatcher = DI::eventDispatcher();
-
                $arr = ['item' => $item, 'output' => $tmp_item];
 
                $arr = $eventDispatcher->dispatch(
index eed89c343acd561916bdbc3a485494ff2686e351..de2b43f15c7d1d3afb317e9f86d95f54ff5ec223 100644 (file)
@@ -39,6 +39,7 @@ class HookEventBridgeTest extends TestCase
                        ArrayFilterEvent::NETWORK_TO_NAME    => 'onArrayFilterEvent',
                        ArrayFilterEvent::CONVERSATION_START => 'onArrayFilterEvent',
                        ArrayFilterEvent::DISPLAY_ITEM       => 'onArrayFilterEvent',
+                       ArrayFilterEvent::RENDER_LOCATION    => 'onArrayFilterEvent',
                        HtmlFilterEvent::HEAD                => 'onHtmlFilterEvent',
                        HtmlFilterEvent::FOOTER              => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_HEADER         => 'onHtmlFilterEvent',
@@ -169,6 +170,7 @@ class HookEventBridgeTest extends TestCase
                        [ArrayFilterEvent::NETWORK_TO_NAME, 'network_to_name'],
                        [ArrayFilterEvent::CONVERSATION_START, 'conversation_start'],
                        [ArrayFilterEvent::DISPLAY_ITEM, 'display_item'],
+                       [ArrayFilterEvent::RENDER_LOCATION, 'render_location'],
                ];
        }