Документация для разработчиков
Темная тема

add

Внимание! Мы настоятельно рекомендуем ознакомиться сначала с REST-документацией модуля Сайты, чтобы понять как модуль функционирует (тем более REST доступен и в коробочной версии). Данную документацию рассматривайте как подспорье при работе в коробке, когда вам действительно мало функционала REST, или вы хотите детальнее разобраться в API.

public static function Site::add(
	$fields
);

Добавление сайта.

Параметры

ПараметрОписаниеВерсия
$fieldsмассив параметров сайта. Ключи массива:
  • TITLE - название сайта
  • DOMAIN_ID - идентификатор домена
  • CODE - код сайта. CODE должно быть уникальным в рамках домена при добавлении и изменении сайта.
  • SMN_SITE_ID - идентификатор сайта главного модуля. Подробнее - ниже

Примеры

if (\Bitrix\Main\Loader::includeModule('landing'))
{
	$res = \Bitrix\Landing\Site::add(
		[
			'TITLE' => 'New site',
			'DOMAIN_ID' => 1,
			'CODE' => 'tratata'
		]
	);
	if ($res->isSuccess())
	{
		echo 'new id: ' . $res->getId();
	}
	else
	{
		print_r($res->getErrors());
	}
}

И небольшое погружение в архитектуру работы Сайтов24 в коробке. Так сложилось исторически, что в Битрикс24 (и облачная и коробочная версии) Сайты располагаются в публичной части, а вот в случае БУС они размещаются в административном интерфейсе.

Причем, один Сайт24 соотносится строго с одним сайтом главного модуля. Такое связывание происходит автоматически при заходе в Сайт24 через меню. Программная связь осуществляется через поле SMN_SITE_ID. Вот пример такого кода:

if (\Bitrix\Main\Loader::includeModule('landing'))
{
	$res = \Bitrix\Landing\Site::add(
		[
			'TITLE' => 'New site',
			'DOMAIN_ID' => 1,
			'CODE' => 'tratata',
			'SMN_SITE_ID' => 's1'
		]
	);
	if ($res->isSuccess())
	{
		echo 'new id: ' . $res->getId();
	}
	else
	{
		print_r($res->getErrors());
	}
}

Добавление нового сайта без привязки к SMN_SITE_ID в случае БУС не запрещается, но является достаточно специфичной задачей и выходит за рамки данной документации.

Создание по шаблону

У разработчика может возникнуть необходимость в создании сайта или страницы по шаблону. Одному из тех, которые отображаются в интерфейсе создания сайта или страницы. Вот как это можно сделать начиная с версии 18.6.0. Это можно сделать посредством обращения непосредственно к компоненту демо-шаблонов.

// подключаем компонент и иницируем его параметрами
$componentName = 'bitrix:landing.demo';
$className = \CBitrixComponent::includeComponentClass($componentName);
$demoCmp = new $className;
$demoCmp->initComponent($componentName);
$demoCmp->arParams = array(
	'TYPE' => 'STORE',// PAGE – обычный сайт, STORE – магазин
	'DISABLE_REDIRECT' => 'Y'
);
// получение списка демо-шаблонов сайтов
$tpl = $demoCmp->getDemoSite();
// и страниц
$tpl = $demoCmp->getDemoPage();
// ключами массива $tpl будет код шаблона, который и требуется передать в следующий метод 
$demoCmp->actionSelect('app');

В случае магазина через данный пример не будет сделан импорт каталога, следует это учитывать. Также следует заметить, что этот код лишь пример применения API.



© «Битрикс», 2001-2024, «1С-Битрикс», 2024