예제 #1
0
파일: cepg.php 프로젝트: Hawkart/megatv
 public static function exportChannelCity()
 {
     $arRows = array();
     $fp = fopen($_SERVER["DOCUMENT_ROOT"] . "/upload/channel_city.csv", 'w');
     $firstStr = array("Субъект федерации" . "\t", "Город/Канал" . "\t");
     $arChannelCity = array();
     $arSelect = array("ID", "UF_CHANNEL_ID", "UF_CITY_ID", "UF_BASE_ID" => "UF_CHANNEL.UF_BASE_ID", "UF_EPG_ID" => "UF_CHANNEL.UF_EPG_ID");
     $result = ChannelCityTable::getList(array('filter' => array(), 'select' => $arSelect));
     while ($arItem = $result->fetch()) {
         $arChannelCity[$arItem["UF_CITY_ID"]][$arItem["UF_BASE_ID"]] = $arItem["UF_EPG_ID"];
     }
     $arCities = array();
     $arFilter = array("UF_COUNTRY.UF_TITLE" => "Россия", "UF_ACTIVE" => 1);
     $arSelect = array("ID", "UF_TITLE", "UF_REGION");
     $result = CityTable::getList(array('filter' => $arFilter, 'select' => $arSelect, 'order' => array("UF_TITLE" => "ASC")));
     while ($arCity = $result->fetch()) {
         $arCities[$arCity["ID"]] = $arCity;
     }
     $arChannels = array();
     $arFilter = array("UF_ACTIVE" => 1);
     $arSelect = array("ID", "UF_TITLE");
     $result = ChannelBaseTable::getList(array('filter' => $arFilter, 'select' => $arSelect));
     while ($arChannel = $result->fetch()) {
         $arChannels[$arChannel["ID"]] = $arChannel["UF_TITLE"];
         $firstStr[] = $arChannel["UF_TITLE"] . "\t";
     }
     $arRows[] = $firstStr;
     fputcsv($fp, $firstStr, ";");
     foreach ($arCities as $city_id => $arCity) {
         $arStr = array($arCity["UF_REGION"], $arCity["UF_TITLE"]);
         foreach ($arChannels as $channel_id => $channel_title) {
             $arStr[] = (string) $arChannelCity[$city_id][$channel_id] . "\t";
         }
         $arRows[] = $arStr;
         fputcsv($fp, $arStr);
     }
     fclose($fp);
     $fileName = 'channel_city.csv';
     header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
     header('Content-Description: File Transfer');
     header("Content-type: text/csv");
     header("Content-Disposition: attachment; filename={$fileName}");
     header("Expires: 0");
     header("Pragma: public");
     $fh = @fopen('php://output', 'w');
     foreach ($arRows as $data) {
         fputcsv($fh, $data, ";");
     }
     fclose($fh);
     exit;
 }
예제 #2
0
 /**
  * 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;
                     }
                 }
             }
         }
     }
 }
예제 #3
0
파일: channel.php 프로젝트: Hawkart/megatv
 /**
  * Get active channels by city
  * 
  * @return array
  */
 public static function getActiveByCity()
 {
     $arChannels = array();
     $arFilter = array("=UF_CHANNEL.UF_BASE.UF_ACTIVE" => 1, "=UF_CITY_ID" => $_SESSION["USER_GEO"]["ID"]);
     $arSelect = array('ID', 'UF_CHANNEL_ID', 'UF_CHANNEL_BASE_ID' => 'UF_CHANNEL.UF_BASE.ID', 'UF_TITLE' => 'UF_CHANNEL.UF_BASE.UF_TITLE', 'UF_ICON' => 'UF_CHANNEL.UF_BASE.UF_ICON', 'UF_CODE' => 'UF_CHANNEL.UF_BASE.UF_CODE', "UF_IS_NEWS" => 'UF_CHANNEL.UF_BASE.UF_IS_NEWS', 'UF_PRICE' => 'UF_CHANNEL.UF_BASE.UF_PRICE_H24');
     $arSort = array("UF_CHANNEL.UF_BASE.UF_SORT" => "ASC");
     $obCache = new \CPHPCache();
     if ($obCache->InitCache(86400, serialize($arFilter) . serialize($arSelect) . serialize($arSort), "/channels_active/")) {
         $arChannels = $obCache->GetVars();
     } elseif ($obCache->StartDataCache()) {
         $result = \Hawkart\Megatv\ChannelCityTable::getList(array('filter' => $arFilter, 'select' => $arSelect, 'order' => $arSort));
         while ($row = $result->fetch()) {
             $row["ID"] = $row["UF_CHANNEL_ID"];
             $row["DETAIL_PAGE_URL"] = "/channels/" . $row['UF_CODE'] . "/";
             $arChannels[] = $row;
         }
         $obCache->EndDataCache($arChannels);
     }
     return $arChannels;
 }
