Riva
Папочка
- Регистрация
- 2 Мар 2013
- Сообщения
- 561
- Реакции
- 662
- Автор темы
- #1
После обновления до 1.7.8.8 перестал работать fix убирающий префикс дефолтного языка. Работает везде кроме стандартного оформления заказа. С одностаничниками норм. v2.1.1-fsadvancedurl и ecm_rpd 0.0.1 точно так же ведёт себя. Как побороть?
/override/classes/Link.php
	
	
	
		
/override/classes/Tools.php
	
	
	
		
	
		
			
		
		
	
				
			/override/classes/Link.php
		Код:
	
	<?php
class Link extends LinkCore
{
    protected function getLangLink($idLang = null, Context $context = null, $idShop = null)
    {
        static $psRewritingSettings = null;
        if ($psRewritingSettings === null) {
            $psRewritingSettings = (int) Configuration::get('PS_REWRITING_SETTINGS', null, null, $idShop);
        }
        if (!$context) {
            $context = Context::getContext();
        }
        if ((!$this->allow && in_array($idShop, [$context->shop->id,  null])) || !Language::isMultiLanguageActivated($idShop) || !$psRewritingSettings) {
            return '';
        }
        if (!$idLang) {
            $idLang = $context->language->id;
        }
//      return Language::getIsoById($idLang) . '/';
        if (Configuration::get('PS_LANG_DEFAULT') == $idLang) {
            return '';
        }
        else {
            return Language::getIsoById($idLang) . '/';
        }
    }
}/override/classes/Tools.php
		Код:
	
	<?php
class Tools extends ToolsCore
{
    public static function switchLanguage(Context $context = null)
    {
        if (null === $context) {
            $context = Context::getContext();
        }
        // On PrestaShop installations Dispatcher::__construct() gets called (and so Tools::switchLanguage())
        // Stop in this case by checking the cookie
        if (!isset($context->cookie)) {
            return;
        }
//      if (
//          ($iso = Tools::getValue('isolang')) &&
//          Validate::isLanguageIsoCode($iso) &&
//          ($id_lang = (int) Language::getIdByIso($iso))
//      ) {
//          $_GET['id_lang'] = $id_lang;
//      }
        if (
            ($iso = Tools::getValue('isolang')) &&
            Validate::isLanguageIsoCode($iso) &&
            ($id_lang = (int) Language::getIdByIso($iso))
        ) {
            $_GET['id_lang'] = $id_lang;
        }
        else {
            $_GET['id_lang'] = (int) Configuration::get('PS_LANG_DEFAULT');
        }
        // Only switch if new ID is different from old ID
        $newLanguageId = (int) Tools::getValue('id_lang');
        if (
            Validate::isUnsignedId($newLanguageId) &&
            $newLanguageId !== 0 &&
            $context->cookie->id_lang !== $newLanguageId
        ) {
            $context->cookie->id_lang = $newLanguageId;
            $language = new Language($newLanguageId);
            if (Validate::isLoadedObject($language) && $language->active && $language->isAssociatedToShop()) {
                $context->language = $language;
            }
        }
        Tools::setCookieLanguage($context->cookie);
    }
}
			
				Последнее редактирование: 
			
		
	
								
								
									
	
		
			
		
		
	
	
	
		
			
		
		
	
								
							
							 
				 
 
		