Копируем компонент в свое пространство имен
Передаем параметром массив тех свойств, что будут подменяться:
$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];
}
}
}
}
}
Результат: