]> git.mxchange.org Git - friendica.git/commitdiff
Implement photo_upload_form hook as Event
authorArt4 <art4@wlabs.de>
Sat, 8 Feb 2025 21:04:35 +0000 (21:04 +0000)
committerArt4 <art4@wlabs.de>
Sat, 8 Feb 2025 21:04:35 +0000 (21:04 +0000)
mod/photos.php
src/Core/Hooks/HookEventBridge.php
src/Event/ArrayFilterEvent.php
tests/Unit/Core/Hooks/HookEventBridgeTest.php

index c2831270ab9a265b85c07a13e3e7740846a250af..25eac8c5331f3f005afd55ae1872664a8ec756ed 100644 (file)
@@ -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'), [
index 9f35828ebfd686df32a4ae464a03f88ec7179293..23cd209e11ca9ac857252f370523cd5168155e84 100644 (file)
@@ -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',
                ];
        }
 
index 8d552755eedf3f23ddea28e76860022ffcb2bc2d..2afb92998faf9d281e58feacc371093e4a69c5c1 100644 (file)
@@ -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)
index 6e82ab09f613de599825e683a6f4bb38cb65c94f..adca43d2399752264978e4789b7706a9992a26d5 100644 (file)
@@ -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'],
                ];
        }