Вывод результата работы функции
Одним из важных этапов в администрировании сайта является диагностика возникшей проблемы. Прежде чем, что-то починить, нужно для начала найти источник поломки.
Исходные данные:
Проверка сайта не диагностирует проблем, нет ошибок при тестировании
Суть проблемы: При добавлении одного изображения для свойства типа «файл» автоматом тянется «левое» изображение из /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»] и надо использовать на вход функции ресайза.
Ещё статьи:
12.05.2023
Битрикс убрал тип поля "Привязка к карте Яндекс"
В новых обновлениях Битрикс убрал тип поля "Привязка к карте Яндекс".
ID: 455
18.01.2023
Нюансы перехода битрикс на РНР 8.0
С февраля битрикс прекращает поддерживать РНР 7.4 и в битрикс сегменте сайтов начался переход на РНР 8 для получения обновлений.
Но без нюансов и ошибок...
ID: 431
10.01.2023
БУС окончательно всё?
Появилась информация от битрикс, что грубо говоря поддержка по отраслевому медицинскому решению от битрикс будет до 1 февраля 2024 года, а что потом б...
ID: 426
Новые статьи в блоге:
04.06.2023
SLAM Продуманная форма обратной связи
На днях обнаружил, что многие бесплатные модули пропали из маркетплейс когда битрикс отключил их из-за отсутствия поддержки РНР 8.1. Хороший модуль SL...
ID: 457
04.06.2023
RU-CENTER отключить параметр mbstring.internal_encoding
Чтобы выполнить рекомендации битрикс "Параметр mbstring.internal_encoding в php.ini должен быть пустым, в настройках РНР панели ник ру не сразу очевидно...
ID: 456
27.04.2023
Любой фастобмен мошенники на любом домене FASTOBMEN
Любой фастобмен на любом домене FASTOBMEN - это мошенники, я бы назвал это франшизой обмана. Никаких обменов денег и валют они не делают, а блокируют ...
ID: 454