示例#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
    /**
    *  [ID] => 2
       [UF_CODE] => pena-dney-20160409004500-0300
       [UF_DATE_START] => 09.04.2016 00:45:00
       [UF_DATE_END] => 09.04.2016 03:10:00
       [UF_DATE] => 09.04.2016
       [UF_CHANNEL_ID] => 30
       [UF_PROG_ID] => 2
       [UF_TITLE] => Пена дней
       [UF_SUB_TITLE] => 
       [UF_IMG_PATH] => /upload/epg_original/48870.jpg
       [UF_RATING] => 
       [DATE_START] => 09.04.2016 00:45:00
       [DATE_END] => 09.04.2016 03:10:00
       [DATE] => 09.04.2016
       [PROG_ID] => 2
       [DETAIL_PAGE_URL] => /channels/1tv/pena-dney-20160409004500-0300/
       [UF_HD] => 1
    */
    public static function getProgInfoChannel($arProg, $arParams)
    {
        if ($arProg["CLASS"] == "one") {
            $arProg["PICTURE"]["SRC"] = \Hawkart\Megatv\CFile::getCropedPath($arProg["UF_IMG_PATH"], array(600, 550));
        }
        if ($arProg["CLASS"] == "half") {
            $arProg["PICTURE"]["SRC"] = \Hawkart\Megatv\CFile::getCropedPath($arProg["UF_IMG_PATH"], array(300, 550));
        }
        $start = $arProg["DATE_START"];
        $end = $arProg["DATE_END"];
        $arStatus = self::status($arProg);
        $status = $arStatus["status"];
        $status_icon = $arStatus["status-icon"];
        $datetime = $arParams["DATETIME"]["SERVER_DATETIME_WITH_OFFSET"];
        $time_pointer = false;
        if (\CTimeEx::dateDiff($start, $datetime) && \CTimeEx::dateDiff($datetime, $end)) {
            $time_pointer = true;
        }
        ob_start();
        ?>
        <div class="item<?php 
        if ($status) {
            ?>
 status-<?php 
            echo $status;
        }
        if ($time_pointer && $arParams["NEED_POINTER"]) {
            ?>
 js-time-pointer<?php 
        }
        if (empty($arProg["PICTURE"]["SRC"])) {
            ?>
 is-noimage<?php 
        }
        if ($arProg["CLASS"] == "double") {
            ?>
 double-item<?php 
        }
        ?>
"
            data-type="broadcast" data-broadcast-id="<?php 
        echo $arProg["ID"];
        ?>
"
        >
            <div class="item-image-holder">
				<img data-src="<?php 
        echo $arProg["PICTURE"]["SRC"];
        ?>
" alt="">
			</div>
            
            <?php 
        if ($time_pointer) {
            ?>
                <span class="badge" data-channel-id="<?php 
            echo $arProg["UF_CHANNEL_ID"];
            ?>
">в эфире</span>
            <?php 
        }
        ?>
            
            <?php 
        echo $status_icon;
        ?>
            <?php 
        echo self::driveNotifyMessage();
        ?>
            
        	<div class="item-header">
        		<time><?php 
        echo substr($arProg["DATE_START"], 11, 5);
        ?>
</time>
        		<a href="<?php 
        echo $arProg["DETAIL_PAGE_URL"];
        ?>
">
                    <?php 
        echo self::cutName(\Hawkart\Megatv\ProgTable::getName($arProg));
        ?>
                </a>
        	</div>

			<div class="item-header">
                <?php 
        if (\CTimeEx::dateDiff($start, $datetime) && \CTimeEx::dateDiff($datetime, $end)) {
            ?>
                    <?php 
            $allSecs = strtotime($end) - strtotime($start);
            $secs = strtotime($datetime) - strtotime($start);
            $proc = ceil($secs / ($allSecs / 100));
            $duration = \CTimeEx::secToStr($secs);
            ?>
    				<div class="timeline" data-progress="<?php 
            echo $proc;
            ?>
">
    					<span class="progress-bg"></span>
    					<span>прошло <?php 
            echo $duration;
            ?>
</span>
    				</div>
                <?php 
        }
        ?>
				<span class="descr-trigger" data-type="descr-trigger"><span>&times;</span></span>
				<time><?php 
        echo substr($arProg["DATE_START"], 11, 5);
        ?>
</time>
				<a href="<?php 
        echo $arProg["DETAIL_PAGE_URL"];
        ?>
">
                    <?php 
        echo self::cutName(\Hawkart\Megatv\ProgTable::getName($arProg));
        ?>
                </a>
				<div class="item-descr">
                    <?php 
        $obParser = new \CTextParser();
        ?>
					<p><?php 
        echo $obParser->html_cut($arProg["UF_DESC"], 600);
        ?>
</p>
				</div>
			</div>
		</div>
        <?php 
        $content = ob_get_contents();
        ob_end_clean();
        return $content;
    }
