Фильтр элементов любых динамических данных в Битриксе

Автор: Дмитрий Акифьев. Размещено в: 1С-Битрикс

Фильтр элементов в Битриксе

Приветствую, Друзья!

В этом видеоуроке мы рассмотрим технически сложную тему – как настроить любой компонент Битрикса, который выводит динамическую информацию, на показ только тех свойств, которые нам нужны.

Другими словами мы поговорим о фильтре элементов инфоблока на примере фильтра товаров, которые показываются в слайдере на главной странице.

В слайдере типовых шаблонов 1С-Битрикс 12 версии было простое поле для настройки фильтра, которое называлось «Тип товаров для отображения» и в котором можно было выбрать любое не стандартное свойство с типом «Список», по которому отбирались товары для показа. Все настраивалось просто и быстро.

В типовых шаблонах новой, 14 версии, Битрикса такая настройка пропала у всех блоков на главной странице, и мы сейчас можем только настроить количество товаров для показа, и по какому признаку их сортировать. Если бы можно было сортировать по нестандартным свойствам инфоблока, то частично задачу можно было бы и решить, но у нас нет такой возможности.

И после выхода 14 версии все чаще стали задавать такой вопрос: «Как фильтровать?». И вчера, после очередного такого вопроса, я решил записать урок на эту тему, хотя тут и придется изучать не только администрирование Битрикса, но и постигать азы программирования.

Хотя называть такую настройку «программированием» нельзя, так как мы не будет переделывать компоненты. Все, что мы сделаем – это напишем 3 строки кода перед вызовом того компонента, результаты работы которого хотим отфильтровать. И все. Дольше будет искать, где именно вызывается слайдер в шаблоне магазина.

Сразу оговорюсь — этот материал не только для 14 версии Битрикса, этот вариант будет работать на любой версии Битрикса, так как касается основ взаимодействия с API движка. Если у вас устаревшая версия, например, десятая, то вы точно также сможете фильтровать элементы при вызове компонентов, которые работают с инфоблоками.

Кому страшно писать даже 3 строки кода под моим чутким руководством, те спокойно ничего не делают, а ждут когда Битрикс доработает компоненты (на мои запросы в техподдержку сделаны заявки в отдел разработки и обещано что сделают также, как было раньше).

Ну а все остальные могут смело жать кнопку Play и смотреть подробные инструкции:

На этом сегодня все! Не забываем жать на социальные кнопки слева и задавать свои вопросы чуть ниже в комментариях!

 
Стрела влево

Если вам понравилась статья, то нажмите на одну из кнопок социальных сетей для размещения ссылки на страницу в своей ленте в этой соцсети.

 

Метки:, , , ,

 

Комментарии (8):

  • Владимир

    |

    Добрый день Дмитрий!

    Я не могу найти у Вас урок по сортировке и фильтрации товара. Есть ли он У Вас.

    Если нет хотелось бы узнать как сделать в каталоге сортировку по названию, цене; 15 или 30 товаров на странице, и Фильтр по товарам.

    Спасибо!

    Ответить

    • Дмитрий Акифьев

      |

      Нет такого урока. Так как в 14 версии Битрикса на адаптивном шаблоне до сих пор не сделан этот функционал, а программированию я не обучаю.

      Разработчики Битрикса обещали допилить шаблон до выхода 15 версии. Времени все меньше остается, а многие обещания так и не выполнены (сравнение товаров, подарки в корзине, 5 видов отображения SKU и много чего еще).

      А насчет фильтра все есть в уроке, под которым эти комментарии.

      Ответить

  • Денис

    |

    Дмитрий, а как можно сделать вывод фильтра на главной странице с возможностью задания параметров, после нажатия на кнопку Применить, на другой странице показывается список элементов по этим параметрам, и такой же фильтр, где можно задавать параметры фильтрации.

    Ответить

    • Дмитрий Акифьев

      |

      Поставьте на главной странице комплексный компонент каталога и включить там умный фильтр. Будет как раз то, что Вам нужно — и фильтр, и переход на другую страницу (вернее, останетесь на этой же физической, но поменяются параметры в адресной строке, которые настроят фильтр на отображение только выбранных вариантов).

      Ответить

  • Roman

    |

    Добрый день

    Как на странице с компонентом bitrix-news и bitrix-news-detail

    Вывести все товары бренда?

    Ответить

  • Станислав

    |

    День добрый. Все понятно по видео уроку как фильтровать по полям. А как можно передать условие (переменная=значение) для фильтра через адресную строку в браузере?

    Ответить

    • Дмитрий Акифьев

      |

      Не понял в чем именно вопрос.

      Если как получить параметр из адресной строки и использовать для настройки фильтра, то тут все просто — в PHP Вам доступны все суперглобальные массивы — и $_GET и $_REQUEST, пользуйтесь на здоровье. Получили значение переменной по ее имени, исходя из значения сделали настройку фильтра как я показал в уроке.

      Если же надо передавать параметры в адресную строку при определенных настройках фильтра, то надо дорабатывать код компонента — добавлять эти параметры при формировании ссылки, на которую делается переход при нажатии кнопки «Показать» у фильтра.

      Вроде Ваш вопрос без подвоха, но не понимаю в чем сложность.

      Ответить

Написать комментарий