Create event for about_hook hook

This commit is contained in:
Art4 2025-03-25 12:26:40 +00:00
parent 88929bb307
commit a9f02bfef5
5 changed files with 32 additions and 4 deletions

View file

@ -99,6 +99,7 @@ final class HookEventBridge
HtmlFilterEvent::PAGE_HEADER => 'page_header', HtmlFilterEvent::PAGE_HEADER => 'page_header',
HtmlFilterEvent::PAGE_CONTENT_TOP => 'page_content_top', HtmlFilterEvent::PAGE_CONTENT_TOP => 'page_content_top',
HtmlFilterEvent::PAGE_END => 'page_end', HtmlFilterEvent::PAGE_END => 'page_end',
HtmlFilterEvent::ABOUT_CONTENT => 'about_hook',
HtmlFilterEvent::JOT_TOOL => 'jot_tool', HtmlFilterEvent::JOT_TOOL => 'jot_tool',
HtmlFilterEvent::CONTACT_BLOCK_END => 'contact_block_end', HtmlFilterEvent::CONTACT_BLOCK_END => 'contact_block_end',
]; ];
@ -173,6 +174,7 @@ final class HookEventBridge
HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent',
HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent',
HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent',
HtmlFilterEvent::ABOUT_CONTENT => 'onHtmlFilterEvent',
HtmlFilterEvent::JOT_TOOL => 'onHtmlFilterEvent', HtmlFilterEvent::JOT_TOOL => 'onHtmlFilterEvent',
HtmlFilterEvent::CONTACT_BLOCK_END => 'onHtmlFilterEvent', HtmlFilterEvent::CONTACT_BLOCK_END => 'onHtmlFilterEvent',
]; ];

View file

@ -26,6 +26,8 @@ final class HtmlFilterEvent extends Event
public const PAGE_END = 'friendica.html.page_end'; 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 JOT_TOOL = 'friendica.html.jot_tool';
public const CONTACT_BLOCK_END = 'friendica.html.contact_block_end'; public const CONTACT_BLOCK_END = 'friendica.html.contact_block_end';

View file

@ -13,16 +13,17 @@ use Friendica\App\BaseURL;
use Friendica\BaseModule; use Friendica\BaseModule;
use Friendica\Core\Addon\AddonHelper; use Friendica\Core\Addon\AddonHelper;
use Friendica\Core\Config\Capability\IManageConfigValues; use Friendica\Core\Config\Capability\IManageConfigValues;
use Friendica\Core\Hook;
use Friendica\Core\KeyValueStorage\Capability\IManageKeyValuePairs; use Friendica\Core\KeyValueStorage\Capability\IManageKeyValuePairs;
use Friendica\Core\L10n; use Friendica\Core\L10n;
use Friendica\Core\Renderer; use Friendica\Core\Renderer;
use Friendica\Core\Session\Capability\IHandleUserSessions; use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Database\PostUpdate; use Friendica\Database\PostUpdate;
use Friendica\Event\HtmlFilterEvent;
use Friendica\Model\User; use Friendica\Model\User;
use Friendica\Network\HTTPException; use Friendica\Network\HTTPException;
use Friendica\Protocol\ActivityPub; use Friendica\Protocol\ActivityPub;
use Friendica\Util\Profiler; use Friendica\Util\Profiler;
use Psr\EventDispatcher\EventDispatcherInterface;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
/** /**
@ -32,6 +33,7 @@ use Psr\Log\LoggerInterface;
class Friendica extends BaseModule class Friendica extends BaseModule
{ {
private AddonHelper $addonHelper; private AddonHelper $addonHelper;
private EventDispatcherInterface $eventDispatcher;
/** @var IManageConfigValues */ /** @var IManageConfigValues */
private $config; private $config;
/** @var IManageKeyValuePairs */ /** @var IManageKeyValuePairs */
@ -39,13 +41,27 @@ class Friendica extends BaseModule
/** @var IHandleUserSessions */ /** @var IHandleUserSessions */
private $session; 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); parent::__construct($l10n, $baseUrl, $args, $logger, $profiler, $response, $server, $parameters);
$this->config = $config; $this->config = $config;
$this->keyValue = $keyValue; $this->keyValue = $keyValue;
$this->session = $session; $this->session = $session;
$this->eventDispatcher = $eventDispatcher;
$this->addonHelper = $addonHelper; $this->addonHelper = $addonHelper;
} }
@ -99,7 +115,9 @@ class Friendica extends BaseModule
$hooked = ''; $hooked = '';
Hook::callAll('about_hook', $hooked); $hooked = $this->eventDispatcher->dispatch(
new HtmlFilterEvent(HtmlFilterEvent::ABOUT_CONTENT, $hooked),
)->getHtml();
$tpl = Renderer::getMarkupTemplate('friendica.tpl'); $tpl = Renderer::getMarkupTemplate('friendica.tpl');

View file

@ -88,6 +88,7 @@ class HookEventBridgeTest extends TestCase
HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent',
HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent',
HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent',
HtmlFilterEvent::ABOUT_CONTENT => 'onHtmlFilterEvent',
HtmlFilterEvent::JOT_TOOL => 'onHtmlFilterEvent', HtmlFilterEvent::JOT_TOOL => 'onHtmlFilterEvent',
HtmlFilterEvent::CONTACT_BLOCK_END => 'onHtmlFilterEvent', HtmlFilterEvent::CONTACT_BLOCK_END => 'onHtmlFilterEvent',
]; ];
@ -525,6 +526,7 @@ class HookEventBridgeTest extends TestCase
[HtmlFilterEvent::PAGE_HEADER, 'page_header'], [HtmlFilterEvent::PAGE_HEADER, 'page_header'],
[HtmlFilterEvent::PAGE_CONTENT_TOP, 'page_content_top'], [HtmlFilterEvent::PAGE_CONTENT_TOP, 'page_content_top'],
[HtmlFilterEvent::PAGE_END, 'page_end'], [HtmlFilterEvent::PAGE_END, 'page_end'],
[HtmlFilterEvent::ABOUT_CONTENT, 'about_hook'],
[HtmlFilterEvent::JOT_TOOL, 'jot_tool'], [HtmlFilterEvent::JOT_TOOL, 'jot_tool'],
[HtmlFilterEvent::CONTACT_BLOCK_END, 'contact_block_end'], [HtmlFilterEvent::CONTACT_BLOCK_END, 'contact_block_end'],
]; ];

View file

@ -27,8 +27,12 @@ class HtmlFilterEventTest extends TestCase
return [ return [
[HtmlFilterEvent::HEAD, 'friendica.html.head'], [HtmlFilterEvent::HEAD, 'friendica.html.head'],
[HtmlFilterEvent::FOOTER, 'friendica.html.footer'], [HtmlFilterEvent::FOOTER, 'friendica.html.footer'],
[HtmlFilterEvent::PAGE_HEADER, 'friendica.html.page_header'],
[HtmlFilterEvent::PAGE_CONTENT_TOP, 'friendica.html.page_content_top'], [HtmlFilterEvent::PAGE_CONTENT_TOP, 'friendica.html.page_content_top'],
[HtmlFilterEvent::PAGE_END, 'friendica.html.page_end'], [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'],
]; ];
} }