- Модуль: landing
- Путь к файлу: ~/bitrix/modules/landing/lib/site.php
- Класс: BitrixLandingSite
- Вызов: Site::addByTemplate
static function addByTemplate(string $code, string $type, $additional = null): BitrixMainEntityAddResult
{
$result = new BitrixMainEntityAddResult;
$componentName = 'bitrix:landing.demo';
$className = CBitrixComponent::includeComponentClass($componentName);
/** @var LandingSiteDemoComponent $demoCmp */
$demoCmp = new $className;
$demoCmp->initComponent($componentName);
$demoCmp->arParams = [
'TYPE' => $type,
'DISABLE_REDIRECT' => 'Y'
];
$res = $demoCmp->actionSelect($code, $additional);
if ($res)
{
$resSite = self::getList([
'select' => [
'ID'
],
'filter' => [
'=TYPE' => $type
],
'order' => [
'ID' => 'desc'
]
]);
if ($rowSite = $resSite->fetch())
{
$result->setId($rowSite['ID']);
}
}
else
{
foreach ($demoCmp->getErrors() as $code => $title)
{
$result->addError(new BitrixMainError($title, $code));
}
}
return $result;
}