add
Attention! We strongly recommend first to learn more about Sites module REST documentation to understand how the module functions (with REST available in Bitrix24 Self-hosted editions). View this documentation as useful source when working with Bitrix24 Self-hosted editions and when you want to learn more about API.
public static function Site::add( $fields );
Adds a site.
Parameters
Parameter | Description | Version |
---|---|---|
$fields | Array of site parameters. Array keys:
|
Example
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()); } }
Historically, Bitrix24 Sites24 are located in public sections (for both Self-hosted and Cloud).
Single Site24 is associated with a single main module site. Such connection is automatic when entering Sites24 menu. The field SMN_SITE_ID governs such association. For example:
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()); } }
Creating using template
Developers may need to create site using a template displayed in the site or landing page interface. It can be done starting from module version 18.6.0 by directly querying a demo template component.
// connect the component and initiate it via parameters $componentName = 'bitrix:landing.demo'; $className = \CBitrixComponent::includeComponentClass($componentName); $demoCmp = new $className; $demoCmp->initComponent($componentName); $demoCmp->arParams = array( 'TYPE' => 'STORE',// PAGE – standard site, STORE – online store 'DISABLE_REDIRECT' => 'Y' ); // get list of site demo templates $tpl = $demoCmp->getDemoSite(); // and pages $tpl = $demoCmp->getDemoPage(); // array keys $tpl are template code to be passed into next method $demoCmp->actionSelect('app');
Please note, catalog import is not performed via this example in case of online store. Also note, that this code is for illustrating API applicability only.