• Модуль: seo
  • Путь к файлу: ~/bitrix/modules/seo/lib/adv/yandexregion.php
  • Класс: BitrixSeoAdvYandexRegionTable
  • Вызов: YandexRegionTable::updateDatabaseItem
static function updateDatabaseItem(array &$regionMap, $regionId)
{
	$region = $regionMap[$regionId];

	if(!$regionMap[$region["RegionID"]]["ID"])
	{
		$engine = static::getEngine();
		$ownerInfo = $engine->getCurrentUser();

		$parentId = 0;
		if($region["ParentID"] !== '')
		{
			if(array_key_exists($region["ParentID"], $regionMap))
			{
				if($regionMap[$region["ParentID"]]["ID"] > 0)
				{
					$parentId = $regionMap[$region["ParentID"]]["ID"];
				}
				else
				{
					$parentId = static::updateDatabaseItem(
						$regionMap,
						$region["ParentID"]
					);
				}
			}
		}

		$regionData = array(
			"ENGINE_ID" => $engine->getId(),
			"OWNER_ID" => $ownerInfo['id'],
			"OWNER_NAME" => $ownerInfo['login'],
			"XML_ID" => $region["RegionID"],
			"NAME" => $region["RegionName"],
			"PARENT_ID" => $parentId
		);

		$result = static::add($regionData);

		if($result->isSuccess())
		{
			$regionMap[$region["RegionID"]]["ID"] = $result->getId();
		}
	}

	return $regionMap[$region["RegionID"]]["ID"];
}