RSS-подписка

RSS-лента

Новые статьи

Последние комментарии


Получать обновления на эл. почту

Ваш e-mail:

Рассылка новостей от Loco

Битрикс: Умный фильтр с AJAX в компоненте каталог (bitrix:catalog)

Битрикс: Умный фильтр с AJAX в компоненте каталог (bitrix:catalog) Делаем автоматическое обновление по ajax в каталоге при выборе какого-либо значения фильтра

Есть комплексный компонент bitrix:catalog, в нём уже выводится и умный фильтр и сами позиции товаров. Удобнее, возможно, разделить компонент на умный фильтр bitrix:catalog.smart.filter и на компонент секций каталога bitrix:catalog.section.

Но, считаю, должен фильтр работать и в комплексном компоненте как мы этого от него ожидаем.

Этого же не происходит.

Решаем вопрос. Копируем компонент bitrix:catalog в своё пространство имен и дальше работаем уже с decor:catalog.

Идем в bitrix/components/decor/catalog.smart.filter/templates/.default/script.js

заменяем там кусок кода на

/*if (modef.style.display === 'none')
                {
                    modef.style.display = 'inline-block';
                }*/
                
                $.get(
                    result.FILTER_AJAX_URL,
                    function (data) {
                        $('.catalog_content').html($(data).find('.catalog_content').html());
                    }
                );

И это не работает:(

Тогда в самый низ функции JCSmartFilter.prototype.postHandler добавляем

window.location = result.FILTER_URL;

Можно ещё включить в компоненте catalog галочку "Использовать режим AJAX"

(он же параметр "AJAX_MODE" => "Y"), но мне больше нравится, когда страница перезагружается при применении фильтров или выбора товара.

almix
Разработчик Loco, автор статей по веб-разработке на Yii, CodeIgniter, MODx и прочих инструментах. Создатель Team Sense.

Вы можете почитать все статьи от almix'а.



Другие статьи по этой теме:

Комментарии (0)     Подпишитесь на RSS комментариев к этой статье.