diff --git a/application/controllers/User.php b/application/controllers/User.php index 8b9e81e3d..bca2951dc 100644 --- a/application/controllers/User.php +++ b/application/controllers/User.php @@ -285,6 +285,9 @@ class User extends CI_Controller { $this->input->post('user_clublog_name'), $this->input->post('user_clublog_password'), $this->input->post('user_winkey'), + $this->input->post('on_air_widget_enabled'), + $this->input->post('on_air_widget_display_last_seen'), + $this->input->post('on_air_widget_show_only_most_recent_radio'), $this->input->post('clubstation') == '1' ? true : false )) { // Check for errors diff --git a/application/models/User_model.php b/application/models/User_model.php index ed7c091ab..bb61547ba 100644 --- a/application/models/User_model.php +++ b/application/models/User_model.php @@ -211,7 +211,8 @@ class User_Model extends CI_Model { $user_language, $user_hamsat_key, $user_hamsat_workable_only, $user_iota_to_qso_tab, $user_sota_to_qso_tab, $user_wwff_to_qso_tab, $user_pota_to_qso_tab, $user_sig_to_qso_tab, $user_dok_to_qso_tab, $user_lotw_name, $user_lotw_password, $user_eqsl_name, $user_eqsl_password, $user_clublog_name, $user_clublog_password, - $user_winkey, $clubstation = 0) { + $user_winkey, $on_air_widget_enabled, $on_air_widget_display_last_seen, $on_air_widget_show_only_most_recent_radio, + $clubstation = 0) { // Check that the user isn't already used if(!$this->exists($username)) { $data = array( @@ -267,6 +268,15 @@ class User_Model extends CI_Model { return EEMAILEXISTS; } + // Generate user-slug + if (!$this->load->is_loaded('encryption')) { + $this->load->library('encryption'); + } + $user_slug_base = md5($this->encryption->encrypt($username)); + $slug_length = 10; + $user_slug = substr($user_slug_base, 0, $slug_length); + $data['slug'] = $user_slug; + // Add user and insert bandsettings for user $this->db->insert($this->config->item('auth_table'), $data); $insert_id = $this->db->insert_id(); @@ -286,6 +296,9 @@ class User_Model extends CI_Model { $this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'qso_tab','sig','show',".(xss_clean($user_sig_to_qso_tab ?? 'off') == "on" ? 1 : 0).");"); $this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'qso_tab','dok','show',".(xss_clean($user_dok_to_qso_tab ?? 'off') == "on" ? 1 : 0).");"); $this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'dashboard','show_map','boolean','".xss_clean($fields['user_dashboard_map'] ?? 'Y')."');"); + $this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'widget','on_air','enabled','".(xss_clean($on_air_widget_enabled ?? 'false'))."');"); + $this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'widget','on_air','display_last_seen','".(xss_clean($on_air_widget_display_last_seen ?? 'false'))."');"); + $this->db->query("insert into user_options (user_id, option_type, option_name, option_key, option_value) values (" . $insert_id . ", 'widget','on_air','display_only_most_recent_radio','".(xss_clean($on_air_widget_show_only_most_recent_radio ?? 'true'))."');"); return OK; } else { diff --git a/application/views/user/edit.php b/application/views/user/edit.php index 44306d03f..8798adbb1 100644 --- a/application/views/user/edit.php +++ b/application/views/user/edit.php @@ -861,7 +861,14 @@ - $on_air_widget_url"); ?> + + + "); + printf(__("When enabled, widget will be available at %s."), "$on_air_widget_url"); + } ?> +