• Модуль: 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();
}