diff --git a/application/controllers/Visitor.php b/application/controllers/Visitor.php index 0f922d31..cadabde1 100644 --- a/application/controllers/Visitor.php +++ b/application/controllers/Visitor.php @@ -467,20 +467,21 @@ class Visitor extends CI_Controller { } public function search() { - $slug = $this->security->xss_clean($this->uri->segment(3)); - $callsign = $this->security->xss_clean($this->uri->segment(4)); + $callsign = $this->security->xss_clean($this->input->post('callsign')); + $public_slug = $this->security->xss_clean($this->input->post('public_slug')); $this->load->model('publicsearch'); - $result = $this->publicsearch->search($slug, $callsign); - $this->search_result($result, $callsign); - } - - private function search_result($search_results, $callsign) { + $result = $this->publicsearch->search($public_slug, $callsign); $data['callsign'] = $callsign; - if ($search_results->num_rows() > 0) { - $data['results'] = $search_results; + $data['slug'] = $public_slug; + if (!empty($result) && $result->num_rows() > 0) { + $data['results'] = $result; + $this->load->view('visitor/layout/header', $data); $this->load->view('public_search/result.php', $data); + $this->load->view('visitor/layout/footer'); } else { + $this->load->view('visitor/layout/header', $data); $this->load->view('public_search/empty.php', $data); + $this->load->view('visitor/layout/footer'); } } diff --git a/application/models/Publicsearch.php b/application/models/Publicsearch.php index 40396d6a..c67967b1 100644 --- a/application/models/Publicsearch.php +++ b/application/models/Publicsearch.php @@ -3,25 +3,36 @@ class Publicsearch extends CI_Model { function search($slug, $callsign) { - $userid = $this->get_userid_for_slug($slug); - $this->db->where('COL_CALL', $callsign); - $this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id'); - $this->db->join('lotw_users', 'lotw_users.callsign = '.$this->config->item('table_name').'.col_call', 'left outer'); - $this->db->where('station_profile.user_id', $userid); - $this->db->order_by('COL_TIME_ON', 'DESC'); - $query = $this->db->get($this->config->item('table_name')); - - return $query; + if ($this->public_search_enabled($slug)) { + $userid = $this->get_userid_for_slug($slug); + $this->db->where('COL_CALL', $callsign); + $this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id'); + $this->db->join('lotw_users', 'lotw_users.callsign = '.$this->config->item('table_name').'.col_call', 'left outer'); + $this->db->where('station_profile.user_id', $userid); + $this->db->order_by('COL_TIME_ON', 'DESC'); + $query = $this->db->get($this->config->item('table_name')); + return $query; + } + return false; } function get_userid_for_slug($slug) { $this->db->select('user_id'); $this->db->where('public_slug', $slug); - $query = $this->db->get('station_logbooks'); - + $query = $this->db->get('station_logbooks'); return $query->result_array()[0]['user_id']; } + function public_search_enabled($slug) { + $this->db->select('public_search'); + $this->db->where('public_slug', $slug); + $query = $this->db->get('station_logbooks'); + if ($query->result_array()[0]['public_search'] == 1) { + return true; + } + return false; + } + } ?> diff --git a/application/views/public_search/result.php b/application/views/public_search/result.php index b8ae2102..36662dc3 100644 --- a/application/views/public_search/result.php +++ b/application/views/public_search/result.php @@ -7,7 +7,7 @@ if ($results) { ?>
| diff --git a/application/views/visitor/layout/footer.php b/application/views/visitor/layout/footer.php index 5fb71200..88a7ce4f 100644 --- a/application/views/visitor/layout/footer.php +++ b/application/views/visitor/layout/footer.php @@ -52,20 +52,6 @@ }); - - uri->segment(2) == "satellites") { ?> @@ -212,5 +198,58 @@ + CI->public_search_enabled($slug) || $this->session->userdata('user_type') >= 2) { ?> + + + + + + + |
|---|