Рекомендуем поступить следующим образом.
Прежде всего, в настройках каждого значения, выбранного в поле с выгрузкой изображений, отметить галочку «Использовать значение без обработки». Это приведёт к выгрузке не адресов картинок, а их идентификаторов: с идентификаторами легче работать чем с адресами (адреса нужно парсить, определять по ним ID по полям SUBDIR и FILE_NAME - а это лишняя работа).
Далее, в настройках поля (хотя, если значение одно - можно и в настройках значения) отметьте галочку «Произвольный код» и впишите такой код:
if(is_numeric($strValue)){
# Получаем данные по профилю - домен и протокол (т.к. картинки мы должны выгружать по полному адресу)
$arProfile = \Acrit\ExportProPlus\ProfileTable::getList(['filter' => ['ID' => $intProfileId], 'select' => ['DOMAIN', 'IS_HTTPS']])->fetch();
$strDomain = \Acrit\Core\Helper::siteUrl($arProfile['DOMAIN'], $arProfile['IS_HTTPS'] == 'Y');
# Получаем массив изображения из базы
$arFile = \CFile::getFileArray($strValue);
# Задаём размер изображений после ресайза
$arSize = ['width' => 100, 'height' => 100];
# Выполняем ресайз
if($arResizedImage = \CFile::resizeImageGet($arFile, $arSize, BX_RESIZE_IMAGE_PROPORTIONAL, false, [])){
# Если ресайз успешен, выгружаем адрес уменьшенного изображения
print $strDomain.$arResizedImage['src'];
}
else{
# Если ресайз не успешен, выгружаем адрес реальный изображения
print $strDomain.$arFile['SRC'];
}
}
Этот код для каждого выгружаемого значения (числа) выполняет ресайз, получает домен, и выгружает полный адрес изображения после ресайза.
Возврат к списку