- Модуль: sale
- Путь к файлу: ~/bitrix/modules/sale/lib/tradingplatform/vk/feed/data/processors/albumsdeleteall.php
- Класс: BitrixSaleTradingPlatformVkFeedDataProcessorsAlbumsDeleteAll
- Вызов: AlbumsDeleteAll::process
public function process($data = NULL, Timer $timer = NULL)
{
$apiHelper = new VkApiApiHelper($this->exportId);
$albumsFromVk = $apiHelper->getALbumsFromVk($this->vkGroupId, false);
$albumsMapped = VkMap::getMappedAlbums($this->exportId);
// delete ALL from mapping
$albumsMappedToRemove = array();
foreach ($albumsMapped as $albumMapped)
{
$albumsMappedToRemove[] = array("VALUE_EXTERNAL" => $albumMapped["ALBUM_VK_ID"]);
}
if (!empty($albumsMappedToRemove))
{
VkMap::removeAlbumMapping($albumsMappedToRemove, $this->exportId);
}
// formatted data
foreach ($albumsFromVk as &$album)
{
$album = array('ALBUM_VK_ID' => $album);
}
$albumsFromVk = array_chunk($albumsFromVk, VkVk::MAX_EXECUTION_ITEMS); // max 25 items in execute()
foreach ($albumsFromVk as $chunk)
{
$this->executer->executeMarketAlbumDelete(array(
"owner_id" => $this->vkGroupId,
"data" => $chunk,
"count" => count($chunk),
));
// abstract start position - only for continue export, not for rewind to position
if ($timer !== NULL && !$timer->check())
throw new TimeIsOverException("Timelimit for export is over", '1');
}
// remove products from cache
$vkExportedData = new VkVkExportedData($this->exportId, 'ALBUMS');
$vkExportedData->removeData();
return true;
}