示例#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
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;
}
示例#3
0
$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);
}
//redirect if error
if (intval($arResult["ID"]) == 0) {
    if (!empty($arFilter["=UF_PROG.UF_CODE"])) {
        CHTTP::SetStatus("404 Not Found");
        @define("ERROR_404", "Y");
    } else {
        LocalRedirect($APPLICATION->GetCurDir(), false, "301 Moved Permanently");
示例#4
0
$arDatetime = \CTimeEx::getDatetime();
$date_now = $arDatetime["SERVER_DATETIME_WITH_OFFSET"];
$key = 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;
示例#5
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"];
        $arResult["PROGS"][] = $arSchedule;
    }
}
//Get external progs
$result = \Hawkart\Megatv\ProgExternalTable::getList(array('filter' => array("=UF_SERIAL.UF_EPG_ID" => $arResult["UF_SID"]), 'select' => array("ID", "UF_TITLE", "UF_EXTERNAL_ID", "UF_THUMBNAIL_URL", "UF_JSON"), 'order' => array("UF_DATETIME" => "DESC"), 'limit' => $arParams["NEWS_COUNT"], 'offset' => $offset));
while ($row = $result->fetch()) {
    if (strpos($row["UF_THUMBNAIL_URL"], "rutube") !== false) {
        $row["UF_THUMBNAIL_URL"] .= "?size=m";
    }
    $arResult["PROGS"][] = $row;
}
$this->IncludeComponentTemplate();
示例#6
0
            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") {
    echo json_encode(array("CHANNELS" => $arResult["CHANNELS"], "DATES" => $arDates, "TIME" => date("Y-m-d H:i:s", strtotime(\CTimeEx::dateOffset(date("Y-m-d H:i:s"))))));
    die;
} else {
    $arResult["DATA"] = json_encode(array("CHANNELS" => $arResult["CHANNELS"], "DATES" => $arDates, "TIME" => date("Y-m-d H:i:s", strtotime(\CTimeEx::dateOffset(date("Y-m-d H:i:s"))))));
}
/**
 * Create view through template
 */
/*$arResult["FIRST_DATE"] = false;
foreach($arResult["DATES"] as $date => $arChannels )
{
    if(!$arResult["FIRST_DATE"])
        $arResult["FIRST_DATE"] = $date;
    
    foreach($arChannels as $channel=>$arSchedules)
    {
        $arSchedules = \Hawkart\Megatv\CScheduleView::setIndex(array(
            "PROGS" => $arSchedules,
            "NEWS" => $arResult["CHANNELS"][$channel]["UF_IS_NEWS"],
示例#7
0
?>

<?php 
/*** В настройки компонента
** "AJAX" => $_REQUEST["AJAX"],
** "LIST_URL" => $APPLICATION->GetCurDir()
**/
// номер текущей страницы
$curPage = $arResult["NAV_RESULT"]->NavPageNomer;
// всего страниц - номер последней страницы
$totalPages = $arResult["NAV_RESULT"]->NavPageCount;
$curPage++;
?>

<section class="main-container" data-module="broadcast-results" data-date="<?php 
echo \CTimeEx::dateOffset(date("Y-m-d H:i:s"));
?>
">
    <script type="text/x-config">
        {
            "weekdays" : {
                "Mon" : "Понедельник",
                "Tue" : "Вторник",
                "Wed" : "Среда",
                "Thu" : "Четверг",
                "Fri" : "Пятница",
                "Sat" : "Суббота",
                "Sun" : "Воскресенье"
            },
            "origin" : "https://megatv.su",
            "recordingURL": "<?php