]> git.mxchange.org Git - friendica.git/commitdiff
Create Event for jot_tool hook
authorArt4 <art4@wlabs.de>
Fri, 14 Feb 2025 08:12:59 +0000 (08:12 +0000)
committerArt4 <art4@wlabs.de>
Fri, 14 Feb 2025 08:12:59 +0000 (08:12 +0000)
src/Content/Conversation.php
src/Core/Hooks/HookEventBridge.php
src/Event/HtmlFilterEvent.php
src/Module/Item/Compose.php
src/Module/Post/Edit.php
tests/Unit/Core/Hooks/HookEventBridgeTest.php

index 3394b3c798e8e0ac1ed37c92d475fa2509171a69..205be399efa674e1d154c3be0e007f04d428a737 100644 (file)
@@ -11,7 +11,6 @@ use Friendica\App\Arguments;
 use Friendica\App\BaseURL;
 use Friendica\App\Mode;
 use Friendica\App\Page;
-use Friendica\AppHelper;
 use Friendica\BaseModule;
 use Friendica\Core\ACL;
 use Friendica\Core\Config\Capability\IManageConfigValues;
@@ -23,6 +22,7 @@ use Friendica\Core\Renderer;
 use Friendica\Core\Session\Capability\IHandleUserSessions;
 use Friendica\Core\Theme;
 use Friendica\Database\DBA;
+use Friendica\Event\HtmlFilterEvent;
 use Friendica\Model\Contact;
 use Friendica\Model\Item as ItemModel;
 use Friendica\Model\Post;
@@ -42,6 +42,7 @@ use Friendica\Util\Profiler;
 use Friendica\Util\Strings;
 use Friendica\Util\Temporal;
 use ImagickException;
+use Psr\EventDispatcher\EventDispatcherInterface;
 use Psr\Log\LoggerInterface;
 
 class Conversation
@@ -75,8 +76,6 @@ class Conversation
        private $baseURL;
        /** @var IManageConfigValues */
        private $config;
-       /** @var AppHelper */
-       private $appHelper;
        /** @var Page */
        private $page;
        /** @var Mode */
@@ -85,8 +84,9 @@ class Conversation
        private $session;
        /** @var UserGServerRepository */
        private $userGServer;
+       private EventDispatcherInterface $eventDispatcher;
 
-       public function __construct(UserGServerRepository $userGServer, LoggerInterface $logger, Profiler $profiler, Activity $activity, L10n $l10n, Item $item, Arguments $args, BaseURL $baseURL, IManageConfigValues $config, IManagePersonalConfigValues $pConfig, Page $page, Mode $mode, AppHelper $appHelper, IHandleUserSessions $session)
+       public function __construct(UserGServerRepository $userGServer, LoggerInterface $logger, Profiler $profiler, Activity $activity, L10n $l10n, Item $item, Arguments $args, BaseURL $baseURL, IManageConfigValues $config, IManagePersonalConfigValues $pConfig, Page $page, Mode $mode, EventDispatcherInterface $eventDispatcher, IHandleUserSessions $session)
        {
                $this->activity    = $activity;
                $this->item        = $item;
@@ -99,7 +99,7 @@ class Conversation
                $this->args        = $args;
                $this->pConfig     = $pConfig;
                $this->page        = $page;
-               $this->appHelper   = $appHelper;
+               $this->eventDispatcher = $eventDispatcher;
                $this->session     = $session;
                $this->userGServer = $userGServer;
        }
@@ -332,8 +332,9 @@ class Conversation
                        '$is_mobile' => $this->mode->isMobile(),
                ]);
 
