• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/internals/site.php
  • Класс: BitrixLandingInternalsSiteTable
  • Вызов: SiteTable::OnAfterUpdate
static function OnAfterUpdate(EntityEvent $event)
{
	if (self::$disableCallback)
	{
		return true;
	}

	// for B24 we must update domain
	if (Manager::isB24() && !self::$touchMode)
	{
		static $domainUpdated = [];

		$primary = $event->getParameter('primary');

		if (!in_array($primary['ID'], $domainUpdated))
		{
			$domainUpdated[] = $primary['ID'];
			$siteController = self::getSiteController();
			$res = self::getList([
				'select' => [
					'ACTIVE', 'DELETED',
					'DOMAIN_NAME' => 'DOMAIN.DOMAIN',
					'LANG'
				],
				'filter' => [
					'ID' => $primary['ID'],
					'=DELETED' => ['Y', 'N'],
					'CHECK_PERMISSIONS' => 'N',
					'>DOMAIN_ID' => 0
				]
			]);
			if ($row = $res->fetch())
			{
				try
				{
					// now external domains always are active
					$siteController::activateDomain(
						$row['DOMAIN_NAME'],
						'Y',
						self::prepareLangForController($row['LANG'] ?? Manager::getZone())
					);
				}
				catch (BitrixMainSystemException $ex) {}
			}
		}
	}

	return self::saveAdditionalFields($event);
}