]> git.mxchange.org Git - friendica.git/commitdiff
Create event for about_hook hook
authorArt4 <art4@wlabs.de>
Tue, 25 Mar 2025 12:26:40 +0000 (12:26 +0000)
committerArt4 <art4@wlabs.de>
Tue, 25 Mar 2025 12:26:40 +0000 (12:26 +0000)
src/Core/Hooks/HookEventBridge.php
src/Event/HtmlFilterEvent.php
src/Module/Friendica.php
tests/Unit/Core/Hooks/HookEventBridgeTest.php
tests/Unit/Event/HtmlFilterEventTest.php

index e208901a82bc3ec19ab6873fc0462c9493b7a62c..24d15606ea4880849861550bce02ed5b67405868 100644 (file)
@@ -99,6 +99,7 @@ final class HookEventBridge
                HtmlFilterEvent::PAGE_HEADER                      => 'page_header',
                HtmlFilterEvent::PAGE_CONTENT_TOP                 => 'page_content_top',
                HtmlFilterEvent::PAGE_END                         => 'page_end',
+               HtmlFilterEvent::ABOUT_CONTENT                    => 'about_hook',
                HtmlFilterEvent::JOT_TOOL                         => 'jot_tool',
                HtmlFilterEvent::CONTACT_BLOCK_END                => 'contact_block_end',
        ];
@@ -173,6 +174,7 @@ final class HookEventBridge
                        HtmlFilterEvent::PAGE_HEADER                      => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_CONTENT_TOP                 => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_END                         => 'onHtmlFilterEvent',
+                       HtmlFilterEvent::ABOUT_CONTENT                    => 'onHtmlFilterEvent',
                        HtmlFilterEvent::JOT_TOOL                         => 'onHtmlFilterEvent',
                        HtmlFilterEvent::CONTACT_BLOCK_END                => 'onHtmlFilterEvent',
                ];
index cb8a3992dfbda19f8ee29fc876601b68cb0ef477..2f68d864bfb9d80d9427f8830f9b175f5871e170 100644 (file)
@@ -26,6 +26,8 @@ final class HtmlFilterEvent extends Event
 
        public const PAGE_END = 'friendica.html.page_end';
 
+       public const ABOUT_CONTENT = 'friendica.html.about_content';
+
        public const JOT_TOOL = 'friendica.html.jot_tool';
 
        public const CONTACT_BLOCK_END = 'friendica.html.contact_block_end';
index 1a741b890c150a8e75e9791accfd88008ef2a1df..0ace0707dd106e2aa09c882c1fa89a5aca541351 100644 (file)
@@ -13,16 +13,17 @@ use Friendica\App\BaseURL;
 use Friendica\BaseModule;
 use Friendica\Core\Addon\AddonHelper;
 use Friendica\Core\Config\Capability\IManageConfigValues;
-use Friendica\Core\Hook;
 use Friendica\Core\KeyValueStorage\Capability\IManageKeyValuePairs;
 use Friendica\Core\L10n;
 use Friendica\Core\Renderer;
 use Friendica\Core\Session\Capability\IHandleUserSessions;
 use Friendica\Database\PostUpdate;
+use Friendica\Event\HtmlFilterEvent;
 use Friendica\Model\User;
 use Friendica\Network\HTTPException;
 use Friendica\Protocol\ActivityPub;
 use Friendica\Util\Profiler;
+use Psr\EventDispatcher\EventDispatcherInterface;
 use Psr\Log\LoggerInterface;
 
 /**
@@ -32,6 +33,7 @@ use Psr\Log\LoggerInterface;
 class Friendica extends BaseModule
 {
        private AddonHelper $addonHelper;
+       private EventDispatcherInterface $eventDispatcher;
        /** @var IManageConfigValues */
        private $config;
        /** @var IManageKeyValuePairs */
@@ -39,13 +41,27 @@ class Friendica extends BaseModule
        /** @var IHandleUserSessions */
        private $session;
 
-       public function __construct(AddonHelper $addonHelper, IHandleUserSessions $session, IManageKeyValuePairs $keyValue, IManageConfigValues $config, L10n $l10n, BaseURL $baseUrl, Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = [])
-       {
+       public function __construct(
+               AddonHelper $addonHelper,
+               EventDispatcherInterface $eventDispatcher,
+               IHandleUserSessions $session,
+               IManageKeyValuePairs $keyValue,
+               IManageConfigValues $config,
+               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->config      = $config;
                $this->keyValue    = $keyValue;
                $this->session     = $session;
+               $this->eventDispatcher = $eventDispatcher;
                $this->addonHelper = $addonHelper;
        }
 
@@ -99,7 +115,9 @@ class Friendica extends BaseModule
 
                $hooked = '';
 
-               Hook::callAll('about_hook', $hooked);
+               $hooked = $this->eventDispatcher->dispatch(
+                       new HtmlFilterEvent(HtmlFilterEvent::ABOUT_CONTENT, $hooked),
+               )->getHtml();
 
                $tpl = Renderer::getMarkupTemplate('friendica.tpl');
 
index 69e37c0b9c8a5a5a516df29694f462b21107e78e..ab6f5e2cf0ac48c72ed88136b8062e71def6bc98 100644 (file)
@@ -88,6 +88,7 @@ class HookEventBridgeTest extends TestCase
                        HtmlFilterEvent::PAGE_HEADER                      => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_CONTENT_TOP                 => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_END                         => 'onHtmlFilterEvent',
+                       HtmlFilterEvent::ABOUT_CONTENT                    => 'onHtmlFilterEvent',
                        HtmlFilterEvent::JOT_TOOL                         => 'onHtmlFilterEvent',
                        HtmlFilterEvent::CONTACT_BLOCK_END                => 'onHtmlFilterEvent',
                ];
@@ -525,6 +526,7 @@ class HookEventBridgeTest extends TestCase
                        [HtmlFilterEvent::PAGE_HEADER, 'page_header'],
                        [HtmlFilterEvent::PAGE_CONTENT_TOP, 'page_content_top'],
                        [HtmlFilterEvent::PAGE_END, 'page_end'],
+                       [HtmlFilterEvent::ABOUT_CONTENT, 'about_hook'],
                        [HtmlFilterEvent::JOT_TOOL, 'jot_tool'],
                        [HtmlFilterEvent::CONTACT_BLOCK_END, 'contact_block_end'],
                ];
index ae1d27a5adc682b3d33a344fbac939d36a516b35..9d38cf097aa74ea29b0c9326ab47bfa57aaf31c3 100644 (file)
@@ -27,8 +27,12 @@ class HtmlFilterEventTest extends TestCase
                return [
                        [HtmlFilterEvent::HEAD, 'friendica.html.head'],
                        [HtmlFilterEvent::FOOTER, 'friendica.html.footer'],
+                       [HtmlFilterEvent::PAGE_HEADER, 'friendica.html.page_header'],
                        [HtmlFilterEvent::PAGE_CONTENT_TOP, 'friendica.html.page_content_top'],
                        [HtmlFilterEvent::PAGE_END, 'friendica.html.page_end'],
+                       [HtmlFilterEvent::ABOUT_CONTENT, 'friendica.html.about_content'],
+                       [HtmlFilterEvent::JOT_TOOL, 'friendica.html.jot_tool'],
+                       [HtmlFilterEvent::CONTACT_BLOCK_END, 'friendica.html.contact_block_end'],
                ];
        }