1 Отредактировано Владимир 1916 (09.03.2017 12:48:55)

Тема: Английские наименования вместо id в фильтре по производителю

Нужно чтобы вместо /catalog/category-name/?bfilter[brand][]=17
получилось /catalog/category-name/?bfilter[brand][]=brandname

Повысить оценку Понизить оценку

Re: Английские наименования вместо id в фильтре по производителю

в посте http://forum.readyscript.ru/post/4852/#p4852
был дан такой совет

Если вы хотите вместо id использовать наименования английские, то пока можно подвесится на хук отработки блока с фильтрами, и подменять POST.

Хотелось бы более развернутый ответ, как это сделать.

Повысить оценку Понизить оценку

Re: Английские наименования вместо id в фильтре по производителю

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 внутри контроллера.

Вы начните делать, и если не будет получаться, напишите, что я буду подсказывать.

4

Re: Английские наименования вместо id в фильтре по производителю

Я бы порекомендовал использовать для продвижения брендов "Подбор товаров (SEO фильтры)", с помощью них вы сможете создавать URL: /catalog/brandname/

Повысить оценку Понизить оценку