mirror of
https://github.com/friendica/friendica
synced 2025-03-13 14:28:27 +00:00
Replace Hook with EventDispatcher in Content Nav class
This commit is contained in:
parent
715248d6a2
commit
b9a191f6d8
5 changed files with 23 additions and 6 deletions
|
@ -10,12 +10,12 @@ namespace Friendica\Content;
|
||||||
use Friendica\App\BaseURL;
|
use Friendica\App\BaseURL;
|
||||||
use Friendica\App\Router;
|
use Friendica\App\Router;
|
||||||
use Friendica\Core\Config\Capability\IManageConfigValues;
|
use Friendica\Core\Config\Capability\IManageConfigValues;
|
||||||
use Friendica\Core\Hook;
|
|
||||||
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\Database;
|
use Friendica\Database\Database;
|
||||||
use Friendica\Event\ArrayFilterEvent;
|
use Friendica\Event\ArrayFilterEvent;
|
||||||
|
use Friendica\Event\HtmlFilterEvent;
|
||||||
use Friendica\Model\Contact;
|
use Friendica\Model\Contact;
|
||||||
use Friendica\Model\User;
|
use Friendica\Model\User;
|
||||||
use Friendica\Module\Conversation\Community;
|
use Friendica\Module\Conversation\Community;
|
||||||
|
@ -119,7 +119,9 @@ class Nav
|
||||||
'$search_hint' => $this->l10n->t('@name, !group, #tags, content')
|
'$search_hint' => $this->l10n->t('@name, !group, #tags, content')
|
||||||
]);
|
]);
|
||||||
|
|
||||||
Hook::callAll('page_header', $nav);
|
$nav = $this->eventDispatcher->dispatch(
|
||||||
|
new HtmlFilterEvent(HtmlFilterEvent::PAGE_HEADER, $nav)
|
||||||
|
)->getHtml();
|
||||||
|
|
||||||
return $nav;
|
return $nav;
|
||||||
}
|
}
|
||||||
|
@ -156,9 +158,11 @@ class Nav
|
||||||
) {
|
) {
|
||||||
$arr = ['app_menu' => $appMenu];
|
$arr = ['app_menu' => $appMenu];
|
||||||
|
|
||||||
$arr = $this->eventDispatcher->dispatch(new ArrayFilterEvent(ArrayFilterEvent::APP_MENU, $arr))->getArray();
|
$arr = $this->eventDispatcher->dispatch(
|
||||||
|
new ArrayFilterEvent(ArrayFilterEvent::APP_MENU, $arr)
|
||||||
|
)->getArray();
|
||||||
|
|
||||||
$appMenu = $arr['app_menu'];
|
$appMenu = $arr['app_menu'] ?? [];
|
||||||
}
|
}
|
||||||
|
|
||||||
return $appMenu;
|
return $appMenu;
|
||||||
|
@ -342,7 +346,9 @@ class Nav
|
||||||
'userinfo' => $userinfo,
|
'userinfo' => $userinfo,
|
||||||
];
|
];
|
||||||
|
|
||||||
Hook::callAll('nav_info', $nav_info);
|
$nav_info = $this->eventDispatcher->dispatch(
|
||||||
|
new ArrayFilterEvent(ArrayFilterEvent::NAV_INFO, $nav_info)
|
||||||
|
)->getArray();
|
||||||
|
|
||||||
return $nav_info;
|
return $nav_info;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,6 +18,8 @@ final class ArrayFilterEvent extends Event
|
||||||
{
|
{
|
||||||
public const APP_MENU = 'friendica.data.app_menu';
|
public const APP_MENU = 'friendica.data.app_menu';
|
||||||
|
|
||||||
|
public const NAV_INFO = 'friendica.data.nav_info';
|
||||||
|
|
||||||
private array $array;
|
private array $array;
|
||||||
|
|
||||||
public function __construct(string $name, array $array)
|
public function __construct(string $name, array $array)
|
||||||
|
|
|
@ -20,6 +20,8 @@ final class HtmlFilterEvent extends Event
|
||||||
|
|
||||||
public const FOOTER = 'friendica.html.footer';
|
public const FOOTER = 'friendica.html.footer';
|
||||||
|
|
||||||
|
public const PAGE_HEADER = 'friendica.html.page_header';
|
||||||
|
|
||||||
public const PAGE_CONTENT_TOP = 'friendica.html.page_content_top';
|
public const PAGE_CONTENT_TOP = 'friendica.html.page_content_top';
|
||||||
|
|
||||||
public const PAGE_END = 'friendica.html.page_end';
|
public const PAGE_END = 'friendica.html.page_end';
|
||||||
|
|
|
@ -24,7 +24,7 @@ use Friendica\Event\NamedEvent;
|
||||||
final class HookEventBridge
|
final class HookEventBridge
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* This allows us to mock the Hook call in tests.
|
* @internal This allows us to mock the Hook call in tests.
|
||||||
*
|
*
|
||||||
* @var \Closure|null
|
* @var \Closure|null
|
||||||
*/
|
*/
|
||||||
|
@ -37,8 +37,10 @@ final class HookEventBridge
|
||||||
Event::INIT => 'init_1',
|
Event::INIT => 'init_1',
|
||||||
ConfigLoadedEvent::CONFIG_LOADED => 'load_config',
|
ConfigLoadedEvent::CONFIG_LOADED => 'load_config',
|
||||||
ArrayFilterEvent::APP_MENU => 'app_menu',
|
ArrayFilterEvent::APP_MENU => 'app_menu',
|
||||||
|
ArrayFilterEvent::NAV_INFO => 'nav_info',
|
||||||
HtmlFilterEvent::HEAD => 'head',
|
HtmlFilterEvent::HEAD => 'head',
|
||||||
HtmlFilterEvent::FOOTER => 'footer',
|
HtmlFilterEvent::FOOTER => 'footer',
|
||||||
|
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',
|
||||||
];
|
];
|
||||||
|
@ -52,8 +54,10 @@ final class HookEventBridge
|
||||||
Event::INIT => 'onNamedEvent',
|
Event::INIT => 'onNamedEvent',
|
||||||
ConfigLoadedEvent::CONFIG_LOADED => 'onConfigLoadedEvent',
|
ConfigLoadedEvent::CONFIG_LOADED => 'onConfigLoadedEvent',
|
||||||
ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent',
|
ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent',
|
||||||
|
ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent',
|
||||||
HtmlFilterEvent::HEAD => 'onHtmlFilterEvent',
|
HtmlFilterEvent::HEAD => 'onHtmlFilterEvent',
|
||||||
HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent',
|
HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent',
|
||||||
|
HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent',
|
||||||
HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent',
|
HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent',
|
||||||
HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent',
|
HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent',
|
||||||
];
|
];
|
||||||
|
|
|
@ -25,8 +25,10 @@ class HookEventBridgeTest extends TestCase
|
||||||
Event::INIT => 'onNamedEvent',
|
Event::INIT => 'onNamedEvent',
|
||||||
ConfigLoadedEvent::CONFIG_LOADED => 'onConfigLoadedEvent',
|
ConfigLoadedEvent::CONFIG_LOADED => 'onConfigLoadedEvent',
|
||||||
ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent',
|
ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent',
|
||||||
|
ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent',
|
||||||
HtmlFilterEvent::HEAD => 'onHtmlFilterEvent',
|
HtmlFilterEvent::HEAD => 'onHtmlFilterEvent',
|
||||||
HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent',
|
HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent',
|
||||||
|
HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent',
|
||||||
HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent',
|
HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent',
|
||||||
HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent',
|
HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent',
|
||||||
];
|
];
|
||||||
|
@ -141,6 +143,7 @@ class HookEventBridgeTest extends TestCase
|
||||||
['test', 'test'],
|
['test', 'test'],
|
||||||
[HtmlFilterEvent::HEAD, 'head'],
|
[HtmlFilterEvent::HEAD, 'head'],
|
||||||
[HtmlFilterEvent::FOOTER, 'footer'],
|
[HtmlFilterEvent::FOOTER, 'footer'],
|
||||||
|
[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'],
|
||||||
];
|
];
|
||||||
|
|
Loading…
Add table
Reference in a new issue