Пример #1
0
    $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 {
Пример #2
0
    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;
    }
Пример #3
0
    /**
     * 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>
Пример #4
0
        </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;
        ?>
Пример #5
0
$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";
Пример #6
0
 /**
  * Make cut images for imported progs 
  */
 public static function addCropFiles($prog_ids)
 {
     $arProgs = array();
     $result = ProgTable::getList(array('filter' => array("=ID" => $prog_ids, ">UF_IMG_ID" => 0), 'select' => array('UF_IMG_PATH' => "UF_IMG.UF_PATH")));
     while ($row = $result->fetch()) {
         $path_from = $row["UF_IMG_PATH"];
         $path_parts = pathinfo($row["UF_IMG_PATH"]);
         $file_name = $path_parts["filename"];
         if (!exif_imagetype($_SERVER["DOCUMENT_ROOT"] . $path_from)) {
             continue;
         }
         $arCropedSize = array(array(288, 144), array(288, 288), array(576, 288), array(300, 300), array(600, 600));
         foreach ($arCropedSize as $arSize) {
             $path_to = self::$cut_dir . $file_name . "_" . $arSize[0] . "_" . $arSize[1] . ".jpg";
             CFile::add(array("path_from" => $_SERVER["DOCUMENT_ROOT"] . $path_from, "path_to" => $_SERVER["DOCUMENT_ROOT"] . $path_to, "width" => $arSize[0], "height" => $arSize[1]));
         }
     }
 }
Пример #7
0
 public static function create($arFields)
 {
     global $USER;
     if (!$USER_ID) {
         $USER_ID = $USER->GetID();
     }
     $start = new \Bitrix\Main\Type\DateTime(date('Y-m-d H:i:s', strtotime($arFields["UF_DATE_START"])), 'Y-m-d H:i:s');
     $end = new \Bitrix\Main\Type\DateTime(date('Y-m-d H:i:s', strtotime($arFields["UF_DATE_END"])), 'Y-m-d H:i:s');
     $data = array('UF_USER_ID' => $USER_ID, 'UF_DATE_START' => $start, 'UF_DATE_END' => $end, 'UF_EPG_ID' => $arFields["UF_EPG_ID"], 'UF_CHANNEL_ID' => $arFields["UF_CHANNEL_ID"], 'UF_SCHEDULE_ID' => $arFields["ID"], 'UF_PROG_ID' => $arFields["UF_PROG_ID"], 'UF_DATETIME_ADD' => new \Bitrix\Main\Type\DateTime(date('Y-m-d H:i:s'), 'Y-m-d H:i:s'));
     $result = self::add($data);
     if ($result->isSuccess()) {
         /**
          * Create image croped for record
          * \Hawkart\Megatv\CFile::getCropedPath($arFields["UF_IMG_PATH"], array(300, 300), true)
          */
         $path_from = $arFields["UF_IMG_PATH"];
         $path_parts = pathinfo($arFields["UF_IMG_PATH"]);
         $file_name = $path_parts["filename"];
         $path_to = self::$cut_dir . $file_name . "_300_300.jpg";
         CFile::add(array("path_from" => $_SERVER["DOCUMENT_ROOT"] . $path_from, "path_to" => $_SERVER["DOCUMENT_ROOT"] . $path_to, "width" => 300, "height" => 300));
         return true;
     } else {
         return implode(', ', $result->getErrors());
     }
 }
Пример #8
0
        $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 {