yuriy.zuikov Posted January 28, 2015 Share Posted January 28, 2015 (edited) Добрый день. Версия престы 1.6.0.6. Решил поделится опытом решения такого бага. Решение плохое, но лучше так чем ни как. Есть сайт в котором категории товаров имеют одинаковые названия, например: - Иномарки---- Объем двигателя 1.5 (/15-inomarki#/kategorii-dvigatel15)---- Объем двигателя 1.8 (/16-inomarki#/kategorii-dvigatel18)---- .... - Отечественные---- Объем двигателя 1.5 (/17-otechestvennie#/kategorii-dvigatel15)---- Объем двигателя 1.8 (/18-otechestvennie#/kategorii-dvigatel18)---- .... Так вот при таком раскладе категорий, фильтрация слетает, если открыть ссылку в адресной строке. Проблема в том что при генерации хеша ссылок не учитывается id категории, а только имя. Я сделал так.В файле /modules/blocklayered.blocklayered.php (примерно 1069 строка) после $selected_filters[$param['type']][$param['id_id_value']] = $param['id_value']; Добавил if($param['name'] == 'Категории' || $param['name'] == 'категории' || $param['name'] == 'kategorii' || $param['name'] == 'category' ) $url_key = md5($link.$param['id_parent']); else $url_key = md5($link); И что бы работала выборка, После (строка 1733) foreach ($url_attributes as $url_attribute) { $url_parameters = explode($this->getAnchor(), $url_attribute); Добавил $flag = $url_parameters[0]; после (примерно 1745 строка) foreach ($url_parameters as $url_parameter) { Добавил if($flag == 'категории' || $flag == 'Категории' || $flag == 'kategorii' || $flag == 'category') $data = Db::getInstance()->getValue('SELECT data FROM `'._DB_PREFIX_.'layered_friendly_url` WHERE `url_key` = \''.md5('/'.$attribute_name.$this->getAnchor().$url_parameter.$id_parent).'\''); else $data = Db::getInstance()->getValue('SELECT data FROM `'._DB_PREFIX_.'layered_friendly_url` WHERE `url_key` = \''.md5('/'.$attribute_name.$this->getAnchor().$url_parameter).'\''); Осталось заново сгенерировать ссылки фильтра. Edited January 28, 2015 by yuriy.zuikov (see edit history) 1 Link to comment Share on other sites More sharing options...
aleksey_bober Posted August 1, 2016 Share Posted August 1, 2016 (edited) Спасибо. Была таже проблема с интернет магазином детской одежды. Но, как я понял, потому что в русской локализации используются URL-параметры kategorii и brend. Например, http://komix.com.ua/12-malyshki#/kategorii-chelovechki_i_pesochniki/brend-cichild-san_bebe Тогда как модуль ожидает конкретно categories и manufacturer. Поблему решил непосредственное подменой параметров в коде. Как решить описал в другой ветке. Edited August 1, 2016 by aleksey_bober (see edit history) Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now