Генерим превью пикче из детайла при открытии элемента

В файл result_modifier.php для catalog.element вставляем код

if (empty($arResult["PREVIEW_PICTURE"])){
$el = new CIBlockElement;
$arFieldsPREVIEW_PICTURE = Array();
if($arResult["DETAIL_PICTURE"]){
$arFieldsPREVIEW_PICTURE['PREVIEW_PICTURE'] = CFile::MakeFileArray($_SERVER["DOCUMENT_ROOT"] . $arResult["DETAIL_PICTURE"]["SRC"]);
CFile::ResizeImage(
$arFieldsPREVIEW_PICTURE['PREVIEW_PICTURE'], // путь к изображению, сюда же будет записан уменьшенный файл
array(
"width" => 200, // новая ширина
"height" => 200 // новая высота
),
BX_RESIZE_IMAGE_PROPORTIONAL_ALT // метод масштабирования. обрезать прямоугольник без учета пропорций
);
// сохраняем уменьшенное изображение.
$fileId = CFile::SaveFile($arFieldsPREVIEW_PICTURE['PREVIEW_PICTURE'], "catalog");
$arFieldsPREVIEW_PICTURE['PREVIEW_PICTURE']["del"] = "Y";
$el->Update($arResult["ID"], $arFieldsPREVIEW_PICTURE);
$DoRefresh="byPict";
}
}

Теперь при открытии карточки, если нет PREVIEW_PICTURE, то она будет создана из DETAIL_PICTURE.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *