Фильтр элементов любых динамических данных в Битриксе
Приветствую, Друзья!
В этом видеоуроке мы рассмотрим технически сложную тему – как настроить любой компонент Битрикса, который выводит динамическую информацию, на показ только тех свойств, которые нам нужны.
Другими словами мы поговорим о фильтре элементов инфоблока на примере фильтра товаров, которые показываются в слайдере на главной странице.
В слайдере типовых шаблонов 1С-Битрикс 12 версии было простое поле для настройки фильтра, которое называлось «Тип товаров для отображения» и в котором можно было выбрать любое не стандартное свойство с типом «Список», по которому отбирались товары для показа. Все настраивалось просто и быстро.
В типовых шаблонах новой, 14 версии, Битрикса такая настройка пропала у всех блоков на главной странице, и мы сейчас можем только настроить количество товаров для показа, и по какому признаку их сортировать. Если бы можно было сортировать по нестандартным свойствам инфоблока, то частично задачу можно было бы и решить, но у нас нет такой возможности.
И после выхода 14 версии все чаще стали задавать такой вопрос: «Как фильтровать?». И вчера, после очередного такого вопроса, я решил записать урок на эту тему, хотя тут и придется изучать не только администрирование Битрикса, но и постигать азы программирования.
Хотя называть такую настройку «программированием» нельзя, так как мы не будет переделывать компоненты. Все, что мы сделаем – это напишем 3 строки кода перед вызовом того компонента, результаты работы которого хотим отфильтровать. И все. Дольше будет искать, где именно вызывается слайдер в шаблоне магазина.
Кому страшно писать даже 3 строки кода под моим чутким руководством, те спокойно ничего не делают, а ждут когда Битрикс доработает компоненты (на мои запросы в техподдержку сделаны заявки в отдел разработки и обещано что сделают также, как было раньше).
Ну а все остальные могут смело жать кнопку Play и смотреть подробные инструкции:
На этом сегодня все! Не забываем жать на социальные кнопки слева и задавать свои вопросы чуть ниже в комментариях!

Если вам понравилась статья, то нажмите на одну из кнопок социальных сетей для размещения ссылки на страницу в своей ленте в этой соцсети.
Метки:Битрикс, видеоуроки, Доп для курса, код, настройки
Комментарии (8):
Владимир
| #
Добрый день Дмитрий!
Я не могу найти у Вас урок по сортировке и фильтрации товара. Есть ли он У Вас.
Если нет хотелось бы узнать как сделать в каталоге сортировку по названию, цене; 15 или 30 товаров на странице, и Фильтр по товарам.
Спасибо!
Ответить
Дмитрий Акифьев
| #
Нет такого урока. Так как в 14 версии Битрикса на адаптивном шаблоне до сих пор не сделан этот функционал, а программированию я не обучаю.
Разработчики Битрикса обещали допилить шаблон до выхода 15 версии. Времени все меньше остается, а многие обещания так и не выполнены (сравнение товаров, подарки в корзине, 5 видов отображения SKU и много чего еще).
А насчет фильтра все есть в уроке, под которым эти комментарии.
Ответить
Денис
| #
Дмитрий, а как можно сделать вывод фильтра на главной странице с возможностью задания параметров, после нажатия на кнопку Применить, на другой странице показывается список элементов по этим параметрам, и такой же фильтр, где можно задавать параметры фильтрации.
Ответить
Дмитрий Акифьев
| #
Поставьте на главной странице комплексный компонент каталога и включить там умный фильтр. Будет как раз то, что Вам нужно — и фильтр, и переход на другую страницу (вернее, останетесь на этой же физической, но поменяются параметры в адресной строке, которые настроят фильтр на отображение только выбранных вариантов).
Ответить
Roman
| #
Добрый день
Как на странице с компонентом bitrix-news и bitrix-news-detail
Вывести все товары бренда?
Ответить
Дмитрий Акифьев
| #
Вопросы одинаковые, поэтому ответил на этой странице:
http://blog.web-shoper.ru/blog/videolessons/bitrix/1515-ib-fill.html
Ответить
Станислав
| #
День добрый. Все понятно по видео уроку как фильтровать по полям. А как можно передать условие (переменная=значение) для фильтра через адресную строку в браузере?
Ответить
Дмитрий Акифьев
| #
Не понял в чем именно вопрос.
Если как получить параметр из адресной строки и использовать для настройки фильтра, то тут все просто — в PHP Вам доступны все суперглобальные массивы — и $_GET и $_REQUEST, пользуйтесь на здоровье. Получили значение переменной по ее имени, исходя из значения сделали настройку фильтра как я показал в уроке.
Если же надо передавать параметры в адресную строку при определенных настройках фильтра, то надо дорабатывать код компонента — добавлять эти параметры при формировании ссылки, на которую делается переход при нажатии кнопки «Показать» у фильтра.
Вроде Ваш вопрос без подвоха, но не понимаю в чем сложность.
Ответить