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; }
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; }
$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"); } } else { //FOR SEO $url_params = parse_url($_SERVER["REQUEST_URI"]);
<?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";
?> </div> <div class="header__box-right box-right"> <?php if ($APPLICATION->GetCurDir() != "/personal/records/") { ?> <div class="calendar-carousel" data-module="calendar-carousel"> <script type="text/x-config"> { "currentDate": "<?php echo CTimeEx::getCurDate(); ?> ", "minDate": 1, "maxDate":<?php echo CTimeEx::getCalendarDays(); ?> } </script> <a href="#" class="prev-trigger disabled" data-type="prev-trigger"><span data-icon="icon-left-arrow-days"></span></a> <div class="dates-holder" data-type="dates-carousel"></div> <a href="#" class="next-trigger" data-type="next-trigger"><span data-icon="icon-right-arrow-days"></span></a> </div> <?php } ?> <?php $APPLICATION->IncludeComponent("hawkart:search", "", array(), false); ?> <?php
/** * [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>×</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; }
$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();
<?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");
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();
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"],
?> <?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