MAXYSS-IT - Рабочие материалы - все сообщения

Фильтрация по наличию на складах

Умный фильтр Битрикса не поддерживает фильтрацию по складам (потому как работает только со свойствами элементов). Следовательно, чтобы добавить в возможность фильтровать товар по наличию на складах, нужно добавить соответствующие свойства в карточку элемента. Для этого напишем обработчик в init.php, который при изменении количества товара на складе будет проставлять нужные свойства в карточку элемента.

Читать подробнее...

Умный фильтр с иерархией вложенности

Не единожды поступала задача вывести фильтр с многоуровневой структурой. Здесь будет показана одна реализация на основе свойств инфоблока. Вторая реализация выглядит как фильтр, на самом деле является выводом catalog.section.list, закомуфлированным под фильтр и подающим в ajax данные для фильтрации catalog.section либо по свойствам, либо по разделам. Эта реализация основана на интуитивно понятной структуре разделов инфоблока и является ее отображенинм. Она накладывает определенные ограничения на структуру разделов и выводит только два уровня. На момент написания реализацию можно посмотреть здесь: http://locationhunters.ru/catalog/

Умный фильтр обладает бОльшими возможностями и выглядит для заказчика более предпочтительным, чем выше описанный пример. Естественно, что все зависит от конкретной задачи в рамках которой разработчик делает свой выбор. Для описаной здесь реализации использован следующий подход: многоуровневость заложена в  

Читать подробнее...

Очистка свойств типа справочник в элементе

На неделе аж 2 раза случилась одна и та же задачка у несвязанных клиентов. Точно надо записать. В умном фильтре появились пустые свойства, т.е. чекбокс есть, а надпись рядом отсутствует, а еще и не один пустой, а несколько. Как известно умный фильтр собирает данные свойств помеченные как участвующие в умном фильтре для текущего раздела инфоблока.  

Читать подробнее...

Select в умном фильтре битрикса

основа здесь: http://dev.1c-bitrix.ru/support/forum/forum6/topic61840/
все бы хорошо но практика показала, что указанные функции в onChange="smartFilter.clickSelect(this)" не работают
меняем на smartFilter.click(this)
и, о чудо, все ожило и работает.
Месяц прошел, заказчик увидел что некоторые функции присущие стандартному умному фильтру битрикса отсутствуют, а именно не работает подкрашивание элементов серым цветом выпадающих из пересечений, добавление параметров прописанных в скрытых <input> в стандартном выводе битрикса к <option> в <select> приводит к половинчатому результату, "на лету" элементы неподкрашиваются, а только после нажатия кнопки применить. "Ковыряния" в непрозарочной битриксовой JavaScript не принесли пользы. В некоторых вариантах соотношения настроек свойств инфоблока на вывод в умном фильтре и замененного селекта вообще переставал срабатывать. В результате пришлось перепилить шаблон вывода битрикса на выпадающих <div>, что оказалось менеее трудоемким, чем попытка разобраться в работе хорошо документированного битрикса.