-               $jotplugins = '';
-               Hook::callAll('jot_tool', $jotplugins);
+               $jotplugins = $this->eventDispatcher->dispatch(
+                       new HtmlFilterEvent(HtmlFilterEvent::JOT_TOOL, ''),
+               )->getHtml();
 
                if ($this->config->get('system', 'set_creation_date')) {
                        $created_at = Temporal::getDateTimeField(
index fca179a75b86d2b8ee4169db39a1c711fa92b768..d04a3e60bd6b95fb8652f2ffed7a19d7c2d34b37 100644 (file)
@@ -53,6 +53,7 @@ final class HookEventBridge
                HtmlFilterEvent::PAGE_HEADER        => 'page_header',
                HtmlFilterEvent::PAGE_CONTENT_TOP   => 'page_content_top',
                HtmlFilterEvent::PAGE_END           => 'page_end',
+               HtmlFilterEvent::JOT_TOOL           => 'jot_tool',
        ];
 
        /**
@@ -79,6 +80,7 @@ final class HookEventBridge
                        HtmlFilterEvent::PAGE_HEADER        => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_CONTENT_TOP   => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_END           => 'onHtmlFilterEvent',
+                       HtmlFilterEvent::JOT_TOOL           => 'onHtmlFilterEvent',
                ];
        }
 
index 7d1bbb2b5555e6d0c1f27b0b138c5b65dee1ea93..83a852e08b571e57b7c95795c857a6871e78850d 100644 (file)
@@ -26,6 +26,8 @@ final class HtmlFilterEvent extends Event
 
        public const PAGE_END = 'friendica.html.page_end';
 
+       public const JOT_TOOL = 'friendica.html.jot_tool';
+
        private string $html;
 
        public function __construct(string $name, string $html)
index 727b8ba04fe3ad86dccc745cb3b6e0c2f39ca1ff..4463e6dbd8882d745c44a3ef8a7d7c486fc73493 100644 (file)
@@ -16,13 +16,13 @@ use Friendica\BaseModule;
 use Friendica\Content\Feature;
 use Friendica\Core\ACL;
 use Friendica\Core\Config\Capability\IManageConfigValues;
-use Friendica\Core\Hook;
 use Friendica\Core\L10n;
 use Friendica\Core\PConfig\Capability\IManagePersonalConfigValues;
 use Friendica\Core\Renderer;
 use Friendica\Core\Session\Model\UserSession;
 use Friendica\Core\Theme;
 use Friendica\Database\DBA;
+use Friendica\Event\HtmlFilterEvent;
 use Friendica\Model\Contact;
 use Friendica\Model\Item;
 use Friendica\Model\User;
@@ -34,6 +34,7 @@ use Friendica\Util\ACLFormatter;
 use Friendica\Util\Crypto;
 use Friendica\Util\Profiler;
 use Friendica\Util\Temporal;
+use Psr\EventDispatcher\EventDispatcherInterface;
 use Psr\Log\LoggerInterface;
 
 class Compose extends BaseModule
@@ -59,8 +60,9 @@ class Compose extends BaseModule
        /** @var AppHelper */
        private $appHelper;
 
+       private EventDispatcherInterface $eventDispatcher;
 
-       public function __construct(AppHelper $appHelper, UserSession $session, IManageConfigValues $config, IManagePersonalConfigValues $pConfig, Page $page, ACLFormatter $ACLFormatter, SystemMessages $systemMessages, L10n $l10n, BaseURL $baseUrl, Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, array $server, array $parameters = [])
+       public function __construct(EventDispatcherInterface $eventDispatcher, AppHelper $appHelper, UserSession $session, IManageConfigValues $config, IManagePersonalConfigValues $pConfig, Page $page, ACLFormatter $ACLFormatter, SystemMessages $systemMessages, 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);
 
@@ -71,6 +73,7 @@ class Compose extends BaseModule
                $this->config         = $config;
                $this->session        = $session;
                $this->appHelper      = $appHelper;
+               $this->eventDispatcher = $eventDispatcher;
        }
 
        protected function post(array $request = [])
@@ -153,8 +156,9 @@ class Compose extends BaseModule
                $location      = $_REQUEST['location']      ?? $user['default-location'];
                $wall          = $_REQUEST['wall']          ?? $type == 'post';
 
-               $jotplugins = '';
-               Hook::callAll('jot_tool', $jotplugins);
+               $jotplugins = $this->eventDispatcher->dispatch(
+                       new HtmlFilterEvent(HtmlFilterEvent::JOT_TOOL, ''),
+               )->getHtml();
 
                // Output
                $this->page->registerFooterScript(Theme::getPathForFile('js/ajaxupload.js'));
