diff --git a/modules/mod_languages/helper.php b/modules/mod_languages/helper.php index 3b344960d5290..bd122c68e81c6 100644 --- a/modules/mod_languages/helper.php +++ b/modules/mod_languages/helper.php @@ -114,7 +114,7 @@ public static function getList(&$params) { $language->link = JRoute::_($cassociations[$language->lang_code] . '&lang=' . $language->sef); } - elseif (isset($associations[$language->lang_code]) && $menu->getItem($associations[$language->lang_code])) + elseif (!$language->active && isset($associations[$language->lang_code]) && $menu->getItem($associations[$language->lang_code])) { $itemid = $associations[$language->lang_code]; $language->link = JRoute::_('index.php?lang=' . $language->sef . '&Itemid=' . $itemid); @@ -127,7 +127,10 @@ public static function getList(&$params) { if ($language->active) { - $language->link = JUri::getInstance()->toString(array('path', 'query')); + $limitstart = $app->input->get('limitstart'); + + // Correct the current URL, if it is damaged, add an additional fix for the limitstart parameter + $language->link = JRoute::_('&' . ($limitstart !== null ? 'limitstart=' . $limitstart : '')); } else { diff --git a/modules/mod_languages/tmpl/default.php b/modules/mod_languages/tmpl/default.php index 0192c3f05f557..0a3cf6335d5ac 100644 --- a/modules/mod_languages/tmpl/default.php +++ b/modules/mod_languages/tmpl/default.php @@ -56,9 +56,8 @@ get('show_active', 1)) : ?> -