public function handle_user_input(&$user_input, &$plugin_cookies) { hd_print('Vod search: handle_user_input:'); foreach ($user_input as $key => $value) { hd_print(" {$key} => {$value}"); } if ($user_input->action_type === 'apply') { $control_id = $user_input->control_id; if ($control_id === 'pattern') { $pattern = $user_input->pattern; $plugin_cookies->vod_search_pattern = $pattern; hd_print("Vod search: applying pattern '{$pattern}'"); $defs = $this->do_get_control_defs($plugin_cookies); return ActionFactory::reset_controls($defs, ActionFactory::open_folder($this->vod->get_search_media_url_str($pattern), $pattern)); } } else { if ($user_input->action_type === 'confirm') { $control_id = $user_input->control_id; $new_value = $user_input->{$control_id}; if ($control_id === 'pattern') { $pattern = $user_input->pattern; if (preg_match('/^\\s*$/', $pattern)) { return ActionFactory::show_error(false, 'Pattern should not be empty'); } } } } return null; }
public function handle_user_input(&$user_input, &$plugin_cookies) { hd_print(__METHOD__ . ':' . print_r($user_input, true)); if ($user_input->selected_control_id == 'configureNfs') { $saveAdvanceNfsConfig = UserInputHandlerRegistry::create_action($this, 'saveAdvanceNfsConfig'); return ActionFactory::show_nfs_advanced_configuration_modal('Nfs advanced configuration', &$plugin_cookies, $saveAdvanceNfsConfig); } else { if ($user_input->selected_control_id == 'configureSMB') { $saveAdvanceSmbConfig = UserInputHandlerRegistry::create_action($this, 'saveAdvanceSmbConfig'); return ActionFactory::show_smb_advanced_configuration_modal('SMB advanced configuration', &$plugin_cookies, $saveAdvanceSmbConfig); } else { if ($user_input->selected_control_id == 'btnDefaultFilter') { $saveDefaultFilters = UserInputHandlerRegistry::create_action($this, 'saveDefaultFilters'); return ActionFactory::show_default_filter_selecor_modal('Default filters configuration', &$plugin_cookies, $saveDefaultFilters); } else { if ($user_input->selected_control_id == 'btnSalvar') { return EmplexerSetupScreen::savePreferences($user_input, $plugin_cookies, ActionFactory::reset_controls($this->do_get_control_defs($plugin_cookies))); } else { if ($user_input->selected_control_id == 'connectionMethod') { if ($user_input->connectionMethod == NFS_CONNECTION_TYPE) { $saveAdvanceNfsConfig = UserInputHandlerRegistry::create_action($this, 'saveAdvanceNfsConfig'); return ActionFactory::show_nfs_advanced_configuration_modal('Nfs advanced configuration', &$plugin_cookies, $saveAdvanceNfsConfig); } else { if ($user_input->connectionMethod == SMB_CONNECTION_TYPE) { $saveAdvanceSmbConfig = UserInputHandlerRegistry::create_action($this, 'saveAdvanceSmbConfig'); return ActionFactory::show_smb_advanced_configuration_modal('SMB advanced configuration', &$plugin_cookies, $saveAdvanceSmbConfig); } else { EmplexerSetupScreen::savePreferences($user_input, $plugin_cookies); return ActionFactory::reset_controls($this->do_get_control_defs($plugin_cookies)); } } } else { if ($user_input->selected_control_id == 'saveDefaultFilters') { EmplexerSetupScreen::savePreferences($user_input, $plugin_cookies); return ActionFactory::reset_controls($this->do_get_control_defs($plugin_cookies)); } else { if ($user_input->selected_control_id == 'saveAdvanceNfs') { EmplexerSetupScreen::savePreferences($user_input, $plugin_cookies); return ActionFactory::reset_controls($this->do_get_control_defs($plugin_cookies)); } else { if ($user_input->selected_control_id == 'saveAdvanceSmb') { EmplexerSetupScreen::savePreferences($user_input, $plugin_cookies); return ActionFactory::reset_controls($this->do_get_control_defs($plugin_cookies)); } } } } } } } } }
public function handle_user_input(&$user_input, &$plugin_cookies) { if (!isset($user_input->control_id)) { if ($plugin_cookies->require_restart) { ZTVDaemonController::restart($plugin_cookies->use_proxy == 'yes' ? array('-y' => $plugin_cookies->proxy_ip . ':' . $plugin_cookies->proxy_port) : array()); $plugin_cookies->require_restart = false; } if (!ZTVTerminal::login()) { return ActionFactory::show_dialog('Введите регистрационные данные', $this->do_registration_form_defs($plugin_cookies), true); } $result = $this->load_profiles(); if ($result) { if ($this->profile->require_password) { return ActionFactory::show_dialog('Введите пароль профиля ' . $this->profile->title, $this->do_profile_form_defs($plugin_cookies, false), true); } return ActionFactory::open_folder(); } return; } else { if ($user_input->action_type == 'confirm' || $user_input->action_type == 'apply') { switch ($user_input->control_id) { case 'use_proxy': $plugin_cookies->use_proxy = $user_input->use_proxy; $plugin_cookies->proxy_ip = isset($plugin_cookies->proxy_ip) ? $plugin_cookies->proxy_ip : '192.168.0.1'; $plugin_cookies->proxy_port = isset($plugin_cookies->proxy_port) ? $plugin_cookies->proxy_port : '8080'; $plugin_cookies->require_restart = true; break; case 'proxy_ip': $plugin_cookies->proxy_ip = $user_input->proxy_ip; $plugin_cookies->require_restart = true; break; case 'proxy_port': $plugin_cookies->proxy_port = $user_input->proxy_port; $plugin_cookies->require_restart = true; break; case 'daemon_start_button': ZTVDaemonController::start($plugin_cookies->use_proxy == 'yes' ? array('-y' => $plugin_cookies->proxy_ip . ':' . $plugin_cookies->proxy_port) : array()); break; case 'daemon_restart_button': ZTVDaemonController::restart($plugin_cookies->use_proxy == 'yes' ? array('-y' => $plugin_cookies->proxy_ip . ':' . $plugin_cookies->proxy_port) : array()); break; case 'daemon_stop_button': ZTVDaemonController::stop(); break; case 'register_button': return ActionFactory::show_dialog('Введите регистрационные данные', $this->do_registration_form_defs($plugin_cookies), true); break; case 'register_terminal': if (is_null($user_input->username) || trim($user_input->username) === '') { return ActionFactory::show_error(false, 'Ошибка', array('Идентификатор не может быть пустым.')); } else { if (is_null($user_input->password) || trim($user_input->password) === '') { return ActionFactory::show_error(false, 'Ошибка', array('PIN-код не может быть пустым.')); } } if (!ZTVTerminal::register($user_input->username, $user_input->password)) { return ActionFactory::show_error(false, 'Ошибка', array('Неверный идентификатор или PIN-код.')); } $plugin_cookies->username = $user_input->username; $plugin_cookies->password = $user_input->password; if ($user_input->selected_media_url == 'setup') { return ActionFactory::close_dialog_and_run(ActionFactory::show_title_dialog('Вход выполнен.')); } return ActionFactory::close_dialog_and_run(ActionFactory::open_folder()); break; case 'deregister_terminal': if (ZTVTerminal::deregister() && $user_input->selected_media_url == 'setup') { return ActionFactory::close_dialog_and_run(ActionFactory::show_title_dialog('Выход выполнен.')); } return ActionFactory::show_error(false, 'Ошибка', array('Не удалось выполненить выход.')); break; case 'register_cancel': if (ZTVTerminal::login() && $user_input->selected_media_url != 'setup') { return ActionFactory::close_dialog_and_run(ActionFactory::open_folder()); } return ActionFactory::reset_controls($this->do_registration_form_defs($plugin_cookies)); break; case 'profile': $this->profile = $this->profiles[$user_input->profile]; if ($this->profile->require_password) { return ActionFactory::show_dialog('Введите пароль профиля ' . $this->profile->title, $this->do_profile_form_defs($plugin_cookies, $this->profile->require_password && !$this->profile->password), true); } if ($this->tv->set_profile($this->profile->id)) { return ActionFactory::show_title_dialog('Профиль успешно установлен'); } break; case 'set_profile_password': if (!$user_input->profile_password) { return ActionFactory::show_error(false, 'Ошибка', array('Пароль не задан.')); } if ($user_input->profile_password != $user_input->profile_password_repeat) { return ActionFactory::show_error(false, 'Ошибка', array('Введенные пароли не совпадают.')); } $result = $this->tv->api_call(array(HD::make_json_rpc_request('set_terminal_params', array('macaddr' => HD::get_mac_addr_dashed(), 'profile_id' => $this->profile->id)), HD::make_json_rpc_request('update_profile', array('macaddr' => HD::get_mac_addr_dashed(), 'profile_id' => $this->profile->id, 'profile_password' => $user_input->profile_password)))); if (count($result) == 2 && $result[0]->result && $result[1]->result) { return ActionFactory::close_dialog_and_run(ActionFactory::show_title_dialog('Профиль успешно установлен')); } return; break; case 'verify_profile_password': if ($user_input->profile_password != $this->profile->password) { return ActionFactory::show_error(false, 'Ошибка', array('Неверный пароль.')); } if ($user_input->selected_media_url != 'setup') { return ActionFactory::close_dialog_and_run(ActionFactory::open_folder()); } $result = $this->tv->set_profile($this->profile->id); if ($result) { return ActionFactory::close_dialog_and_run(ActionFactory::show_title_dialog('Профиль успешно установлен')); } return; break; case 'profile_cancel': $result = $this->tv->set_profile(1); if (!$result) { return; } if ($user_input->selected_media_url != 'setup') { return ActionFactory::close_dialog_and_run(ActionFactory::open_folder()); } $this->profile = $this->profiles[1]; return ActionFactory::close_dialog_and_run(ActionFactory::show_title_dialog('Установлен профиль по умолчанию(' . $this->profile->title . ')')); break; } } } return ActionFactory::reset_controls($this->do_get_control_defs($plugin_cookies)); }
public function handle_user_input(&$user_input, &$plugin_cookies) { if (!isset($user_input->control_id)) { if ($plugin_cookies->require_restart) { ZTVDaemonController::restart($plugin_cookies->use_proxy == 'yes' ? array('-y' => $plugin_cookies->proxy_ip . ':' . $plugin_cookies->proxy_port) : array()); $plugin_cookies->require_restart = false; } if (!ZTVTerminal::login()) { return ActionFactory::show_dialog('%tr%dialog_registration_form', $this->do_registration_form_defs($plugin_cookies), true); } if ($this->load_profiles()) { return $this->profile->require_password ? ActionFactory::show_dialog('%ext%<key_local>dialog_profile_password<p>' . $this->profile->title . '</p></key_local>', $this->do_profile_form_defs($plugin_cookies), true) : ActionFactory::open_folder(); } return; } else { if ($user_input->action_type == 'confirm' || $user_input->action_type == 'apply') { switch ($user_input->control_id) { case 'epg_provider': $plugin_cookies->epg_provider = $user_input->epg_provider; break; case 'use_proxy': $plugin_cookies->use_proxy = $user_input->use_proxy; $plugin_cookies->proxy_ip = isset($plugin_cookies->proxy_ip) ? $plugin_cookies->proxy_ip : '192.168.0.1'; $plugin_cookies->proxy_port = isset($plugin_cookies->proxy_port) ? $plugin_cookies->proxy_port : '8080'; $plugin_cookies->require_restart = true; break; case 'proxy_ip': $plugin_cookies->proxy_ip = $user_input->proxy_ip; $plugin_cookies->require_restart = true; break; case 'proxy_port': $plugin_cookies->proxy_port = $user_input->proxy_port; $plugin_cookies->require_restart = true; break; case 'daemon_start': ZTVDaemonController::start($plugin_cookies->use_proxy == 'yes' ? array('-y' => $plugin_cookies->proxy_ip . ':' . $plugin_cookies->proxy_port) : array()); break; case 'daemon_restart': ZTVDaemonController::restart($plugin_cookies->use_proxy == 'yes' ? array('-y' => $plugin_cookies->proxy_ip . ':' . $plugin_cookies->proxy_port) : array()); break; case 'daemon_stop': ZTVDaemonController::stop(); break; case 'register_button': return ActionFactory::show_dialog('%tr%dialog_registration_form', $this->do_registration_form_defs($plugin_cookies), true); break; case 'register_terminal': if (is_null($user_input->username) || trim($user_input->username) == '') { return ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_username_empty')); } else { if (is_null($user_input->password) || trim($user_input->password) == '') { return ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_pin_empty')); } } if (!ZTVTerminal::register($user_input->username, $user_input->password)) { return ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_invalid_password_or_username')); } $plugin_cookies->username = $user_input->username; $plugin_cookies->password = $user_input->password; return $user_input->selected_media_url == 'setup' ? ActionFactory::close_dialog_and_run(ActionFactory::show_title_dialog('%tr%dialog_successful_login')) : ActionFactory::close_dialog_and_run(ActionFactory::open_folder()); break; case 'deregister_terminal': if (!ZTVTerminal::deregister()) { return ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_cant_logout')); } return $user_input->selected_media_url == 'setup' ? ActionFactory::close_dialog_and_run(ActionFactory::show_title_dialog('%tr%dialog_successful_login')) : ActionFactory::close_dialog_and_run(ActionFactory::open_folder()); break; case 'register_cancel': if (ZTVTerminal::login() && $user_input->selected_media_url != 'setup') { return ActionFactory::close_dialog_and_run(ActionFactory::open_folder()); } return ActionFactory::reset_controls($this->do_registration_form_defs($plugin_cookies)); break; case 'profile': $this->profile = $this->profiles[$user_input->profile]; if ($this->profile->require_password) { return ActionFactory::show_dialog('%ext%<key_local>dialog_profile_password<p>' . $this->profile->title . '</p></key_local>', $this->do_profile_form_defs($plugin_cookies, !$this->profile->password ? 'set_profile_password' : 'change_profile_password'), true); } $json_reply = ZTVApi::call(ZTVApi::set_profile($this->profile)); if ($json_reply === false) { return ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_cant_select_profile')); } break; case 'check_profile_password': if ($user_input->profile_password != $this->profile->password) { return ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_invalid_password')); } if ($user_input->selected_media_url != 'setup') { return ActionFactory::close_dialog_and_run(ActionFactory::open_folder()); } $json_reply = ZTVApi::call(ZTVApi::set_profile($this->profile)); if ($json_reply === false) { return ActionFactory::close_dialog_and_run(ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_cant_validate_password'))); } break; case 'change_profile_password': if ($user_input->profile_password != $this->profile->password) { return ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_invalid_password')); } if (!$user_input->profile_password_new) { return ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_new_password_empty')); } if ($user_input->profile_password_new != $user_input->profile_password_repeat) { return ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_passwords_mismatch')); } $json_reply = ZTVApi::call(ZTVApi::set_profile($this->profile, $user_input->profile_password)); return $json_reply === false ? ActionFactory::close_dialog_and_run(ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_cant_change_password'))) : ActionFactory::close_dialog_and_run(ActionFactory::show_title_dialog('%tr%dialog_successful_password_change')); break; case 'set_profile_password': if (!$user_input->profile_password) { return ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_new_password_empty')); } if ($user_input->profile_password != $user_input->profile_password_repeat) { return ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_passwords_mismatch.')); } $json_reply = ZTVApi::call(ZTVApi::set_profile($this->profile, $user_input->profile_password)); return $json_reply === false ? ActionFactory::close_dialog_and_run(ActionFactory::show_error(false, '%tr%caption_error', array('%tr%error_cant_set_password'))) : ActionFactory::close_dialog_and_run(ActionFactory::show_title_dialog('%tr%dialog_successful_password_set')); break; case 'profile_cancel': // TODO: Reset to the last selected profile instead of default. $this->profile = $this->profiles[1]; $json_reply = ZTVApi::call(ZTVApi::set_profile($this->profile)); if ($json_reply === false) { return; } return $user_input->selected_media_url != 'setup' ? ActionFactory::close_dialog_and_run(ActionFactory::open_folder()) : ActionFactory::close_dialog_and_run(ActionFactory::show_title_dialog('%ext%<key_local>dialog_default_profile_set<p>' . $this->profile->title . '</p></key_local>')); break; } } } return ActionFactory::reset_controls($this->do_get_control_defs($plugin_cookies)); }
public function handle_user_input(&$user_input, &$plugin_cookies) { hd_print('Setup: handle_user_input:'); foreach ($user_input as $key => $value) { hd_print(" {$key} => {$value}"); } $need_close_dialog = false; $need_reset_controls = false; $post_action = null; if ($user_input->action_type === 'apply') { $control_id = $user_input->control_id; if ($control_id === 'edit_subscription') { return $this->session->do_get_edit_subscription_action($plugin_cookies, $this); } else { if ($control_id === 'apply_subscription') { if ($user_input->user_name === '') { return ActionFactory::show_error(false, 'Error', array('Subscription should be non-empty.')); } $plugin_cookies->user_name = $user_input->user_name; $plugin_cookies->password = $user_input->password; $this->session->logout(); try { $this->session->try_login($plugin_cookies); } catch (DuneException $e) { $post_action = $e->get_error_action(); } $need_close_dialog = true; $need_reset_controls = true; } else { if ($control_id === 'edit_pcode') { return $this->do_get_edit_pcode_action(); } else { if ($control_id === 'apply_pcode') { try { $this->session->api_change_pcode($user_input->current_pcode, $user_input->new_pcode, $user_input->new_pcode_copy); } catch (DuneException $e) { return $e->get_error_action(); } $need_close_dialog = true; $need_reset_controls = true; } } } } } else { if ($user_input->action_type === 'confirm') { $control_id = $user_input->control_id; $new_value = $user_input->{$control_id}; hd_print("Setup: changing {$control_id} value to {$new_value}"); if ($control_id === 'show_in_main_screen') { $plugin_cookies->show_in_main_screen = $new_value; if ($new_value === 'auto') { $plugin_cookies->show_tv = 'lang(russian)'; } else { $plugin_cookies->show_tv = $new_value; } } else { if ($control_id === 'bitrate' || $control_id == 'stream_server' || $control_id == 'http_caching' || $control_id == 'timeshift') { try { $this->session->api_set_setting($control_id, $new_value); } catch (DuneException $e) { return $e->get_error_action(); } } else { return null; } } $need_reset_controls = true; } } if ($need_reset_controls) { $defs = $this->do_get_control_defs($plugin_cookies); $reset_controls_action = ActionFactory::reset_controls($defs, $post_action); if ($need_close_dialog) { return ActionFactory::close_dialog_and_run($reset_controls_action); } return $reset_controls_action; } return null; }