/** * import channel & city info connection */ public static function import() { $arChannelCity = array(); $arFilter = array(); $arSelect = array("ID", "UF_CHANNEL_ID", "UF_CITY_ID"); $result = ChannelCityTable::getList(array('filter' => $arFilter, 'select' => $arSelect)); while ($arItem = $result->fetch()) { $arChannelCity[$arItem["UF_CHANNEL_ID"] . "-" . $arItem["UF_CITY_ID"]] = $arItem["ID"]; } $arCities = array(); $arFilter = array("UF_COUNTRY.UF_TITLE" => "Россия", "UF_ACTIVE" => 1); $arSelect = array("ID", "UF_TITLE"); $result = CityTable::getList(array('filter' => $arFilter, 'select' => $arSelect)); while ($arCity = $result->fetch()) { $arCities[$arCity["UF_TITLE"]] = $arCity["ID"]; } $arChannels = array(); $arFilter = array(); $arSelect = array("ID", "UF_EPG_ID"); $result = ChannelTable::getList(array('filter' => $arFilter, 'select' => $arSelect)); while ($arChannel = $result->fetch()) { $arChannels[$arChannel["UF_EPG_ID"]] = $arChannel["ID"]; } $file = $_SERVER["DOCUMENT_ROOT"] . "/local/modules/hawkart.megatv/data/channel_city.csv"; $lines = file($file); foreach ($lines as $line_num => $line) { $arItem = explode(";", $line); $city = trim($arItem[0]); foreach ($arItem as $value) { if (strpos($value, "channel_id=") !== false) { $channel_epg_id = str_replace("channel_id=", "", $value); $channel_epg_id = trim($channel_epg_id); $city_id = $arCities[$city]; $channel_id = $arChannels[$channel_epg_id]; if (intval($arChannelCity[$channel_id . "-" . $city_id]) == 0 && intval($city_id) > 0 && intval($channel_id) > 0) { //echo $city." ".$channel_epg_id."<br />"; $arFields = array("UF_CITY_ID" => $city_id, "UF_CHANNEL_ID" => $channel_id); //\CDev::pre($arFields); $result = ChannelCityTable::add($arFields); if ($result->isSuccess()) { $id = $result->getId(); $arChannelCity[$channel_id . "-" . $city_id] = $id; } } } } } }
public function importChannelCity() { $arChannelCity = array(); $arFilter = array(); $arSelect = array("ID", "UF_CHANNEL_ID", "UF_CITY_ID"); $result = ChannelCityTable::getList(array('filter' => $arFilter, 'select' => $arSelect)); while ($arItem = $result->fetch()) { $arChannelCity[$arItem["UF_CHANNEL_ID"] . "-" . $arItem["UF_CITY_ID"]] = $arItem["ID"]; } $arCities = array(); $arFilter = array("UF_COUNTRY.UF_TITLE" => "Россия", "UF_ACTIVE" => 1); $arSelect = array("ID", "UF_TITLE"); $result = CityTable::getList(array('filter' => $arFilter, 'select' => $arSelect)); while ($arCity = $result->fetch()) { $arCities[$arCity["UF_TITLE"]] = $arCity["ID"]; } $arChannels = array(); $arFilter = array(); $arSelect = array("ID", "UF_EPG_ID"); $result = ChannelTable::getList(array('filter' => $arFilter, 'select' => $arSelect)); while ($arChannel = $result->fetch()) { $arChannels[$arChannel["UF_EPG_ID"]] = $arChannel["ID"]; } foreach ($this->xml->channel as $_arChannel) { $attr = $_arChannel->attributes(); $channel_epg_id = trim((string) $attr["id"]); foreach ($_arChannel->{'broadcast-city'}->city as $_arCity) { $json = json_encode($_arCity); $arCity = json_decode($json, TRUE); $city = trim((string) $arCity[0]); $city_id = $arCities[$city]; $channel_id = $arChannels[$channel_epg_id]; if (intval($arChannelCity[$channel_id . "-" . $city_id]) == 0) { $arFields = array("UF_CITY_ID" => $city_id, "UF_CHANNEL_ID" => $channel_id); $result = ChannelCityTable::add($arFields); if ($result->isSuccess()) { $id = $result->getId(); $arChannelCity[$channel_id . "-" . $city_id] = $id; } } } } }