Вывод всех свойств в умный фильтр
2021.11.17

В данной статье мы рассмотрим возможность вывода всех свойств инфоблока в умный фильтр
CIBlockProperty::GetList - возвращает нам список всех свойств инфоблока (в нашем случае это инфоблок с ID=25). Можете распечатать массив $propsArray - если вам нужны все параметры или информация о свойствах этого инфоблока. Нам же, в данном случае нужны только ID свойств: по этому записываем их в переменную $propId
Далее, методом CIBlockProperty::Update обновляем параметр SMART_FILTER указав ему значение "Y"- тем самым добавив все свойства нашего инфоблока в умный фильтр. Обязательно в $arFields снова указать ID нужного инфоблока (25-ый, в нашем случае).
Так же вы можете менять режим отображения, для разных типов свойств - получая их в массиве $propsArray:
DISPLAY_TYPE - вид в умном фильтре
DISPLAY_EXPANDED - показывать / не показывать развернутым
ниже представлен пример где вид в фильтре: Выдающий список, показывать развернутым: да
CIBlockProperty::GetList - возвращает нам список всех свойств инфоблока (в нашем случае это инфоблок с ID=25). Можете распечатать массив $propsArray - если вам нужны все параметры или информация о свойствах этого инфоблока. Нам же, в данном случае нужны только ID свойств: по этому записываем их в переменную $propId
Далее, методом CIBlockProperty::Update обновляем параметр SMART_FILTER указав ему значение "Y"- тем самым добавив все свойства нашего инфоблока в умный фильтр. Обязательно в $arFields снова указать ID нужного инфоблока (25-ый, в нашем случае).
Так же вы можете менять режим отображения, для разных типов свойств - получая их в массиве $propsArray:
DISPLAY_TYPE - вид в умном фильтре
DISPLAY_EXPANDED - показывать / не показывать развернутым
ниже представлен пример где вид в фильтре: Выдающий список, показывать развернутым: да
<? if (CModule::IncludeModule('iblock')) { $properties = CIBlockProperty::GetList( Array(), Array("ACTIVE" => "Y", "IBLOCK_ID" => 25) ); while ($propsArray = $properties->GetNext()) { $propId = $propsArray['~ID']; $arFields = Array('SMART_FILTER' => 'Y', 'DISPLAY_TYPE' => "P", 'DISPLAY_EXPANDED' => "Y", 'IBLOCK_ID' => 25); $addToSmart = new CIBlockProperty(); if(!$addToSmart->Update($propId, $arFields)) echo $addToSmart->LAST_ERROR; } } ?>