В CS-Cart фильтр реализован так, что если выбрать хоть один пункт в нём, сразу идёт фильтрация. Если в магазине много товаров или хостинг недостаточно мощный, то это всё происходит довольно долго, чтобы получить нужный результат + лишняя нагрузка, так как при каждом выборе идёт обращение к базе. В данной статье будет описано как сделать так, чтобы при выборе пункта в стандартном фильтре не происходила сразу фильтрация, а срабатывала при нажатии на кнопку.
Для начала, нужно скопировать JavaScript файл стандартного фильтра в свой модуль, в котором мы и будем менять метод фильтрации. Это необходимо, чтобы при обновлении движка ничего не слетело.
Берём файл product_filters.js в папке js/tygh/ и копируем в папку своего модуля js/addons/ваш_модуль/product_filters.js
Далее в этой файле находим функцию function setHandler()
И последнее, нам осталось лишь заменить подключение стандартного скрипта фильтра на наш и сделать кнопку. Всё это делается в файле templates/blocks/product_filters/original.tpl
Меняем строку {script src=»js/tygh/product_filters.js»} на {script src=»js/addons/ваш_модуль/product_filters.js»} .
В блоке <div class=»ty-product-filters__tools clearfix»> перед кнопкой сброса фильтра вставляем нашу кнопку <div id=»gul-catalog-filter-submit»>Показать</div>.
Вот и всё, осталось только прописать стили для кнопки.
Если у вас появились какие-либо вопросы, хотите получить индивидуальный совет или у вас есть интересное предложение, вы можете связаться через форму обратной связи.
Или написать прямо на почту info@bobreod.ru