• Модуль: 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
	];
}