예제 #4
0
if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
global $USER, $APPLICATION, $arSite;
$arResult = array();
$arParams = $arParams + array("DATETIME" => \CTimeEx::getDatetime(), "LIST_URL" => $APPLICATION->GetCurDir());
//get channel by code
$arFilter = array("=UF_CHANNEL.UF_BASE.UF_ACTIVE" => 1, "=UF_CHANNEL.UF_BASE.UF_CODE" => $arParams["ELEMENT_CODE"], "=UF_CITY_ID" => $_SESSION["USER_GEO"]["ID"]);
$arSelect = array('ID', 'UF_CHANNEL_ID', 'UF_CHANNEL_BASE_ID' => 'UF_CHANNEL.UF_BASE.ID', 'UF_TITLE' => 'UF_CHANNEL.UF_BASE.UF_TITLE', 'UF_ICON' => 'UF_CHANNEL.UF_BASE.UF_ICON', 'UF_CODE' => 'UF_CHANNEL.UF_BASE.UF_CODE', "UF_IS_NEWS" => 'UF_CHANNEL.UF_BASE.UF_IS_NEWS', 'UF_DESC' => 'UF_CHANNEL.UF_BASE.UF_DESC', 'UF_H1' => 'UF_CHANNEL.UF_BASE.UF_H1', 'UF_DESCRIPTION' => 'UF_CHANNEL.UF_BASE.UF_DESCRIPTION', 'UF_KEYWORDS' => 'UF_CHANNEL.UF_BASE.UF_KEYWORDS');
$obCache = new \CPHPCache();
if ($obCache->InitCache(86400, serialize($arFilter) . serialize($arSelect), "/channel-detail/")) {
    $arResult = $obCache->GetVars();
} elseif ($obCache->StartDataCache()) {
    $arResult = array();
    $result = \Hawkart\Megatv\ChannelCityTable::getList(array('filter' => $arFilter, 'select' => $arSelect, 'limit' => 1));
    if ($arResult = $result->fetch()) {
        $arResult["ID"] = $arResult["UF_CHANNEL_ID"];
        $arResult["DETAIL_PAGE_URL"] = "/channels/" . $arResult['UF_CODE'] . "/";
        $title = $arResult["UF_TITLE"] . " -  телепрограмма на сегодня, программа телепередач канала " . $arResult["UF_H1"] . " на " . $arSite["NAME"];
        if ($arResult["UF_H1"] == "5 канал") {
            $title = str_replace("канала ", "", $title);
        }
        $title = str_replace("TvGuru", $arSite["NAME"], $title);
        $arResult["PAGE_TITLE"] = $title;
    }
    $obCache->EndDataCache($arResult);
}
//get subscription list
$arSubscriptionChannels = $APPLICATION->GetPageProperty("ar_subs_channels");
$arResult["CHANNELS_SHOW"] = json_decode($arSubscriptionChannels, true);
예제 #5
0
<?php

$DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__) . '/../');
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
set_time_limit(0);
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php";
global $USER, $APPLICATION;
if (!is_object($USER)) {
    $USER = new CUser();
}
//\Hawkart\Megatv\ChannelCityTable::deleteAll();
\Hawkart\Megatv\ChannelCityTable::import();
echo "is done";
die;