• Модуль: sale
  • Путь к файлу: ~/bitrix/modules/sale/lib/location/search/sitelink.php
  • Класс: BitrixSaleLocationSearchSiteLinkTable
  • Вызов: SiteLinkTable::initializeData
static function initializeData()
{
	$locationTable = LocationLocationTable::getTableName();
	$groupLocationTable = LocationGroupLocationTable::getTableName();
	$siteLocationTable = LocationSiteLocationTable::getTableName();

	// ORACLE: OK, MSSQL: OK
	$sql = "
		insert into ".static::getTableName()." 
			(LOCATION_ID, SITE_ID) 
		select LC.ID, LS.SITE_ID
			from ".$siteLocationTable." LS
				inner join ".$locationTable." L on LS.LOCATION_ID = L.ID and LS.LOCATION_TYPE = 'L'
				inner join ".$locationTable." LC on LC.LEFT_MARGIN >= L.LEFT_MARGIN and LC.RIGHT_MARGIN <= L.RIGHT_MARGIN
		union 
		select LC.ID, LS.SITE_ID
			from ".$siteLocationTable." LS
				inner join ".$groupLocationTable." LG on LS.LOCATION_ID = LG.LOCATION_GROUP_ID and LS.LOCATION_TYPE = 'G'
				inner join ".$locationTable." L on LG.LOCATION_ID = L.ID
				inner join ".$locationTable." LC on LC.LEFT_MARGIN >= L.LEFT_MARGIN and LC.RIGHT_MARGIN <= L.RIGHT_MARGIN
	";

	MainHttpApplication::getConnection()->query($sql);
}