Библиотека iblock.field-selector
Описание и пример
Библиотека iblock.field-selector предназначена для использования в пользовательских типах свойств инфоблока и UF-полях привязки к сущностям модуля Информационные блоки.
Библиотека позволяет использовать TagSelector в полях ввода формы или грида. В качестве значений могут быть целые числа либо строки.
Использование:
\Bitrix\Main\Loader::includeModule('iblock');
\Bitrix\Main\UI\Extension::load('iblock.field-selector');
$containerId = 'my_element'; // ID dom-контейнера для TagSelector'а
$values = 100; // текущее значение
$config = \Bitrix\Main\Web\Json::encode([
'containerId' => $containerId,
'fieldName' => 'myfield',
'multiple' => false,
'collectionType' => 'int',
'selectedItems' => $values,
'iblockId' => 41,
'userType' => \Bitrix\Iblock\PropertyTable::USER_TYPE_ELEMENT_AUTOCOMPLETE,
'entityId' => \Bitrix\Iblock\Integration\UI\EntitySelector\IblockPropertyElementProvider::ENTITY_ID,
]);
return <<<HTML
<div id="$containerId"></div>
<script>
(function() {
const selector = new BX.Iblock.FieldSelector($config);
selector.render();
})();
</script>
HTML;
В примере выше реализован выбор элементов, принадлежащих инфоблоку c ID = 41 для одиночного (multiple) свойства типа "Привязка к элементам с автозаполнением" (userType). Текущее значение (selectedItems) – 100. Тип значения передается в ключе collectionType и может принимать значения int или string.
Идентификатор провайдера данных указан в ключе entityId.
Внимание! Одновременно можно работать только с одним провайдером. Это обусловлено спецификой использования библиотеки.
DOM-элемент контейнера для селектора необходимо отрисовывать самостоятельно.
Входные параметры
| Параметр | Тип | Описание |
|---|---|---|
| containerId * | string | Идентификатор DOM-элемента страницы, в котором будет размещён селектор. |
| fieldName * | string | Имя поля формы, в которое будет записан результат. Для селектора с множественным выбором к имени поля необходимо добавлять []. |
| multiple | bool | Одиночное или множественное свойство/поле. По умолчанию false. |
| collectionType | string | Тип значений свойства/поля. Возможные значения – int или string. Значение по умолчанию int.
Внимание! Текущие значения для селектора должны быть приведены к указанному типу. |
| selectedItems * |
| Текущие значения свойства/поля. |
| iblockId * | int | ID инфоблока, из которого производится выборка. Если свойство/поле не привязано к конкретному инфоблоку, необходимо передавать 0. |
| userType | string | Идентификатор пользовательского типа свойства/поля. |
| entityId * | string | Идентификатор провайдера данных. Доступные штатные провайдеры:
|
| searchMessages | object | Сообщения окна поиска в случае пустого результата. Объект содержит поля:
|
| changeEvents | arrays | Список js-событий, которые будут вызваны после изменений значения в селекторе. |
* – обязательные параметры.