- Модуль: landing
- Путь к файлу: ~/bitrix/modules/landing/lib/transfer/export/site.php
- Класс: Bitrix\Landing\Transfer\Export\Site
- Вызов: Site::getInitManifest
static function getInitManifest(Event $event): ?array
{
$code = $event->getParameter('CODE');
$siteType = substr($code, strlen(AppConfiguration::PREFIX_CODE));
$siteId = (int)$event->getParameter('ITEM_CODE');
Type::setScope($siteType);
// set uses app to main manifest
$usedApp = PublicAction::getRestStat(
true, false,
$siteId ? ['SITE_ID' => $siteId] : []
);
$usedApp = array_merge(
array_keys($usedApp[PublicAction::REST_USAGE_TYPE_BLOCK]),
array_keys($usedApp[PublicAction::REST_USAGE_TYPE_PAGE])
);
$usedApp = array_unique($usedApp);
if ($usedApp)
{
$usedApp = array_values(self::getRestAppIds($usedApp));
}
// get finish id if it is total export
if ($siteId)
{
return [
'SETTING' => [
'SITE_ID' => $siteId,
'SITE_TYPE' => $siteType,
'APP_USES_REQUIRED' => $usedApp
],
'NEXT' => false
];
}
$lastSiteId = 0;
$res = SiteCore::getList([
'select' => [
'ID'
],
'order' => [
'ID' => 'asc'
],
'limit' => self::MAX_SITE_FOR_EXPORT
]);
while ($row = $res->fetch())
{
$lastSiteId = $row['ID'];
}
return [
'SETTING' => [
'FINISH_ID' => $lastSiteId,
'APP_USES_REQUIRED' => $usedApp
],
'NEXT' => false
];
}