use Friendica\App\BaseURL;
use Friendica\App\Router;
use Friendica\Core\Config\Capability\IManageConfigValues;
-use Friendica\Core\Hook;
use Friendica\Core\L10n;
use Friendica\Core\Renderer;
use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Database\Database;
use Friendica\Event\ArrayFilterEvent;
+use Friendica\Event\HtmlFilterEvent;
use Friendica\Model\Contact;
use Friendica\Model\User;
use Friendica\Module\Conversation\Community;
'$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;
}
) {
$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;
'userinfo' => $userinfo,
];
- Hook::callAll('nav_info', $nav_info);
+ $nav_info = $this->eventDispatcher->dispatch(
+ new ArrayFilterEvent(ArrayFilterEvent::NAV_INFO, $nav_info)
+ )->getArray();
return $nav_info;
}
{
public const APP_MENU = 'friendica.data.app_menu';
+ public const NAV_INFO = 'friendica.data.nav_info';
+
private array $array;
public function __construct(string $name, array $array)
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_END = 'friendica.html.page_end';
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
*/
Event::INIT => 'init_1',
ConfigLoadedEvent::CONFIG_LOADED => 'load_config',
ArrayFilterEvent::APP_MENU => 'app_menu',
+ ArrayFilterEvent::NAV_INFO => 'nav_info',
HtmlFilterEvent::HEAD => 'head',
HtmlFilterEvent::FOOTER => 'footer',
+ HtmlFilterEvent::PAGE_HEADER => 'page_header',
HtmlFilterEvent::PAGE_CONTENT_TOP => 'page_content_top',
HtmlFilterEvent::PAGE_END => 'page_end',
];
Event::INIT => 'onNamedEvent',
ConfigLoadedEvent::CONFIG_LOADED => 'onConfigLoadedEvent',
ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent',
+ ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent',
HtmlFilterEvent::HEAD => 'onHtmlFilterEvent',
HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent',
+ HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent',
HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent',
HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent',
];
Event::INIT => 'onNamedEvent',
ConfigLoadedEvent::CONFIG_LOADED => 'onConfigLoadedEvent',
ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent',
+ ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent',
HtmlFilterEvent::HEAD => 'onHtmlFilterEvent',
HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent',
+ HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent',
HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent',
HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent',
];
['test', 'test'],
[HtmlFilterEvent::HEAD, 'head'],
[HtmlFilterEvent::FOOTER, 'footer'],
+ [HtmlFilterEvent::PAGE_HEADER, 'page_header'],
[HtmlFilterEvent::PAGE_CONTENT_TOP, 'page_content_top'],
[HtmlFilterEvent::PAGE_END, 'page_end'],
];