コード例 #1
0
ファイル: record.php プロジェクト: Hawkart/megatv
 public static function getListStatusesByUser()
 {
     global $USER, $APPLICATION;
     if ($USER->IsAuthorized()) {
         $arTime = \CTimeEx::getDatetime();
         $date_now = $arTime["SERVER_DATETIME_WITH_OFFSET"];
         $countRecorded = 0;
         $countInRec = 0;
         $count = 0;
         $arStatusRecording = array();
         //записывается
         $arStatusRecorded = array();
         //записана, можно просмотреть
         $arStatusViewed = array();
         //просмотренна
         $result = self::getList(array('filter' => array("=UF_USER_ID" => $USER->GetID(), "=UF_DELETED" => 0), 'select' => array("ID", "UF_URL", "UF_SCHEDULE_ID", "UF_WATCHED", "UF_PROG_ID", "DATE_START" => "UF_SCHEDULE.UF_DATE_START")));
         while ($arRecord = $result->fetch()) {
             $shedule_id = $arRecord["UF_SCHEDULE_ID"];
             if (!empty($arRecord["DATE_START"])) {
                 $arRecord["DATE_START"] = \CTimeEx::dateOffset($arRecord["DATE_START"]->toString());
                 $minutes = intval(strtotime($date_now) - strtotime($arRecord["DATE_START"])) / 60;
             }
             if (intval($shedule_id) > 0) {
                 if ((!\CTimeEx::dateDiff($arRecord["DATE_START"], $date_now) || $minutes < 5) && !empty($arRecord["DATE_START"]) && !empty($arRecord["UF_URL"])) {
                     $countInRec++;
                     $arStatusRecording[$shedule_id] = $arRecord;
                     $count++;
                     continue;
                 }
                 if ($arRecord["UF_WATCHED"] == 1) {
                     $countRecorded++;
                     $arStatusViewed[$shedule_id] = $arRecord;
                 } else {
                     if (empty($arRecord["UF_URL"])) {
                         $countInRec++;
                         $arStatusRecording[$shedule_id] = $arRecord;
                     } else {
                         if (!empty($arRecord["UF_URL"])) {
                             $countRecorded++;
                             $arStatusRecorded[$shedule_id] = $arRecord;
                         }
                     }
                 }
             }
             $count++;
         }
         $arRecordsStatuses = array("RECORDING" => $arStatusRecording, "RECORDED" => $arStatusRecorded, "VIEWED" => $arStatusViewed);
         $APPLICATION->SetPageProperty("ar_record_status", json_encode($arRecordsStatuses));
         $APPLICATION->SetPageProperty("ar_record_in_rec", $countInRec);
         $APPLICATION->SetPageProperty("ar_record_recorded", $countRecorded);
         $APPLICATION->SetPageProperty("ar_record_total", $count);
     }
     return $arRecordsStatuses;
 }
