• Модуль: lists
  • Путь к файлу: ~/bitrix/modules/lists/lib/field.php
  • Класс: BitrixListsField
  • Вызов: Field::prepareEditFieldByTypeE
static function prepareEditFieldByTypeE(array $field)
{
	if($field['READ'] == 'Y' && empty($field['VALUE']))
	{
		return array(
			'id' => $field['FIELD_ID'],
			'name' => $field['NAME'],
			'required' => $field['IS_REQUIRED'] == 'Y' ? true : false,
			'type' => 'custom',
			'show' => $field['SHOW'],
			'value' => Loc::getMessage('LISTS_FIELD_NOT_DATA')
		);
	}

	if(!is_array($field['VALUE']))
		$field['VALUE'] = array($field['VALUE']);

	$currentElements = array();
	foreach($field['VALUE'] as $value)
	{
		if($value)
		{
			$currentElements[] = $value;
		}
	}

	$randomGenerator = new RandomSequence($field['FIELD_ID']);
	$randString = mb_strtolower($randomGenerator->randString(6));

	$html = '';
	global $APPLICATION;
	ob_start();
	$APPLICATION->includeComponent('bitrix:iblock.element.selector', '',
		array(
			'SELECTOR_ID' => $randString,
			'INPUT_NAME' => $field['FIELD_ID'],
			'IBLOCK_ID' => $field['LINK_IBLOCK_ID'],
			'MULTIPLE' => $field['MULTIPLE'],
			'CURRENT_ELEMENTS_ID' => $currentElements,
			'POPUP' => 'Y',
			'ONLY_READ' => $field['READ'],
			'PANEL_SELECTED_VALUES' => 'Y',
			'TEMPLATE_URL' => $field['LIST_ELEMENT_URL']
		),
		null, array('HIDE_ICONS' => 'Y')
	);
	$html .= ob_get_contents();
	ob_end_clean();

	$result = array(
		'id' => $field['FIELD_ID'],
		'name' => $field['NAME'],
		'required' => $field['IS_REQUIRED'] == 'Y' ? true : false,
		'type' => 'custom',
		'show' => $field['SHOW'],
		'value' => $html
	);

	return $result;
}