custom/plugins/MoorlFoundation/src/Core/Subscriber/MoorlFoundationSubscriber.php line 34

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace MoorlFoundation\Core\Subscriber;
  3. use MoorlFoundation\Core\Service\TranslationService;
  4. use Shopware\Core\Content\Media\Event\MediaFileExtensionWhitelistEvent;
  5. use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityWrittenContainerEvent;
  6. use Shopware\Core\Framework\DataAbstractionLayer\Event\EntityWrittenEvent;
  7. use Shopware\Core\System\SystemConfig\SystemConfigService;
  8. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  9. class MoorlFoundationSubscriber implements EventSubscriberInterface
  10. {
  11.     private SystemConfigService $systemConfigService;
  12.     private TranslationService $translationService;
  13.     public function __construct(
  14.         SystemConfigService $systemConfigService,
  15.         TranslationService $translationService
  16.     )
  17.     {
  18.         $this->systemConfigService $systemConfigService;
  19.         $this->translationService $translationService;
  20.     }
  21.     public static function getSubscribedEvents(): array
  22.     {
  23.         return [
  24.             MediaFileExtensionWhitelistEvent::class => 'onMediaFileExtensionWhitelist',
  25.             EntityWrittenContainerEvent::class => 'onEntityWrittenContainerEvent'
  26.         ];
  27.     }
  28.     public function onMediaFileExtensionWhitelist(MediaFileExtensionWhitelistEvent $event)
  29.     {
  30.         $whitelist $event->getWhitelist();
  31.         $whitelistConfig $this->systemConfigService->get('MoorlFoundation.config.fileExtensions');
  32.         if ($whitelistConfig) {
  33.             $whitelistConfig explode(","$whitelistConfig);
  34.             $whitelistConfig array_map('trim'$whitelistConfig);
  35.             if (is_array($whitelistConfig)) {
  36.                 $whitelist array_merge($whitelist$whitelistConfig);
  37.             }
  38.         }
  39.         $event->setWhitelist($whitelist);
  40.     }
  41.     public function onEntityWrittenContainerEvent(EntityWrittenContainerEvent $event): void
  42.     {
  43.         foreach ($event->getEvents() as $entityWrittenEvent) {
  44.             if ($entityWrittenEvent instanceof EntityWrittenEvent) {
  45.                 $this->translationService->translate($entityWrittenEvent->getEntityName(), $entityWrittenEvent->getWriteResults(), $entityWrittenEvent->getContext());
  46.             }
  47.         }
  48.     }
  49. }