/** * Delete pic after delete record */ public static function onAfterDelete(Entity\Event $event) { $id = $event->getParameter('id'); $result = self::getList(array('filter' => array("!ID" => $id), 'select' => array("UF_IMG_PATH" => "UF_PROG.UF_IMG.UF_PATH"), 'limit' => 1)); $arRecord = $result->fetch(); if (!empty($arRecord["UF_IMG_PATH"])) { unlink(CFile::getCropedPath($arRecord["UF_IMG_PATH"], array(300, 300), true)); } }
$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"); } } else {
/** * Get records statuses by user */ $arRecordsStatuses = \Hawkart\Megatv\RecordTable::getListStatusesByUser(); foreach ($arResult["PROGS"] as $key => $arProg) { $arProg["CAT_CODE"] = $arResult["CATEGORIES"][$arProg["UF_CATEGORY"]]; } $arRecords = array(); foreach ($arResult["PROGS"] as $arRecord) { $datetime = $arRecord['UF_DATE_START']; $date = substr($datetime, 0, 10); $time = substr($datetime, 11, 5); $arStatus = \Hawkart\Megatv\CScheduleTemplate::status($arRecord, $arRecordsStatuses); $status = $arStatus["status"]; $status_icon = $arStatus["status-icon"]; $img = \Hawkart\Megatv\CFile::getCropedPath($arRecord["UF_IMG_PATH"], array(288, 288)); ob_start(); if ($status == "viewed") { $path = $_SERVER["DOCUMENT_ROOT"] . $arProg["PICTURE"]["SRC"]; ?> <div class="item-image-holder" style="background-image: url(<?php echo SITE_TEMPLATE_PATH; ?> /ajax/img_grey.php?path=<?php echo urlencode($img); ?> )"></div> <span class="item-status-icon"> <span data-icon="icon-viewed"></span> <span class="status-desc">Просмотрено</span> </span>
public static function getProgSimilar($arProg, $arParams) { $arProg["PICTURE"]["SRC"] = \Hawkart\Megatv\CFile::getCropedPath($arProg["UF_IMG_PATH"], array(300, 300)); $arStatus = self::status($arProg); $status = $arStatus["status"]; $status_icon = $arStatus["status-icon"]; ob_start(); ?> <div class="item<?php if ($status) { ?> status-<?php echo $status; } if (empty($arProg["PICTURE"]["SRC"])) { ?> is-noimage<?php } ?> " data-type="broadcast" data-broadcast-id="<?php echo $arProg["ID"]; ?> " > <div class="item-image-holder" style="background-image: url(<?php echo $arProg["PICTURE"]["SRC"]; ?> )"></div> <?php echo $status_icon; ?> <?php echo self::driveNotifyMessage(); ?> <div class="item-header"> <time><?php echo substr($arProg["DATE_START"], 11, 5); ?> | <?php echo substr($arProg["DATE_START"], 0, 10); ?> </time> <a href="<?php echo $arProg["DETAIL_PAGE_URL"]; ?> "> <?php echo self::cutName(\Hawkart\Megatv\ProgTable::getName($arProg)); ?> </a> </div> </div> <?php $content = ob_get_contents(); ob_end_clean(); return $content; }
</div> <?php } else { /** * Показ передачи */ $broadcastID = intval($_GET["broadcastID"]); if ($_GET["record"] != "false") { $arFilter = array("=ID" => $broadcastID); } else { $arFilter = array("=UF_USER_ID" => $USER->GetID(), "=UF_SCHEDULE_ID" => $broadcastID); } $result = \Hawkart\Megatv\RecordTable::getList(array('filter' => $arFilter, 'select' => array("ID", "UF_PROG_ID", "UF_URL", "UF_PROGRESS_SECS", "UF_TITLE" => "UF_PROG.UF_TITLE", "UF_SUB_TITLE" => "UF_PROG.UF_SUB_TITLE", "UF_IMG_PATH" => "UF_PROG.UF_IMG.UF_PATH"), 'limit' => 1)); $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); //get count watched $countWatched = 0; $result = \Hawkart\Megatv\RecordTable::getList(array('filter' => array("UF_WATCHED" => 1, "=UF_PROG_ID" => $arRecord["UF_PROG_ID"]), 'select' => array(new \Bitrix\Main\Entity\ExpressionField('CNT', 'COUNT(*)', array('ID'))))); $arWatched = $result->fetch(); ?> <div class="broadcast-player" data-module="broadcast-player"> <script type="text/x-config"> { "seekTime": "<?php echo intval($arRecord["UF_PROGRESS_SECS"]); ?> ", "broadcastID": "<?php echo $broadcastID; ?>
$obCache = new \CPHPCache(); if ($obCache->InitCache(3600, serialize($arFilter) . serialize($arSelect), "/search-ajax/")) { $arResult = $obCache->GetVars(); } elseif ($obCache->StartDataCache()) { $arExclude = array(); $result = \Hawkart\Megatv\ScheduleTable::getList(array('filter' => $arFilter, 'select' => $arSelect, 'order' => array("UF_PROG.UF_RATING" => "DESC"))); while ($arSchedule = $result->fetch()) { if (in_array($arSchedule["UF_ID"], $arExclude)) { continue; } else { $arExclude[] = $arSchedule["UF_ID"]; } $arSchedule["UF_DATE_START"] = $arSchedule["DATE_START"] = $arSchedule['UF_DATE_START']->toString(); $arJson = array(); $arJson["date"] = substr($arSchedule["UF_DATE_START"], 11, 5) . " | " . substr($arSchedule["UF_DATE_START"], 0, 10); $arJson["title"] = $arSchedule["UF_TITLE"]; if ($arSchedule["UF_IMG_PATH"]) { $src = \Hawkart\Megatv\CFile::getCropedPath($arSchedule["UF_IMG_PATH"], array(300, 300)); //$renderImage = CFile::ResizeImageGet($src, Array("width"=>60, "height"=>60)); $arJson["thumbnail"] = $src; } else { $arJson["thumbnail"] = "null"; } $arJson["tokens"] = array(); $arJson["link"] = "/channels/" . $arSchedule["UF_CHANNEL_CODE"] . "/" . $arSchedule["UF_PROG_CODE"] . "/?event=" . $arSchedule["ID"]; $arResult[] = $arJson; } $obCache->EndDataCache($arResult); } exit(json_encode($arResult)); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php";
$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") { 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 {