Esempio n. 1
0
} else {
    $arDate = \CTimeEx::getDateFilter($arTime["SERVER_DATETIME"]);
    $dateStart = date("Y-m-d H:i:s");
    $dateEnd = date("Y-m-d H:i:s", strtotime($arDate["DATE_TO"]));
}
$arFilter = array("=UF_PROG.UF_ACTIVE" => 1, ">=UF_DATE_START" => new \Bitrix\Main\Type\DateTime($dateStart, 'Y-m-d H:i:s'), "<UF_DATE_START" => new \Bitrix\Main\Type\DateTime($dateEnd, 'Y-m-d H:i:s'), "!UF_CATEGORY" => "Новости");
$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_CHANNEL_CODE" => "UF_CHANNEL.UF_BASE.UF_CODE", "UF_CATEGORY" => "UF_PROG.UF_CATEGORY", "UF_ID" => "UF_PROG.UF_EPG_ID", "UF_PROG_CODE" => "UF_PROG.UF_CODE");
if ($USER->IsAuthorized() && $_REQUEST["AJAX"] != "Y") {
    $arProgByUsers = array();
    $arRecords = $APPLICATION->GetPageProperty("ar_record_status");
    $arRecordsStatuses = json_decode($arRecords, true);
    $recording_ids = array();
    foreach ($arRecordsStatuses["RECORDING"] as $schedule_id => $arRecord) {
        $recording_ids[] = $schedule_id;
    }
    $arFilter["=UF_CHANNEL_ID"] = \Hawkart\Megatv\ChannelTable::getActiveIdByCityByUser();
    if (count($recording_ids) > 0) {
        $arFilter["!=ID"] = $recording_ids;
    }
    $arRecommend = \Hawkart\Megatv\CStat::getRecommend($USER->GetID());
    $arProgs = array();
    $arRecommendSorted = array();
    foreach ($arRecommend as $by_what => $epg_ids) {
        $count = 0;
        if (count($epg_ids) > 0) {
            $uf_ids = array();
            $result = \Hawkart\Megatv\ScheduleTable::getList(array('filter' => $arFilter + array("=UF_PROG.UF_EPG_ID" => $epg_ids), 'select' => $arSelect, 'order' => array("UF_PROG.UF_RATING" => "DESC")));
            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);
Esempio n. 2
0
$arTime = \CTimeEx::getDatetime();
//get channel by code
$arFilter = array("=UF_CODE" => $arParams["ELEMENT_CODE"]);
$arSelect = array("UF_CATEGORY", "UF_EPG_ID");
$result = \Hawkart\Megatv\ProgTable::getList(array('filter' => $arFilter, 'select' => $arSelect, 'limit' => 1));
if ($arResult = $result->fetch()) {
    $arResult["UF_SID"] = $arResult["UF_EPG_ID"];
}
//print_r($arResult);
//get channel by code
$arResult["PROGS"] = array();
$offset = 0;
if ($_REQUEST["AJAX"] == "Y") {
    $offset = $_REQUEST["offset"];
} else {
    $arChannelsActive = \Hawkart\Megatv\ChannelTable::getActiveIdByCityByUser();
    $arDate = \CTimeEx::getDateTimeFilter($arTime["SERVER_DATETIME"]);
    $dateStart = date("Y-m-d H:i:s");
    $dateEnd = date("Y-m-d H:i:s", strtotime($arDate["DATE_TO"]));
    $arFilter = array("=UF_PROG.UF_EPG_ID" => $arResult["UF_SID"], "=UF_CHANNEL_ID" => $arChannelsActive, ">=UF_DATE_START" => new \Bitrix\Main\Type\DateTime($dateStart, 'Y-m-d H:i:s'), "<UF_DATE_START" => new \Bitrix\Main\Type\DateTime($dateEnd, 'Y-m-d H:i:s'));
    if (!empty($_REQUEST["event"])) {
        $arFilter["!=ID"] = $_REQUEST["event"];
    }
    $arSelect = array("ID", "UF_DATE_START", "UF_DATE_END", "UF_DATE", "UF_CHANNEL_ID", "UF_PROG_ID", "UF_PROG_CODE" => "UF_PROG.UF_CODE", "UF_TITLE" => "UF_PROG.UF_TITLE", "UF_SUB_TITLE" => "UF_PROG.UF_SUB_TITLE", "UF_IMG_PATH" => "UF_PROG.UF_IMG.UF_PATH", "UF_CHANNEL_CODE" => "UF_CHANNEL.UF_BASE.UF_CODE", "UF_ID" => "UF_PROG.UF_EPG_ID", "UF_CATEGORY" => "UF_PROG.UF_CATEGORY");
    $result = \Hawkart\Megatv\ScheduleTable::getList(array('filter' => $arFilter, 'select' => $arSelect, 'limit' => 6));
    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["PROG_ID"] = $arSchedule["UF_PROG_ID"];
        $arSchedule["DETAIL_PAGE_URL"] = "/channels/" . $arSchedule["UF_CHANNEL_CODE"] . "/" . $arSchedule["UF_PROG_CODE"] . "/?event=" . $arSchedule["ID"];
Esempio n. 3
0
    /**
    * "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);
    }
Esempio n. 4
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
$arResult["PROGS"] = array();
$arTime = \CTimeEx::getDatetime();
$prog_ids = array();
//get progs by rating
$arDate = \CTimeEx::getDateFilter($arTime["SELECTED_DATE"]);
$dateStart = date("Y-m-d H:i:s", strtotime($arDate["DATE_FROM"]));
$dateEnd = date("Y-m-d H:i:s", strtotime($arDate["DATE_TO"]));
$arFilter = array("UF_PROG.UF_ACTIVE" => 1, "UF_CHANNEL_ID" => \Hawkart\Megatv\ChannelTable::getActiveIdByCityByUser(), ">=UF_DATE_START" => new \Bitrix\Main\Type\DateTime($dateStart, 'Y-m-d H:i:s'), "<UF_DATE_START" => new \Bitrix\Main\Type\DateTime($dateEnd, 'Y-m-d H:i:s'));
$arSelect = array("ID", "UF_CODE", "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_ICON" => "UF_CHANNEL.UF_BASE.UF_ICON", "UF_CHANNEL_CODE" => "UF_CHANNEL.UF_BASE.UF_CODE", "UF_ID" => "UF_PROG.UF_EPG_ID");
$arOrder = array("UF_PROG.UF_RATING" => "DESC");
$result = \Hawkart\Megatv\ScheduleTable::getList(array('filter' => $arFilter, 'select' => $arSelect, 'order' => $arOrder, 'limit' => 24));
while ($arSchedule = $result->fetch()) {
    if (in_array($arSchedule["UF_PROG_ID"], $prog_ids)) {
        continue;
    }
    $prog_ids[] = $arSchedule["UF_PROG_ID"];
    //for unrepeat
    $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_ID"] . "/?event=" . $arSchedule["ID"];
    $arResult["PROGS"][] = $arSchedule;
}
if ($arParams["TEMPLATE"] == "MAIN_PAGE") {
    $arResult["PROGS"] = \Hawkart\Megatv\CScheduleView::setRecommendIndex(array("PROGS" => $arResult["PROGS"]));
}