- Модуль: landing
- Путь к файлу: ~/bitrix/modules/landing/lib/site.php
- Класс: BitrixLandingSite
- Вызов: Site::copy
static function copy($siteId)
{
$siteId = intval($siteId);
$result = new BitrixMainResult;
$error = new Error;
$siteRow = Site::getList([
'filter' => [
'ID' => $siteId
]
])->fetch();
if (!$siteRow)
{
$error->addError(
'SITE_NOT_FOUND',
Loc::getMessage('LANDING_COPY_ERROR_SITE_NOT_FOUND')
);
}
else
{
$result = Site::add([
'CODE' => $siteRow['CODE'],
'ACTIVE' => 'N',
'TITLE' => $siteRow['TITLE'],
'XML_ID' => $siteRow['XML_ID'],
'DESCRIPTION' => $siteRow['DESCRIPTION'],
'TYPE' => $siteRow['TYPE'],
'SMN_SITE_ID' => $siteRow['SMN_SITE_ID'],
'LANG' => $siteRow['LANG']
]);
if ($result->isSuccess())
{
// copy hook data
Hook::copySite(
$siteId,
$result->getId()
);
// copy files
File::copySiteFiles(
$siteId,
$result->getId()
);
}
}
if (!$error->isEmpty())
{
$result->addError($error->getFirstError());
}
return $result;
}