• Модуль: highloadblock
  • Путь к файлу: ~/bitrix/modules/highloadblock/classes/general/prop_directory.php
  • Класс: CIBlockPropertyDirectory
  • Вызов: CIBlockPropertyDirectory::GetUIEntityEditorPropertyEditHtml
static function GetUIEntityEditorPropertyEditHtml(array $params = []) : string
{
	$settings = $params['SETTINGS'] ?? [];
	$hlTableName = (string)($settings['USER_TYPE_SETTINGS']['TABLE_NAME'] ?? '');

	if ($hlTableName === '')
	{
		return '';
	}

	$propertyId = $settings['ID'];
	$popupId = 'directory_popup_'.CUtil::JSEscape($propertyId);

	$inputHtml = '';
	$labelHtml = '';
	$selectedHtml = '';

	$entityFields = static::getEntityFieldsForTable($hlTableName);

	if ($settings['IS_REQUIRED'] === 'N')
	{
		array_unshift($entityFields, [
			'UF_XML_ID' => '0',
			'UF_NAME' => Loc::getMessage('HIBLOCK_PROP_DIRECTORY_EMPTY_GRID_VALUE'),
		]);
	}

	$checkedXmlId = null;

	foreach ($entityFields as $field)
	{
		if ($field['UF_XML_ID'] === $params['VALUE'])
		{
			$checkedXmlId = $field['UF_XML_ID'];
			break;
		}
	}

	if (!$checkedXmlId && !empty($entityFields))
	{
		$checkedXmlId = reset($entityFields)['UF_XML_ID'];
	}

	foreach ($entityFields as $field)
	{
		$checked = $field['UF_XML_ID'] === $checkedXmlId;
		$name = HtmlFilter::encode($field['UF_NAME']);
		$xmlId = HtmlFilter::encode($field['UF_XML_ID']);

		$image = null;
		if (!empty($field['UF_FILE']))
		{
			$image = CFile::GetFileArray($field['UF_FILE']) ?: null;
		}

		if ($checked)
		{
			if (!empty($image['SRC']))
			{
				$selectedHtml .= "";
			}

			$selectedHtml .= " {$name}";
		}

		$inputName = $params['FIELD_NAME'].'_'.$params['ELEMENT_ID'];
		$inputId = $params['FIELD_NAME'].'_'.$xmlId.'_'.$params['ELEMENT_ID'];
		$checkedValue = $checked ? 'checked="checked"' : '';
		$inputHtml .= "";

		$class = $checked ? ' selected' : '';
		$imageHtml = '';

		if (!empty($image['SRC']))
		{
			$imageHtml .= "";
		}

		$html = <<
HTML; }