]> git.mxchange.org Git - friendica.git/commitdiff
create event for profile_advanced hook
authorArt4 <art4@wlabs.de>
Thu, 10 Apr 2025 14:36:57 +0000 (14:36 +0000)
committerArt4 <art4@wlabs.de>
Thu, 10 Apr 2025 14:36:57 +0000 (14:36 +0000)
src/Core/Hooks/HookEventBridge.php
src/Event/HtmlFilterEvent.php
src/Module/Profile/Profile.php
tests/Unit/Core/Hooks/HookEventBridgeTest.php
tests/Unit/Event/HtmlFilterEventTest.php

index df2a17322e0e2a0478112ac62c289f335c138cbd..9d20a36e8972faafed18b60db4c019bc529e1728 100644 (file)
@@ -113,6 +113,7 @@ final class HookEventBridge
                HtmlFilterEvent::PAGE_END                         => 'page_end',
                HtmlFilterEvent::MOD_HOME_CONTENT                 => 'home_content',
                HtmlFilterEvent::MOD_ABOUT_CONTENT                => 'about_hook',
+               HtmlFilterEvent::MOD_PROFILE_CONTENT              => 'profile_advanced',
                HtmlFilterEvent::JOT_TOOL                         => 'jot_tool',
                HtmlFilterEvent::CONTACT_BLOCK_END                => 'contact_block_end',
        ];
@@ -201,6 +202,7 @@ final class HookEventBridge
                        HtmlFilterEvent::PAGE_END                         => 'onHtmlFilterEvent',
                        HtmlFilterEvent::MOD_HOME_CONTENT                 => 'onHtmlFilterEvent',
                        HtmlFilterEvent::MOD_ABOUT_CONTENT                => 'onHtmlFilterEvent',
+                       HtmlFilterEvent::MOD_PROFILE_CONTENT              => 'onHtmlFilterEvent',
                        HtmlFilterEvent::JOT_TOOL                         => 'onHtmlFilterEvent',
                        HtmlFilterEvent::CONTACT_BLOCK_END                => 'onHtmlFilterEvent',
                ];
index 9e30d6d656304eee9d6d4348087d2b834fe10091..1275e0791de21ca5b0be4fc43e39ed56cec612d6 100644 (file)
@@ -30,6 +30,8 @@ final class HtmlFilterEvent extends Event
 
        public const MOD_ABOUT_CONTENT = 'friendica.html.mod_about_content';
 
+       public const MOD_PROFILE_CONTENT = 'friendica.html.mod_profile_content';
+
        public const JOT_TOOL = 'friendica.html.jot_tool';
 
        public const CONTACT_BLOCK_END = 'friendica.html.contact_block_end';
index e84003e4dc65cf75771493097f1902a3d76c6d41..b3f15f5f44fb37f94cfd214d3ed1b94ba446068a 100644 (file)
@@ -17,13 +17,13 @@ use Friendica\Content\Nav;
 use Friendica\Content\Text\BBCode;
 use Friendica\Content\Text\HTML;
 use Friendica\Core\Config\Capability\IManageConfigValues;
-use Friendica\Core\Hook;
 use Friendica\Core\L10n;
 use Friendica\Core\Protocol;
 use Friendica\Core\Renderer;
 use Friendica\Core\Session\Capability\IHandleUserSessions;
 use Friendica\Database\Database;
 use Friendica\Database\DBA;
+use Friendica\Event\HtmlFilterEvent;
 use Friendica\Model\Contact;
 use Friendica\Model\Profile as ProfileModel;
 use Friendica\Model\Tag;
@@ -40,6 +40,7 @@ use Friendica\Util\Network;
 use Friendica\Util\Profiler;
 use Friendica\Util\Temporal;
 use GuzzleHttp\Psr7\Uri;
+use Psr\EventDispatcher\EventDispatcherInterface;
 use Psr\Log\LoggerInterface;
 
 class Profile extends BaseProfile
@@ -56,9 +57,25 @@ class Profile extends BaseProfile
        private $page;
        /** @var ProfileField */
        private $profileField;
