EntityFieldProvider::getFieldDescription

  1. Bitrix24 API (v. 23.675.0)
  2. crm
  3. EntityFieldProvider
  4. getFieldDescription
  • Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/entityfieldprovider.php
  • Класс: Bitrix\Crm\WebForm\EntityFieldProvider
  • Вызов: EntityFieldProvider::getFieldDescription
static function getFieldDescription(array $fieldAvailable, array $field = [])
{
	static $stringTypes = null;
	if ($stringTypes === null)
	{
		$stringTypes = array_keys(Helper::getFieldStringTypes());
	}


	if (!empty($field['CODE']) && $field['CODE'] != $fieldAvailable['name'])
	{
		return null;
	}

	$field['CODE'] = $fieldAvailable['name'];
	$field['TYPE_ORIGINAL'] = $fieldAvailable['type'];
	$field['MULTIPLE_ORIGINAL'] = $fieldAvailable['multiple'];
	$field['VALUE_TYPE_ORIGINAL'] = empty($fieldAvailable['value_type']) ? [] : $fieldAvailable['value_type'];

	$isSetOriginalType = ($field['TYPE'] != 'section' && (!in_array($field['TYPE'], $stringTypes)));
	$isSetOriginalType = $isSetOriginalType && !($field['TYPE'] == 'radio' && $fieldAvailable['type'] === 'checkbox');
	if($isSetOriginalType)
	{
		$field['TYPE'] = $fieldAvailable['type'];
	}

	$field['ENTITY_NAME'] = $fieldAvailable['entity_name'];
	$field['ENTITY_FIELD_NAME'] = $fieldAvailable['entity_field_name'];
	$field['ENTITY_CAPTION'] = $fieldAvailable['entity_caption'];
	$field['ENTITY_FIELD_CAPTION'] = $fieldAvailable['caption'];
	$field['SIZE'] = $fieldAvailable['size'] ?? null;



	if(!isset($fieldAvailable['items']) || !is_array($fieldAvailable['items']))
	{
		return $field;
	}


	if(!isset($field['ITEMS']) || !is_array($field['ITEMS']))
	{
		$field['ITEMS'] = [];
	}

	$itemsTmp = array_values($field['ITEMS']);
	$field['ITEMS'] = array();
	foreach($fieldAvailable['items'] as $availableItem)
	{
		foreach($itemsTmp as $item)
		{
			if($item['ID'] != $availableItem['ID'])
			{
				continue;
			}

			if(isset($item['VALUE']) && trim($item['VALUE']) <> '')
			{
				$availableItem['VALUE'] = (string) $item['VALUE'];
			}
			if(isset($item['SELECTED']))
			{
				$availableItem['SELECTED'] = (bool) $item['SELECTED'];
			}

			break;
		}

		$field['ITEMS'][] = $availableItem;
	}

	return $field;
}

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