%PDF- %PDF-
| Direktori : /home/bitrix/www/bitrix/modules/sale/lib/tradingplatform/vk/feed/data/converters/ |
| Current File : /home/bitrix/www/bitrix/modules/sale/lib/tradingplatform/vk/feed/data/converters/album.php |
<?php
namespace Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Converters;
use Bitrix\Main\ArgumentNullException;
use Bitrix\Sale\TradingPlatform\Vk;
/**
* Class Album
* Convert album data from source.
*
* @package Bitrix\Sale\TradingPlatform\Vk\Feed\Data\Converters
*/
class Album extends DataConverter
{
const TITLE_LENGHT_MAX = 128;
private $result;
/**
* Album constructor.
*
* @param $exportId - int ID of export
*/
public function __construct($exportId)
{
if (!isset($exportId) || strlen($exportId) <= 0)
throw new ArgumentNullException("EXPORT_ID");
$this->exportId = $exportId;
}
/**
* Main method for convert
*
* @param $data - Array of albums data from source.
* @return array
*/
public function convert($data)
{
$this->result = array();
$logger = new Vk\Logger($this->exportId);
if ($data["ELEMENT_CNT"] == 0)
$logger->addError("ALBUM_EMPTY", $data["ID"]);
$this->result["SECTION_ID"] = $data["ID"];
$this->result["IBLOCK_ID"] = $data["IBLOCK_ID"];
$this->result["TITLE"] = $data["TO_ALBUM_ALIAS"] ? $data["TO_ALBUM_ALIAS"] : $data["NAME"];
$this->result["TITLE"] = $this->validateTitle($this->result['TITLE'], $logger);
$this->result["TITLE"] = self::convertQuotes($this->result["TITLE"]);
// add only checked photos
$sortedPhotos = Vk\PhotoResizer::sortPhotoArray(
array($data["PICTURE"], $data["DETAIL_PICTURE"]),
'ALBUM'
);
$checkedPhotos = Vk\PhotoResizer::checkPhotos($sortedPhotos, 'ALBUM');
if ($checkedPhotos)
foreach ($checkedPhotos["PHOTOS"] as $photo)
{
$this->result["PHOTO_BX_ID"] = $photo["PHOTO_BX_ID"];
$this->result["PHOTO_URL"] = $photo["PHOTO_URL"];
}
else
$logger->addError("ALBUM_EMPTY_PHOTOS", $data["ID"]);
// add item to log, if image was be resized
if ($checkedPhotos['RESIZE'])
$logger->addError('ALBUM_PHOTOS_'.$checkedPhotos['RESIZE_TYPE'], $data["ID"]);
return array($data["ID"] => $this->result);
}
/**
* Valid length of TITLE
*
* @param string $title
* @param Vk\Logger|NULL $logger
* @return string
*/
private function validateTitle($title, Vk\Logger $logger = NULL)
{
$newTitle = $title;
if (strlen($title) > self::TITLE_LENGHT_MAX)
{
$newTitle = substr($title, 0, self::TITLE_LENGHT_MAX - 1);
if ($logger)
$logger->addError('ALBUM_LONG_TITLE', $this->result["ID"]);
}
return $newTitle;
}
}