コード例 #2
0
ファイル: _component.php プロジェクト: Hawkart/megatv
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
global $USER, $APPLICATION;
$arResult = array();
$arParams = $arParams + array("DATETIME" => \CTimeEx::getDatetime(), "LIST_URL" => $APPLICATION->GetCurDir(), "BACK_URL" => $_SERVER['HTTP_REFERER']);
if (empty($_REQUEST["event"])) {
    $arFilter = array("=UF_PROG.UF_CODE" => $arParams["ELEMENT_CODE"]);
} else {
    $arFilter = array("=ID" => $_REQUEST["event"]);
}
$arSelect = array("ID", "UF_DATE_START", "UF_DATE_END", "UF_DATE", "UF_CHANNEL_ID", "UF_PROG_ID", "UF_TITLE" => "UF_PROG.UF_TITLE", "UF_SUB_TITLE" => "UF_PROG.UF_SUB_TITLE", "UF_IMG_PATH" => "UF_PROG.UF_IMG.UF_PATH", "UF_RATING" => "UF_PROG.UF_RATING", "UF_DESC" => "UF_PROG.UF_DESC", "UF_SUB_DESC" => "UF_PROG.UF_SUB_DESC", "UF_TOPIC" => "UF_PROG.UF_GANRE", "UF_YEAR_LIMIT" => "UF_PROG.UF_YEAR_LIMIT", "UF_COUNTRY" => "UF_PROG.UF_COUNTRY", "UF_YEAR" => "UF_PROG.UF_YEAR", "UF_DIRECTOR" => "UF_PROG.UF_DIRECTOR", "UF_PRESENTER" => "UF_PROG.UF_PRESENTER", "UF_ACTOR" => "UF_PROG.UF_ACTOR", "UF_ICON" => "UF_CHANNEL.UF_BASE.UF_ICON", "UF_CATEGORY" => "UF_PROG.UF_CATEGORY");
$obCache = new \CPHPCache();
if ($obCache->InitCache(86400, serialize($arFilter) . serialize($arSelect), "/schedule-detail/")) {
    $arResult = $obCache->GetVars();
} elseif ($obCache->StartDataCache()) {
    //get channel by code
    $result = \Hawkart\Megatv\ScheduleTable::getList(array('filter' => $arFilter, 'select' => $arSelect, 'limit' => 1));
    if ($arResult = $result->fetch()) {
        $arResult["UF_DATE_START"] = $arResult["DATE_START"] = \CTimeEx::dateOffset($arResult['UF_DATE_START']->toString());
        $arResult["UF_DATE_END"] = $arResult["DATE_END"] = \CTimeEx::dateOffset($arResult['UF_DATE_END']->toString());
        $arResult["UF_DATE"] = $arResult["DATE"] = substr($arResult["DATE_START"], 0, 10);
        $arResult["PICTURE"]["SRC"] = \Hawkart\Megatv\CFile::getCropedPath($arResult["UF_IMG_PATH"], array(600, 600));
        $sec = strtotime($arResult["DATE_END"]) - strtotime($arResult["DATE_START"]);
        $arResult["DURATION"] = \CTimeEx::secToStr($sec);
        $arResult["KEYWORDS"] = array($arResult["UF_CATEGORY"], $arResult["UF_TOPIC"]);
    }
    $obCache->EndDataCache($arResult);
}
コード例 #3
0
ファイル: component.php プロジェクト: Hawkart/megatv
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
ini_set('max_execution_time', 10);
global $USER;
$arTime = \CTimeEx::getDatetime();
function getRecommendForAll($arFilter, $arSelect, $limit, $offset)
{
    $arProgs = array();
    $result = \Hawkart\Megatv\ScheduleTable::getList(array('filter' => $arFilter, 'select' => $arSelect, 'order' => array("UF_PROG.UF_RATING" => "DESC"), 'limit' => 12, 'offset' => $offset));
    while ($arSchedule = $result->fetch()) {
        $arSchedule["UF_DATE_START"] = $arSchedule["DATE_START"] = \CTimeEx::dateOffset($arSchedule['UF_DATE_START']->toString());
        $arSchedule["UF_DATE_END"] = $arSchedule["DATE_END"] = \CTimeEx::dateOffset($arSchedule['UF_DATE_END']->toString());
        $arSchedule["UF_DATE"] = $arSchedule["DATE"] = substr($arSchedule["DATE_START"], 0, 10);
        $arSchedule["DETAIL_PAGE_URL"] = "/channels/" . $arSchedule["UF_CHANNEL_CODE"] . "/" . $arSchedule["UF_PROG_CODE"] . "/?event=" . $arSchedule["ID"];
        $arProgs[] = $arSchedule;
    }
    return $arProgs;
}
$arResult["PROGS"] = array();
$countPerPage = intval($arParams["NEWS_COUNT"]);
$count = 0;
$offset = 0;
$prog_ids = array();
$limit = intval($arParams["NEWS_COUNT"]);
if ($_REQUEST["AJAX"] == "Y") {
    $offset = intval($_REQUEST["offset"]);
    $dateStart = substr($_REQUEST["date"], 0, 10) . date(" H:i:s");
    $dateStart = date("Y-m-d H:i:s", strtotime($dateStart));
コード例 #4
0
ファイル: index.php プロジェクト: Hawkart/megatv
<?php

require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/header.php";
$APPLICATION->SetTitle("Рекомендации");
?>

<?php 
$APPLICATION->IncludeComponent("hawkart:megatv.recommendations", "", array("DATETIME" => CTimeEx::getDatetime(), "NEWS_COUNT" => 12), false);
?>

<?php 
/*$APPLICATION->IncludeComponent("hawkart:recommendations", "index", Array("NOT_SHOW_CHANNEL"=>"Y", "TEMPLATE" => "MAIN_PAGE"),
	false
);*/
?>

<?php 
require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/footer.php";
コード例 #5
0
ファイル: cscheduletemplate.php プロジェクト: Hawkart/megatv
    /**
    * "RECORDING"
      "RECORDED"
      "VIEWED"
    */
    public static function status($arProg, $arRecordsStatuses = false)
    {
        global $APPLICATION, $USER;
        if (!$arRecordsStatuses) {
            $arRecordsStatuses = $APPLICATION->GetPageProperty("ar_record_status");
            $arRecordsStatuses = json_decode($arRecordsStatuses, true);
        }
        $arSubscriptionChannels = ChannelTable::getActiveIdByCityByUser();
        $schedule = $arProg["ID"];
        $arDatetime = \CTimeEx::getDatetime();
        $date_now = $arDatetime["SERVER_DATETIME_WITH_OFFSET"];
        $start = $arProg["DATE_START"];
        $end = $arProg["DATE_END"];
        $status = "";
        if (isset($arRecordsStatuses["VIEWED"][$schedule])) {
            $status = "viewed";
        } else {
            if (isset($arRecordsStatuses["RECORDING"][$schedule])) {
                $status = "recording";
            } else {
                if (isset($arRecordsStatuses["RECORDED"][$schedule])) {
                    $status = "recorded";
                } else {
                    if (in_array($arProg["UF_CHANNEL_ID"], $arSubscriptionChannels) && $USER->IsAuthorized() && \CTimeEx::dateDiff($date_now, $end) || !$USER->IsAuthorized()) {
                        $status = "recordable";
                    }
                }
            }
        }
        ob_start();
        if ($status == 'recording') {
            ?>
            <div class='item-status-icon'>
				<span data-icon='icon-recording'></span>
                <span class='status-desc'>В записи</span>
			</div>
        <?php 
        }
        ?>
        
        <?php 
        if ($status == 'recorded') {
            ?>
            <span class='item-status-icon' href='#'>
				<span data-icon='icon-recorded'></span>
				<span class='status-desc'>Смотреть</span>
			</span>
        <?php 
        }
        ?>
        
        <?php 
        if ($status == 'viewed') {
            ?>
            <span class='item-status-icon'>
				<span data-icon='icon-viewed'></span>
				<span class='status-desc'>Просмотрено</span>
			</span>
        <?php 
        }
        ?>
        
        <?php 
        if ($status == 'recordable') {
            ?>
            <?php 
            if ($USER->IsAuthorized()) {
                ?>
                <span class='item-status-icon'>
                    <span data-icon='icon-recordit'></span>
                    <span class='status-desc'>Записать</span>
    			</span>
            <?php 
            } else {
                ?>
                <span class='item-status-icon js-btnModalInit' data-module='modal' data-modal='authURL' data-type='openModal'>
                    <span data-icon='icon-recordit'></span>
                    <span class='status-desc'>Записать</span>
    			</span>     
            <?php 
            }
            ?>
        <?php 
        }
        $content = ob_get_contents();
        ob_end_clean();
        return array("status" => $status, "status-icon" => $content);
    }
コード例 #6
0
ファイル: component.php プロジェクト: Hawkart/megatv
<?php

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");