]> git.mxchange.org Git - friendica.git/commitdiff
Create event for profile_tabs hook
authorArt4 <art4@wlabs.de>
Mon, 24 Mar 2025 12:41:40 +0000 (12:41 +0000)
committerArt4 <art4@wlabs.de>
Mon, 24 Mar 2025 12:41:40 +0000 (12:41 +0000)
src/Core/Hooks/HookEventBridge.php
src/Event/ArrayFilterEvent.php
src/Module/BaseProfile.php
tests/Unit/Core/Hooks/HookEventBridgeTest.php
tests/Unit/Event/ArrayFilterEventTest.php

index 356dfe7e9c7a6456ddc64f002ee64fc36ac84768..3d2d6d62f5ef345f65f208d2d29df7b0196d330f 100644 (file)
@@ -66,6 +66,7 @@ final class HookEventBridge
                ArrayFilterEvent::CONTACT_PHOTO_MENU              => 'contact_photo_menu',
                ArrayFilterEvent::PROFILE_SIDEBAR_ENTRY           => 'profile_sidebar_enter',
                ArrayFilterEvent::PROFILE_SIDEBAR                 => 'profile_sidebar',
+               ArrayFilterEvent::PROFILE_TABS                    => 'profile_tabs',
                ArrayFilterEvent::OEMBED_FETCH_END                => 'oembed_fetch_url',
                ArrayFilterEvent::PAGE_INFO                       => 'page_info_data',
                ArrayFilterEvent::SMILEY_LIST                     => 'smilie',
@@ -138,6 +139,7 @@ final class HookEventBridge
                        ArrayFilterEvent::CONTACT_PHOTO_MENU              => 'onArrayFilterEvent',
                        ArrayFilterEvent::PROFILE_SIDEBAR_ENTRY           => 'onProfileSidebarEntryEvent',
                        ArrayFilterEvent::PROFILE_SIDEBAR                 => 'onArrayFilterEvent',
+                       ArrayFilterEvent::PROFILE_TABS                    => 'onArrayFilterEvent',
                        ArrayFilterEvent::OEMBED_FETCH_END                => 'onOembedFetchEndEvent',
                        ArrayFilterEvent::PAGE_INFO                       => 'onArrayFilterEvent',
                        ArrayFilterEvent::SMILEY_LIST                     => 'onArrayFilterEvent',
index 0313520060b8fcc8bb2a156738274ba68e1bac67..06ada45a223ba27b999034fda1bc70e67542a745 100644 (file)
@@ -82,6 +82,8 @@ final class ArrayFilterEvent extends Event
 
        public const PROFILE_SIDEBAR = 'friendica.data.profile_sidebar';
 
+       public const PROFILE_TABS = 'friendica.data.profile_tabs';
+
        public const OEMBED_FETCH_END = 'friendica.data.oembed_fetch_end';
 
        public const PAGE_INFO = 'friendica.data.page_info';
index 4a73408bc9145c7acd6aee104fb975b5e37038c2..ce5d27686183faf847e55f7fec1edacbe80599bc 100644 (file)
@@ -9,9 +9,9 @@ namespace Friendica\Module;
 
 use Friendica\BaseModule;
 use Friendica\Content\Feature;
-use Friendica\Core\Hook;
 use Friendica\Core\Renderer;
 use Friendica\DI;
+use Friendica\Event\ArrayFilterEvent;
 use Friendica\Model\User;
 
 class BaseProfile extends BaseModule
@@ -128,12 +128,16 @@ class BaseProfile extends BaseModule
                        ];
                }
 
-               $arr = ['is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => $current, 'tabs' => $tabs];
+               $hook_data = ['is_owner' => $is_owner, 'nickname' => $nickname, 'tab' => $current, 'tabs' => $tabs];
 
-               Hook::callAll('profile_tabs', $arr);
+               $eventDispatcher = DI::eventDispatcher();
+
+               $hook_data = $eventDispatcher->dispatch(
+                       new ArrayFilterEvent(ArrayFilterEvent::PROFILE_TABS, $hook_data),
+               )->getArray();
 
                $tpl = Renderer::getMarkupTemplate('common_tabs.tpl');
 
-               return Renderer::replaceMacros($tpl, ['$tabs' => $arr['tabs'], '$more' => DI::l10n()->t('More')]);
+               return Renderer::replaceMacros($tpl, ['$tabs' => $hook_data['tabs'], '$more' => DI::l10n()->t('More')]);
        }
 }
index f00e803ba178ca23dcf50ebb9138793090ac21b7..874fc9b25e1a93c563459aa0fdee2ad66db90b7b 100644 (file)
@@ -55,6 +55,7 @@ class HookEventBridgeTest extends TestCase
                        ArrayFilterEvent::CONTACT_PHOTO_MENU              => 'onArrayFilterEvent',
                        ArrayFilterEvent::PROFILE_SIDEBAR_ENTRY           => 'onProfileSidebarEntryEvent',
                        ArrayFilterEvent::PROFILE_SIDEBAR                 => 'onArrayFilterEvent',
+                       ArrayFilterEvent::PROFILE_TABS                    => 'onArrayFilterEvent',
                        ArrayFilterEvent::OEMBED_FETCH_END                => 'onOembedFetchEndEvent',
                        ArrayFilterEvent::PAGE_INFO                       => 'onArrayFilterEvent',
                        ArrayFilterEvent::SMILEY_LIST                     => 'onArrayFilterEvent',
@@ -467,6 +468,7 @@ class HookEventBridgeTest extends TestCase
                        [ArrayFilterEvent::ITEM_PHOTO_MENU, 'item_photo_menu'],
                        [ArrayFilterEvent::CONTACT_PHOTO_MENU, 'contact_photo_menu'],
                        [ArrayFilterEvent::PROFILE_SIDEBAR, 'profile_sidebar'],
+                       [ArrayFilterEvent::PROFILE_TABS, 'profile_tabs'],
                        [ArrayFilterEvent::PAGE_INFO, 'page_info_data'],
                        [ArrayFilterEvent::SMILEY_LIST, 'smilie'],
                        [ArrayFilterEvent::JOT_NETWORKS, 'jot_networks'],
index 91d611a33bb19e7feed813e1d5a2faff0bb6c42a..ea495110c33c841fc4448eec143461cec3e9b285 100644 (file)
@@ -52,6 +52,7 @@ class ArrayFilterEventTest extends TestCase
                        [ArrayFilterEvent::CONTACT_PHOTO_MENU, 'friendica.data.contact_photo_menu'],
                        [ArrayFilterEvent::PROFILE_SIDEBAR_ENTRY, 'friendica.data.profile_sidebar_entry'],
                        [ArrayFilterEvent::PROFILE_SIDEBAR, 'friendica.data.profile_sidebar'],
+                       [ArrayFilterEvent::PROFILE_TABS, 'friendica.data.profile_tabs'],
                        [ArrayFilterEvent::OEMBED_FETCH_END, 'friendica.data.oembed_fetch_end'],
                        [ArrayFilterEvent::PAGE_INFO, 'friendica.data.page_info'],
                        [ArrayFilterEvent::SMILEY_LIST, 'friendica.data.smiley_list'],