add
Внимание! Мы настоятельно рекомендуем ознакомиться сначала с REST-документацией модуля Сайты, чтобы понять как модуль функционирует (тем более REST доступен и в коробочной версии). Данную документацию рассматривайте как подспорье при работе в коробке, когда вам действительно мало функционала REST, или вы хотите детальнее разобраться в API.
public static function Site::add( $fields );
Добавление сайта.
Параметры
Параметр | Описание | Версия |
---|---|---|
$fields | массив параметров сайта. Ключи массива:
|
Примеры
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.