%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; } }