@m4son

Как вывести картинку элемента highload блока ??

Есть свойство товара "цвет" у которого тип "справочник". В карточке товара выводится только текст этого свойства, а нужно картинка + цвет
На просторах интернета нашел вот такой код(поделенный на 3 части), а куда его вставлять не нашел, в 1с битрикс плохо разбираюсь
Код:
<?
foreach($arElement["OFFERS"] as $arOffer):
foreach($arOffer["DISPLAY_PROPERTIES"] as $pid=>$arProperty):
$color .= '\''.$arProperty["DISPLAY_VALUE"].'\',';
break;endforeach;
endforeach;
?>
Код:
<?
eval('$fofilter=array('.$color.');');
extract($fofilter);
?>
Код:
<?
if (!CModule::IncludeModule('highloadblock')) //ПОДКЛЮЧАЕМ МОДУЛЬ
continue;
$ID = 3; //СЮДА ID ВАШЕГО HL ИНФОБЛОКА
$hldata = Bitrix\Highloadblock\HighloadBlockTable::getById($ID)->fetch();
$hlentity = Bitrix\Highloadblock\HighloadBlockTable::compileEntity($hldata);
$hlDataClass = $hldata['NAME'].'Table';

//СОЗДАЕМ МАССИВ ФИЛЬТРА, В НЕМ УКАЗЫВАЕМ ЛОГИКУ ОТБОРА И (обязательно, иначе будет ИЛИ и отфильтрует только один цвет)
$arFilter = Array(
Array(
"LOGIC"=>"AND",
Array(
"UF_NAME"=> $fofilter //НАШ МАССИВ С ЦВЕТАМИ
)
)
);
$result = $hlDataClass::getList(array(
'select' => array('UF_FILE','UF_NAME'), //НАМ НУЖНЫ ТОЛЬКО НАЗВАНИЕ И КАРТИНКА
'order' => array('UF_NAME' =>'ASC'),
'filter' => $arFilter //ПРИМЕНЯМ СОЗДАННЫЙ ВЫШЕ ФИЛЬТР
));
while($res = $result->fetch())
{
$img_path = CFile::GetPath($res["UF_FILE"]); //ПОЛУЧАЕМ ПУСТЬ К КАРТИНКЕ
echo '< img src="'.$img_path.'"/>'; //ВЫВОДИМ КАРТИНКУ
}
?>
  • Вопрос задан
  • 942 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы