protected function getTodoFieldFilter(array $languageFilter)
{
$translationFilter = null;
if (!empty($languageFilter['languages'])) {
$translationFilter = array('terms' => array('fields_doc.meta_language_code_s' => $languageFilter['languages']));
if (isset($languageFilter['defaultTranslationToMainLanguage'])) {
switch ($languageFilter['defaultTranslationToMainLanguage']) {
case true:
$translationFilter = array('or' => array($translationFilter, 'term' => array('meta_is_main_translation_b' => true)));
break;
case 'use_always_available':
$translationFilter = array('or' => array($translationFilter, 'and' => array(array('term' => array('always_available_b' => true)), array('term' => array('meta_is_main_translation_b' => true)))));
break;
case false:
// Nothing to do
break;
default:
throw new \RuntimeException("Invalid value for 'defaultTranslationToMainLanguage' field filter: expected one of: " . "true, 'use_always_available', false, got: " . var_export($languageFilter['defaultTranslationToMainLanguage'], true));
}
}
}
return $translationFilter;
}