-
-       public function __construct(ProfileField $profileField, Page $page, IManageConfigValues $config, IHandleUserSessions $session, AppHelper $appHelper, Database $database, L10n $l10n, BaseURL $baseUrl, Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = [])
-       {
+       private EventDispatcherInterface $eventDispatcher;
+
+       public function __construct(
+               ProfileField $profileField,
+               Page $page,
+               IManageConfigValues $config,
+               IHandleUserSessions $session,
+               AppHelper $appHelper,
+               Database $database,
+               EventDispatcherInterface $eventDispatcher,
+               L10n $l10n,
+               BaseURL $baseUrl,
+               Arguments $args,
+               LoggerInterface $logger,
+               Profiler $profiler,
+               Response $response,
+               array $server,
+               array $parameters = [],
+       ) {
                parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
 
                $this->database     = $database;
@@ -67,6 +84,7 @@ class Profile extends BaseProfile
                $this->config       = $config;
                $this->page         = $page;
                $this->profileField = $profileField;
+               $this->eventDispatcher = $eventDispatcher;
        }
 
        protected function rawContent(array $request = [])
@@ -282,7 +300,9 @@ class Profile extends BaseProfile
                        ],
                ]);
 
-               Hook::callAll('profile_advanced', $o);
+               $o = $this->eventDispatcher->dispatch(
+                       new HTmlFilterEvent(HtmlFilterEvent::MOD_PROFILE_CONTENT, $o),
+               )->getHtml();
 
                return $o;
        }
index f30a1c2fef42a6bb36d0f4266da4c1be0b12a000..6c5c5fecf8970ae42c373ea9f1f780cf226bb2d5 100644 (file)
@@ -102,6 +102,7 @@ class HookEventBridgeTest extends TestCase
                        HtmlFilterEvent::PAGE_END                         => 'onHtmlFilterEvent',
                        HtmlFilterEvent::MOD_HOME_CONTENT                 => 'onHtmlFilterEvent',
                        HtmlFilterEvent::MOD_ABOUT_CONTENT                => 'onHtmlFilterEvent',
+                       HtmlFilterEvent::MOD_PROFILE_CONTENT              => 'onHtmlFilterEvent',
                        HtmlFilterEvent::JOT_TOOL                         => 'onHtmlFilterEvent',
                        HtmlFilterEvent::CONTACT_BLOCK_END                => 'onHtmlFilterEvent',
                ];
@@ -612,6 +613,7 @@ class HookEventBridgeTest extends TestCase
                        [HtmlFilterEvent::PAGE_END, 'page_end'],
                        [HtmlFilterEvent::MOD_HOME_CONTENT, 'home_content'],
                        [HtmlFilterEvent::MOD_ABOUT_CONTENT, 'about_hook'],
+                       [HtmlFilterEvent::MOD_PROFILE_CONTENT, 'profile_advanced'],
                        [HtmlFilterEvent::JOT_TOOL, 'jot_tool'],
                        [HtmlFilterEvent::CONTACT_BLOCK_END, 'contact_block_end'],
                ];
index 47a2d2596d09b1f7b4d24e3f4f42ff2764666dd7..bae1669ca09959223fa83ddd89c93e03878fbff5 100644 (file)
@@ -32,6 +32,7 @@ class HtmlFilterEventTest extends TestCase
                        [HtmlFilterEvent::PAGE_END, 'friendica.html.page_end'],
                        [HtmlFilterEvent::MOD_HOME_CONTENT, 'friendica.html.mod_home_content'],
                        [HtmlFilterEvent::MOD_ABOUT_CONTENT, 'friendica.html.mod_about_content'],
+                       [HtmlFilterEvent::MOD_PROFILE_CONTENT, 'friendica.html.mod_profile_content'],
                        [HtmlFilterEvent::JOT_TOOL, 'friendica.html.jot_tool'],
                        [HtmlFilterEvent::CONTACT_BLOCK_END, 'friendica.html.contact_block_end'],
                ];