public function create(RESTRequest $request) { $stb_list = $request->getConvertedIdentifiers(); $identifiers = $request->getIdentifiers(); if (empty($stb_list) && !empty($identifiers)) { throw new RESTCommandException('STB not found'); } $event = new SysEvent(); if (empty($identifiers)) { $event->setUserListByMac('all'); } else { $event->setUserListById($stb_list); } if ($request->getData('ttl')) { $event->setTtl($request->getData('ttl')); } switch ($request->getData('event')) { case 'send_msg': if ($request->getData('need_reboot')) { $event->sendMsgAndReboot($request->getData('msg')); } else { $event->sendMsg($request->getData('msg')); } if ($request->getData('auto_hide_timeout')) { $event->setAutoHideTimeout($request->getData('auto_hide_timeout')); } break; case 'send_msg_with_video': $event->sendMsgWithVideo($request->getData('msg'), $request->getData('video')); break; case 'reboot': $event->sendReboot(); break; case 'reload_portal': $event->sendReloadPortal(); break; case 'update_channels': $event->sendUpdateChannels(); break; case 'play_channel': $event->sendPlayChannel($request->getData('channel')); break; case 'play_radio_channel': $event->sendPlayRadioChannel($request->getData('channel')); break; case 'update_image': $event->sendUpdateImage(); break; case 'cut_off': $event->sendCutOff(); break; case 'show_menu': $event->sendShowMenu(); break; default: return false; } return true; }
public function create(RESTRequest $request) { $stb_list = $request->getConvertedIdentifiers(); if (empty($stb_list)) { throw new RESTCommandException('Empty stb list'); } $msg = $request->getData("msg"); if (empty($msg)) { throw new RESTCommandException('Empty msg'); } $event = new SysEvent(); $ttl = (int) $request->getData("ttl"); if (!empty($ttl)) { $event->setTtl($ttl); } $auto_hide_timeout = (int) $request->getData('auto_hide_timeout'); if ($auto_hide_timeout) { $event->setAutoHideTimeout($auto_hide_timeout); } $event->setUserListById($stb_list); $event->sendMsg($msg); return true; }
if (@$_GET['del'] == 1) { Admin::checkAccess(AdminAccess::ACCESS_DELETE); $uid = Middleware::getUidByMac(@$_GET['mac']); Mysql::getInstance()->delete('events', array('uid' => $uid)); header("Location: events.php?mac=" . @$_GET['mac']); exit; } if (!empty($_POST['user_list_type']) && !empty($_POST['event'])) { Admin::checkAccess(AdminAccess::ACCESS_CREATE); if (@$_POST['need_reboot']) { $reboot_after_ok = 1; } else { $reboot_after_ok = 0; } $event = new SysEvent(); $event->setTtl($_POST['ttl']); if (@$_POST['user_list_type'] == 'to_all') { if ($_POST['event'] == 'send_msg' || $_POST['event'] == 'send_msg_with_video') { $event->setUserListByMac('all'); $user_list = Middleware::getOnlineUsersId(); } else { $event->setUserListByMac('online'); $user_list = Middleware::getAllUsersId(); } } elseif (@$_POST['user_list_type'] == 'to_single') { $event->setUserListByMac(@$_POST['mac']); $user_list = Middleware::getUidByMac(@$_POST['mac']); $user_list = array($user_list); } elseif (@$_POST['user_list_type'] == 'by_pattern') { if (@$_POST['pattern'] == 'mag100') { $user_list = Middleware::getUidsByPattern(array('hd' => 0));
<?php include "./common.php"; if (Config::getSafe('enable_internal_billing', false) && Config::getSafe('number_of_days_to_send_message', false) !== FALSE) { $locales = array(); $allowed_locales = Config::get("allowed_locales"); $default_locale = Config::get("default_locale"); bindtextdomain('stb', PROJECT_PATH . '/locale'); textdomain('stb'); bind_textdomain_codeset('stb', 'UTF-8'); $end_billing_interval = Config::getSafe('number_of_days_to_send_message', false); $users = Mysql::getInstance()->select(array('id', '(TO_DAYS(`expire_billing_date`) - TO_DAYS(NOW())) as `end_billing_days`', 'locale'))->from("`users`")->where(array("(TO_DAYS(`expire_billing_date`) - TO_DAYS(NOW())) <= {$end_billing_interval} AND CAST(`expire_billing_date` AS CHAR) <> '0000-00-00 00:00:00' AND 1=" => 1, 'status' => 0))->get()->all(); $event = new SysEvent(); $event->setTtl(86340); $msg_more = 'Dear Subscriber! Your payment term will expire in "%s" days. Please refill a personal account in order to avoid tripping of services.'; $msg_today = "Dear Subscriber! Your payment term will expire today. Please refill a personal account in order to avoid tripping of services."; $msg = ''; $locale = $default_locale; foreach ($users as $user) { $current_local = setlocale(LC_MESSAGES, 0); $event->setUserListById($user['id']); if (in_array($user['locale'], $allowed_locales)) { $locale = $user['locale']; } else { $locale = $default_locale; } putenv("LC_MESSAGES={$locale}"); putenv("LANGUAGE={$locale}"); setlocale(LC_MESSAGES, $locale); $msg = $user['end_billing_days'] > 0 ? sprintf(_($msg_more), $user['end_billing_days']) : _($msg_today); $event->sendMsg($msg);
public function unsubscribeFromPackage($package_id, $packages = null, $force_no_check_billing = false) { if ($packages === null) { $packages = $this->getPackages(); } $filtered_packages = array_filter($packages, function ($item) use($package_id) { return $package_id == $item['package_id'] && $item['optional'] == 1 && $item['subscribed']; }); if (empty($filtered_packages)) { return false; } if (!$force_no_check_billing) { $ext_package_id = Mysql::getInstance()->from('services_package')->where(array('id' => $package_id))->get()->first('external_id'); $on_unsubscribe_result = OssWrapper::getWrapper()->unsubscribeFromPackage($ext_package_id); var_dump($on_unsubscribe_result); if ($on_unsubscribe_result === true) { Log::writePackageSubscribeLog($this->id, $package_id, 0); return Mysql::getInstance()->delete('user_package_subscription', array('user_id' => $this->id, 'package_id' => $package_id))->result(); } else { return false; } } $result = Mysql::getInstance()->delete('user_package_subscription', array('user_id' => $this->id, 'package_id' => $package_id))->result(); Log::writePackageSubscribeLog($this->id, $package_id, 0); $event = new SysEvent(); $event->setUserListById($this->id); $event->setTtl(Config::get('watchdog_timeout') * 2); $event->sendMsgAndReboot($this->getLocalizedText('Services are updated according to the subscription. The STB will be rebooted.')); return $result; }
public function add_event() { if (!$this->isAjax || $this->method != 'POST' || empty($this->postData['user_list_type']) || empty($this->postData['event'])) { $this->app->abort(404, $this->setLocalization('Page not found')); } if ($no_auth = $this->checkAuth()) { return $no_auth; } $data = array(); $data['action'] = 'addEvent'; $data['msg'] = $this->setlocalization('Added') . ' ' . $this->setlocalization('for') . ' '; $error = $this->setlocalization('Error. Event has not been added.'); $_SERVER['TARGET'] = 'ADM'; $event = new \SysEvent(); $event->setTtl($this->postData['ttl']); $get_list_func_name = 'get_userlist_' . str_replace('to_', '', $this->postData['user_list_type']); $set_event_func_name = 'set_event_' . str_replace('to_', '', $this->postData['event']); $user_list = array_intersect($this->{$get_list_func_name}($event), $this->getFieldFromArray($this->db->getUser(array(), 'ALL'), 'id')); $event->setUserListById($user_list); if ($this->{$set_event_func_name}($event, $user_list)) { $data['msg'] .= count($user_list) . ' ' . $this->setlocalization('users'); $error = ''; } $response = $this->generateAjaxResponse($data, $error); return new Response(json_encode($response), empty($error) ? 200 : 500); }