@kabashowlab

Как уменьшить фотографию товара Битрикс?

Доброго времени суток.
Перелопатил кучу форумов и ответов на эту тему на форумах.
Где-то что-то делаю не верно.
Попробовал выставить в настройке инфоблока стандартный ресайз картинок с максимальным значением 100, не помогло.
А есть еще предложения, вставьте код в нужное вам место.
А я вот не знаю где это самое нужное место)
Подскажите пожалуйста...
7 часов уже сижу....
Вывожу товары стандартным top элемент каталогом.
Или нужно выводить другим?
Заранее спасибо за ответ
  • Вопрос задан
  • 1344 просмотра
Решения вопроса 1
reaferon
@reaferon
Это можно сделать через обработчик событий.
В файле /bitrix/php_interface/init.php добавляете два обработчика:
AddEventHandler("iblock", "OnAfterIBlockElementAdd","OnAfterIBlockElementUpdateHandler");
AddEventHandler("iblock", "OnAfterIBlockElementUpdate","OnAfterIBlockElementUpdateHandler");

после чего создаете функцию, где эта обработка, собственно, и происходит:
function OnAfterIBlockElementUpdateHandler(&$arFields){
	CModule::IncludeModule("iblock");
# массив элемента доступен в $arFields, детальная картинка, соответственно, 
# в $_FILES['DETAIL_PICTURE']
# меняем картинку так, как нам нужно с помощью imageresize()
# после чего получившийся результат пишем для элемента с ID = $arFields['ID']
}

Ну, это вариант решения из разряда "вставьте код бла-бла-бла".
На самом деле с Битриксом засада может быть в самом непредсказуемом месте. Например, в фотогалерее кроме PREVIEW_PICTURE и DETAIL_PICTURE введена сущность REAL_PICTURE, однажды я очень долго разбирался, почему не выводятся мною заресайженные картинки :-\
Кроме того рекомендую проверить:
- время кеша. Возможно, картинки вполне ресайзятся, но выводится старый вариант. Сбросьте кеш. На всякий случай еще откройте картинку в новом окне и CTRL+R (это уже не для Битрикса, а для nginx, если оный имеется)
- В настройках инфоблока кроме вкладки "Поля" проверить и "Поля разделов"
- так как речь идет о каталоге, неплохо проверить, с каким ИБ работает каталог. Так как возможно при установке модуля "Торговый каталог" был создан новый ИБ с торговыми предложениями.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
Картинку товара можно ресайзить несколькими путями:
1й - Выставить настройки ИБ, однако это ИМХО не верный подход, ибо в когда вы захотите таки сделать картинки побольше, обнаружится, что овер дофига товаров уже с мелкими картинками и потребуется это все перезаливать.
2й - Выставить настройки компонента, если он поддерживает это в опциях по умолчанию, дополнить шаблон https://dev.1c-bitrix.ru/api_help/main/reference/c...
Ответ написан
Комментировать
Rad1calDreamer
@Rad1calDreamer
да хоть где.
хоть при загрузке, хоть при выводе.
Но для начала неплохо бы все таки четко обозначить проблему
Ответ написан
Комментировать
Вам нужна функция CFile::ResizeImageGet(). А чтобы отложить нарезку фоток и не задерживать скорость загрузки страницы у покупетелей можете поставить модуль «Предварительная нарезка фотографий элементов инфоблока».
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы