From a2c8a051b7d39a20c928717a88dc18a93d70c7f6 Mon Sep 17 00:00:00 2001 From: Thijs Kinkhorst <thijs@kinkhorst.com> Date: Sat, 6 Oct 2018 11:02:41 +0000 Subject: [PATCH] Fix array to string conversion when hosted entity has no name in current language. Also search for "en" as a final fallback language to find a displayable name should such a name not be found in the current language and the default language. --- modules/core/www/frontpage_federation.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/modules/core/www/frontpage_federation.php b/modules/core/www/frontpage_federation.php index d3d946fa3..3ab034ecf 100644 --- a/modules/core/www/frontpage_federation.php +++ b/modules/core/www/frontpage_federation.php @@ -103,7 +103,8 @@ $t = new \SimpleSAML\XHTML\Template($config, 'core:frontpage_federation.tpl.php' $translator = $t->getTranslator(); $language = $translator->getLanguage()->getLanguage(); -$defaultLanguage = $config->getString('language.default', 'en'); +$fallbackLanguage = 'en'; +$defaultLanguage = $config->getString('language.default', $fallbackLanguage); $translators = array( 'name' => 'name_translated', @@ -117,9 +118,9 @@ foreach ($metaentries['hosted'] as $index => $entity) { $metaentries['hosted'][$index][$new] = $entity[$old][$language]; } elseif (isset($entity[$old][$defaultLanguage])) { $metaentries['hosted'][$index][$new] = $entity[$old][$defaultLanguage]; - } elseif (isset($metaentries['hosted'][$index][$old])) { - $metaentries['hosted'][$index][$new] = $metaentries['hosted'][$index][$old]; - } + } elseif (isset($entity[$old][$fallbackLanguage])) { + $metaentries['hosted'][$index][$new] = $entity[$old][$fallbackLanguage]; + } } } foreach ($metaentries['remote'] as $key => $set) { @@ -129,6 +130,8 @@ foreach ($metaentries['remote'] as $key => $set) { $metaentries['remote'][$key][$entityid][$new] = $entity[$old][$language]; } elseif (isset($entity[$old][$defaultLanguage])) { $metaentries['remote'][$key][$entityid][$new] = $entity[$old][$defaultLanguage]; + } elseif (isset($entity[$old][$fallbackLanguage])) { + $metaentries['remote'][$key][$entityid][$new] = $entity[$old][$fallbackLanguage]; } elseif (isset($metaentries['remote'][$key][$entityid][$old])) { $metaentries['remote'][$key][$entityid][$new] = $metaentries['remote'][$key][$entityid][$old]; } -- GitLab