Пример
|
---|
array( "id" => "NAME", "name" => "Название" ) |
fetchSettingsFromQuery
array|null public static \Bitrix\Main\UI\Filter\Options::fetchSettingsFromQuery( array $fields = array(), \Bitrix\Main\HttpRequest $request );
Статический метод, получает значения полей из запроса. Метод возвращает массив значений или null
в случае неудачи.
Параметры
Параметр | Описание | Версия |
---|---|---|
$fields | Массив полей.
Каждое поле должно содержать обязательные свойства, а также может содержать и необязательные свойства, присущие конкретному типу поля (см. ниже пункт Свойства полей). | |
$request | Запрос - объект класса HttpRequest |
Свойства полей
Свойства всех типов полей:
Ключ | Тип | Обязательное | Значение по умолчанию | Описание |
id | String | Да | Идентификатор поля. Например, NAME , USERNAME | |
name | String | Да | Отображаемое название поля. Будет выводиться пользователю. | |
default | Boolean | Нет | false | Определяет, будет ли поле выводиться по умолчанию. |
type | Boolean | Нет | "string" | Определяет тип поля. |
Свойства полей в зависимости от типа:
(по умолчанию, без явно указанного типа, поля приводятся к типу “строка”)- string (строка)
Для полей типа строка тип можно не указывать. Либо явно указать
"string"
. - list (список)
Списки могут быть с одиночным и множественным выбором, по умолчанию используется одиночный выбор.
Дополнительные свойства Ключ Тип Обязательное Значение по умолчанию Описание params Array Нет array("multiple" => "N")
Определяет параметры списка. Может содержать свойство multiple
со значением"Y"|"N"
. Свойство определяет, будет ли список множественным.items Array Нет array("Не указано")
Ассоциативный массив определяющий элементы списка. Примеры- Список с одиночным выбором.
array( "id" => "MARK", "name" => "Оценка", "type" => "list", "items" => array( "P" => "Положительная", "N" => "Отрицательная", ) )
- Список с множественным выбором.
array( "id" => "PARAMS", "name" => "Параметры задачи", "type" => "list", "params" => array( "multiple" => "Y", ), "items" => array( "MARKED" => "Оценены", "IN_REPORT" => "В отчете", "OVERDUED" => "Завершены не в срок", "ANY_TASK" => "Показать задачи, в которых я не участвую", ) )
- Список с одиночным выбором.
- custom_date (произвольная дата)
Позволяет производить сложную фильтрацию по датам. Поле позволяет выбрать элементы, которые, например, были созданы 1-го числа в апреле и декабре, в 2012 и 2014 году.
Примерarray( "id" => "DATE_CREATE", "name" => "Дата создания", "type" => "custom_date" )
- date (дата)
Поля типа дата могут поддерживать несколько типов значений, объявленных в
\Bitrix\Main\UI\Filter\DateType
. Это “точная дата”, “диапазон”, “последние N дней” и т. п.Дополнительные свойства Ключ Тип Обязательное Значение по умолчанию Описание time Boolean Нет false Включает поддержку времени. exclude Array Нет array() Определяет, какие типы значений исключить из текущего поля. Типы значений объявлены \Bitrix\Main\UI\Filter\DateType
.Примеры- Стандартное поле.
array( "id" => "DATE_START", "name" => "Дата начала", "type" => "date" )
- Поле с поддержкой времени.
array( "id" => "DATE_START", "name" => "Дата начала", "type" => "date", "time" => true )
- Поле с исключенными типами значений.
array( "id" => "DATE_START", "name" => "Дата начала", "type" => "date", "exclude" => array( \Bitrix\Main\UI\Filter\DateType::LAST_7_DAYS, \Bitrix\Main\UI\Filter\DateType::LAST_30_DAYS, \Bitrix\Main\UI\Filter\DateType::LAST_60_DAYS, \Bitrix\Main\UI\Filter\DateType::LAST_90_DAYS ) )
- Стандартное поле.
- number (число)
Поля типа число могут поддерживать несколько типов значений, объявленных в
\Bitrix\Main\UI\Filter\NumberType
.Примерarray( "id" => "ID", "name" => "ID", "type" => "number" )
- checkbox (чекбокс)
Поле типа чекбокс реализует поле типа список с предустановленными элементами списка. Чекбокс, в отличии от нативного контрола, имеет три значения: “Да”, “Нет” и “Не выбрано”.
Дополнительные свойства Ключ Тип Обязательное Значение по умолчанию Описание valueType String Нет "" Определяет тип возвращаемого значения. Может принимать значение "numeric"
или пустую строку. Если указано"numeric"
, то в качестве значения будет возвращаться1|0
, если не указано или указано значение, отличное от"numeric"
, то будет возвращатьсяY|N
.Примерarray( "id" => "IS_CHECKED", "name" => "Чекбокс", "type" => "checkbox" )
- custom_entity (выбор сущности)
Реализует пользовательский и программный интерфейс для взаимодействия с данными вне фильтра. Например, выбор сущности CRM, выбор группы, пользователя и т. п.
Дополнительные свойства Ключ Тип Обязательное Значение по умолчанию Описание valueType String Нет "" Определяет тип возвращаемого значения. Может принимать значение "numeric"
или пустую строку. Если указано"numeric"
, то в качестве значения будет возвращаться1|0
, если не указано или указано значение, отличное от"numeric"
, то будет возвращатьсяY|N
.params Array Нет array("multiple" => "N")
Определяет параметры поля. Может содержать свойство multiple
со значением"Y"/"N"
, свойство определяет, будет ли поддержка множественного выбора.Пользовательский интерфейс реализован как текстовое поле с вставляемыми в него значениями.
Программный интерфейс реализует набор Javascript событий и объект поля с набором методов для взаимодействия с ним.
События:
- customEntityFocus [Field:BX.Main.ui.CustomEntity] - срабатывает, когда поле находится в фокусе, обычно по этому событию рядом с полем показывают всплывающее окно с вариантами возможных значений поля.
- customEntityBlur [Field:BX.Main.ui.CustomEntity] - срабатывает, когда поле потеряло фокус. Обычно по этому событию закрывают показанное ранее всплывающее окно. Событие не срабатывает, когда фокус переходит на всплывающее окно.
- customEntityRemove [Field:BX.Main.ui.CustomEntity] - срабатывает, когда пользователь удалил поле.
Методы:
- BX.Main.ui.CustomEntity.setData (label:string, value:string|items:object[]) : void - устанавливает значение поля.
Параметры поля с одиночным выбором значения Параметр Тип Обязательное Описание label String Да Значение, которое отображается пользователю. value String Да Значение, которое будет возвращено фильтром Параметры поля с поддержкой множественного выбора значений Параметр Тип Обязательное Описание item Object[] Да Массив объектов со свойствами label
иvalue
.value String Да Значение, которое будет возвращено фильтром. - BX.Main.ui.CustomEntity.setPopupContainer (container:HTMLElement) : void - устанавливает контейнер всплывающего окна, это необходимо для корректной обработки событий.
- BX.Main.ui.CustomEntity.getCurrentValues () : object - возвращает текущее значение поля. Вернет объект со свойствами
label
,value
. - BX.Main.ui.CustomEntity.getField () : ?HTMLElement - возвращает ссылку на корневой элемент поля.
- BX.Main.ui.CustomEntity.getLabelNode () : ?HTMLInputElement - возвращает ссылку на элемент поля ввода.
- BX.Main.ui.CustomEntity.isMultiple () : Boolean - проверяет, является ли поле множественным.
ПримерСоздадим поле, при клике на которое будет открываться попап с возможностью выбрать значение.
Добавляем поле в фильтрarray( "id" => "CREATED_BY", "name" => "Постановщик", "type" => "custom_entity" )
Создаем обработчики событийBX.addCustomEvent('BX.Main.Filter:customEntityFocus', onFieldFocus); BX.addCustomEvent('BX.Main.Filter:customEntityBlur', onFieldBlur); function onFieldFocus(Field) { // Устанавливаем ссылку на контейнер окна // BX.Main.ui.CustomEntity.setPopupContainer(container) // Показываем всплывающее окно } function onFieldBlur() { // Скрываем окно }
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.