diff --git a/application/controllers/Awards.php b/application/controllers/Awards.php index 68f51cf3..fa707115 100644 --- a/application/controllers/Awards.php +++ b/application/controllers/Awards.php @@ -597,8 +597,9 @@ class Awards extends CI_Controller { $this->load->view('awards/details', $data); } - public function gridmaster() { - $data['page_title'] = "Awards - US Gridmaster"; + public function gridmaster($dxcc) { + $dxcc = $this->security->xss_clean($dxcc); + $data['page_title'] = "Awards - ".strtoupper($dxcc)." Gridmaster"; $this->load->model('bands'); $this->load->model('gridmap_model'); @@ -619,15 +620,17 @@ class Awards extends CI_Controller { $data['gridsquares_gridsquares_lotw']= lang('gridsquares_gridsquares_lotw'); $data['gridsquares_gridsquares_paper']= lang('gridsquares_gridsquares_paper'); + $indexData['dxcc'] = $dxcc; + $footerData = []; $footerData['scripts']= [ 'assets/js/leaflet/geocoding.js', 'assets/js/leaflet/L.MaidenheadColouredGridmasterMap.js', - 'assets/js/sections/gridmaster.js?' + 'assets/js/sections/gridmaster.js' ]; $this->load->view('interface_assets/header',$data); - $this->load->view('awards/gridmaster/index'); + $this->load->view('awards/gridmaster/index',$indexData); $this->load->view('interface_assets/footer',$footerData); } @@ -837,9 +840,11 @@ class Awards extends CI_Controller { echo json_encode($data); } - public function getGridmasterGridsjs() { + public function getGridmasterGridsjs($dxcc) { $this->load->model('gridmaster_model'); + $dxcc = $this->security->xss_clean($dxcc); + $array_grid_4char = array(); $array_grid_4char_lotw = array(); $array_grid_4char_paper = array(); @@ -847,7 +852,7 @@ class Awards extends CI_Controller { $grid_4char = ""; $grid_4char_lotw = ""; - $query = $this->gridmaster_model->get_lotw(); + $query = $this->gridmaster_model->get_lotw($dxcc); if ($query && $query->num_rows() > 0) { foreach ($query->result() as $row) { $grid_4char_lotw = strtoupper(substr($row->GRID_SQUARES,0,4)); @@ -857,7 +862,7 @@ class Awards extends CI_Controller { } } - $query = $this->gridmaster_model->get_paper(); + $query = $this->gridmaster_model->get_paper($dxcc); if ($query && $query->num_rows() > 0) { foreach ($query->result() as $row) { $grid_4char_paper = strtoupper(substr($row->GRID_SQUARES,0,4)); @@ -867,7 +872,7 @@ class Awards extends CI_Controller { } } - $query = $this->gridmaster_model->get_worked(); + $query = $this->gridmaster_model->get_worked($dxcc); if ($query && $query->num_rows() > 0) { foreach ($query->result() as $row) { $grid_four = strtoupper(substr($row->GRID_SQUARES,0,4)); @@ -877,7 +882,7 @@ class Awards extends CI_Controller { } } - $vucc_grids = $this->gridmaster_model->get_vucc_lotw(); + $vucc_grids = $this->gridmaster_model->get_vucc_lotw($dxcc); foreach($vucc_grids as $key) { $grid_four_lotw = strtoupper(substr($key,0,4)); if(!in_array($grid_four_lotw, $array_grid_4char_lotw)){ @@ -885,7 +890,7 @@ class Awards extends CI_Controller { } } - $vucc_grids = $this->gridmaster_model->get_vucc_paper(); + $vucc_grids = $this->gridmaster_model->get_vucc_paper($dxcc); foreach($vucc_grids as $key) { $grid_four_paper = strtoupper(substr($key,0,4)); if(!in_array($grid_four_paper, $array_grid_4char_paper)){ @@ -893,7 +898,7 @@ class Awards extends CI_Controller { } } - $vucc_grids = $this->gridmaster_model->get_vucc_worked(); + $vucc_grids = $this->gridmaster_model->get_vucc_worked($dxcc); foreach($vucc_grids as $key) { $grid_four = strtoupper(substr($key,0,4)); if(!in_array($grid_four, $array_grid_4char)){ @@ -904,6 +909,11 @@ class Awards extends CI_Controller { $data['grid_4char_lotw'] = ($array_grid_4char_lotw); $data['grid_4char_paper'] = ($array_grid_4char_paper); $data['grid_4char'] = ($array_grid_4char); + $data['grid_count'] = $this->gridmaster_model->get_grid_count($dxcc); + $data['grids'] = $this->gridmaster_model->get_grids($dxcc); + $data['lat'] = $this->gridmaster_model->get_lat($dxcc); + $data['lon'] = $this->gridmaster_model->get_lon($dxcc); + $data['zoom'] = $this->gridmaster_model->get_zoom($dxcc); header('Content-Type: application/json'); echo json_encode($data); diff --git a/application/models/Gridmaster_model.php b/application/models/Gridmaster_model.php index 868c7b44..216fa1fa 100644 --- a/application/models/Gridmaster_model.php +++ b/application/models/Gridmaster_model.php @@ -34,8 +34,22 @@ class Gridmaster_model extends CI_Model { 'EL39', 'EL49', 'EL59', 'EL79', 'EL89', 'EL99', 'DL88', 'DL98', 'EL08', 'EL18', 'EL28', 'EL58', 'EL88', 'EL98', 'EL07', 'EL17', 'EL87', 'EL97', 'EL06', 'EL16', 'EL86', 'EL96', 'EL15', 'EL95', 'EL84', 'EL94' ]; + private $us_lat = 38; + private $us_lon = -91; + private $us_zoom = 5; - function get_lotw() { + private $ja_grids = ['PL14', 'PL24', 'PL36', 'PL37', 'PL46', 'PL47', 'PL48', 'PL49', 'PL55', 'PL58', 'PM40', 'PM41', 'PM42', 'PM43', + 'PM44', 'PM50', 'PM51', 'PM52', 'PM53', 'PM54', 'PM62', 'PM63', 'PM64', 'PM65', 'PM66', 'PM73', 'PM74', 'PM75', 'PM76', 'PM83', + 'PM84', 'PM85', 'PM86', 'PM87', 'PM92', 'PM93', 'PM94', 'PM95', 'PM96', 'PM97', 'PM98', 'PM99', 'PN90', 'PN91', 'PN92', 'QL16', + 'QL17', 'QM05', 'QM06', 'QM07', 'QM08', 'QM09', 'QM19', 'QN00', 'QN01', 'QN02', 'QN03', 'QN04', 'QN05', 'QN11', 'QN12', 'QN13', + 'QN14', 'QN15', 'QN22', 'QN23', 'QN24', 'PL80', 'PM91', 'QL04', 'QL05', 'QL07', 'QL09', 'QL64', 'QM00', 'QM01', 'PL15', 'PL25', + 'PL54', 'PM57', 'QN33', 'QN34', 'QN35', 'QN45' + ]; + private $ja_lat = 35; + private $ja_lon = 140; + private $ja_zoom = 5; + + function get_lotw($dxcc) { $CI =& get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); @@ -50,11 +64,11 @@ class Gridmaster_model extends CI_Model { .' WHERE station_id in ('.$location_list.')' ." and COL_LOTW_QSL_RCVD = 'Y'" ." and COL_PROP_MODE = 'SAT'" - .' AND substring(COL_GRIDSQUARE,1,4) in (\''.implode('\',\'', $this->us_grids).'\')'; + .' AND substring(COL_GRIDSQUARE,1,4) in (\''.implode('\',\'', $this->{$dxcc.'_grids'}).'\')'; return $this->db->query($sql); } - function get_paper() { + function get_paper($dxcc) { $CI =& get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); @@ -69,11 +83,11 @@ class Gridmaster_model extends CI_Model { .' WHERE station_id in ('.$location_list.')' ." and COL_QSL_RCVD = 'Y'" ." and COL_PROP_MODE = 'SAT'" - .' AND substring(COL_GRIDSQUARE,1,4) in (\''.implode('\',\'', $this->us_grids).'\')'; + .' AND substring(COL_GRIDSQUARE,1,4) in (\''.implode('\',\'', $this->{$dxcc.'_grids'}).'\')'; return $this->db->query($sql); } - function get_worked() { + function get_worked($dxcc) { $CI =& get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); @@ -87,11 +101,11 @@ class Gridmaster_model extends CI_Model { .$this->config->item('table_name') .' WHERE station_id in ('.$location_list.')' ." and COL_PROP_MODE = 'SAT'" - .' AND substring(COL_GRIDSQUARE,1,4) in (\''.implode('\',\'', $this->us_grids).'\')'; + .' AND substring(COL_GRIDSQUARE,1,4) in (\''.implode('\',\'', $this->{$dxcc.'_grids'}).'\')'; return $this->db->query($sql); } - function get_vucc_lotw() { + function get_vucc_lotw($dxcc) { $CI =& get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); @@ -113,7 +127,7 @@ class Gridmaster_model extends CI_Model { foreach ($query->result() as $row) { $grids = explode(',', $row->VUCC_GRIDS); foreach ($grids as $grid) { - if (in_array(substr($grid, 0, 4), $this->us_grids)) { + if (in_array(substr($grid, 0, 4), $this->{$dxcc.'_grids'})) { if (!in_array(substr($grid, 0, 4), $vucc_grids)) { $vucc_grids[] = substr($grid, 0, 4); } @@ -123,7 +137,7 @@ class Gridmaster_model extends CI_Model { return $vucc_grids; } - function get_vucc_paper() { + function get_vucc_paper($dxcc) { $CI =& get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); @@ -145,7 +159,7 @@ class Gridmaster_model extends CI_Model { foreach ($query->result() as $row) { $grids = explode(',', $row->VUCC_GRIDS); foreach ($grids as $grid) { - if (in_array(substr($grid, 0, 4), $this->us_grids)) { + if (in_array(substr($grid, 0, 4), $this->{$dxcc.'_grids'})) { if (!in_array(substr($grid, 0, 4), $vucc_grids)) { $vucc_grids[] = substr($grid, 0, 4); } @@ -155,7 +169,7 @@ class Gridmaster_model extends CI_Model { return $vucc_grids; } - function get_vucc_worked() { + function get_vucc_worked($dxcc) { $CI =& get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); @@ -176,7 +190,7 @@ class Gridmaster_model extends CI_Model { foreach ($query->result() as $row) { $grids = explode(',', $row->VUCC_GRIDS); foreach ($grids as $grid) { - if (in_array(substr($grid, 0, 4), $this->us_grids)) { + if (in_array(substr($grid, 0, 4), $this->{$dxcc.'_grids'})) { if (!in_array(substr($grid, 0, 4), $vucc_grids)) { $vucc_grids[] = substr($grid, 0, 4); } @@ -186,4 +200,24 @@ class Gridmaster_model extends CI_Model { return $vucc_grids; } + function get_grid_count($dxcc) { + return count($this->{$dxcc.'_grids'}); + } + + function get_grids($dxcc) { + return $this->{$dxcc.'_grids'}; + } + + function get_lat($dxcc) { + return $this->{$dxcc.'_lat'}; + } + + function get_lon($dxcc) { + return $this->{$dxcc.'_lon'}; + } + + function get_zoom($dxcc) { + return $this->{$dxcc.'_zoom'}; + } + } diff --git a/application/views/awards/gridmaster/index.php b/application/views/awards/gridmaster/index.php index 2b6d8a1d..690e06a9 100644 --- a/application/views/awards/gridmaster/index.php +++ b/application/views/awards/gridmaster/index.php @@ -81,6 +81,7 @@