<?php $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"] = realpath(dirname(__FILE__) . '/../'); define("NO_KEEP_STATISTIC", true); define("NOT_CHECK_PERMISSIONS", true); set_time_limit(0); require $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; echo date("H:i:s") . "\r\n"; $arProgsByRating = \Hawkart\Megatv\ProgTable::getProgsByRating(); $rsUsers = CUser::GetList($by = "id", $order = "asc", array("ACTIVE" => "Y"), array("FIELDS" => array("ID"))); while ($arUser = $rsUsers->GetNext()) { $arStatistic = \Hawkart\Megatv\CStat::getByUser($arUser["ID"]); $arRecommend = array("by_ganres" => \Hawkart\Megatv\CStat::getProgsByGanre($arProgsByRating, $arStatistic), "by_users" => \Hawkart\Megatv\CStat::getTopRateProg($arProgsByRating), "by_records" => \Hawkart\Megatv\CStat::getTopRateSerialByUser($arUser["ID"], $arStatistic)); $json = json_encode($arRecommend); \Hawkart\Megatv\CStat::saveRecommend($arUser["ID"], $json); } echo date("H:i:s") . "\r\n"; die;
} unset($arRecommendSorted[$by_what][0]); $arRecommendSorted[$by_what] = array_values($arRecommendSorted[$by_what]); if (count($arRecommendSorted[$by_what]) == 0) { $added = true; } } } } } else { $arFilter["=UF_CHANNEL_ID"] = \Hawkart\Megatv\ChannelTable::getActiveIdByCity(); $arResult["PROGS"] = getRecommendForAll($arFilter, $arSelect, $limit, $offset); } $arResult["CATEGORIES"] = array(); if ($USER->IsAuthorized()) { $arStat = \Hawkart\Megatv\CStat::getByUser($USER->GetID()); foreach ($arStat["CATS"] as $category => $id) { $str = \CDev::translit($category, "ru", array("replace_space" => "-", "replace_other" => "-")); $arResult["CATEGORIES"][$category] = $str; } } else { foreach ($arResult["PROGS"] as $key => $arProg) { $category = $arProg["UF_CATEGORY"]; $str = \CDev::translit($category, "ru", array("replace_space" => "-", "replace_other" => "-")); $arResult["CATEGORIES"][$category] = $str; } } if ($_REQUEST["AJAX"] == "Y") { $APPLICATION->RestartBuffer(); /** * Get records statuses by user
$date_confing = date('d.m.Y', strtotime("+" . $i . " day", strtotime($fisrt_date))); $arResult["CONFIG_DATES"][] = $date_confing; } //Get channel list $arChannels = array(); $arResult["ITEMS"] = \Hawkart\Megatv\ChannelTable::getActiveByCity(); foreach ($arResult["ITEMS"] as $arChannel) { $arChannels[$arChannel["UF_CHANNEL_BASE_ID"]] = $arChannel; } $arResult["ITEMS"] = $arChannels; /** * sort channels for user according statistics */ if ($USER->IsAuthorized()) { $arItems = array(); $arStatistic = \Hawkart\Megatv\CStat::getByUser(); //sort channels by raiting uasort($arStatistic["CHANNELS"], function ($a, $b) { return strcmp($b, $a); }); foreach ($arStatistic["CHANNELS"] as $channel_id => $rating) { if (!empty($arResult["ITEMS"][$channel_id])) { $arItems[] = $arResult["ITEMS"][$channel_id]; unset($arResult["ITEMS"][$channel_id]); } } if (count($arResult["ITEMS"]) > 0) { $arItems = array_merge($arItems, $arResult["ITEMS"]); } $arResult["ITEMS"] = $arItems; unset($arItems);