diff --git a/src/Core/Hooks/HookEventBridge.php b/src/Core/Hooks/HookEventBridge.php index df2a17322e..9d20a36e89 100644 --- a/src/Core/Hooks/HookEventBridge.php +++ b/src/Core/Hooks/HookEventBridge.php @@ -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', ]; diff --git a/src/Event/HtmlFilterEvent.php b/src/Event/HtmlFilterEvent.php index 9e30d6d656..1275e0791d 100644 --- a/src/Event/HtmlFilterEvent.php +++ b/src/Event/HtmlFilterEvent.php @@ -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'; diff --git a/src/Module/Profile/Profile.php b/src/Module/Profile/Profile.php index e84003e4dc..b3f15f5f44 100644 --- a/src/Module/Profile/Profile.php +++ b/src/Module/Profile/Profile.php @@ -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; + private EventDispatcherInterface $eventDispatcher; - 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 = []) - { + 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; } diff --git a/tests/Unit/Core/Hooks/HookEventBridgeTest.php b/tests/Unit/Core/Hooks/HookEventBridgeTest.php index f30a1c2fef..6c5c5fecf8 100644 --- a/tests/Unit/Core/Hooks/HookEventBridgeTest.php +++ b/tests/Unit/Core/Hooks/HookEventBridgeTest.php @@ -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'], ]; diff --git a/tests/Unit/Event/HtmlFilterEventTest.php b/tests/Unit/Event/HtmlFilterEventTest.php index 47a2d2596d..bae1669ca0 100644 --- a/tests/Unit/Event/HtmlFilterEventTest.php +++ b/tests/Unit/Event/HtmlFilterEventTest.php @@ -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'], ];