• Модуль: landing
  • Путь к файлу: ~/bitrix/modules/landing/lib/internals/landing.php
  • Класс: BitrixLandingInternalsLandingTable
  • Вызов: LandingTable::OnAfterDelete
static function OnAfterDelete(EntityEvent $event)
{
	$primary = $event->getParameter('primary');

	if (isset($primary['ID']))
	{
		Rights::setOff();

		BitrixLandingFile::deleteFromLanding($primary['ID']);
		BitrixLandingSyspage::deleteForLanding($primary['ID']);
		BitrixLandingHook::deleteForLanding($primary['ID']);
		BitrixLandingTemplateRef::deleteArea($primary['ID']);
		BitrixLandingTemplateRef::setForLanding($primary['ID'], array());
		BitrixLandingUrlRewrite::removeForLanding($primary['ID']);

		// if delete index page, make new page is index
		$res = BitrixLandingSite::getList(array(
			'select' => array(
				'ID'
			),
			'filter' => array(
				'LANDING_ID_INDEX' => $primary['ID']
			)
		));
		if ($site = $res->fetch())
		{
			$res = Landing::getList(array(
				'select' => array(
					'ID'
				),
				'filter' => array(
					'SITE_ID' => $site['ID']
				),
				'order' => array(
					'ID' => 'asc'
				)
			));
			while ($page = $res->fetch())
			{
				if (!TemplateRef::landingIsArea($page['ID']))
				{
					BitrixLandingSite::update(
						$site['ID'],
						array(
							'LANDING_ID_INDEX' => $page['ID']
						)
					);
					break;
				}
			}
		}

		Rights::setOn();
	}
}