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()));
 }
Example #3
0
 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;
 }