- Модуль: landing
- Путь к файлу: ~/bitrix/modules/landing/lib/restriction/site.php
- Класс: BitrixLandingRestrictionSite
- Вызов: Site::manageFreeDomains
static function manageFreeDomains(bool $setActive, int $executeAfterSeconds = 0): void
{
$methodName = __CLASS__ . '::' . __FUNCTION__ . '(' . ($setActive ? 'true' : 'false') . ');';
if ($executeAfterSeconds > 0)
{
$dateTime = new DateTime();
CAgent::addAgent(
$methodName,
'landing', 'N', 0, '', 'Y',
$dateTime->add('+' . $executeAfterSeconds . ' seconds')
);
return;
}
if ($setActive)
{
CAgent::removeAgent($methodName, 'landing');
}
Rights::setGlobalOff();
$res = SiteCore::getList([
'select' => [
'ID',
'ACTIVE',
'DOMAIN_ID'
],
'filter' => [
'=DOMAIN.ACTIVE' => $setActive ? 'N' : 'Y',
'!DOMAIN.PROVIDER' => null
]
]);
while ($site = $res->fetch())
{
if ($site['ACTIVE'] === ($setActive ? 'N' : 'Y'))
{
SiteCore::update($site['ID'], [
'ACTIVE' => $setActive ? 'Y' : 'N'
])->isSuccess();
}
Domain::update($site['DOMAIN_ID'], [
'ACTIVE' => $setActive ? 'Y' : 'N'
])->isSuccess();
}
Rights::setGlobalOn();
}