//Получим инфу о сервисе $result = \Hawkart\Megatv\ServiceTable::getById($ServiceID); $arService = $result->fetch(); //get subcribe channel list $result = \Hawkart\Megatv\SubscribeTable::getList(array('filter' => array("=UF_USER_ID" => $USER->GetID(), ">UF_SERVICE_ID" => 0), 'select' => array("UF_SERVICE_ID", "ID"))); while ($arSub = $result->fetch()) { $selectedServices[$arSub["UF_SERVICE_ID"]] = $arSub["ID"]; } //Если гугл или яндекс-диск и включен, то ничего не делаем if (isset($selectedServices[$ServiceID]) && $arService["UF_DISK_TYPE"]) { exit(json_encode(array("status" => "enable"))); } $CSubscribe = new \Hawkart\Megatv\CSubscribe("SERVICE"); //Если нет подписки или есть и + 5 или +10 ГБ if (!isset($selectedServices[$ServiceID]) || !$arService["UF_DISK_TYPE"]) { $result = $CSubscribe->setUserSubscribe($ServiceID); } else { if ($status == "enable") { $active = 1; } else { $active = 0; } //Если стоит больше 0 руб, то не выключаем подписку if (intval($arService["UF_PRICE"]) > 0) { $status == "enable"; } else { $subscribeID = $selectedServices[$ServiceID]; $result = $CSubscribe->updateUserSubscribe($subscribeID, array("UF_ACTIVE" => $active)); } } //Если не вышло добавить/обновить подписку
$status = htmlspecialcharsbx($_REQUEST["status"]); //get subcribe channel list $selectedChannels = array(); $result = \Hawkart\Megatv\SubscribeTable::getList(array('filter' => array("=UF_USER_ID" => $USER->GetID(), ">UF_CHANNEL_ID" => 0), 'select' => array("UF_CHANNEL_ID", "ID"))); while ($arSub = $result->fetch()) { $selectedChannels[$arSub["UF_CHANNEL_ID"]] = $arSub["ID"]; } //check disable sub $result = \Hawkart\Megatv\ChannelBaseTable::getList(array('filter' => array("=UF_FORBID_REC" => 1, "=ID" => $channelID), 'select' => array("ID"))); if ($arChannel = $result->fetch()) { exit(json_encode(array("status" => "disable", "error" => "Нельзя подписаться на канал"))); } //update subsribes $CSubscribe = new \Hawkart\Megatv\CSubscribe("CHANNEL"); if (!isset($selectedChannels[$channelID])) { $result = $CSubscribe->setUserSubscribe($channelID); } else { if ($status == "enable") { $active = 1; } else { $active = 0; } $subscribeID = $selectedChannels[$channelID]; $result = $CSubscribe->updateUserSubscribe($subscribeID, array("UF_ACTIVE" => $active)); } if (!$result) { $error = "Ошибка"; if ($status == "enable") { $status = "disable"; } else { $status = "enable";
public function subcribeOnFreeChannels($user_id = false) { global $USER; if (!$user_id && $USER->IsAuthorized()) { $user_id = $USER->GetID(); } if (intval($user_id) > 0) { $result = \Hawkart\Megatv\ChannelBaseTable::getList(array('filter' => array("UF_ACTIVE" => 1, "!UF_PRICE_H24" => true, "!UF_FORBID_REC" => 1), 'select' => array("ID"))); while ($arChannel = $result->fetch()) { $CSubscribe = new \Hawkart\Megatv\CSubscribe("CHANNEL"); $CSubscribe->setUserSubscribe($arChannel["ID"], $user_id); } } }