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

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-2019, «1С-Битрикс», 2019
Наверх