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

2021.11.17
В данной статье мы рассмотрим возможность вывода всех свойств инфоблока в умный фильтр
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;
    }
}
?>    
Текст сообщения*
Загрузить файл или картинкуПеретащить с помощью Drag'n'drop
Перетащите файлы
Ничего не найдено
Защита от автоматических сообщений