vendor/ezsystems/repository-forms/lib/EventListener/TranslateEzSelectionMultilingualOptions.php line 24

Open in your IDE?
  1. <?php
  2. /**
  3.  * @copyright Copyright (C) eZ Systems 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 EzSystems\RepositoryForms\EventListener;
  8. use EzSystems\RepositoryForms\Event\FieldDefinitionMappingEvent;
  9. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  10. class TranslateEzSelectionMultilingualOptions implements EventSubscriberInterface
  11. {
  12.     public static function getSubscribedEvents()
  13.     {
  14.         return [FieldDefinitionMappingEvent::NAME => ['setMultilingualOptions'30]];
  15.     }
  16.     /**
  17.      * @param \EzSystems\RepositoryForms\Event\FieldDefinitionMappingEvent $event
  18.      */
  19.     public function setMultilingualOptions(FieldDefinitionMappingEvent $event): void
  20.     {
  21.         $fieldDefinition $event->getFieldDefinitionData()->fieldDefinition;
  22.         if ('ezselection' !== $fieldDefinition->fieldTypeIdentifier) {
  23.             return;
  24.         }
  25.         $baseLanguage $event->getBaseLanguage();
  26.         $targetLanguage $event->getTargetLanguage();
  27.         if (null === $baseLanguage || null === $targetLanguage) {
  28.             return;
  29.         }
  30.         $fieldDefinitionData $event->getFieldDefinitionData();
  31.         $fieldSettings $fieldDefinitionData->fieldSettings;
  32.         if (isset($fieldSettings['multilingualOptions'][$baseLanguage->languageCode])) {
  33.             $fieldSettings['multilingualOptions'][$targetLanguage->languageCode] = $fieldSettings['multilingualOptions'][$baseLanguage->languageCode];
  34.         }
  35.         $fieldDefinitionData->fieldSettings $fieldSettings;
  36.         $event->setFieldDefinitionData($fieldDefinitionData);
  37.     }
  38. }