Вывод результата работы функции

Вывод результата работы функции

19.01.2016

Одним из важных этапов в администрировании сайта является диагностика возникшей проблемы. Прежде чем, что-то починить, нужно для начала найти источник поломки.
Исходные данные:
Проверка сайта не диагностирует проблем, нет ошибок при тестировании
Суть проблемы: При добавлении одного изображения для свойства типа «файл» автоматом тянется «левое» изображение из /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»] и надо использовать на вход функции ресайза.


Ещё статьи:

08.11.2023 Хроники БУС упадка
На днях произошли очередные изменения в БУС битрикс. Полезный модуль bitrix.xscan включили в состав проактивной защиты и убрали из бесплатного сегмента... ID: 465

26.07.2023 Kwork.com закрыл доступ для резидентов РФ
Доступ к выставлению услуг теперь ограничен "К сожалению, вынуждены сообщить, что резиденты РФ в настоящее время не могут использовать сайт Kwork... ID: 463

12.05.2023 Битрикс убрал тип поля "Привязка к карте Яндекс"
В новых обновлениях Битрикс убрал тип поля "Привязка к карте Яндекс". ID: 455

Новые статьи в блоге:

08.11.2023 Прощай bitrix.xscan, не стало битрикс скан модуля
Сегодня увидел, что полезного модуля bitrix.xscan не стало на маркетплейсе. ID: 464

26.07.2023 Сохренение ютм меток в сессию
Вариант сохренения ютм меток в сессию в афйле init.php ID: 462

29.06.2023 Почему DNS есть, но ошибка "Не удалось получить записи с DNS серверов"
Проверка на VPS показывает, что DNS есть, но по факту ошибка "Не удалось получить записи с DNS серверов" ID: 461

Возврат к списку

© 2015-2023 Web админ
Связаться по WhatsApp