public static function getSubscriptionChannelsIds($uid) { $mac = Mysql::getInstance()->from('users')->where(array('id' => (int) $uid))->get()->first('mac'); if (empty($mac)) { return array(); } if (Stb::getInstance()->isModerator()) { return Mysql::getInstance()->from('itv')->where(array('base_ch' => 0))->get()->all('id'); } if (self::$itv_subscription === false) { self::$itv_subscription = Mysql::getInstance()->from('itv_subscription')->where(array('uid' => $uid))->get()->first(); } if (empty(self::$itv_subscription)) { return array(); } $sub_ch = self::$itv_subscription['sub_ch']; if (empty($sub_ch)) { return array(); } $sub_ch_arr = unserialize(System::base64_decode($sub_ch)); if (!is_array($sub_ch_arr)) { return array(); } return $sub_ch_arr; }
public function update(RESTRequest $request) { $put = $request->getPut(); if (empty($put)) { throw new RESTCommandException('HTTP PUT data is empty'); } $allowed_to_update_fields = array_fill_keys(array('sub_ch', 'additional_services_on'), true); $data = array_intersect_key($put, $allowed_to_update_fields); $stb_data = array_intersect_key($put, array('additional_services_on' => true)); if (empty($data)) { throw new RESTCommandException('Update data is empty'); } unset($data['additional_services_on']); if (!empty($stb_data)) { //$stb = Stb::getInstance(); //$stb->setParam('additional_services_on', intval($stb_data['additional_services_on'])); $uids = $request->getConvertedIdentifiers(); foreach ($uids as $uid) { Stb::setAdditionServicesById($uid, intval($stb_data['additional_services_on'])); } } //var_dump($stb_data); if (!empty($data)) { $list = ItvSubscription::updateByUids($request->getConvertedIdentifiers(), $data); if (empty($list)) { return false; } } return $this->formatList(ItvSubscription::getByUids($request->getConvertedIdentifiers())); }
public function getAllUserChannelsIdsByUid($uid) { if (Config::getSafe('enable_tariff_plans', false) && !Config::getSafe('enable_tv_subscription_for_tariff_plans', false)) { $user = User::getInstance($uid); $subscription = $user->getServicesByType('tv'); if (empty($subscription)) { $subscription = array(); } $channel_ids = $subscription; } else { $channel_ids = array_unique(array_merge(ItvSubscription::getSubscriptionChannelsIds($uid), ItvSubscription::getBonusChannelsIds($uid), $this->getBaseChannelsIds())); } $filtered_channels = self::getFilteredUserChannelsIds(); if (!empty($_COOKIE['ext_channels']) && in_array('ext_channels', stb::getAvailableModulesByUid($this->stb->id))) { $ext_channels = explode(',', $_COOKIE['ext_channels']); $ext_channels = Mysql::getInstance()->from('itv')->where(array('bonus_ch' => 1))->in('id', $ext_channels)->get()->all('id'); $channel_ids = array_merge($channel_ids, $ext_channels); } if ($channel_ids == 'all') { $channel_ids = $filtered_channels; } else { $channel_ids = array_intersect($channel_ids, $filtered_channels); } return $channel_ids; }