示例#3
0
$arFilter = array("=UF_USER_ID" => $USER->GetID(), "=UF_DELETED" => 0);
if (!empty($_REQUEST["categoryID"]) && $_REQUEST["categoryID"] != "Все" && $_REQUEST["categoryID"] != "false") {
    $arFilter["=UF_CATEGORY"] = trim($_REQUEST["categoryID"]);
}
$arSelect = array("ID", "UF_DATE_START", "UF_DATE_END", "UF_PROG_ID", "UF_WATCHED", "UF_PROGRESS_PERS", "UF_TITLE" => "UF_PROG.UF_TITLE", "UF_SUB_TITLE" => "UF_PROG.UF_SUB_TITLE", "UF_IMG_PATH" => "UF_PROG.UF_IMG.UF_PATH", "UF_CATEGORY" => "UF_PROG.UF_CATEGORY", "UF_URL", "UF_CHANNEL_CODE" => "UF_CHANNEL.UF_BASE.UF_CODE", "UF_PROG_CODE" => "UF_PROG.UF_CODE", "UF_EPG_ID");
$result = \Hawkart\Megatv\RecordTable::getList(array('filter' => $arFilter, 'select' => $arSelect, 'order' => array("UF_DATE_END" => "DESC"), 'limit' => intval($arParams["NEWS_COUNT"]), 'offset' => $offset));
while ($arRecord = $result->fetch()) {
    $arRecord["UF_NAME"] = \Hawkart\Megatv\ProgTable::getName($arRecord);
    $arRecord["PICTURE"]["SRC"] = \Hawkart\Megatv\CFile::getCropedPath($arRecord["UF_IMG_PATH"], array(300, 300), true);
    $arRecord["DETAIL_PAGE_URL"] = "/channels/" . $arRecord["UF_CHANNEL_CODE"] . "/" . $arRecord["UF_PROG_CODE"] . "/";
    $arRecord["STATUS"] = "";
    if (!empty($arRecord["DATE_START"])) {
        $arRecord["DATE_START"] = \CTimeEx::dateOffset($arRecord["UF_DATE_START"]->toString());
        $minutes = intval(strtotime($date_now) - strtotime($arRecord["UF_DATE_START"])) / 60;
    }
    if ((!\CTimeEx::dateDiff($arRecord["DATE_START"], $date_now) || $minutes < 5) && !empty($arRecord["DATE_START"]) && !empty($arRecord["UF_URL"])) {
        $arRecord["STATUS"] = "status-recording";
    } elseif (!empty($arRecord["UF_URL"])) {
        $arRecord["STATUS"] = "status-recorded";
    }
    $arResult["RECORDS"][] = $arRecord;
}
$arResult["CATEGORIES"] = array();
$arStat = \Hawkart\Megatv\CStat::getByUser($USER->GetID());
foreach ($arStat["CATS"] as $category => $id) {
    $arParams = array("replace_space" => "-", "replace_other" => "-");
    $str = \CDev::translit($category, "ru", $arParams);
    $arResult["CATEGORIES"][$category] = $str;
}
if ($_REQUEST["AJAX"] == "Y") {
    $APPLICATION->RestartBuffer();
示例#4
0
foreach ($arResult["DATES"] as $date => $arChannels) {
    foreach ($arResult["CHANNELS"] as $arChannel) {
        $channel = $arChannel["ID"];
        $arProgs = $arChannels[$channel];
        if (!in_array($arChannel["UF_CHANNEL_BASE_ID"], $arResult["CHANNELS_SHOW"]) && $USER->IsAuthorized()) {
            continue;
        }
        foreach ($arProgs as $key => $arProg) {
            $time = substr($arProg['UF_DATE_START'], 11, 5);
            $arStatus = \Hawkart\Megatv\CScheduleTemplate::status($arProg, $arRecordsStatuses);
            $status = $arStatus["status"];
            $start = $arProg["DATE_START"];
            $end = $arProg["DATE_END"];
            $datetime = $arParams["DATETIME"]["SERVER_DATETIME_WITH_OFFSET"];
            $time_pointer = false;
            if (\CTimeEx::dateDiff($start, $datetime) && \CTimeEx::dateDiff($datetime, $end)) {
                $time_pointer = true;
            }
            $_arRecord = array("id" => $arProg["ID"], "channel_id" => $arProg["UF_CHANNEL_ID"], "time" => $time, "date" => $date, "date_start" => $arProg["DATE_START"], "date_end" => $arProg["DATE_END"], "link" => $arProg["DETAIL_PAGE_URL"], "name" => \Hawkart\Megatv\CScheduleTemplate::cutName(\Hawkart\Megatv\ProgTable::getName($arProg), 35), "images" => array('one' => \Hawkart\Megatv\CFile::getCropedPath($arProg["UF_IMG_PATH"], array(288, 288)), 'double' => \Hawkart\Megatv\CFile::getCropedPath($arProg["UF_IMG_PATH"], array(576, 288)), 'half' => \Hawkart\Megatv\CFile::getCropedPath($arProg["UF_IMG_PATH"], array(288, 144))), 'badge' => $time_pointer, "status" => "status-" . $status, "rating" => $arProg["UF_RATING"], "user_authorized" => $USER->IsAuthorized());
            foreach ($_arRecord["images"] as $type => $value) {
                $_arRecord["images"][$type . "_bad"] = SITE_TEMPLATE_PATH . "/ajax/img_grey.php?quality=1&grey=false&path=" . urlencode($_SERVER["DOCUMENT_ROOT"] . $value);
                if ($status == "viewed") {
                    $_arRecord["images"][$type] = ITE_TEMPLATE_PATH . "/ajax/img_grey.php?&path=" . urlencode($_SERVER["DOCUMENT_ROOT"] . $value);
                    $_arRecord["images"][$type . "_bad"] = str_replace("&grey=false", "", $_arRecord["images"][$type . "_bad"]);
                }
            }
            $arDates[$date][$channel][] = $_arRecord;
        }
    }
}
if ($_REQUEST["AJAX_JSON"] == "Y") {