• Модуль: lists
  • Путь к файлу: ~/bitrix/modules/lists/lib/field.php
  • Класс: BitrixListsField
  • Вызов: Field::renderFieldByTypeG
static function renderFieldByTypeG(array $field)
{
	if(empty($field['VALUE']))
		return Loc::getMessage('LISTS_FIELD_NOT_DATA');

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

	$urlTemplate = !empty($field['LIST_URL']) ? $field['LIST_URL'] : '';
	$socnetGroupId = !empty($field['SOCNET_GROUP_ID']) ? intval($field['SOCNET_GROUP_ID']) : 0;

	$result = array();
	$filter = array();
	foreach($field['VALUE'] as $value)
	{
		if(!empty(self::$cache[$field['TYPE']][$value]))
			$result[] = self::$cache[$field['TYPE']][$value];

		$filter['ID'][] = $value;
	}

	if(!empty($result) && (count($result) == count($field['VALUE'])))
		return implode(self::$separator, $result);
	else
		$result = array();

	$queryObject = CIBlockSection::getList(array(),
		array('=ID' => $field['VALUE']), false, array('ID', 'IBLOCK_ID', 'NAME'));
	while($section = $queryObject->getNext())
	{
		if($urlTemplate)
		{
			$sectionUrl = CHTTP::URN2URI(CHTTP::urlAddParams(
				str_replace(array("#list_id#", "#section_id#", "#group_id#"),
				array($section['IBLOCK_ID'], 0, $socnetGroupId),
				$urlTemplate), array('list_section_id' => $section['ID'])));

			$html = ''.
				HtmlFilter::encode($section['~NAME']).'';
		}
		else
		{
			$html = HtmlFilter::encode($section['~NAME']);
		}

		$result[] = $html;
		self::$cache[$field['TYPE']][$section['ID']] = $html;
	}

	return implode(self::$separator, $result);
}