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);
}