diff --git a/mod/photos.php b/mod/photos.php index c2831270ab..25eac8c533 100644 --- a/mod/photos.php +++ b/mod/photos.php @@ -12,12 +12,12 @@ use Friendica\Content\Pager; use Friendica\Content\Text\BBCode; use Friendica\Core\ACL; use Friendica\Core\Addon; -use Friendica\Core\Hook; use Friendica\Core\Renderer; use Friendica\Core\System; use Friendica\Database\DBA; use Friendica\Database\DBStructure; use Friendica\DI; +use Friendica\Event\ArrayFilterEvent; use Friendica\Model\Contact; use Friendica\Model\Item; use Friendica\Model\Photo; @@ -648,7 +648,11 @@ function photos_content() 'default_upload' => true ]; - Hook::callAll('photo_upload_form', $ret); + $eventDispatcher = DI::eventDispatcher(); + + $eventDispatcher->dispatch( + new ArrayFilterEvent(ArrayFilterEvent::PHOTO_UPLOAD_FORM, $ret) + ); $default_upload_box = Renderer::replaceMacros(Renderer::getMarkupTemplate('photos_default_uploader_box.tpl'), []); $default_upload_submit = Renderer::replaceMacros(Renderer::getMarkupTemplate('photos_default_uploader_submit.tpl'), [ diff --git a/src/Core/Hooks/HookEventBridge.php b/src/Core/Hooks/HookEventBridge.php index 9f35828ebf..23cd209e11 100644 --- a/src/Core/Hooks/HookEventBridge.php +++ b/src/Core/Hooks/HookEventBridge.php @@ -34,21 +34,22 @@ final class HookEventBridge * This maps the new event names to the legacy Hook names. */ private static array $eventMapper = [ - Event::INIT => 'init_1', - Event::HOME_INIT => 'home_init', - ConfigLoadedEvent::CONFIG_LOADED => 'load_config', - ArrayFilterEvent::APP_MENU => 'app_menu', - ArrayFilterEvent::NAV_INFO => 'nav_info', - ArrayFilterEvent::FEATURE_ENABLED => 'isEnabled', - ArrayFilterEvent::FEATURE_GET => 'get', - ArrayFilterEvent::POST_LOCAL_START => 'post_local_start', - ArrayFilterEvent::POST_LOCAL => 'post_local', - ArrayFilterEvent::POST_LOCAL_END => 'post_local_end', - 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 => 'init_1', + Event::HOME_INIT => 'home_init', + ConfigLoadedEvent::CONFIG_LOADED => 'load_config', + ArrayFilterEvent::APP_MENU => 'app_menu', + ArrayFilterEvent::NAV_INFO => 'nav_info', + ArrayFilterEvent::FEATURE_ENABLED => 'isEnabled', + ArrayFilterEvent::FEATURE_GET => 'get', + ArrayFilterEvent::POST_LOCAL_START => 'post_local_start', + ArrayFilterEvent::POST_LOCAL => 'post_local', + ArrayFilterEvent::POST_LOCAL_END => 'post_local_end', + ArrayFilterEvent::PHOTO_UPLOAD_FORM => 'photo_upload_form', + HtmlFilterEvent::HEAD => 'head', + HtmlFilterEvent::FOOTER => 'footer', + HtmlFilterEvent::PAGE_HEADER => 'page_header', + HtmlFilterEvent::PAGE_CONTENT_TOP => 'page_content_top', + HtmlFilterEvent::PAGE_END => 'page_end', ]; /** @@ -57,21 +58,22 @@ final class HookEventBridge public static function getStaticSubscribedEvents(): array { return [ - Event::INIT => 'onNamedEvent', - Event::HOME_INIT => 'onNamedEvent', - ConfigLoadedEvent::CONFIG_LOADED => 'onConfigLoadedEvent', - ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent', - ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent', - ArrayFilterEvent::FEATURE_ENABLED => 'onArrayFilterEvent', - ArrayFilterEvent::FEATURE_GET => 'onArrayFilterEvent', - ArrayFilterEvent::POST_LOCAL_START => 'onArrayFilterEvent', - ArrayFilterEvent::POST_LOCAL => 'onArrayFilterEvent', - ArrayFilterEvent::POST_LOCAL_END => 'onArrayFilterEvent', - HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', - HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', - HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', - HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent', - HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent', + Event::INIT => 'onNamedEvent', + Event::HOME_INIT => 'onNamedEvent', + ConfigLoadedEvent::CONFIG_LOADED => 'onConfigLoadedEvent', + ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent', + ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent', + ArrayFilterEvent::FEATURE_ENABLED => 'onArrayFilterEvent', + ArrayFilterEvent::FEATURE_GET => 'onArrayFilterEvent', + ArrayFilterEvent::POST_LOCAL_START => 'onArrayFilterEvent', + ArrayFilterEvent::POST_LOCAL => 'onArrayFilterEvent', + ArrayFilterEvent::POST_LOCAL_END => 'onArrayFilterEvent', + ArrayFilterEvent::PHOTO_UPLOAD_FORM => 'onArrayFilterEvent', + HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', + HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', + HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', + HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent', + HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent', ]; } diff --git a/src/Event/ArrayFilterEvent.php b/src/Event/ArrayFilterEvent.php index 8d552755ee..2afb92998f 100644 --- a/src/Event/ArrayFilterEvent.php +++ b/src/Event/ArrayFilterEvent.php @@ -30,6 +30,8 @@ final class ArrayFilterEvent extends Event public const POST_LOCAL_END = 'friendica.data.post_local_end'; + public const PHOTO_UPLOAD_FORM = 'friendica.data.photo_upload_form'; + private array $array; public function __construct(string $name, array $array) diff --git a/tests/Unit/Core/Hooks/HookEventBridgeTest.php b/tests/Unit/Core/Hooks/HookEventBridgeTest.php index 6e82ab09f6..adca43d239 100644 --- a/tests/Unit/Core/Hooks/HookEventBridgeTest.php +++ b/tests/Unit/Core/Hooks/HookEventBridgeTest.php @@ -22,21 +22,22 @@ class HookEventBridgeTest extends TestCase public function testGetStaticSubscribedEventsReturnsStaticMethods(): void { $expected = [ - Event::INIT => 'onNamedEvent', - Event::HOME_INIT => 'onNamedEvent', - ConfigLoadedEvent::CONFIG_LOADED => 'onConfigLoadedEvent', - ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent', - ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent', - ArrayFilterEvent::FEATURE_ENABLED => 'onArrayFilterEvent', - ArrayFilterEvent::FEATURE_GET => 'onArrayFilterEvent', - ArrayFilterEvent::POST_LOCAL_START => 'onArrayFilterEvent', - ArrayFilterEvent::POST_LOCAL => 'onArrayFilterEvent', - ArrayFilterEvent::POST_LOCAL_END => 'onArrayFilterEvent', - HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', - HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', - HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', - HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent', - HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent', + Event::INIT => 'onNamedEvent', + Event::HOME_INIT => 'onNamedEvent', + ConfigLoadedEvent::CONFIG_LOADED => 'onConfigLoadedEvent', + ArrayFilterEvent::APP_MENU => 'onArrayFilterEvent', + ArrayFilterEvent::NAV_INFO => 'onArrayFilterEvent', + ArrayFilterEvent::FEATURE_ENABLED => 'onArrayFilterEvent', + ArrayFilterEvent::FEATURE_GET => 'onArrayFilterEvent', + ArrayFilterEvent::POST_LOCAL_START => 'onArrayFilterEvent', + ArrayFilterEvent::POST_LOCAL => 'onArrayFilterEvent', + ArrayFilterEvent::POST_LOCAL_END => 'onArrayFilterEvent', + ArrayFilterEvent::PHOTO_UPLOAD_FORM => 'onArrayFilterEvent', + HtmlFilterEvent::HEAD => 'onHtmlFilterEvent', + HtmlFilterEvent::FOOTER => 'onHtmlFilterEvent', + HtmlFilterEvent::PAGE_HEADER => 'onHtmlFilterEvent', + HtmlFilterEvent::PAGE_CONTENT_TOP => 'onHtmlFilterEvent', + HtmlFilterEvent::PAGE_END => 'onHtmlFilterEvent', ]; $this->assertSame( @@ -127,6 +128,7 @@ class HookEventBridgeTest extends TestCase [ArrayFilterEvent::POST_LOCAL_START, 'post_local_start'], [ArrayFilterEvent::POST_LOCAL, 'post_local'], [ArrayFilterEvent::POST_LOCAL_END, 'post_local_end'], + [ArrayFilterEvent::PHOTO_UPLOAD_FORM, 'photo_upload_form'], ]; }