Hi,
I have noticed you have double call for function_fixUriLanguageVar problem in /administrator/components/com_sh404sef/classes/router.php file
This results in removing lang var altogether.
This is the current code:
if (!$isValid && strpos($languageCode, '-') !== false)
{
$fixedLang = explode('-', $languageCode);
$fixedLang = empty($fixedLang) ? '' : $fixedLang[0];
if (!empty($fixedLang))
{
$uri->setVar('lang', $fixedLang);
}
}
else
{
// destroy invalid language
$uri->delVar('lang');
}
So when you have a valid $languageCode as set in $isValid, you will then delete that var. This is not correct.
I propose solution like this:
if (!$isValid && strpos($languageCode, '-') !== false)
{
$fixedLang = explode('-', $languageCode);
$fixedLang = empty($fixedLang) ? '' : $fixedLang[0];
if (!empty($fixedLang))
{
$uri->setVar('lang', $fixedLang);
}
}
elseif(!$isValid)
{
// destroy invalid language
$uri->delVar('lang');
}
So difference is only in else => elseif(!$isValid) which will ensure that valid language code is not removed
I have noticed you have double call for function_fixUriLanguageVar problem in /administrator/components/com_sh404sef/classes/router.php file
This results in removing lang var altogether.
This is the current code:
if (!$isValid && strpos($languageCode, '-') !== false)
{
$fixedLang = explode('-', $languageCode);
$fixedLang = empty($fixedLang) ? '' : $fixedLang[0];
if (!empty($fixedLang))
{
$uri->setVar('lang', $fixedLang);
}
}
else
{
// destroy invalid language
$uri->delVar('lang');
}
So when you have a valid $languageCode as set in $isValid, you will then delete that var. This is not correct.
I propose solution like this:
if (!$isValid && strpos($languageCode, '-') !== false)
{
$fixedLang = explode('-', $languageCode);
$fixedLang = empty($fixedLang) ? '' : $fixedLang[0];
if (!empty($fixedLang))
{
$uri->setVar('lang', $fixedLang);
}
}
elseif(!$isValid)
{
// destroy invalid language
$uri->delVar('lang');
}
So difference is only in else => elseif(!$isValid) which will ensure that valid language code is not removed