- Модуль: iblock
- Путь к файлу: ~/bitrix/modules/iblock/classes/general/prop_element_list.php
- Класс: CIBlockPropertyElementList
- Вызов: CIBlockPropertyElementList::GetPublicViewHTML
static function GetPublicViewHTML($arProperty, $arValue, $strHTMLControlName)
{
static $cache = array();
$strResult = '';
$arValue['VALUE'] = intval($arValue['VALUE']);
if (0 < $arValue['VALUE'])
{
$viewMode = '';
$resultKey = '';
if (!empty($strHTMLControlName['MODE']))
{
switch ($strHTMLControlName['MODE'])
{
case 'CSV_EXPORT':
$viewMode = 'CSV_EXPORT';
$resultKey = 'ID';
break;
case 'EXTERNAL_ID':
$viewMode = 'EXTERNAL_ID';
$resultKey = '~XML_ID';
break;
case 'SIMPLE_TEXT':
$viewMode = 'SIMPLE_TEXT';
$resultKey = '~NAME';
break;
case 'ELEMENT_TEMPLATE':
$viewMode = 'ELEMENT_TEMPLATE';
$resultKey = '~NAME';
break;
}
}
if (!isset($cache[$arValue['VALUE']]))
{
$arFilter = [];
$intIBlockID = (int)$arProperty['LINK_IBLOCK_ID'];
if ($intIBlockID > 0)
$arFilter['IBLOCK_ID'] = $intIBlockID;
$arFilter['ID'] = $arValue['VALUE'];
if ($viewMode === '')
{
$arFilter['ACTIVE'] = 'Y';
$arFilter['ACTIVE_DATE'] = 'Y';
$arFilter['CHECK_PERMISSIONS'] = 'Y';
$arFilter['MIN_PERMISSION'] = 'R';
}
$rsElements = CIBlockElement::GetList(
array(),
$arFilter,
false,
false,
array("ID","IBLOCK_ID","NAME","DETAIL_PAGE_URL")
);
if (isset($strHTMLControlName['DETAIL_URL']))
{
$rsElements->SetUrlTemplates($strHTMLControlName['DETAIL_URL']);
}
$cache[$arValue['VALUE']] = $rsElements->GetNext(true, true);
unset($rsElements);
}
if (!empty($cache[$arValue['VALUE']]) && is_array($cache[$arValue['VALUE']]))
{
if ($viewMode !== '' && $resultKey !== '')
{
$strResult = $cache[$arValue['VALUE']][$resultKey];
}
else
{
$strResult = ''.$cache[$arValue['VALUE']]['NAME'].'';
}
}
}
return $strResult;
}