- Модуль: lists
- Путь к файлу: ~/bitrix/modules/lists/lib/field.php
- Класс: BitrixListsField
- Вызов: Field::getLinkToElement
static function getLinkToElement(array $field)
{
if(empty($field['VALUE']))
return Loc::getMessage('LISTS_FIELD_NOT_DATA');
if(!is_array($field['VALUE']))
$field['VALUE'] = array($field['VALUE']);
$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();
$urlTemplate = CList::getUrlByIblockId($field['LINK_IBLOCK_ID']);
if(!$urlTemplate && !empty($field["LIST_ELEMENT_URL"]))
$urlTemplate = $field["LIST_ELEMENT_URL"];
$filter['CHECK_PERMISSIONS'] = 'Y';
if ($field['LINK_IBLOCK_ID'] > 0)
$filter['IBLOCK_ID'] = $field['LINK_IBLOCK_ID'];
$queryObject = CIBlockElement::getList(array(), $filter, false, false, array('*'));
while($element = $queryObject->getNext())
{
$elementUrl = str_replace(
array('#list_id#', '#section_id#', '#element_id#'),
array($element['IBLOCK_ID'], '0', $element['ID']),
$urlTemplate
);
$elementUrl = CHTTP::urlAddParams($elementUrl, array("list_section_id" => ""));
$result[] = ''.HtmlFilter::encode(
$element['~NAME']).'';
self::$cache[$field['TYPE']][$element['ID']] =
''.HtmlFilter::encode(
$element['~NAME']).'';
}
return implode(self::$separator, $result);
}