From c45aba90e8e49a4b931cc52dfefa26332e08a014 Mon Sep 17 00:00:00 2001 From: Alex Pott Date: Fri, 31 Dec 2021 16:35:07 +0000 Subject: [PATCH] Issue #2940121 by apaderno, andypost, idebr, Kingdutch, kala4ek, mfb, alexpott, Berdir: ConfigurableLanguageManager::getLanguageSwitchLinks() doesn't respect what LanguageManagerInterface::getLanguageSwitchLinks() says to return --- core/lib/Drupal/Core/Language/LanguageManager.php | 2 +- core/lib/Drupal/Core/Language/LanguageManagerInterface.php | 7 +++++-- core/modules/language/src/ConfigurableLanguageManager.php | 4 +--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/core/lib/Drupal/Core/Language/LanguageManager.php b/core/lib/Drupal/Core/Language/LanguageManager.php index dd1687d56ba..915dac19f6b 100644 --- a/core/lib/Drupal/Core/Language/LanguageManager.php +++ b/core/lib/Drupal/Core/Language/LanguageManager.php @@ -215,7 +215,7 @@ class LanguageManager implements LanguageManagerInterface { * {@inheritdoc} */ public function getLanguageSwitchLinks($type, Url $url) { - return []; + return NULL; } /** diff --git a/core/lib/Drupal/Core/Language/LanguageManagerInterface.php b/core/lib/Drupal/Core/Language/LanguageManagerInterface.php index 9a6b213d645..7f7306d4210 100644 --- a/core/lib/Drupal/Core/Language/LanguageManagerInterface.php +++ b/core/lib/Drupal/Core/Language/LanguageManagerInterface.php @@ -171,8 +171,11 @@ interface LanguageManagerInterface { * @param \Drupal\Core\Url $url * The URL the switch links will be relative to. * - * @return array - * A keyed array of links ready to be themed. + * @return object|null + * An object with the following keys: + * - links: An array of links indexed by the language ID + * - method_id: The language negotiation method ID + * or NULL if there are no language switch links. */ public function getLanguageSwitchLinks($type, Url $url); diff --git a/core/modules/language/src/ConfigurableLanguageManager.php b/core/modules/language/src/ConfigurableLanguageManager.php index 143adf604b3..9dd65ff4953 100644 --- a/core/modules/language/src/ConfigurableLanguageManager.php +++ b/core/modules/language/src/ConfigurableLanguageManager.php @@ -403,8 +403,6 @@ class ConfigurableLanguageManager extends LanguageManager implements Configurabl * {@inheritdoc} */ public function getLanguageSwitchLinks($type, Url $url) { - $links = FALSE; - if ($this->negotiator) { foreach ($this->negotiator->getNegotiationMethods($type) as $method_id => $method) { $reflector = new \ReflectionClass($method['class']); @@ -422,7 +420,7 @@ class ConfigurableLanguageManager extends LanguageManager implements Configurabl } } - return $links; + return $links ?? NULL; } /**