Тема: Английские наименования вместо id в фильтре по производителю
Нужно чтобы вместо /catalog/category-name/?bfilter[brand][]=17
получилось /catalog/category-name/?bfilter[brand][]=brandname
Форум ReadyScript Вопросы по работе с системой Английские наименования вместо id в фильтре по производителю
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Нужно чтобы вместо /catalog/category-name/?bfilter[brand][]=17
получилось /catalog/category-name/?bfilter[brand][]=brandname
в посте http://forum.readyscript.ru/post/4852/#p4852
был дан такой совет
Если вы хотите вместо id использовать наименования английские, то пока можно подвесится на хук отработки блока с фильтрами, и подменять POST.
Хотелось бы более развернутый ответ, как это сделать.
1. Нужно подвеситься на хук перед выполнение блок контроллера.
http://readyscript.ru/dev-manual/dev_hooks.html
Вам нужен:
controller.beforeexec.catalog-block-sidefilters
2. Нужно проверить есть ли в $_GET параметр bfilter разобрать его и подменить значение brandname на нужный id.. Т.е. нужно подгрузить список брендов, проверить поле alias на совпадение и подменить в этом массиве на значение в объекте из поля id.
3. Нужно записать через метод ($this->request->setSource) контроллера записать новое значение массива $_REQUEST внутри контроллера.
Вы начните делать, и если не будет получаться, напишите, что я буду подсказывать.
Я бы порекомендовал использовать для продвижения брендов "Подбор товаров (SEO фильтры)", с помощью них вы сможете создавать URL: /catalog/brandname/
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форум ReadyScript Вопросы по работе с системой Английские наименования вместо id в фильтре по производителю