Документация для разработчиков
Темная тема

Библиотека 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Имя поля формы, в которое будет записан результат. Для селектора с множественным выбором к имени поля необходимо добавлять [].
multipleboolОдиночное или множественное свойство/поле. По умолчанию false.
collectionTypestringТип значений свойства/поля. Возможные значения – int или string. Значение по умолчанию int.

Внимание! Текущие значения для селектора должны быть приведены к указанному типу.

selectedItems *
  • для одиночных значений: string, int или массив с одним значением;
  • для множественных – всегда массив значений
Текущие значения свойства/поля.
iblockId *intID инфоблока, из которого производится выборка. Если свойство/поле не привязано к конкретному инфоблоку, необходимо передавать 0.
userTypestringИдентификатор пользовательского типа свойства/поля.
entityId *stringИдентификатор провайдера данных. Доступные штатные провайдеры:
  • \Bitrix\Iblock\Integration\UI\EntitySelector\IblockPropertyE­lementProvider::ENTITY_ID – для выбора элементов инфоблоков;
  • \Bitrix\Iblock\Integration\UI\EntitySelector\IblockPropertyS­ectionProvider::ENTITY_ID – для выбора разделов инфоблоков;
  • \Bitrix\Highloadblock\Integration\UI\EntitySelector\ElementP­rovider::ENTITY_ID – для выбора элементов highload-блоков.
searchMessagesobjectСообщения окна поиска в случае пустого результата. Объект содержит поля:
  • title – заголовок окна, строка;
  • subtitle – поясняющий текст, строка.
changeEventsarraysСписок js-событий, которые будут вызваны после изменений значения в селекторе.

* – обязательные параметры.



© «Битрикс», 2001-2024, «1С-Битрикс», 2024