index c07ba9d78f723286c8444082caf24abafef88e69..76b39389a0a6035b3015d1f47b9fda61bf03d1cf 100644 (file)
@@ -15,10 +15,10 @@ use Friendica\App\Page;
 use Friendica\AppHelper;
 use Friendica\BaseModule;
 use Friendica\Content\Feature;
-use Friendica\Core\Hook;
 use Friendica\Core\L10n;
 use Friendica\Core\Renderer;
 use Friendica\Core\Session\Capability\IHandleUserSessions;
+use Friendica\Event\HtmlFilterEvent;
 use Friendica\Model\Contact;
 use Friendica\Model\Post;
 use Friendica\Model\User;
@@ -27,6 +27,7 @@ use Friendica\Navigation\SystemMessages;
 use Friendica\Network\HTTPException;
 use Friendica\Util\Crypto;
 use Friendica\Util\Profiler;
+use Psr\EventDispatcher\EventDispatcherInterface;
 use Psr\Log\LoggerInterface;
 
 /**
@@ -44,10 +45,13 @@ class Edit extends BaseModule
        protected $mode;
        /** @var AppHelper */
        protected $appHelper;
+
+       private EventDispatcherInterface $eventDispatcher;
+
        /** @var bool */
        protected $isModal = false;
 
-       public function __construct(L10n $l10n, BaseURL $baseUrl, Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, IHandleUserSessions $session, SystemMessages $sysMessages, Page $page, Mode $mode, AppHelper $appHelper, array $server, array $parameters = [])
+       public function __construct(L10n $l10n, BaseURL $baseUrl, Arguments $args, LoggerInterface $logger, Profiler $profiler, Response $response, IHandleUserSessions $session, SystemMessages $sysMessages, Page $page, Mode $mode, AppHelper $appHelper, EventDispatcherInterface $eventDispatcher, array $server, array $parameters = [])
        {
                parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
 
@@ -56,6 +60,7 @@ class Edit extends BaseModule
                $this->page        = $page;
                $this->mode        = $mode;
                $this->appHelper   = $appHelper;
+               $this->eventDispatcher = $eventDispatcher;
        }
 
 
@@ -109,9 +114,9 @@ class Edit extends BaseModule
                $item['body'] = Post\Media::addAttachmentsToBody($item['uri-id'], $item['body']);
                $item = Post\Media::addHTMLAttachmentToItem($item);
 
-               $jotplugins = '';
-
-               Hook::callAll('jot_tool', $jotplugins);
+               $jotplugins = $this->eventDispatcher->dispatch(
+                       new HtmlFilterEvent(HtmlFilterEvent::JOT_TOOL, ''),
+               )->getHtml();
 
                $output .= Renderer::replaceMacros(Renderer::getMarkupTemplate('jot.tpl'), [
                        '$is_edit'             => true,
index 195f0a0d0baa1d4a939ae6d52feee3de254cf69a..efafdd8395319b5c61a12f2a60686ef3aa41d737 100644 (file)
@@ -42,6 +42,7 @@ class HookEventBridgeTest extends TestCase
                        HtmlFilterEvent::PAGE_HEADER        => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_CONTENT_TOP   => 'onHtmlFilterEvent',
                        HtmlFilterEvent::PAGE_END           => 'onHtmlFilterEvent',
+                       HtmlFilterEvent::JOT_TOOL           => 'onHtmlFilterEvent',
                ];
 
                $this->assertSame(
@@ -196,6 +197,7 @@ class HookEventBridgeTest extends TestCase
                        [HtmlFilterEvent::PAGE_HEADER, 'page_header'],
                        [HtmlFilterEvent::PAGE_CONTENT_TOP, 'page_content_top'],
                        [HtmlFilterEvent::PAGE_END, 'page_end'],
+                       [HtmlFilterEvent::JOT_TOOL, 'jot_tool'],
                ];
        }