User::getData

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. User
  4. getData
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/embed/user.php
  • Класс: Bitrix\Crm\WebForm\Embed\User
  • Вызов: User::getData
static function getData(Identificator\ComplexCollection $entities): array
{
	$data = [
		'fields' => [],
		'entities' => [],
	];

	$fieldsByType = [];
	$formId = (int)$entities->getIdByTypeId(-1);
	if ($formId > 0)
	{
		$form = new Crm\WebForm\Form($formId);
		if ($form->getId() && $form->isActive())
		{
			foreach ($form->getFieldsMap() as $field)
			{
				$typeId = \CCrmOwnerType::resolveID($field['entity_name']);
				if (!isset($fieldsByType[$typeId]))
				{
					$fieldsByType[$typeId] = [
						'fields' => [],
						'reqs' => [],
						'map' => [],
					];
				}

				$name = $field['entity_field_name'];
				if ($name === 'RQ')
				{
					continue;
				}

				if (mb_substr($name, 0, 3) === 'RQ_')
				{
					$fieldsByType[$typeId]['reqs'][] = $name;
					continue;
				}
				else
				{
					$fieldsByType[$typeId]['fields'][] = $name;
				}

				$fieldsByType[$typeId]['map'][$name] = $field['name'];
			}
		}
	}
	self::$fieldsByType = $fieldsByType;

	foreach ($entities as $entity)
	{
		/** @var Identificator\Complex $entity */
		if ($entity->getTypeId() <= 0)
		{
			continue;
		}

		$data['entities'][] = [
			'typeId' => $entity->getTypeId(),
			'id' => $entity->getId(),
		];
		$data['fields'] = $data['fields'] + self::getEntityFields(
				$entity,
				isset($form)
					? ($form->get()['FORM_SETTINGS']['REQUISITE_PRESET_ID'] ?? null)
					: null
			);
	}

	self::$fieldsByType = [];

	return $data;
}

Добавить комментарий