Отображение изображений в умном фильтре для свойства «Привязка к элементам» в Битрикс

Копируем компонент в свое пространство имен

Передаем параметром массив тех свойств, что будут подменяться:

$arCustomProps = $arParams[«CUSTOM_PICTURE_PROPERTIES»];

if (!empty($arCustomProps) && !is_array($arCustomProps)) {
$arCustomProps = array($arCustomProps);
}

У меня в компонент передаются следующий массив:  «SMART_FILTER_CUSTOM_PICTURE_PROPERTTIES» => array(«TSVET_IMAGES»),

Вставляем в код компонента перед «if ($arParams[«XML_EXPORT»] === «Y») {» следующие строки:

if (!empty($arCustomProps)) {

$arPropsValsToLoad = array();
foreach ($arResult[«ITEMS»] as $PID => $arItem) {

if (in_array($arItem[«CODE»], $arCustomProps)) {
$arResult[«ITEMS»][$PID][«DISPLAY_TYPE»] = «G»;//подменяем тип отображения
$arPropsValsToLoad = array_keys($arItem[«VALUES»]);
}
}
$arPictures = array();
$query = CIBlockElement::GetList(array(), array(«ID» => $arPropsValsToLoad), false, false, array(«ID», «PREVIEW_PICTURE»));
while ($res = $query->GetNext()) {
$arPictures[$res[«ID»]] = CFile::GetFileArray($res[‘PREVIEW_PICTURE’]);//берем картинки
}
foreach ($arResult[«ITEMS»] as $PID => $arItem) {

if (in_array($arItem[«CODE»], $arCustomProps)) {
foreach ($arItem[«VALUES»] as $valID => $arValue) {
if ($arPictures[$valID] != «») {
$arResult[«ITEMS»][$PID][«VALUES»][$valID][«FILE»] = $arPictures[$valID];
}
}
}
}
}

 

Результат: