diff --git a/libraries/cms/helper/content.php b/libraries/cms/helper/content.php index df2e48749db41..d4f49bb7b4b9a 100644 --- a/libraries/cms/helper/content.php +++ b/libraries/cms/helper/content.php @@ -9,6 +9,8 @@ defined('JPATH_PLATFORM') or die; +use Joomla\Registry\Registry; + /** * Helper for standard content style extensions. * This class mainly simplifies static helper methods often repeated in individual components @@ -145,7 +147,22 @@ public static function getActions($component = '', $section = '', $id = 0) public static function getCurrentLanguage($detectBrowser = true) { $app = JFactory::getApplication(); - $langCode = $app->input->cookie->getString(JApplicationHelper::getHash('language')); + + // Get the languagefilter parameters + if (JLanguageMultilang::isEnabled()) + { + $plugin = JPluginHelper::getPlugin('system', 'languagefilter'); + $pluginParams = new Registry($plugin->params); + + if ((int) $pluginParams->get('lang_cookie', 1) === 1) + { + $langCode = $app->input->cookie->getString(JApplicationHelper::getHash('language')); + } + else + { + $langCode = JFactory::getSession()->get('plg_system_languagefilter.language'); + } + } // No cookie - let's try to detect browser language or use site default if (!$langCode) diff --git a/libraries/cms/helper/helper.php b/libraries/cms/helper/helper.php index dcf567a4533a6..8165f4a664e99 100644 --- a/libraries/cms/helper/helper.php +++ b/libraries/cms/helper/helper.php @@ -9,6 +9,8 @@ defined('JPATH_PLATFORM') or die; +use Joomla\Registry\Registry; + /** * Base Helper class. * @@ -28,7 +30,22 @@ class JHelper public function getCurrentLanguage($detectBrowser = true) { $app = JFactory::getApplication(); - $langCode = $app->input->cookie->getString(JApplicationHelper::getHash('language')); + + // Get the languagefilter parameters + if (JLanguageMultilang::isEnabled()) + { + $plugin = JPluginHelper::getPlugin('system', 'languagefilter'); + $pluginParams = new Registry($plugin->params); + + if ((int) $pluginParams->get('lang_cookie', 1) === 1) + { + $langCode = $app->input->cookie->getString(JApplicationHelper::getHash('language')); + } + else + { + $langCode = JFactory::getSession()->get('plg_system_languagefilter.language'); + } + } // No cookie - let's try to detect browser language or use site default if (!$langCode)