load->model('user_model'); if (!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); } $this->lang->load(array( 'lotw', 'eqsl' )); } public function index() { // Render Page $data['page_title'] = "Awards"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/index'); $this->load->view('interface_assets/footer'); } public function dok() { $CI = &get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); $this->load->model('dok'); $this->load->model('bands'); $this->load->model('modes'); if ($this->input->method() === 'post') { $postdata['doks'] = $this->security->xss_clean($this->input->post('doks')); } else { $postdata['doks'] = 'both'; } $data['worked_bands'] = $this->bands->get_worked_bands('dok'); $data['modes'] = $this->modes->active(); if ($this->input->post('band') != NULL) { if ($this->input->post('band') == 'All') { $bands = $data['worked_bands']; } else { $bands[] = $this->security->xss_clean($this->input->post('band')); } } else { $bands = $data['worked_bands']; } $data['bands'] = $bands; if ($this->input->method() === 'post') { $postdata['qsl'] = $this->security->xss_clean($this->input->post('qsl')); $postdata['lotw'] = $this->security->xss_clean($this->input->post('lotw')); $postdata['eqsl'] = $this->security->xss_clean($this->input->post('eqsl')); $postdata['worked'] = $this->security->xss_clean($this->input->post('worked')); $postdata['confirmed'] = $this->security->xss_clean($this->input->post('confirmed')); $postdata['band'] = $this->security->xss_clean($this->input->post('band')); $postdata['mode'] = $this->security->xss_clean($this->input->post('mode')); } else { $postdata['qsl'] = 1; $postdata['lotw'] = 1; $postdata['eqsl'] = 0; $postdata['worked'] = 1; $postdata['confirmed'] = 1; $postdata['band'] = 'All'; $postdata['mode'] = 'All'; } if ($logbooks_locations_array) { $location_list = "'" . implode("','", $logbooks_locations_array) . "'"; $data['dok_array'] = $this->dok->get_dok_array($bands, $postdata, $location_list); $data['dok_summary'] = $this->dok->get_dok_summary($bands, $postdata, $location_list); } else { $location_list = null; $data['dok_array'] = null; $data['dok_summary'] = null; } // Render Page $data['page_title'] = "Awards - DOK"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/dok/index'); $this->load->view('interface_assets/footer'); } public function dxcc() { $this->load->model('dxcc'); $this->load->model('modes'); $this->load->model('bands'); $data['worked_bands'] = $this->bands->get_worked_bands('dxcc'); // Used in the view for band select $data['modes'] = $this->modes->active(); // Used in the view for mode select if ($this->input->post('band') != NULL) { // Band is not set when page first loads. if ($this->input->post('band') == 'All') { // Did the user specify a band? If not, use all bands $bands = $data['worked_bands']; } else { $bands[] = $this->security->xss_clean($this->input->post('band')); } } else { $bands = $data['worked_bands']; } $data['bands'] = $bands; // Used for displaying selected band(s) in the table in the view if ($this->input->method() === 'post') { $postdata['qsl'] = $this->security->xss_clean($this->input->post('qsl')); $postdata['lotw'] = $this->security->xss_clean($this->input->post('lotw')); $postdata['eqsl'] = $this->security->xss_clean($this->input->post('eqsl')); $postdata['worked'] = $this->security->xss_clean($this->input->post('worked')); $postdata['confirmed'] = $this->security->xss_clean($this->input->post('confirmed')); $postdata['notworked'] = $this->security->xss_clean($this->input->post('notworked')); $postdata['includedeleted'] = $this->security->xss_clean($this->input->post('includedeleted')); $postdata['Africa'] = $this->security->xss_clean($this->input->post('Africa')); $postdata['Asia'] = $this->security->xss_clean($this->input->post('Asia')); $postdata['Europe'] = $this->security->xss_clean($this->input->post('Europe')); $postdata['NorthAmerica'] = $this->security->xss_clean($this->input->post('NorthAmerica')); $postdata['SouthAmerica'] = $this->security->xss_clean($this->input->post('SouthAmerica')); $postdata['Oceania'] = $this->security->xss_clean($this->input->post('Oceania')); $postdata['Antarctica'] = $this->security->xss_clean($this->input->post('Antarctica')); $postdata['band'] = $this->security->xss_clean($this->input->post('band')); $postdata['mode'] = $this->security->xss_clean($this->input->post('mode')); } else { // Setting default values at first load of page $postdata['qsl'] = 1; $postdata['lotw'] = 1; $postdata['eqsl'] = 0; $postdata['worked'] = 1; $postdata['confirmed'] = 1; $postdata['notworked'] = 1; $postdata['includedeleted'] = 0; $postdata['Africa'] = 1; $postdata['Asia'] = 1; $postdata['Europe'] = 1; $postdata['NorthAmerica'] = 1; $postdata['SouthAmerica'] = 1; $postdata['Oceania'] = 1; $postdata['Antarctica'] = 1; $postdata['band'] = 'All'; $postdata['mode'] = 'All'; } $dxcclist = $this->dxcc->fetchdxcc($postdata); $data['dxcc_array'] = $this->dxcc->get_dxcc_array($dxcclist, $bands, $postdata); $data['dxcc_summary'] = $this->dxcc->get_dxcc_summary($bands, $postdata); // Render Page $data['page_title'] = "Awards - DXCC"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/dxcc/index'); $this->load->view('interface_assets/footer'); } public function waja() { $footerData = []; $footerData['scripts'] = [ 'assets/js/sections/wajamap.js?' . filemtime(realpath(__DIR__ . "/../../assets/js/sections/wajamap.js")) ]; $this->load->model('waja'); $this->load->model('modes'); $this->load->model('bands'); $data['worked_bands'] = $this->bands->get_worked_bands('waja'); $data['modes'] = $this->modes->active(); if ($this->input->post('band') != NULL) { // Band is not set when page first loads. if ($this->input->post('band') == 'All') { // Did the user specify a band? If not, use all bands $bands = $data['worked_bands']; } else { $bands[] = $this->security->xss_clean($this->input->post('band')); } } else { $bands = $data['worked_bands']; } $data['bands'] = $bands; // Used for displaying selected band(s) in the table in the view if ($this->input->method() === 'post') { $postdata['qsl'] = $this->security->xss_clean($this->input->post('qsl')); $postdata['lotw'] = $this->security->xss_clean($this->input->post('lotw')); $postdata['eqsl'] = $this->security->xss_clean($this->input->post('eqsl')); $postdata['worked'] = $this->security->xss_clean($this->input->post('worked')); $postdata['confirmed'] = $this->security->xss_clean($this->input->post('confirmed')); $postdata['notworked'] = $this->security->xss_clean($this->input->post('notworked')); $postdata['includedeleted'] = $this->security->xss_clean($this->input->post('includedeleted')); $postdata['Africa'] = $this->security->xss_clean($this->input->post('Africa')); $postdata['Asia'] = $this->security->xss_clean($this->input->post('Asia')); $postdata['Europe'] = $this->security->xss_clean($this->input->post('Europe')); $postdata['NorthAmerica'] = $this->security->xss_clean($this->input->post('NorthAmerica')); $postdata['SouthAmerica'] = $this->security->xss_clean($this->input->post('SouthAmerica')); $postdata['Oceania'] = $this->security->xss_clean($this->input->post('Oceania')); $postdata['Antarctica'] = $this->security->xss_clean($this->input->post('Antarctica')); $postdata['band'] = $this->security->xss_clean($this->input->post('band')); $postdata['mode'] = $this->security->xss_clean($this->input->post('mode')); } else { // Setting default values at first load of page $postdata['qsl'] = 1; $postdata['lotw'] = 1; $postdata['eqsl'] = 0; $postdata['worked'] = 1; $postdata['confirmed'] = 1; $postdata['notworked'] = 1; $postdata['includedeleted'] = 0; $postdata['Africa'] = 1; $postdata['Asia'] = 1; $postdata['Europe'] = 1; $postdata['NorthAmerica'] = 1; $postdata['SouthAmerica'] = 1; $postdata['Oceania'] = 1; $postdata['Antarctica'] = 1; $postdata['band'] = 'All'; $postdata['mode'] = 'All'; } $data['waja_array'] = $this->waja->get_waja_array($bands, $postdata); $data['waja_summary'] = $this->waja->get_waja_summary($bands, $postdata); // Render Page $data['page_title'] = "Awards - WAJA"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/waja/index'); $this->load->view('interface_assets/footer', $footerData); } public function vucc() { $this->load->model('vucc'); $this->load->model('bands'); $data['worked_bands'] = $this->bands->get_worked_bands('vucc'); $data['vucc_array'] = $this->vucc->get_vucc_array($data); // Render Page $data['page_title'] = "Awards - VUCC"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/vucc/index'); $this->load->view('interface_assets/footer'); } public function vucc_band() { $this->load->model('vucc'); $band = str_replace('"', "", $this->security->xss_clean($this->input->get("Band"))); $type = str_replace('"', "", $this->security->xss_clean($this->input->get("Type"))); $data['vucc_array'] = $this->vucc->vucc_details($band, $type); $data['type'] = $type; // Render Page $data['page_title'] = "VUCC - " . $band . " Band"; $data['filter'] = "band " . $band; $data['band'] = $band; $this->load->view('interface_assets/header', $data); $this->load->view('awards/vucc/band'); $this->load->view('interface_assets/footer'); } public function vucc_details_ajax() { $this->load->model('logbook_model'); $gridsquare = str_replace('"', "", $this->security->xss_clean($this->input->post("Gridsquare"))); $band = str_replace('"', "", $this->security->xss_clean($this->input->post("Band"))); $data['results'] = $this->logbook_model->vucc_qso_details($gridsquare, $band); // Render Page $data['page_title'] = "Log View - VUCC"; $data['filter'] = "vucc " . $gridsquare . " and band " . $band; $this->load->view('awards/details', $data); } /* * Used to fetch QSOs from the logbook in the awards */ public function qso_details_ajax() { $this->load->model('logbook_model'); $searchphrase = str_replace('"', "", $this->security->xss_clean($this->input->post("Searchphrase"))); $band = str_replace('"', "", $this->security->xss_clean($this->input->post("Band"))); $mode = str_replace('"', "", $this->security->xss_clean($this->input->post("Mode"))); $type = $this->security->xss_clean($this->input->post('Type')); $qsl = $this->input->post('QSL') == null ? '' : $this->security->xss_clean($this->input->post('QSL')); $searchmode = $this->input->post('searchmode') == null ? '' : $this->security->xss_clean($this->input->post('searchmode')); $data['results'] = $this->logbook_model->qso_details($searchphrase, $band, $mode, $type, $qsl, $searchmode); // This is done because we have two different ways to get dxcc info in Cloudlog. Once is using the name (in awards), and the other one is using the ADIF DXCC. // We replace the values to make it look a bit nicer if ($type == 'DXCC2') { $type = 'DXCC'; $dxccname = $this->logbook_model->get_entity($searchphrase); $searchphrase = $dxccname['name']; } $qsltype = []; if (strpos($qsl, "Q") !== false) { $qsltype[] = "QSL"; } if (strpos($qsl, "L") !== false) { $qsltype[] = "LoTW"; } if (strpos($qsl, "E") !== false) { $qsltype[] = "eQSL"; } // Render Page $data['page_title'] = "Log View - " . $type; $data['filter'] = $type . " " . $searchphrase . " and band " . $band . " and mode " . $mode; if (!empty($qsltype)) { $data['filter'] .= " and " . implode('/', $qsltype); } $this->load->view('awards/details', $data); } /* Handles showing worked SOTAs Comment field - SOTA:# */ public function sota() { // Grab all worked sota stations $this->load->model('sota'); $data['sota_all'] = $this->sota->get_all(); // Render page $data['page_title'] = "Awards - SOTA"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/sota/index'); $this->load->view('interface_assets/footer'); } /* Handles showing worked WWFFs Comment field - WWFF:# */ public function wwff() { // Grab all worked wwff stations $this->load->model('wwff'); $data['wwff_all'] = $this->wwff->get_all(); // Render page $data['page_title'] = "Awards - WWFF"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/wwff/index'); $this->load->view('interface_assets/footer'); } /* Handles showing worked POTAs Comment field - POTA:# */ public function pota() { // Grab all worked pota stations $this->load->model('pota'); $data['pota_all'] = $this->pota->get_all(); // Render page $data['page_title'] = "Awards - POTA"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/pota/index'); $this->load->view('interface_assets/footer'); } public function cq() { $CI = &get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); $this->load->model('cq'); $this->load->model('modes'); $this->load->model('bands'); $data['worked_bands'] = $this->bands->get_worked_bands('cq'); $data['modes'] = $this->modes->active(); // Used in the view for mode select if ($this->input->post('band') != NULL) { // Band is not set when page first loads. if ($this->input->post('band') == 'All') { // Did the user specify a band? If not, use all bands $bands = $data['worked_bands']; } else { $bands[] = $this->input->post('band'); } } else { $bands = $data['worked_bands']; } $data['bands'] = $bands; // Used for displaying selected band(s) in the table in the view if ($this->input->method() === 'post') { $postdata['qsl'] = $this->security->xss_clean($this->input->post('qsl')); $postdata['lotw'] = $this->security->xss_clean($this->input->post('lotw')); $postdata['eqsl'] = $this->security->xss_clean($this->input->post('eqsl')); $postdata['worked'] = $this->security->xss_clean($this->input->post('worked')); $postdata['confirmed'] = $this->security->xss_clean($this->input->post('confirmed')); $postdata['notworked'] = $this->security->xss_clean($this->input->post('notworked')); $postdata['band'] = $this->security->xss_clean($this->input->post('band')); $postdata['mode'] = $this->security->xss_clean($this->input->post('mode')); } else { // Setting default values at first load of page $postdata['qsl'] = 1; $postdata['lotw'] = 1; $postdata['eqsl'] = 0; $postdata['worked'] = 1; $postdata['confirmed'] = 1; $postdata['notworked'] = 1; $postdata['band'] = 'All'; $postdata['mode'] = 'All'; } if ($logbooks_locations_array) { $location_list = "'" . implode("','", $logbooks_locations_array) . "'"; $data['cq_array'] = $this->cq->get_cq_array($bands, $postdata, $location_list); $data['cq_summary'] = $this->cq->get_cq_summary($bands, $postdata, $location_list); } else { $location_list = null; $data['cq_array'] = null; $data['cq_summary'] = null; } // Render page $data['page_title'] = "Awards - CQ Magazine WAZ"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/cq/index'); $this->load->view('interface_assets/footer'); } public function was() { $footerData = []; $footerData['scripts'] = [ 'assets/js/sections/wasmap.js?' . filemtime(realpath(__DIR__ . "/../../assets/js/sections/wasmap.js")) ]; $this->load->model('was'); $this->load->model('modes'); $this->load->model('bands'); $data['worked_bands'] = $this->bands->get_worked_bands('was'); $data['modes'] = $this->modes->active(); // Used in the view for mode select if ($this->input->post('band') != NULL) { // Band is not set when page first loads. if ($this->input->post('band') == 'All') { // Did the user specify a band? If not, use all bands $bands = $data['worked_bands']; } else { $bands[] = $this->security->xss_clean($this->input->post('band')); } } else { $bands = $data['worked_bands']; } $data['bands'] = $bands; // Used for displaying selected band(s) in the table in the view if ($this->input->method() === 'post') { $postdata['qsl'] = $this->security->xss_clean($this->input->post('qsl')); $postdata['lotw'] = $this->security->xss_clean($this->input->post('lotw')); $postdata['eqsl'] = $this->security->xss_clean($this->input->post('eqsl')); $postdata['worked'] = $this->security->xss_clean($this->input->post('worked')); $postdata['confirmed'] = $this->security->xss_clean($this->input->post('confirmed')); $postdata['notworked'] = $this->security->xss_clean($this->input->post('notworked')); $postdata['band'] = $this->security->xss_clean($this->input->post('band')); $postdata['mode'] = $this->security->xss_clean($this->input->post('mode')); } else { // Setting default values at first load of page $postdata['qsl'] = 1; $postdata['lotw'] = 1; $postdata['eqsl'] = 0; $postdata['worked'] = 1; $postdata['confirmed'] = 1; $postdata['notworked'] = 1; $postdata['band'] = 'All'; $postdata['mode'] = 'All'; } $data['was_array'] = $this->was->get_was_array($bands, $postdata); $data['was_summary'] = $this->was->get_was_summary($bands, $postdata); // Render Page $data['page_title'] = "Awards - WAS (Worked All States)"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/was/index'); $this->load->view('interface_assets/footer', $footerData); } public function wab() { // get worked squares from Worked_all_britain_model $this->load->model('worked_all_britain_model'); $data['worked_squares'] = array_filter($this->worked_all_britain_model->get_worked_squares()); $data['confirmed_squares'] = array_filter($this->worked_all_britain_model->get_confirmed_squares()); // Render page $data['page_title'] = "Awards - Worked All Britain"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/wab/index'); $this->load->view('interface_assets/footer'); } public function wab_details_ajax() { $this->load->model('logbook_model'); $wab = str_replace('"', "", $this->security->xss_clean($this->input->post("Wab"))); $wab = str_replace(["Small Square ", " Boundry Box"], "", $wab); $data['results'] = $this->logbook_model->wab_qso_details($wab); // Render Page $data['page_title'] = "Log View - WAB"; $data['filter'] = "WAB " . $wab; $this->load->view('awards/wab/details', $data); } public function iota() { $this->load->model('iota'); $this->load->model('modes'); $this->load->model('bands'); $data['worked_bands'] = $this->bands->get_worked_bands('iota'); // Used in the view for band select if ($this->input->post('band') != NULL) { // Band is not set when page first loads. if ($this->input->post('band') == 'All') { // Did the user specify a band? If not, use all bands $bands = $data['worked_bands']; } else { $bands[] = $this->security->xss_clean($this->input->post('band')); } } else { $bands = $data['worked_bands']; } $data['bands'] = $bands; // Used for displaying selected band(s) in the table in the view $data['modes'] = $this->modes->active(); // Used in the view for mode select if ($this->input->method() === 'post') { $postdata['worked'] = $this->security->xss_clean($this->input->post('worked')); $postdata['confirmed'] = $this->security->xss_clean($this->input->post('confirmed')); $postdata['notworked'] = $this->security->xss_clean($this->input->post('notworked')); $postdata['includedeleted'] = $this->security->xss_clean($this->input->post('includedeleted')); $postdata['Africa'] = $this->security->xss_clean($this->input->post('Africa')); $postdata['Asia'] = $this->security->xss_clean($this->input->post('Asia')); $postdata['Europe'] = $this->security->xss_clean($this->input->post('Europe')); $postdata['NorthAmerica'] = $this->security->xss_clean($this->input->post('NorthAmerica')); $postdata['SouthAmerica'] = $this->security->xss_clean($this->input->post('SouthAmerica')); $postdata['Oceania'] = $this->security->xss_clean($this->input->post('Oceania')); $postdata['Antarctica'] = $this->security->xss_clean($this->input->post('Antarctica')); $postdata['band'] = $this->security->xss_clean($this->input->post('band')); $postdata['mode'] = $this->security->xss_clean($this->input->post('mode')); } else { // Setting default values at first load of page $postdata['worked'] = 1; $postdata['confirmed'] = 1; $postdata['notworked'] = 1; $postdata['includedeleted'] = 0; $postdata['Africa'] = 1; $postdata['Asia'] = 1; $postdata['Europe'] = 1; $postdata['NorthAmerica'] = 1; $postdata['SouthAmerica'] = 1; $postdata['Oceania'] = 1; $postdata['Antarctica'] = 1; $postdata['band'] = 'All'; $postdata['mode'] = 'All'; } $iotalist = $this->iota->fetchIota($postdata); $data['iota_array'] = $this->iota->get_iota_array($iotalist, $bands, $postdata); $data['iota_summary'] = $this->iota->get_iota_summary($bands, $postdata); // Render Page $data['page_title'] = "Awards - IOTA (Islands On The Air)"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/iota/index'); $this->load->view('interface_assets/footer'); } public function counties() { $this->load->model('counties'); $data['counties_array'] = $this->counties->get_counties_array(); // Render Page $data['page_title'] = "Awards - US Counties"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/counties/index'); $this->load->view('interface_assets/footer'); } public function counties_details() { $this->load->model('counties'); $state = str_replace('"', "", $this->security->xss_clean($this->input->get("State"))); $type = str_replace('"', "", $this->security->xss_clean($this->input->get("Type"))); $data['counties_array'] = $this->counties->counties_details($state, $type); $data['type'] = $type; // Render Page $data['page_title'] = "US Counties"; $data['filter'] = $type . " counties in state " . $state; $this->load->view('interface_assets/header', $data); $this->load->view('awards/counties/details'); $this->load->view('interface_assets/footer'); } public function counties_details_ajax() { $this->load->model('logbook_model'); $state = str_replace('"', "", $this->security->xss_clean($this->input->post("State"))); $county = str_replace('"', "", $this->security->xss_clean($this->input->post("County"))); $data['results'] = $this->logbook_model->county_qso_details($state, $county); // Render Page $data['page_title'] = "Log View - Counties"; $data['filter'] = "county " . $state; $this->load->view('awards/details', $data); } 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'); $this->load->model('stations'); $data['homegrid'] = explode(',', $this->stations->find_gridsquare()); $data['modes'] = $this->gridmap_model->get_worked_modes(); $data['bands'] = $this->bands->get_worked_bands(); $data['sats_available'] = $this->bands->get_worked_sats(); $data['layer'] = $this->optionslib->get_option('option_map_tile_server'); $data['attribution'] = $this->optionslib->get_option('option_map_tile_server_copyright'); $data['gridsquares_gridsquares'] = lang('gridsquares_gridsquares'); $data['gridsquares_gridsquares_worked'] = lang('gridsquares_gridsquares_worked'); $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' ]; $this->load->view('interface_assets/header', $data); $this->load->view('awards/gridmaster/index', $indexData); $this->load->view('interface_assets/footer', $footerData); } public function ffma() { $data['page_title'] = "Awards - Fred Fish Memorial Award (FFMA)"; $this->load->model('bands'); $this->load->model('ffma_model'); $this->load->model('stations'); $data['homegrid'] = explode(',', $this->stations->find_gridsquare()); $data['layer'] = $this->optionslib->get_option('option_map_tile_server'); $data['attribution'] = $this->optionslib->get_option('option_map_tile_server_copyright'); $data['gridsquares_gridsquares'] = lang('gridsquares_gridsquares'); $data['gridsquares_gridsquares_worked'] = lang('gridsquares_gridsquares_worked'); $data['gridsquares_gridsquares_lotw'] = lang('gridsquares_gridsquares_lotw'); $data['gridsquares_gridsquares_paper'] = lang('gridsquares_gridsquares_paper'); $data['grid_count'] = $this->ffma_model->get_grid_count(); $data['grids'] = $this->ffma_model->get_grids(); $footerData = []; $footerData['scripts'] = [ 'assets/js/leaflet/geocoding.js', 'assets/js/leaflet/L.MaidenheadColouredGridmasterMap.js', 'assets/js/sections/ffma.js' ]; $this->load->view('interface_assets/header', $data); $this->load->view('awards/ffma/index'); $this->load->view('interface_assets/footer', $footerData); } public function getFfmaGridsjs() { $this->load->model('ffma_model'); $array_grid_4char = array(); $array_grid_4char_lotw = array(); $array_grid_4char_paper = array(); $grid_4char = ""; $grid_4char_lotw = ""; $query = $this->ffma_model->get_lotw(); if ($query && $query->num_rows() > 0) { foreach ($query->result() as $row) { $grid_4char_lotw = strtoupper(substr($row->GRID_SQUARES, 0, 4)); if (!in_array($grid_4char_lotw, $array_grid_4char_lotw)) { array_push($array_grid_4char_lotw, $grid_4char_lotw); } } } $query = $this->ffma_model->get_paper(); if ($query && $query->num_rows() > 0) { foreach ($query->result() as $row) { $grid_4char_paper = strtoupper(substr($row->GRID_SQUARES, 0, 4)); if (!in_array($grid_4char_paper, $array_grid_4char_paper)) { array_push($array_grid_4char_paper, $grid_4char_paper); } } } $query = $this->ffma_model->get_worked(); if ($query && $query->num_rows() > 0) { foreach ($query->result() as $row) { $grid_four = strtoupper(substr($row->GRID_SQUARES, 0, 4)); if (!in_array($grid_four, $array_grid_4char)) { array_push($array_grid_4char, $grid_four); } } } $vucc_grids = $this->ffma_model->get_vucc_lotw(); foreach ($vucc_grids as $key) { $grid_four_lotw = strtoupper(substr($key, 0, 4)); if (!in_array($grid_four_lotw, $array_grid_4char_lotw)) { array_push($array_grid_4char_lotw, $grid_four_lotw); } } $vucc_grids = $this->ffma_model->get_vucc_paper(); foreach ($vucc_grids as $key) { $grid_four_paper = strtoupper(substr($key, 0, 4)); if (!in_array($grid_four_paper, $array_grid_4char_paper)) { array_push($array_grid_4char_paper, $grid_four_paper); } } $vucc_grids = $this->ffma_model->get_vucc_worked(); foreach ($vucc_grids as $key) { $grid_four = strtoupper(substr($key, 0, 4)); if (!in_array($grid_four, $array_grid_4char)) { array_push($array_grid_4char, $grid_four); } } $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->ffma_model->get_grid_count(); $data['grids'] = $this->ffma_model->get_grids(); header('Content-Type: application/json'); echo json_encode($data); } 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(); $grid_4char = ""; $grid_4char_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)); if (!in_array($grid_4char_lotw, $array_grid_4char_lotw)) { array_push($array_grid_4char_lotw, $grid_4char_lotw); } } } $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)); if (!in_array($grid_4char_paper, $array_grid_4char_paper)) { array_push($array_grid_4char_paper, $grid_4char_paper); } } } $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)); if (!in_array($grid_four, $array_grid_4char)) { array_push($array_grid_4char, $grid_four); } } } $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)) { array_push($array_grid_4char_lotw, $grid_four_lotw); } } $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)) { array_push($array_grid_4char_paper, $grid_four_paper); } } $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)) { array_push($array_grid_4char, $grid_four); } } $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); } /* Handles showing worked Sigs Adif fields: my_sig */ public function sig() { // Grab all worked sig stations $this->load->model('sig'); $data['sig_types'] = $this->sig->get_all_sig_types(); // Render page $data['page_title'] = "Awards - SIG"; $this->load->view('interface_assets/header', $data); $this->load->view('awards/sig/index'); $this->load->view('interface_assets/footer'); } /* Handles showing worked Sigs */ public function sig_details() { // Grab all worked sig stations $this->load->model('sig'); $type = str_replace('"', "", $this->security->xss_clean($this->input->get("type"))); $data['sig_all'] = $this->sig->get_all($type); $data['type'] = $type; // Render page $data['page_title'] = "Awards - SIG - " . $type; $this->load->view('interface_assets/header', $data); $this->load->view('awards/sig/qso_list'); $this->load->view('interface_assets/footer'); } /* Handles exporting SIGS to ADIF */ public function sigexportadif() { // Set memory limit to unlimited to allow heavy usage ini_set('memory_limit', '-1'); $this->load->model('adif_data'); $type = $this->security->xss_clean($this->uri->segment(3)); $data['qsos'] = $this->adif_data->sig_all($type); $this->load->view('adif/data/exportall', $data); } /* function was_map This displays the WAS map and requires the $band_type and $mode_type */ public function was_map() { $stateString = 'AK,AL,AR,AZ,CA,CO,CT,DE,FL,GA,HI,IA,ID,IL,IN,KS,KY,LA,MA,MD,ME,MI,MN,MO,MS,MT,NC,ND,NE,NH,NJ,NM,NV,NY,OH,OK,OR,PA,RI,SC,SD,TN,TX,UT,VA,VT,WA,WI,WV,WY'; $wasArray = explode(',', $stateString); $this->load->model('was'); $bands[] = $this->security->xss_clean($this->input->post('band')); $postdata['qsl'] = $this->input->post('qsl') == 0 ? NULL : 1; $postdata['lotw'] = $this->input->post('lotw') == 0 ? NULL : 1; $postdata['eqsl'] = $this->input->post('eqsl') == 0 ? NULL : 1; $postdata['worked'] = $this->input->post('worked') == 0 ? NULL : 1; $postdata['confirmed'] = $this->input->post('confirmed') == 0 ? NULL : 1; $postdata['notworked'] = $this->input->post('notworked') == 0 ? NULL : 1; $postdata['band'] = $this->security->xss_clean($this->input->post('band')); $postdata['mode'] = $this->security->xss_clean($this->input->post('mode')); $was_array = $this->was->get_was_array($bands, $postdata); $states = array(); foreach ($wasArray as $state) { // Generating array for use in the table $states[$state] = '-'; // Inits each state's count } foreach ($was_array as $was => $value) { foreach ($value as $key) { if ($key != "") { if (strpos($key, '>W<') !== false) { $states[$was] = 'W'; break; } if (strpos($key, '>C<') !== false) { $states[$was] = 'C'; break; } if (strpos($key, '-') !== false) { $states[$was] = '-'; break; } } } } header('Content-Type: application/json'); echo json_encode($states); } /* function cq_map This displays the CQ Zone map and requires the $band_type and $mode_type */ public function cq_map() { $CI = &get_instance(); $CI->load->model('logbooks_model'); $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); $this->load->model('cq'); $bands[] = $this->input->post('band'); $postdata['qsl'] = $this->input->post('qsl') == 0 ? NULL : 1; $postdata['lotw'] = $this->input->post('lotw') == 0 ? NULL : 1; $postdata['eqsl'] = $this->input->post('eqsl') == 0 ? NULL : 1; $postdata['worked'] = $this->input->post('worked') == 0 ? NULL : 1; $postdata['confirmed'] = $this->input->post('confirmed') == 0 ? NULL : 1; $postdata['notworked'] = $this->input->post('notworked') == 0 ? NULL : 1; $postdata['band'] = $this->security->xss_clean($this->input->post('band')); $postdata['mode'] = $this->security->xss_clean($this->input->post('mode')); if ($logbooks_locations_array) { $location_list = "'" . implode("','", $logbooks_locations_array) . "'"; $cq_array = $this->cq->get_cq_array($bands, $postdata, $location_list); } else { $location_list = null; $cq_array = null; } $zones = array(); foreach ($cq_array as $cq => $value) { foreach ($value as $key) { if ($key != "") { if (strpos($key, '>W<') !== false) { $zones[] = 'W'; break; } if (strpos($key, '>C<') !== false) { $zones[] = 'C'; break; } if (strpos($key, '-') !== false) { $zones[] = '-'; break; } } } } header('Content-Type: application/json'); echo json_encode($zones); } /* function waja_map */ public function waja_map() { $prefectureString = '01,02,03,04,05,06,07,08,09,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47'; $wajaArray = explode(',', $prefectureString); $this->load->model('waja'); $this->load->model('bands'); $bands[] = $this->security->xss_clean($this->input->post('band')); $postdata['qsl'] = $this->input->post('qsl') == 0 ? NULL : 1; $postdata['lotw'] = $this->input->post('lotw') == 0 ? NULL : 1; $postdata['eqsl'] = $this->input->post('eqsl') == 0 ? NULL : 1; $postdata['worked'] = $this->input->post('worked') == 0 ? NULL : 1; $postdata['confirmed'] = $this->input->post('confirmed') == 0 ? NULL : 1; $postdata['notworked'] = $this->input->post('notworked') == 0 ? NULL : 1; $postdata['band'] = $this->security->xss_clean($this->input->post('band')); $postdata['mode'] = $this->security->xss_clean($this->input->post('mode')); $waja_array = $this->waja->get_waja_array($bands, $postdata); $prefectures = array(); foreach ($wajaArray as $state) { // Generating array for use in the table $prefectures[$state] = '-'; // Inits each state's count } foreach ($waja_array as $waja => $value) { foreach ($value as $key) { if ($key != "") { if (strpos($key, '>W<') !== false) { $prefectures[$waja] = 'W'; break; } if (strpos($key, '>C<') !== false) { $prefectures[$waja] = 'C'; break; } if (strpos($key, '-') !== false) { $prefectures[$waja] = '-'; break; } } } } header('Content-Type: application/json'); echo json_encode($prefectures); } /* function dxcc_map This displays the DXCC map */ public function dxcc_map() { $this->load->model('dxcc'); $this->load->model('bands'); $bands[] = $this->security->xss_clean($this->input->post('band')); $postdata['qsl'] = $this->input->post('qsl') == 0 ? NULL : 1; $postdata['lotw'] = $this->input->post('lotw') == 0 ? NULL : 1; $postdata['eqsl'] = $this->input->post('eqsl') == 0 ? NULL : 1; $postdata['worked'] = $this->input->post('worked') == 0 ? NULL : 1; $postdata['confirmed'] = $this->input->post('confirmed') == 0 ? NULL : 1; $postdata['notworked'] = $this->input->post('notworked') == 0 ? NULL : 1; $postdata['band'] = $this->security->xss_clean($this->input->post('band')); $postdata['mode'] = $this->security->xss_clean($this->input->post('mode')); $postdata['includedeleted'] = $this->input->post('includedeleted') == 0 ? NULL : 1; $postdata['Africa'] = $this->input->post('Africa') == 0 ? NULL : 1; $postdata['Asia'] = $this->input->post('Asia') == 0 ? NULL : 1; $postdata['Europe'] = $this->input->post('Europe') == 0 ? NULL : 1; $postdata['NorthAmerica'] = $this->input->post('NorthAmerica') == 0 ? NULL : 1; $postdata['SouthAmerica'] = $this->input->post('SouthAmerica') == 0 ? NULL : 1; $postdata['Oceania'] = $this->input->post('Oceania') == 0 ? NULL : 1; $postdata['Antarctica'] = $this->input->post('Antarctica') == 0 ? NULL : 1; $dxcclist = $this->dxcc->fetchdxcc($postdata); $dxcc_array = $this->dxcc->get_dxcc_array($dxcclist, $bands, $postdata); $i = 0; foreach ($dxcclist as $dxcc) { $newdxcc[$i]['adif'] = $dxcc->adif; $newdxcc[$i]['prefix'] = $dxcc->prefix; $newdxcc[$i]['name'] = ucwords(strtolower($dxcc->name), "- (/"); if ($dxcc->Enddate != null) { $newdxcc[$i]['name'] .= ' (deleted)'; } $newdxcc[$i]['lat'] = $dxcc->lat; $newdxcc[$i]['long'] = $dxcc->long; $newdxcc[$i++]['status'] = isset($dxcc_array[$dxcc->adif]) ? $this->returnStatus($dxcc_array[$dxcc->adif]) : 'x'; } header('Content-Type: application/json'); echo json_encode($newdxcc); } /* function iota This displays the IOTA map */ public function iota_map() { $this->load->model('iota'); $this->load->model('bands'); $bands[] = $this->security->xss_clean($this->input->post('band')); $postdata['lotw'] = $this->input->post('lotw') == 0 ? NULL : 1; $postdata['qsl'] = $this->input->post('qsl') == 0 ? NULL : 1; $postdata['worked'] = $this->input->post('worked') == 0 ? NULL : 1; $postdata['confirmed'] = $this->input->post('confirmed') == 0 ? NULL : 1; $postdata['notworked'] = $this->input->post('notworked') == 0 ? NULL : 1; $postdata['band'] = $this->input->post('band'); $postdata['mode'] = $this->input->post('mode'); $postdata['includedeleted'] = $this->input->post('includedeleted') == 0 ? NULL : 1; $postdata['Africa'] = $this->input->post('Africa') == 0 ? NULL : 1; $postdata['Asia'] = $this->input->post('Asia') == 0 ? NULL : 1; $postdata['Europe'] = $this->input->post('Europe') == 0 ? NULL : 1; $postdata['NorthAmerica'] = $this->input->post('NorthAmerica') == 0 ? NULL : 1; $postdata['SouthAmerica'] = $this->input->post('SouthAmerica') == 0 ? NULL : 1; $postdata['Oceania'] = $this->input->post('Oceania') == 0 ? NULL : 1; $postdata['Antarctica'] = $this->input->post('Antarctica') == 0 ? NULL : 1; $iotalist = $this->iota->fetchIota($postdata); $iota_array = $this->iota->get_iota_array($iotalist, $bands, $postdata); $i = 0; foreach ($iotalist as $iota) { $newiota[$i]['tag'] = $iota->tag; $newiota[$i]['prefix'] = $iota->prefix; $newiota[$i]['name'] = ucwords(strtolower($iota->name), "- (/"); if ($iota->status == 'D') { $newiota[$i]['name'] .= ' (deleted)'; } $newiota[$i]['lat1'] = $iota->lat1; $newiota[$i]['lon1'] = $iota->lon1; $newiota[$i]['lat2'] = $iota->lat2; $newiota[$i]['lon2'] = $iota->lon2; $newiota[$i++]['status'] = isset($iota_array[$iota->tag]) ? $this->returnStatus($iota_array[$iota->tag]) : 'x'; } header('Content-Type: application/json'); echo json_encode($newiota); } function returnStatus($string) { foreach ($string as $key) { if ($key != "") { if (strpos($key, '>W<') !== false) { return 'W'; } if (strpos($key, '>C<') !== false) { return 'C'; } if ($key == '-') { return '-'; } } } } }