
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