src/CoreBundle/EventListener/DcGeneral/Table/RenderSettings/JumpToListener.php
public function decodeValue(DecodePropertyValueForWidgetEvent $event)
    {
        if (!$this->wantToHandle($event) || ($event->getProperty() !== 'jumpTo')) {
            return;
        }

        $propInfo = $event->getEnvironment()->getDataDefinition()->getPropertiesDefinition()->getProperty('jumpTo');
        $value    = StringUtil::deserialize($event->getValue(), true);
        $extra    = $propInfo->getExtra();

        $newValues = [];
        $languages = $extra['columnFields']['langcode']['options'];
        foreach (array_keys($languages) as $key) {
            $newValue = '';
            $filter   = 0;
            if ($value) {
                foreach ($value as $arr) {
                    if (!is_array($arr)) {
                        break;
                    }

                    // Set the new value and exit the loop.
                    if (array_search($key, $arr) !== false) {
                        $newValue = '{{link_url::' . $arr['value'] . '}}';
                        $filter   = $arr['filter'];
                        break;
                    }
                }
            }

            // Build the new array.
            $newValues[] = [
                'langcode' => $key,
                'value'    => $newValue,
                'filter'   => $filter
            ];
        }

        $event->setValue($newValues);
    }
public function decodeValue(DecodePropertyValueForWidgetEvent $event)
    {
        if (!$this->wantToHandle($event) || ($event->getProperty() !== 'jumpTo')) {
            return;
        }

        $propInfo = $event->getEnvironment()->getDataDefinition()->getPropertiesDefinition()->getProperty('jumpTo');
        $value    = StringUtil::deserialize($event->getValue(), true);
        $extra    = $propInfo->getExtra();

        $newValues = [];
        $languages = $extra['columnFields']['langcode']['options'];
        foreach (array_keys($languages) as $key) {
            $newValue = '';
            $filter   = 0;
            if ($value) {
                foreach ($value as $arr) {
                    if (!is_array($arr)) {
                        break;
                    }

                    // Set the new value and exit the loop.
                    if (array_search($key, $arr) !== false) {
                        $newValue = '{{link_url::' . $arr['value'] . '}}';
                        $filter   = $arr['filter'];
                        break;
                    }
                }
            }

            // Build the new array.
            $newValues[] = [
                'langcode' => $key,
                'value'    => $newValue,
                'filter'   => $filter
            ];
        }

        $event->setValue($newValues);
    }
Translates the values of the jumpTo entries into the real array.

@param DecodePropertyValueForWidgetEvent $event The event.

@return void