]> git.mxchange.org Git - friendica.git/commitdiff
Create event for moderation_users_tabs hook
authorArt4 <art4@wlabs.de>
Wed, 9 Apr 2025 14:25:00 +0000 (14:25 +0000)
committerArt4 <art4@wlabs.de>
Wed, 9 Apr 2025 14:25:00 +0000 (14:25 +0000)
src/Core/Hooks/HookEventBridge.php
src/Event/ArrayFilterEvent.php
src/Module/Moderation/BaseUsers.php
tests/Unit/Core/Hooks/HookEventBridgeTest.php
tests/Unit/Event/ArrayFilterEventTest.php

index 72204ab11ef09ce39b3c5e640c236903ce62736b..6dc6aeb6672760146192290ebb57f8ecdec28d2b 100644 (file)
@@ -71,6 +71,7 @@ final class HookEventBridge
                ArrayFilterEvent::PROFILE_SIDEBAR_ENTRY           => 'profile_sidebar_enter',
                ArrayFilterEvent::PROFILE_SIDEBAR                 => 'profile_sidebar',
                ArrayFilterEvent::PROFILE_TABS                    => 'profile_tabs',
+               ArrayFilterEvent::MODERATION_USERS_TABS           => 'moderation_users_tabs',
                ArrayFilterEvent::OEMBED_FETCH_END                => 'oembed_fetch_url',
                ArrayFilterEvent::PAGE_INFO                       => 'page_info_data',
                ArrayFilterEvent::SMILEY_LIST                     => 'smilie',
@@ -154,6 +155,7 @@ final class HookEventBridge
                        ArrayFilterEvent::PROFILE_SIDEBAR_ENTRY           => 'onProfileSidebarEntryEvent',
                        ArrayFilterEvent::PROFILE_SIDEBAR                 => 'onArrayFilterEvent',
                        ArrayFilterEvent::PROFILE_TABS                    => 'onArrayFilterEvent',
+                       ArrayFilterEvent::MODERATION_USERS_TABS           => 'onArrayFilterEvent',
                        ArrayFilterEvent::OEMBED_FETCH_END                => 'onOembedFetchEndEvent',
                        ArrayFilterEvent::PAGE_INFO                       => 'onArrayFilterEvent',
                        ArrayFilterEvent::SMILEY_LIST                     => 'onArrayFilterEvent',
index 01a9a90675519d96eb1e8e4e329fead594c209ca..cb14052bb203e5976e0ad9b4227cbde705d9bc67 100644 (file)
@@ -92,6 +92,8 @@ final class ArrayFilterEvent extends Event
 
        public const PROFILE_TABS = 'friendica.data.profile_tabs';
 
+       public const MODERATION_USERS_TABS = 'friendica.data.moderation_users_tabs';
+
        public const OEMBED_FETCH_END = 'friendica.data.oembed_fetch_end';
 
        public const PAGE_INFO = 'friendica.data.page_info';
index fcf4b4aa167e845266f61541e3e19f61fb30ba3d..6f9e4a800d21a2ea95c3c702a8240a90348b2923 100644 (file)
@@ -16,6 +16,8 @@ use Friendica\Core\L10n;
 use Friendica\Core\Renderer;
 use Friendica\Core\Session\Capability\IHandleUserSessions;
 use Friendica\Database\Database;
+use Friendica\DI;
+use Friendica\Event\ArrayFilterEvent;
 use Friendica\Model\Register;
 use Friendica\Model\User;
 use Friendica\Module\BaseModeration;
@@ -95,11 +97,23 @@ abstract class BaseUsers extends BaseModeration
                                'accesskey' => 'd',
                        ],
                ];
-               $tabs_arr = ['tabs' => $tabs, 'selectedTab' => $selectedTab];
-               Hook::callAll('moderation_users_tabs', $tabs_arr);
+
+               $hook_data = [
+                       'tabs' => $tabs,
+                       'selectedTab' => $selectedTab,
+               ];
+
+               $eventDispatcher = DI::eventDispatcher();
+
+               $hook_data = $eventDispatcher->dispatch(
+                       new ArrayFilterEvent(ArrayFilterEvent::MODERATION_USERS_TABS, $hook_data),
+               )->getArray();
+
+               $tabs = $hook_data['tabs'] ?? $tabs;
 
                $tpl = Renderer::getMarkupTemplate('common_tabs.tpl');
-               return Renderer::replaceMacros($tpl, ['$tabs' => $tabs_arr['tabs'], '$more' => $this->t('More')]);
+
+               return Renderer::replaceMacros($tpl, ['$tabs' => $tabs, '$more' => $this->t('More')]);
        }
 
        protected function setupUserCallback(): \Closure
index 7b97e76a02b20cfd85cf4e1e4e686bf0196ad53c..ae98a2fc0e92e32ab43f2a0e1e04e4bc762a3c52 100644 (file)
@@ -60,6 +60,7 @@ class HookEventBridgeTest extends TestCase
                        ArrayFilterEvent::PROFILE_SIDEBAR_ENTRY           => 'onProfileSidebarEntryEvent',
                        ArrayFilterEvent::PROFILE_SIDEBAR                 => 'onArrayFilterEvent',
                        ArrayFilterEvent::PROFILE_TABS                    => 'onArrayFilterEvent',
+                       ArrayFilterEvent::MODERATION_USERS_TABS           => 'onArrayFilterEvent',
                        ArrayFilterEvent::OEMBED_FETCH_END                => 'onOembedFetchEndEvent',
                        ArrayFilterEvent::PAGE_INFO                       => 'onArrayFilterEvent',
                        ArrayFilterEvent::SMILEY_LIST                     => 'onArrayFilterEvent',
@@ -483,6 +484,7 @@ class HookEventBridgeTest extends TestCase
                        [ArrayFilterEvent::CONTACT_PHOTO_MENU, 'contact_photo_menu'],
                        [ArrayFilterEvent::PROFILE_SIDEBAR, 'profile_sidebar'],
                        [ArrayFilterEvent::PROFILE_TABS, 'profile_tabs'],
+                       [ArrayFilterEvent::MODERATION_USERS_TABS, 'moderation_users_tabs'],
                        [ArrayFilterEvent::PAGE_INFO, 'page_info_data'],
                        [ArrayFilterEvent::SMILEY_LIST, 'smilie'],
                        [ArrayFilterEvent::JOT_NETWORKS, 'jot_networks'],
index 4e1a800435ca97ce238ddafd11436a4b47364220..4f20c375435ec90f7252003215036ad567e1434f 100644 (file)
@@ -57,6 +57,7 @@ class ArrayFilterEventTest extends TestCase
                        [ArrayFilterEvent::PROFILE_SIDEBAR_ENTRY, 'friendica.data.profile_sidebar_entry'],
                        [ArrayFilterEvent::PROFILE_SIDEBAR, 'friendica.data.profile_sidebar'],
                        [ArrayFilterEvent::PROFILE_TABS, 'friendica.data.profile_tabs'],
+                       [ArrayFilterEvent::MODERATION_USERS_TABS, 'friendica.data.moderation_users_tabs'],
                        [ArrayFilterEvent::OEMBED_FETCH_END, 'friendica.data.oembed_fetch_end'],
                        [ArrayFilterEvent::PAGE_INFO, 'friendica.data.page_info'],
                        [ArrayFilterEvent::SMILEY_LIST, 'friendica.data.smiley_list'],