$arSelect = array("ID", "UF_TITLE", "UF_SUB_TITLE", "UF_IMG_PATH" => "UF_IMG.UF_PATH", "UF_RATING", "UF_DESC", "UF_SUB_DESC", "UF_GANRE", "UF_YEAR_LIMIT", "UF_COUNTRY", "UF_YEAR", "UF_DIRECTOR", "UF_PRESENTER", "UF_ACTOR", "UF_CATEGORY"); $obCache = new \CPHPCache(); if ($obCache->InitCache(86400, serialize($arFilter) . serialize($arSelect), "/prog-detail/")) { $arResult = $obCache->GetVars(); } elseif ($obCache->StartDataCache()) { $result = \Hawkart\Megatv\ProgTable::getList(array('filter' => $arFilter, 'select' => $arSelect, 'limit' => 1)); if ($arResult = $result->fetch()) { $arResult["UF_PROG_ID"] = $arResult["ID"]; $arResult["PICTURE"]["SRC"] = \Hawkart\Megatv\CFile::getCropedPath($arResult["UF_IMG_PATH"], array(600, 600)); $arResult["KEYWORDS"] = array($arResult["UF_CATEGORY"], $arResult["UF_GANRE"]); } $obCache->EndDataCache($arResult); } //Get Shedule inform for prog if (empty($_REQUEST["event"])) { $arDate = \CTimeEx::getDateTimeFilter($arParams["DATETIME"]["SERVER_DATETIME"]); $dateStart = date("Y-m-d H:i:s"); $arFilter = array("=UF_PROG.UF_CODE" => $arParams["ELEMENT_CODE"], ">=UF_DATE_START" => new \Bitrix\Main\Type\DateTime($dateStart, 'Y-m-d H:i:s')); } else { $arFilter = array("=UF_PROG.UF_CODE" => $arParams["ELEMENT_CODE"], "=ID" => $_REQUEST["event"]); } $arSelect = array("ID", "UF_DATE_START", "UF_DATE_END", "UF_DATE", "UF_CHANNEL_ID", "UF_ICON" => "UF_CHANNEL.UF_BASE.UF_ICON"); $obCache = new \CPHPCache(); if ($obCache->InitCache(86400, serialize($arFilter) . serialize($arSelect), "/shedule-detail/")) { $arResult = $obCache->GetVars(); } elseif ($obCache->StartDataCache()) { //get channel by code $result = \Hawkart\Megatv\ScheduleTable::getList(array('filter' => $arFilter, 'select' => $arSelect, 'limit' => 1)); if ($arShedule = $result->fetch()) { $arResult["ID"] = $arShedule["ID"]; $arResult["UF_ICON"] = $arShedule["UF_ICON"];
//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"]; $arResult["PROGS"][] = $arSchedule;