Вывод результата работы функции
Одним из важных этапов в администрировании сайта является диагностика возникшей проблемы. Прежде чем, что-то починить, нужно для начала найти источник поломки.
Исходные данные:
Проверка сайта не диагностирует проблем, нет ошибок при тестировании
Суть проблемы: При добавлении одного изображения для свойства типа «файл» автоматом тянется «левое» изображение из /upload/resize_cache/
При добавлении второго фото и последующих левое фото из resize_cache пропадает.
Лицензия «Старт», компонент «новости»

Мое предположение было, что CFile::ResizeImageGet от одного фото возвращает картинку другого фото.
Направление я определил, это на мой взгляд следующий код вызова АПИ функции, который приводит к проблеме:
<!— Доп. изображения —>
<? foreach ($arResult[«DISPLAY_PROPERTIES»][«PHOTOMISS»][«FILE_VALUE»] as $PHOTO): ?>
<!— Авто ресайз доп. изображений с помощью CFile::ResizeImageGet —>
<? $file = CFile::ResizeImageGet($PHOTO, array(‘width’=>’700’, ‘height’=>’700’),
BX_RESIZE_IMAGE_EXACT, true); ?>
<a href=»<?=$file[«src»]?>» height=»467″ class=»highslide» oncl ick=»return hs.expand(this)»>
<img border=»0″ src=»<?=$file[«src»]?>» width=»110″ height=»110″
alt=»<?=$arResult[«NAME»]?>» title=»<?=$arResult[«NAME»]?>» />
</a>
<? endforeach ?>
Теперь нужно получить массив, который возвращается функцией, при такой проблеме, т.е результат работы функции CFile::ResizeImageGet. Получить можно следующим способом:
<? foreach ($arResult[«DISPLAY_PROPERTIES»][«PHOTOMISS»][«FILE_VALUE»] as $PHOTO): ?>
<? $file = CFile::ResizeImageGet($PHOTO, array(‘width’=>’700’, ‘height’=>’700’),
BX_RESIZE_IMAGE_EXACT, true); ?>
<?{echo ‘<pre>’; print_r($file); echo ‘</pre>’;} ?>
<? endforeach ?>
Результат:
Array
(
[src] => /upload/iblock/de4/de467d64c8fa52e9a3fa2c1790f91ed8.jpg
[width] => 350
[height] => 467
[size] => 30913
)
Array
(
[src] => /upload/resize_cache/obyava/edf/700_700_2/edf80e7e585ee6d1a070472ee32eead1.jpg
[width] => 700
[height] => 700
[size] => 83450
)
Результат получили. но теперь нам нужно понимать, сколько раз и от каких файлов вызывается метод, что приводит к такому результату.
Добавляем в вывод еще информацию:
$rsFile = CFile::GetByID($PHOTO);
$arFile = $rsFile->Fetch();
print_r($arFile);
Судя по тому, что левое изображение у меня без возврата ResizeImageGet, а только описание по GetByID, то это изображение скорее всего приходит из самого элемента инфоблока.
Итог:
Используется описание одного значения свойства как массив значений, вот в чем проблема.
В $arResult[«DISPLAY_PROPERTIES»][«PHOTOMISS»][«FILE_VALUE»] идет массив описания одного файла.
Соответственно $arResult[«DISPLAY_PROPERTIES»][«PHOTOMISS»][«FILE_VALUE»][«ID»] и надо использовать на вход функции ресайза.
Ещё статьи:
15.02.2024
История о жадности или как клиент свободное место искал на сервере
Случилась у меня одна история с клиентом, который свободное место искал на сервере, но на самом деле это больше о жадности, но в итоге всё равно пришл...
ID: 466
08.11.2023
Хроники БУС упадка
На днях произошли очередные изменения в БУС битрикс. Полезный модуль bitrix.xscan включили в состав проактивной защиты и убрали из бесплатного сегмента...
ID: 465
26.07.2023
Kwork.com закрыл доступ для резидентов РФ
Доступ к выставлению услуг теперь ограничен "К сожалению, вынуждены сообщить, что резиденты РФ в настоящее время не могут использовать сайт Kwork...
ID: 463
Новые статьи в блоге:
01.12.2025
Задача алфавитный указатель товаров
Интересная задача для тренировки навыков.
Суть такая:
Алфавитный указатель товаров, но не стандартный где обычно сортировка разделов по названию происходит,...
ID: 649
01.12.2025
Junior разработчик PHP 2025
Периодически бывает вижу вакансии для джунов, и немного прозреваю от того что я вижу.
Обязанности джуна Junior разработчик PHP
ID: 648
29.11.2025
Обзор на маркетплейс модулей города по IP адресу
Неделю назад повёлся на предложение клиента пойти вариантом платного модуля для замены модуля выбора города, хотя изначально сказал, что там ловить нечего....
ID: 647

