Полный цикл в digital

Файл result_modifier.php

Изменение результата работы компонента через result_modifier.php, например детальное изображение добавлено в инфоблок не подходящего размера. Ситуация распространенная, т.к. подгонять все изображение под один размер до миллиметра это не реально. Хотя конечно изображения должны быть примерно одинаковых размеров.

Нужно делать полноценный resize с сохранением пропорций. В этой задаче нам поможет богатое API Битрикса, в нем есть все функции для этого, а точнее нам понадобится всего одна CFile::ResizeImageGet. Чтобы изменить размер изображений в инфоблоке Битрикс нужно выполнить следующий код.

/*
* Фрагмент кода из файла result_modifier.php, где происходит resize картинок
*/
if ($arResult['DETAIL_PICTURE']) {
$file = CFile::ResizeImageGet($arResult['DETAIL_PICTURE']['ID'], array('width' => 200,'height' => 200), BX_RESIZE_IMAGE_EXACT, true);
$arResult['DETAIL_PICTURE']['SRC'] = $file['src'];
$arResult['DETAIL_PICTURE']['HEIGHT'] = $file['height'];
$arResult['DETAIL_PICTURE']['WIDTH'] = $file['width'];
}

В цикле обходим элементы массива $arResult и функцией CFile::ResizeImageGet() изменяем размер изображения.

Подробнее о функции можно посмотреть в документации Битрикс. После преобразования мы устанавливаем параметры ширины и высоты изображения 200 пикселов. Но главное мы в качестве источника изображения указываем наш преобразованный файл: $arResult['DETAIL_PICTURE']['SRC'] = $file['src'];

Данный код можно разместить и в самом шаблоне компонента news.list или в специальном файле result_modifier.php, который должен находится в то же папке где и файл шаблона компонента. На нем я остановлюсь поподробней, т.к. это интересная технология модификации результата работы компонента без изменения кода компонента или шаблона.

Файл result_modifier.php - инструмент для модификации данных работы компонента произвольным образом. Создается разработчиком самостоятельно.

Если в папке шаблона есть файл result_modifier.php, то он вызывается перед подключением шаблона и если в нем изменить массив $arResult, то измененный массив перейдет в файл шаблона. Таким образом удобно модифицировать стандартные компоненты Битрикс без вмешательства в них. В дальнейшем такой подход позволяет обновлять не только ядро Битрикс, но и само решение. При обновлении файл result_modifier.php не будет затронут.

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг