8namespace Bitrix\Seo\Adv;
10use Bitrix\Main\Application;
11use Bitrix\Main\Config\Option;
12use Bitrix\Main\Localization\Loc;
13use Bitrix\Main\Type\Collection;
14use Bitrix\Seo\AdvEntity;
17Loc::loadMessages(__FILE__);
56 private static $engine =
null;
65 return 'b_seo_adv_region';
74 'data_type' =>
'integer',
75 'title' => Loc::getMessage(
'ADV_REGION_ENTITY_PARENT_ID_FIELD'),
78 'data_type' =>
'Bitrix\Seo\Adv\YandexRegionTable',
79 'reference' =>
array(
'=this.PARENT_ID' =>
'ref.ID'),
96 if (static::needDatabaseUpdate())
98 static::updateDatabase();
101 return parent::getList($parameters);
106 $engine = static::getEngine();
107 $regionList = $engine->getRegions();
109 $regionMap =
array();
110 foreach($regionList as
$region)
115 static::clearDatabase();
117 foreach($regionMap as $regionId =>
$region)
119 static::updateDatabaseItem($regionMap, $regionId);
122 static::setLastUpdate();
127 $region = $regionMap[$regionId];
129 if(!$regionMap[
$region[
"RegionID"]][
"ID"])
131 $engine = static::getEngine();
132 $ownerInfo = $engine->getCurrentUser();
137 if(array_key_exists(
$region[
"ParentID"], $regionMap))
139 if($regionMap[
$region[
"ParentID"]][
"ID"] > 0)
141 $parentId = $regionMap[
$region[
"ParentID"]][
"ID"];
145 $parentId = static::updateDatabaseItem(
154 "ENGINE_ID" => $engine->getId(),
155 "OWNER_ID" => $ownerInfo[
'id'],
156 "OWNER_NAME" => $ownerInfo[
'login'],
157 "XML_ID" =>
$region[
"RegionID"],
158 "NAME" =>
$region[
"RegionName"],
159 "PARENT_ID" => $parentId
162 $result = static::add($regionData);
170 return $regionMap[
$region[
"RegionID"]][
"ID"];
176 $connection->truncateTable(static::getTableName());
181 return time() - static::getLastUpdate() > static::CACHE_LIFETIME;
191 Option::set(
'seo', static::OPTION_LAST_UPDATE, $v);
196 return Option::get(
'seo', static::OPTION_LAST_UPDATE, 0);
static setLastUpdate($v=null)
static needDatabaseUpdate()
static getList(array $parameters=array())
static updateDatabaseItem(array &$regionMap, $regionId)
</td ></tr ></table ></td ></tr >< tr >< td class="bx-popup-label bx-width30"><?=GetMessage("PAGE_NEW_TAGS")?> array( $site)