diff --git a/administrator/components/com_media/src/Plugin/MediaActionPlugin.php b/administrator/components/com_media/src/Plugin/MediaActionPlugin.php index cc862adb3439d..d5b25a48b9b53 100644 --- a/administrator/components/com_media/src/Plugin/MediaActionPlugin.php +++ b/administrator/components/com_media/src/Plugin/MediaActionPlugin.php @@ -10,6 +10,7 @@ namespace Joomla\Component\Media\Administrator\Plugin; +use Joomla\CMS\Event\Model\PrepareFormEvent; use Joomla\CMS\Form\Form; use Joomla\CMS\HTML\HTMLHelper; use Joomla\CMS\Plugin\CMSPlugin; @@ -34,6 +35,35 @@ class MediaActionPlugin extends CMSPlugin */ protected $autoloadLanguage = true; + /** + * Returns an array of events this subscriber will listen to. + * + * @return array + * + * @since __DEPLOY_VERSION__ + */ + public static function getSubscribedEvents(): array + { + return [ + 'onContentPrepareForm' => 'onContentPrepareFormListener', + ]; + } + + /** + * The form event. Load additional parameters when available into the field form. + * Only when the type of the form is of interest. + * + * @param PrepareFormEvent $event Event instance. + * + * @return void + * + * @since __DEPLOY_VERSION__ + */ + public function onContentPrepareFormListener(PrepareFormEvent $event): void + { + $this->onContentPrepareForm($event->getForm(), $event->getData()); + } + /** * The form event. Load additional parameters when available into the field form. * Only when the type of the form is of interest. diff --git a/plugins/media-action/crop/src/Extension/Crop.php b/plugins/media-action/crop/src/Extension/Crop.php index 134057d9191db..8f56d62876889 100644 --- a/plugins/media-action/crop/src/Extension/Crop.php +++ b/plugins/media-action/crop/src/Extension/Crop.php @@ -12,6 +12,7 @@ use Joomla\CMS\Application\CMSWebApplicationInterface; use Joomla\Component\Media\Administrator\Plugin\MediaActionPlugin; +use Joomla\Event\SubscriberInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -22,7 +23,7 @@ * * @since 4.0.0 */ -final class Crop extends MediaActionPlugin +final class Crop extends MediaActionPlugin implements SubscriberInterface { /** * Load the javascript files of the plugin. diff --git a/plugins/media-action/resize/src/Extension/Resize.php b/plugins/media-action/resize/src/Extension/Resize.php index 165b3907da7cc..e3218ca98d5f8 100644 --- a/plugins/media-action/resize/src/Extension/Resize.php +++ b/plugins/media-action/resize/src/Extension/Resize.php @@ -10,8 +10,10 @@ namespace Joomla\Plugin\MediaAction\Resize\Extension; +use Joomla\CMS\Event\Model\BeforeSaveEvent; use Joomla\CMS\Image\Image; use Joomla\Component\Media\Administrator\Plugin\MediaActionPlugin; +use Joomla\Event\SubscriberInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -22,22 +24,36 @@ * * @since 4.0.0 */ -final class Resize extends MediaActionPlugin +final class Resize extends MediaActionPlugin implements SubscriberInterface { + /** + * Returns an array of events this subscriber will listen to. + * + * @return array + * + * @since __DEPLOY_VERSION__ + */ + public static function getSubscribedEvents(): array + { + return array_merge(parent::getSubscribedEvents(), [ + 'onContentBeforeSave' => 'onContentBeforeSave', + ]); + } + /** * The save event. * - * @param string $context The context - * @param object $item The item - * @param boolean $isNew Is new item - * @param array $data The validated data + * @param BeforeSaveEvent $event The event instance * * @return void * * @since 4.0.0 */ - public function onContentBeforeSave($context, $item, $isNew, $data = []) + public function onContentBeforeSave(BeforeSaveEvent $event): void { + $context = $event->getContext(); + $item = $event->getItem(); + if ($context != 'com_media.file') { return; } diff --git a/plugins/media-action/rotate/src/Extension/Rotate.php b/plugins/media-action/rotate/src/Extension/Rotate.php index adced98f6731e..15f265d502683 100644 --- a/plugins/media-action/rotate/src/Extension/Rotate.php +++ b/plugins/media-action/rotate/src/Extension/Rotate.php @@ -11,6 +11,7 @@ namespace Joomla\Plugin\MediaAction\Rotate\Extension; use Joomla\Component\Media\Administrator\Plugin\MediaActionPlugin; +use Joomla\Event\SubscriberInterface; // phpcs:disable PSR1.Files.SideEffects \defined('_JEXEC') or die; @@ -21,6 +22,6 @@ * * @since 4.0.0 */ -final class Rotate extends MediaActionPlugin +final class Rotate extends MediaActionPlugin implements SubscriberInterface { }