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