Рекомендованный формат фильтра блока
|
---|
Напомним рекомендованный формат фильтра блока:
|
Преобразование фильтра блока
Описание
Для преобразования фильтра блока (в случае следования рекомендациям) в другие форматы служат классы:
- \Bitrix\Landing\Source\Filter - базовая логика
- \Bitrix\Landing\Source\UiFilterPreset - конвертация в формат bitrix:main.ui.filter.
- \Bitrix\Landing\Source\DataFilter - конвертация в формат orm-фильтра (или GetList старого api)
Для преобразования в первую очередь необходимо описать все поля фильтра. Каждое поле описывается таким образом:
- id - Идентификатор поля. Соответствует полю key условия из фильтра блока
- type - тип поля. Возможные значения:
- string - строка
- number - число
- date - дата
- custom_date - диапазоны дат
- list - список/множественный список для выбора
- checkbox - чекбокс (выбран/не выбран)
- dest_selector - выбор привязки к сущности
- operators - массив префиксов для генерации orm-фильтра (см. \Bitrix\Landing\Source\DataFilter)
Для полей типа список (list) можно указать признак множественности:
params => [ 'multiple' => 'Y' ]
Для полей типа date можно разрешить выбор времени:
time => true;
Ключами массива полей являются идентификаторы поля.
Пример описания фильтра
$fields = []; // поле NAME типа строка $fields['NAME'] = [ 'id' => 'NAME', // идентификатор (совпадает с ключом массива) 'type' => 'string', // тип поля Строка (main.ui.filter) ]; // поле ID типа число $fields['ID'] = [ 'id' => 'ID', // идентификатор (совпадает с ключом массива) 'type' => 'number', // тип поля Число (main.ui.filter) ]; // поле ENTITY_LIST типа список $fields['ENTITY_LIST'] = [ 'id' => 'ENTITY_LIST', // идентификатор (совпадает с ключом массива) 'type' => 'list', // тип поля Список (main.ui.filter) 'params' => [ // параметры 'multiple' => 'Y' // множественный выбор ] ]; // поле ACTIVE типа чекбокс $fields['ACTIVE'] = [ 'id' => 'ACTIVE', // идентификатор (совпадает с ключом массива) 'type' => 'checkbox', тип поля Чекбокс (main.ui.filter) 'operators' => [ // префиксы для условий 'default' => '' // префикс по умолчанию ] ];
© «Битрикс», 2001-2024, «1С-Битрикс», 2024