Jeśli prowadzisz sklep w wielu językach, wszystkie adresy URL będą zawierały kod języka. Nawet gdy otworzysz stronę główną swojej witryny, otrzymasz sufiks tego języka, nawet dla języka domyślnego. Nie wygląda dobrze, ale na szczęście możesz naprawić to zachowanie.
Utwórz (lub edytuj, jeśli istnieje) plik /override/classes/Link.php Wybierz wariant optymalizacji - wszystkie url czy tylko strona główna
<?php
class Link extends LinkCore
{
protected function getLangLink($id_lang = null, Context $context = null, $id_shop = null)
{
$parent_result = parent::getLangLink($id_lang, $context, $id_shop);
/*Dla wszystkich url */
if ($parent_result) {
if ($id_lang == Configuration::get('PS_LANG_DEFAULT')) {
return '';
} else {
return $parent_result;
}
}
/*Tylko dla strony głównej */
if ($parent_result) {
if ($id_lang == Configuration::get('PS_LANG_DEFAULT')) {
if($_SERVER['REQUEST_URI'] == '/'){
return '';
}
else{
return $parent_result;
}
} else {
return $parent_result;
}
}
}
}
Utwórz (lub edytuj, jeśli istnieje) plik /override/classes/Tools.php
<?php
class Tools extends ToolsCore
{
public static function setCookieLanguage($cookie = null)
{
parent::setCookieLanguage($cookie);
if (!$cookie) {
$cookie = Context::getContext()->cookie;
}
if(!Tools::getValue('isolang') && !Tools::getValue('id_lang') && !Tools::isSubmit('id_category_layered')) {
$cookie->id_lang = Configuration::get('PS_LANG_DEFAULT');
Context::getContext()->language = new Language($cookie->id_lang);
}
/* If language file not present, you must use default language file */
if (!$cookie->id_lang || !Validate::isUnsignedId($cookie->id_lang)) {
$cookie->id_lang = (int)Configuration::get('PS_LANG_DEFAULT');
Context::getContext()->language = new Language($cookie->id_lang);
}
$iso = Language::getIsoById((int)$cookie->id_lang);
@include_once(_PS_THEME_DIR_.'lang/'.$iso.'.php');
return $iso;
}
}
Teraz wyczyść pamięć podręczną sklepu oraz pamiętaj o przekierowaniu adresów.
Więcej optymalizacji w kategorii prestashop







