Несколько способов фильтрации элементов в инфоблоке

Alexander K.
1С-Bitrix
18.09.2017
117
Рассмотрим несколько наиболее популярных и простых способов организовать вывод информации по установленным фильтрам.

Способ 1. Разбиваем элементы на разделы

Самый простой способ организовать вывод выборочной информации - это разбить её на разделы. Для этого необходимо перейти в раздел "Администрирование" сайта, выбрать слева вкладку "Контент", затем выбрать инфоблок и перейти к его элементам. Затем необходимо создать разделы, и рассортировать по ним элементы. После этого возвращаемся на страницу, где находится компонент с выводом элементов. Чтобы вывести элементы только из определённого раздела, необходимо в настройках указать ID этого раздела или его код. В случае с компонентом "Список новостей", поля для заполнения можно найти в разделе "Дополнительные настройки". Если же вы используете комплексный компонент "Новости", то тут всё несколько сложнее. Там данных полей по умолчанию нет. Но их можно вывести, следуя вот этой инструкции. Займет минут 10, не больше.

Способ 2. Используем фильтр в компоненте "Новости" или "Список новостей"

Данный способ в некотором плане проще предыдущего. Здесь предполагается использование фильтра самого компонента, а не физическое деление элементов на разделы. Для начала необходимо перейти в настройки компонента, найти раздел настроек "Источник данных", ввести название переменной в поле "Фильтр". Например, стандартное имя arrFilter. Сохраняем изменение настроек и переходим к редактированию области, где находится этот компонент (если области нет, то стоит посмотреть в шаблоне сайта). Перед вызовом этого компонента с установленным фильтром необходимо вставить код:
<?$GLOBALS['arrFilter'] = array("PROPERTY_свойство" => "значение_свойства");?>
Например, на одном из сайтов нужно было реализовать возможность ручного добавления элементов в баннер. При добавлении новой новости (элемента) администратор сайта может поставить галочку в свойстве "Выводить в баннер". Код свойства - FLAG_BNR. Ответ свойства при установленной галочке - "Да". Соответственно, в этом случае, код будет выглядеть следующим образом:
<?$GLOBALS['arrFilter'] = array("PROPERTY_FLAG_BNR_VALUE" => "Да");?>
Кратко пробежимся по нескольким другим примерам организации фильтра:
// Фильтр по названию элемента
<?$GLOBALS['arrFilter'] = array("NAME" => "значение_свойства");?>

// Фильтр по ID
<?$GLOBALS['arrFilter'] = array("ID" => "значение_свойства");?>

// Если есть картинка, то элемент выводим
<?$GLOBALS['arrFilter'] = array("!PREVIEW_PICTURE" => false");?>