Если у вас достаточно много свойств, например: больше 1000-и, после интеграции с 1С или импорта из файлов. И необходимо добавить все свойства в умный фильтр. Поможет эта заметка.
Получаем все свойства и добавляем в умный фильтр
Добавлять большое количество свойств, в ручную, не вариант. Даже если нужны не все- проще снять чекбокс с ненужных, нежели прокликивать вручную... 50-100 и более свойств
Используем CIBlockProperty::GetList и CIBlockProperty::Update:
CIBlockProperty::GetList - вернул нам список всех свойств инфоблока (в моем случае с ID=1). Можете распечатать массив $prop_fields - если нужны все параметры и информация о свойствах этого инфоблока. Мне же, нужны только ID свойств: я загнал их в переменную $propId
Далее, методом CIBlockProperty::Update обновил параметр SMART_FILTER указав ему значение "Y"- тем самым добавив все свойства инфоблока в умный фильтр. Обратите внимание, что в $arFields я снова указал ID нужного инфоблока (1-ый, в моем случае)- это обязательно иначе метод не сработает
В общем-то и все. Получая и обновляя нужные параметры можете менять режим отображения, для разных типов свойств- получая их в массиве $prop_fields:
DISPLAY_TYPE- вид в умном фильтре
DISPLAY_EXPANDED- показывать / не показывать развернутым