- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/tradingplatform/vk/photoresizer.php
- Класс: BitrixSaleTradingPlatformVkPhotoResizer
- Вызов: PhotoResizer::checkPhotos
static function checkPhotos($photos, $type)
{
// check empty photos
if(!$photos)
return NULL;
$result = array();
switch ($type)
{
case 'PRODUCT':
$count = Vk::MAX_PHOTOS_IN_PRODUCT;
$needMainPhoto = true;
$sizesLimits = array(
'MIN_WIDTH' => Vk::MIN_PRODUCT_PHOTO_WIDTH,
'MIN_HEIGHT' => Vk::MIN_PRODUCT_PHOTO_HEIGHT,
'MAX_SIZES_SUM' => Vk::MAX_PRODUCT_PHOTO_SIZES_SUM,
'MAX_SIZE' => Vk::MAX_PRODUCT_PHOTO_SIZE,
'RATIO_V' => Vk::MAX_PRODUCT_RATIO_V, // width / height
'RATIO_H' => Vk::MAX_PRODUCT_RATIO_H,
);
break;
case 'ALBUM':
$count = Vk::MAX_PHOTOS_IN_ALBUM;
$needMainPhoto = false;
$sizesLimits = array(
'MIN_WIDTH' => Vk::MIN_ALBUM_PHOTO_WIDTH,
'MIN_HEIGHT' => Vk::MIN_ALBUM_PHOTO_HEIGHT,
'MAX_SIZES_SUM' => Vk::MAX_ALBUM_PHOTO_SIZES_SUM,
'MAX_SIZE' => Vk::MAX_ALBUM_PHOTO_SIZE,
'RATIO_V' => Vk::MAX_ALBUM_RATIO_V, // width / height
'RATIO_H' => Vk::MAX_ALBUM_RATIO_H,
);
// CONVERT photo-id format if needed
if (!is_array($photos))
$photos = array($photos => array("PHOTO_BX_ID" => $photos));
break;
default:
return $photos;
}
// PROCESSED
$i = 1;
foreach ($photos as $photoId => $photo)
{
if ($photoChecked = self::checkPhoto($photoId, $sizesLimits))
{
// MAIN photo is first
if ($i == 1 && $needMainPhoto)
{
$result["PHOTO_MAIN_BX_ID"] = $photoChecked['ID'];
$result["PHOTO_MAIN_URL"] = $photoChecked['URL'];
$count++; //increase limit for other photos
$i++;
}
// other PHOTOS
elseif ($i++ <= $count)
{
$result["PHOTOS"][$photoChecked['ID']]["PHOTO_BX_ID"] = $photoChecked['ID'];
$result["PHOTOS"][$photoChecked['ID']]["PHOTO_URL"] = $photoChecked['URL'];
}
else
{
break;
}
// set flag if image was be resized
if ($photoChecked['RESIZE'])
{
$result["RESIZE"] = true;
$result["RESIZE_TYPE"] = $photoChecked['RESIZE'];
}
}
}
return $result;
}