• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/classes/general/prop_element_auto.php
  • Класс: CIBlockPropertyElementAutoComplete
  • Вызов: CIBlockPropertyElementAutoComplete::GetPublicEditHTML
static function GetPublicEditHTML($property, $value, $control)
{
	global $APPLICATION;

	$multi = (isset($property['MULTIPLE']) && $property['MULTIPLE'] == 'Y');
	$settings = static::PrepareSettings($property);
	if (isset($settings['USER_TYPE_SETTINGS']))
	{
		$settings = $settings['USER_TYPE_SETTINGS'];
	}
	$symbols = static::GetSymbols($settings);
	$fixIBlock = $property["LINK_IBLOCK_ID"] > 0;

	ob_start();

	if ($multi)
	{
		$resultValue = static::GetValueForAutoCompleteMulti(
			$property,
			$value,
			$symbols['BAN_SYM'],
			$symbols['REP_SYM']
		);
		$resultValue = (is_array($resultValue) ? htmlspecialcharsback(implode("n",$resultValue)) : '');
	}
	else
	{
		$resultValue = htmlspecialcharsback(static::GetValueForAutoComplete(
			$property,
			$value,
			$symbols['BAN_SYM'],
			$symbols['REP_SYM']
		));
	}

	$APPLICATION->IncludeComponent(
		'bitrix:main.lookup.input',
		'iblockedit',
		array(
			'CONTROL_ID' => preg_replace(
				"/[^a-zA-Z0-9_]/i",
				"x",
				$control['VALUE'].'_'.mt_rand(0, 10000)
			),
			'INPUT_NAME' => $control['VALUE'].($multi ? '[]' : ''),
			'INPUT_NAME_STRING' => 'inp_'.$control['VALUE'],
			'INPUT_VALUE_STRING' => $resultValue,
			'START_TEXT' => Loc::getMessage('BT_UT_EAUTOCOMPLETE_MESS_INVITE'),
			'MULTIPLE' => $property['MULTIPLE'],
			'IBLOCK_ID' => $property['LINK_IBLOCK_ID'],
			'WITHOUT_IBLOCK' => (!$fixIBlock ? 'Y' : 'N'),
			'BAN_SYM' => $symbols['BAN_SYM_STRING'],
			'REP_SYM' => $symbols['REP_SYM_STRING'],
			'MAX_WIDTH' => $settings['MAX_WIDTH'],
			'MIN_HEIGHT' => $settings['MIN_HEIGHT'],
			'MAX_HEIGHT' => $settings['MAX_HEIGHT'],
			'FILTER' => 'Y'
		),
		($control['PARENT_COMPONENT'] ?? null),
		array('HIDE_ICONS' => 'Y')
	);

	$result = ob_get_contents();
	ob_end_clean();

	return $result;
}