diff --git a/src/Content/Feature.php b/src/Content/Feature.php index 67031a73c3..89165e232c 100644 --- a/src/Content/Feature.php +++ b/src/Content/Feature.php @@ -7,7 +7,6 @@ namespace Friendica\Content; -use Friendica\Core\Hook; use Friendica\DI; use Friendica\Event\ArrayFilterEvent; @@ -95,8 +94,9 @@ class Feature */ public static function get($filtered = true) { - $l10n = DI::l10n(); - $config = DI::config(); + $l10n = DI::l10n(); + $config = DI::config(); + $eventDispatcher = DI::eventDispatcher(); $arr = [ // General @@ -170,7 +170,10 @@ class Feature } } - Hook::callAll('get', $arr); + $arr = $eventDispatcher->dispatch( + new ArrayFilterEvent(ArrayFilterEvent::FEATURE_GET, $arr) + )->getArray(); + return $arr; } } diff --git a/src/Event/ArrayFilterEvent.php b/src/Event/ArrayFilterEvent.php index 5d084e42d5..839aa40b75 100644 --- a/src/Event/ArrayFilterEvent.php +++ b/src/Event/ArrayFilterEvent.php @@ -22,6 +22,8 @@ final class ArrayFilterEvent extends Event public const FEATURE_ENABLED = 'friendica.data.feature_enabled'; + public const FEATURE_GET = 'friendica.data.feature_get'; + private array $array; public function __construct(string $name, array $array) diff --git a/src/EventSubscriber/HookEventBridge.php b/src/EventSubscriber/HookEventBridge.php index ede5fe409f..f5dde4fbb7 100644 --- a/src/EventSubscriber/HookEventBridge.php +++ b/src/EventSubscriber/HookEventBridge.php @@ -39,6 +39,7 @@ final class HookEventBridge ArrayFilterEvent::APP_MENU => 'app_menu', ArrayFilterEvent::NAV_INFO => 'nav_info', ArrayFilterEvent::FEATURE_ENABLED => 'isEnabled', + ArrayFilterEvent::FEATURE_GET => 'get', HtmlFilterEvent::HEAD => 'head', HtmlFilterEvent::FOOTER => 'footer', HtmlFilterEvent::PAGE_HEADER => 'page_header', @@ -57,6 +58,7 @@ final class HookEventBridge ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent', ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent', ArrayFilterEvent::FEATURE_ENABLED => 'onArrayFilterEvent', + ArrayFilterEvent::FEATURE_GET => 'onArrayFilterEvent', HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', diff --git a/tests/Unit/EventSubscriber/HookEventBridgeTest.php b/tests/Unit/EventSubscriber/HookEventBridgeTest.php index df138f4577..07bfa81229 100644 --- a/tests/Unit/EventSubscriber/HookEventBridgeTest.php +++ b/tests/Unit/EventSubscriber/HookEventBridgeTest.php @@ -27,6 +27,7 @@ class HookEventBridgeTest extends TestCase ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent', ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent', ArrayFilterEvent::FEATURE_ENABLED => 'onArrayFilterEvent', + ArrayFilterEvent::FEATURE_GET => 'onArrayFilterEvent', HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', @@ -117,6 +118,7 @@ class HookEventBridgeTest extends TestCase [ArrayFilterEvent::APP_MENU, 'app_menu'], [ArrayFilterEvent::NAV_INFO, 'nav_info'], [ArrayFilterEvent::FEATURE_ENABLED, 'isEnabled'], + [ArrayFilterEvent::FEATURE_GET, 'get'], ]; }