MetaModels\DcGeneral\Events\Table\MetaModels\Subscriber::unfixLangArray PHP Method

unfixLangArray() public method

Encode a language array.
public unfixLangArray ( ContaoCommunityAlliance\DcGeneral\Contao\View\Contao2BackendView\Event\EncodePropertyValueFromWidgetEvent $event ) : void
$event ContaoCommunityAlliance\DcGeneral\Contao\View\Contao2BackendView\Event\EncodePropertyValueFromWidgetEvent The event.
return void
    public function unfixLangArray(EncodePropertyValueFromWidgetEvent $event)
    {
        $langValues = (array) $event->getValue();
        $hasFallback = false;
        $output = array();
        foreach ($langValues as $subValue) {
            $langCode = $subValue['langcode'];
            unset($subValue['langcode']);
            // We clear all subsequent fallbacks after we have found one.
            if ($hasFallback) {
                $subValue['isfallback'] = '';
            }
            if ($subValue['isfallback']) {
                $hasFallback = true;
            }
            $output[$langCode] = $subValue;
        }
        // If no fallback has been set, use the first language available.
        if (!$hasFallback && count($output)) {
            $output[$langValues[0]['langcode']]['isfallback'] = '1';
        }
        $event->setValue($output);
    }