public function up() { global $APPLICATION; $arProgs = array(); $codes = array(); $result = \Hawkart\Megatv\ProgTable::getList(array('filter' => array(), 'select' => array("ID", "UF_TITLE", "UF_CODE", "UF_EPG_ID"))); while ($row = $result->fetch()) { $arParams = array("replace_space" => "-", "replace_other" => "-"); $code = \CDev::translit(trim($row["UF_TITLE"]), "ru", $arParams); if (!empty($row["UF_CODE"])) { $codes[$row["UF_TITLE"]] = $row; continue; } $arCode = $codes[$row["UF_TITLE"]]; if (!empty($arCode)) { if ($row["UF_EPG_ID"] != $arCode["UF_EPG_ID"]) { $code .= "-" . $row["ID"]; } else { $code = $arCode["UF_CODE"]; } } \Hawkart\Megatv\ProgTable::update($row["ID"], array("UF_CODE" => $code)); $row["UF_CODE"] = $code; $codes[$row["UF_TITLE"]] = $row; } }
public static function generateCodes() { $arProgs = array(); $codes = array(); $result = self::getList(array('filter' => array(), 'select' => array("ID", "UF_TITLE", "UF_CODE", "UF_EPG_ID"))); while ($row = $result->fetch()) { $arParams = array("replace_space" => "-", "replace_other" => "-"); $code = \CDev::translit(trim($row["UF_TITLE"]), "ru", $arParams); if (!empty($row["UF_CODE"])) { $codes[$row["UF_TITLE"]] = $row; continue; } $arCode = $codes[$row["UF_TITLE"]]; if (!empty($arCode)) { if ($row["UF_EPG_ID"] != $arCode["UF_EPG_ID"]) { $code .= "-" . $row["ID"]; } else { $code = $arCode["UF_CODE"]; } } self::update($row["ID"], array("UF_CODE" => $code)); $row["UF_CODE"] = $code; $codes[$row["UF_TITLE"]] = $row; } }
public static function log($ar, $deleteOldData = false, $filename = LOG_FILENAME) { if (self::$firstRun && $deleteOldData) { file_put_contents($_SERVER['DOCUMENT_ROOT'] . $filename, print_r($ar, true) . "\n\n"); } else { file_put_contents($_SERVER['DOCUMENT_ROOT'] . $filename, print_r($ar, true) . "\n\n", FILE_APPEND); } self::$firstRun = false; }
/** * Change data before adding * * @return object */ public static function onBeforeAdd(Entity\Event $event) { $result = new Entity\EventResult(); $data = $event->getParameter("fields"); if (isset($data['UF_TITLE'])) { $arParams = array("replace_space" => "-", "replace_other" => "-"); $code = \CDev::translit(trim($data["UF_TITLE"]), "ru", $arParams); $result->modifyFields(array('UF_CODE' => $code)); } return $result; }
function OnBeforeUserLogin($arFields) { $phone = preg_replace("/[^0-9]/", '', $arFields["LOGIN"]); if (\CDev::check_phone($phone)) { $filter = array("PERSONAL_PHONE" => $phone); } else { $filter = array("=EMAIL" => $arFields["LOGIN"]); } $rsUsers = \CUser::GetList($by = "LAST_NAME", $order = "asc", $filter); if ($user = $rsUsers->GetNext()) { $arFields["LOGIN"] = $user["LOGIN"]; } }
public function import() { $arVideos = array(); $videoIds = array(); $file = $_SERVER["DOCUMENT_ROOT"] . self::$file; \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . self::$img_dir, 0); $page = 1; $nextPageToken = false; while ($page < 100) { $params = array("filters" => "ugc", "items_count" => 10); if ($nextPageToken) { $params["from"] = $nextPageToken; } $response = self::api('video.getCatalog', $params); $items = $response["response"]["items"][0]["items"]; foreach ($items as $videoResult) { $id = $videoResult["owner_id"] . "_" . $videoResult["id"]; if (in_array($id, $videoIds) || $videoResult["type"] != "video") { continue; } $videoIds[] = $id; } $nextPageToken = $response["response"]["next"]; //echo $nextPageToken."\r\n"; $page++; } //Склеенный запрос не работает(! слишком много ид !) foreach ($videoIds as $video) { $params = array("videos" => $video, "count" => 1, "offset" => 0); $response = self::api('video.get', $params); $videoResult = $response["response"]["items"][0]; if (empty($videoResult["id"])) { continue; } if (!empty($videoResult["photo_640"])) { $img = $videoResult['photo_640']; } else { $img = $videoResult['photo_320']; } $crop = self::resizePic($videoResult["id"], $img); $arVideo = array("NAME" => $videoResult['title'], "IMG" => $crop, "PLAYER_BG" => $img, "ID" => $videoResult["id"], "VIDEO_URL" => $videoResult["player"], "DESC" => $videoResult['description']); $ids[] = $videoResult["id"]; $arVideos[] = $arVideo; } file_put_contents($file, json_encode($arVideos)); }
$result['message'] = ''; //$result['post'] = $_POST; if (!$USER->IsAuthorized()) { $html = ""; if (strlen($_POST['ajax_key']) && $_POST['ajax_key'] != md5('ajax_' . LICENSE_KEY) || !check_bitrix_sessid()) { $html = "Сессия не действительна!"; } $emailTo = trim(htmlspecialcharsbx($_POST['USER_LOGIN'])); $phone = preg_replace("/[^0-9]/", '', $emailTo); $checkword = htmlspecialcharsbx($_POST["USER_CHECKWORD"]); $password = htmlspecialcharsbx($_POST["USER_PASSWORD"]); if (!CDev::check_email($emailTo) && !CDev::check_phone($phone)) { $result['errors']["USER_LOGIN"] = "******"; } if (empty($html) && count($result['errors']) == 0) { if (CDev::check_phone($phone)) { $rsUsers = CUser::GetList($by = "EMAIL", $order = "desc", array("PERSONAL_PHONE" => $phone), array("SELECT" => array("UF_PHONE_CHECKWORD", "ID"))); if ($arUser = $rsUsers->GetNext()) { if ($arUser["UF_PHONE_CHECKWORD"] == $checkword && !empty($arUser["UF_PHONE_CHECKWORD"])) { $cuser = new CUser(); $cuser->Update($arUser["ID"], array("UF_PHONE_CHECKWORD" => "", "PASSWORD" => $password, "CONFIRM_PASSWORD" => $password)); $result['status'] = "success"; } else { $result['errors']["USER_LOGIN"] = "******"; } } else { $result['errors']["USER_LOGIN"] = '******'; } } else { $rsUsers = CUser::GetList($by = "EMAIL", $order = "desc", array("=EMAIL" => $emailTo)); if ($arUser = $rsUsers->GetNext()) {
$arUser = $rsUser->Fetch(); $arPost = $_REQUEST["USER"]; if ($action == "profile") { foreach ($arPost as &$value) { $value = htmlspecialcharsbx(trim($value)); } $arPost["PERSONAL_PHONE"] = preg_replace("/[^0-9]/", '', $arPost["PERSONAL_PHONE"]); if (!preg_match("/^([a-zA-Z0-9])+([\\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\\.[a-zA-Z0-9_-]+)*\\.([a-zA-Z]{2,6})\$/", $arPost["EMAIL"])) { $result['errors']['USER[EMAIL]'] = "Неправильный формат электроной почты."; } if (!empty($arPost["EMAIL"])) { $rsUsers = CUser::GetList($by = "EMAIL", $order = "desc", array("=EMAIL" => $arPost["EMAIL"], "!ID" => $arUser["ID"])); if ($rsUsers->NavNext(true, "f_")) { $result['errors']['USER[EMAIL]'] = "Такая электроная почта существует на сайте."; } else { if (!CDev::check_email($arPost["EMAIL"])) { $result['errors']["USER[EMAIL]"] = "Неверный формат данных"; } } } if (empty($arPost["NAME"])) { $result['errors']['USER[NAME]'] = "Введите имя."; } if (empty($arPost["LAST_NAME"])) { $result['errors']['USER[LAST_NAME]'] = "Введите фамилию."; } if (empty($arPost["SECOND_NAME"])) { $result['errors']['USER[SECOND_NAME]'] = "Введите отчество."; } if (!empty($arPost["PERSONAL_BIRTHDAY"]) && !preg_match("/^([0-9]{2})+([\\/]{1})+([0-9]{2})+([\\/]{1})+([0-9]{4})\$/", $arPost["PERSONAL_BIRTHDAY"])) { $result['errors']["USER[PERSONAL_BIRTHDAY]"] = "Неверный формат.";
public static function secToStr($sec) { $arTime = self::secToTime($sec); $str = ""; if ($arTime["h"]) { $str .= $arTime["h"] . " " . CDev::number_ending($arTime["h"], "часов", "час", "часа") . " "; } if ($arTime["i"]) { $str .= $arTime["i"] . " " . CDev::number_ending($arTime["i"], "минут", "минута", "минуты"); } return $str; }
public static function deletePics() { \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . self::$img_dir, 0); }
public static function deletePics() { \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . "/upload/social_channel/youtube/", 0); \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . "/upload/social_channel/vk/", 0); \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . "/upload/social_channel/rutube/", 0); }
/** * Clear tables & deleting images */ public static function clear() { ProgTable::deleteAll(); ScheduleTable::deleteAll(); //ChannelTable::deleteAll(); ImageTable::deleteAll(); \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . self::$cut_dir, 0); \CDev::deleteOldFiles($_SERVER["DOCUMENT_ROOT"] . self::$origin_dir, 0); }
} ?> <?php if (!empty($arResult["DURATION"])) { ?> <dt>Длительность:</dt> <dd><?php echo $arResult["DURATION"]; ?> </dd> <?php } ?> </dl> <span data-icon="icon-<?php echo CDev::ageToSvg((int) $arResult["UF_YEAR_LIMIT"]); ?> -age-rating"></span> </div> <div class="broadcast-info-col-2"> <dl class="info-list"> <?php if (!empty($arResult["UF_COUNTRY"])) { ?> <dt>Произведено:</dt> <dd><?php echo $arResult["UF_COUNTRY"]; ?> </dd> <?php }
//money check $budget = \CUserEx::getBudget($user_id); if ($budget < 0) { exit(json_encode(array("status" => "error", "error" => "Для записи передачи пополните счет."))); } //Провеим, хватит ли пространства! $duration = strtotime($arSchedule["UF_DATE_END"]) - strtotime($arSchedule["UF_DATE_START"]); $minutes = ceil($duration / 60); $gb = $minutes * 18.5 / 1024; $busy = floatval($arUser["UF_CAPACITY_BUSY"]) + $gb; if ($busy >= floatval($arUser["UF_CAPACITY"])) { exit(json_encode(array("status" => "require-space", "error" => "Не достаточно места на диске для записи"))); } else { if (in_array($arSchedule["UF_CHANNEL_BASE_ID"], $selectedChannels)) { $log_file = "/logs/sotal/sotal_" . date("d_m_Y_H") . ".txt"; \CDev::log(array("ACTION" => "PUT_TO_RECORD", "DATA" => array("SCHEDULE_ID" => $prog_time, "DATE" => date("d.m.Y H:i:s"))), false, $log_file); if ($update) { \Hawkart\Megatv\RecordTable::update($update_id, array("UF_DELETED" => 0)); } else { \Hawkart\Megatv\RecordTable::create($arSchedule); } //Inc rating for prog \Hawkart\Megatv\ProgTable::addByEpgRating($arSchedule["UF_PROG_EPG_ID"], 1); //change capacity for user $cuser = new \CUser(); $cuser->Update($arUser["ID"], array("UF_CAPACITY_BUSY" => $busy)); /** * Данные в статистику */ \Hawkart\Megatv\CStat::addByShedule($arSchedule["ID"], "record"); $status = "success";
} } 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 */ $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'];
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(); /** * Get records statuses by user */ $arRecords = array(); foreach ($arResult["RECORDS"] as $arRecord) { $datetime = $arRecord['UF_DATE_START']->toString(); $date = substr($datetime, 0, 10); $time = substr($datetime, 11, 5); if (strlen($arRecord["UF_NAME"]) > 25) { $arRecord["UF_NAME"] = substr($arRecord["UF_NAME"], 0, 25) . "..."; }
<?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"; header('Content-Type: text/html; charset=utf-8'); ini_set('mbstring.func_overload', '2'); ini_set('mbstring.internal_encoding', 'UTF-8'); echo date("H:i:s") . "\r\n"; //Удаляем старые файлы лога $path = $_SERVER['DOCUMENT_ROOT'] . '/logs/sotal/'; \CDev::deleteOldFiles($path, 86400); //Загружаем и импортируем данные из EPG $epg = new \Hawkart\Megatv\CEpg(); $epg->importChannels(); //!!! $epg->importChannelCity(); $epg->import(); \CDev::deleteDirectory($_SERVER['DOCUMENT_ROOT'] . '/bitrix/cache', 0); mail("*****@*****.**", "epg import success", "success"); echo date("H:i:s") . "\r\n"; echo " --finish loading--"; die;