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

Библиотека 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
Наверх