vendor/ibexa/admin-ui/src/lib/EventListener/TranslateEzSelectionMultilingualOptions.php line 21

Open in your IDE?
  1. <?php
  2. /**
  3.  * @copyright Copyright (C) Ibexa AS. All rights reserved.
  4.  * @license For full copyright and license information view LICENSE file distributed with this source code.
  5.  */
  6. declare(strict_types=1);
  7. namespace Ibexa\AdminUi\EventListener;
  8. use Ibexa\Contracts\AdminUi\Event\FieldDefinitionMappingEvent;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. class TranslateEzSelectionMultilingualOptions implements EventSubscriberInterface
  11. {
  12.     public static function getSubscribedEvents(): array
  13.     {
  14.         return [FieldDefinitionMappingEvent::NAME => ['setMultilingualOptions'30]];
  15.     }
  16.     public function setMultilingualOptions(FieldDefinitionMappingEvent $event): void
  17.     {
  18.         $fieldDefinition $event->getFieldDefinitionData()->fieldDefinition;
  19.         if ('ezselection' !== $fieldDefinition->fieldTypeIdentifier) {
  20.             return;
  21.         }
  22.         $baseLanguage $event->getBaseLanguage();
  23.         $targetLanguage $event->getTargetLanguage();
  24.         if (null === $baseLanguage || null === $targetLanguage) {
  25.             return;
  26.         }
  27.         $fieldDefinitionData $event->getFieldDefinitionData();
  28.         $fieldSettings $fieldDefinitionData->fieldSettings;
  29.         if (isset($fieldSettings['multilingualOptions'][$baseLanguage->languageCode])) {
  30.             $fieldSettings['multilingualOptions'][$targetLanguage->languageCode] = $fieldSettings['multilingualOptions'][$baseLanguage->languageCode];
  31.         }
  32.         $fieldDefinitionData->fieldSettings $fieldSettings;
  33.         $event->setFieldDefinitionData($fieldDefinitionData);
  34.     }
  35. }
  36. class_alias(TranslateEzSelectionMultilingualOptions::class, 'EzSystems\EzPlatformAdminUi\EventListener\TranslateEzSelectionMultilingualOptions');