18 private const DEFAULT_TEMPLATE =
'empty';
24 $this->siteId = $siteId;
29 $result = Landing\Landing::addByTemplate(
31 self::DEFAULT_TEMPLATE,
33 'SITE_TYPE' => Type::SCOPE_CODE_MAINPAGE,
49 if (!Loader::includeModule(
'rest'))
60 $app = AppTable::getByClientId($appCode);
62 !empty(
$app[
'ACTIVE'])
63 &&
$app[
'ACTIVE'] ===
'Y'
64 && !empty(
$app[
'INSTALLED'])
65 &&
$app[
'INSTALLED'] ===
'Y';
68 $installResult = Marketplace\Application::install($appCode);
70 !isset($installResult[
'success'])
71 || !$installResult[
'success']
72 || isset($installResult[
'error'])
79 $appSite = Marketplace\Client::getSiteList([
81 'siteType' => mb_strtolower(Type::SCOPE_CODE_MAINPAGE),
83 $zipId = (int)($appSite[
'ITEMS'][0][
'ID'] ?? 0);
92 $className = \CBitrixComponent::includeComponentClass(
$componentName);
93 $importComponent =
new $className;
95 $importComponent->arParams = [
103 $importComponent->executeComponent();
106 $importId = $importComponent->arResult[
'IMPORT_PROCESS_ID'] ??
null;
112 $importId = (int)$importId;
113 $import =
new Import($importId);
114 $newLandingId =
null;
119 $ratio = $import->getSetting()->get(
'SETTING_RATIO');
122 && isset($ratio[
'LANDING'][
'SPECIAL_PAGES'][
'LANDING_ID_INDEX'])
125 $landingIdByTemplate = $ratio[
'LANDING'][
'SPECIAL_PAGES'][
'LANDING_ID_INDEX'];
126 $newLandingId = $ratio[
'LANDING'][
'LANDINGS'][$landingIdByTemplate] ??
null;
130 $data = $import->get();
131 if (
$data[
'status'] !==
'F' &&
$data[
'status'] !==
'E' &&
$data[
'status'] !==
'U')
141 return $newLandingId;