1С-Битрикс: как отфильтровать элементы инфоблока по одному свойству

Андрей Елисеев, опубликовано 6 августа 2015 г.

Фильтрация элементов по одному свойству бывает необходима, например, когда требуется выводить на страницу не все элементы из инфоблока, а только некоторые, в которых отдельным свойством создана и проставлена галочка «На главную». Для решения этой задачи нам понадобится создать дополнительное свойство и настроить вывод элементов при помощи штатных средств. Прекрасно подойдет компонент «Список новостей».

Итак, поехали. Первым делом отправляемся в настройки интересующего нас инфоблока. В этом инфоблока создаем свойство типа «Список». Обзовем это свойство «На главную» и присвоим ему символьный код «FEATURED». Теперь отправимся в настройки свойства и в самом низу окошка найдем пункт «Внешний вид» и поставим для него значение «Флажки». А еще чуть ниже в подразделе «Значения списка» проставим единственное значение «Y» с XML_ID тоже «Y». Полдела сделано.

Теперь дело осталось за малым. Отправляемся на ту физическую страницу, на которой у нас будет выводиться наш компонент «Список новостей». В заголовок страницы вписываем следующее заклинание: $FilterMain = array("PROPERTY_FEATURED_VALUE" => "Y");. Получается примерно такая конструкция:

<?
require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Название страницы");
$FilterMain = array("PROPERTY_FEATURED_VALUE" => "Y");
?>

А в коде компнента «Список новостей» нам осталось только установить этот фильтр. Для этого в коде компонента находим строчку «FILTER_NAME» и делаем ее такой: "FILTER_NAME" => "FilterMain",.

Как вы уже, возможно, догадались, вместо FilterMain можно указать все что угодно, это просто название фильтра.

Наслаждаемся.

Метки: