Skip to content

Commit

Permalink
Merge pull request #12 from phl0/jaGridmaster
Browse files Browse the repository at this point in the history
JA gridmaster and a more generalized approach serving as blueprint for
  • Loading branch information
HB9HIL authored Oct 23, 2023
2 parents b722249 + 3e18f50 commit 29cfc7c
Show file tree
Hide file tree
Showing 20 changed files with 673 additions and 1 deletion.
106 changes: 105 additions & 1 deletion application/controllers/Awards.php
Original file line number Diff line number Diff line change
Expand Up @@ -587,7 +587,111 @@ public function ffma() {
$this->load->view('interface_assets/footer',$footerData);
}

public function getFfmaGridsjs() {
public function ja_gridmaster() {
$data['page_title']= lang('menu_ja_gridmaster');

$this->load->model('bands');
$this->load->model('ja_gridmaster_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');

$footerData = [];
$footerData['scripts']= [
'assets/js/leaflet/geocoding.js',
'assets/js/leaflet/L.MaidenheadColouredJaGridmasterMap.js',
'assets/js/sections/ja_gridmaster.js?'
];

$this->load->view('interface_assets/header',$data);
$this->load->view('awards/ja_gridmaster/index');
$this->load->view('interface_assets/footer',$footerData);
}

public function getJaGridmasterGridsjs() {
$this->load->model('ja_gridmaster_model');

$array_grid_4char = array();
$array_grid_4char_lotw = array();
$array_grid_4char_paper = array();

$grid_4char = "";
$grid_4char_lotw = "";

$query = $this->ja_gridmaster_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->ja_gridmaster_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->ja_gridmaster_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->ja_gridmaster_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->ja_gridmaster_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->ja_gridmaster_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->ja_gridmaster_model->get_grid_count();
$data['grids'] = $this->ja_gridmaster_model->get_grids();

header('Content-Type: application/json');
echo json_encode($data);
}

public function getFfmaGridsjs() {
$this->load->model('ffma_model');

$array_grid_4char = array();
Expand Down
1 change: 1 addition & 0 deletions application/language/bulgarian/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@
$lang['menu_logout'] = 'Logout';

$lang['menu_ffma'] = "Fred Fish Memorial Award";
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_maintenance']='Maintenance';
1 change: 1 addition & 0 deletions application/language/chinese_simplified/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@
$lang['menu_logout'] = '注销';

$lang['menu_ffma'] = "Fred Fish Memorial Award";
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_maintenance']='Maintenance';
1 change: 1 addition & 0 deletions application/language/czech/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@
$lang['menu_logout'] = 'Odhlásit se';

$lang['menu_ffma'] = "Fred Fish Memorial Award";
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_maintenance']='Maintenance';
1 change: 1 addition & 0 deletions application/language/dutch/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@
$lang['menu_logout'] = 'Logout';

$lang['menu_ffma'] = "Fred Fish Memorial Award";
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_maintenance']='Maintenance';
1 change: 1 addition & 0 deletions application/language/english/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
$lang['menu_dok'] = 'DOK';
$lang['menu_dxcc'] = 'DXCC';
$lang['menu_ffma'] = 'Fred Fish Memorial Award';
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_iota'] = 'IOTA';
$lang['menu_pota'] = 'POTA';
$lang['menu_sig'] = 'SIG';
Expand Down
1 change: 1 addition & 0 deletions application/language/finnish/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@
$lang['menu_logout'] = 'Kirjaudu ulos';

$lang['menu_ffma'] = "Fred Fish Memorial Award";
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_maintenance']='Maintenance';
1 change: 1 addition & 0 deletions application/language/german/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@
$lang['menu_logout'] = 'Logout';

$lang['menu_ffma'] = "Fred Fish Memorial Award";
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_maintenance'] = 'Wartung';
1 change: 1 addition & 0 deletions application/language/greek/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@
$lang['menu_logout'] = 'Logout';

$lang['menu_ffma'] = "Fred Fish Memorial Award";
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_maintenance']='Maintenance';
1 change: 1 addition & 0 deletions application/language/italian/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@
$lang['menu_logout'] = 'Logout';

$lang['menu_ffma'] = "Fred Fish Memorial Award";
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_maintenance']='Maintenance';
1 change: 1 addition & 0 deletions application/language/polish/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@
$lang['menu_logout'] = 'Logout';

$lang['menu_ffma'] = "Fred Fish Memorial Award";
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_maintenance']='Maintenance';
1 change: 1 addition & 0 deletions application/language/russian/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@
$lang['menu_logout'] = 'Выход';

$lang['menu_ffma'] = "Fred Fish Memorial Award";
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_maintenance']='Maintenance';
1 change: 1 addition & 0 deletions application/language/spanish/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@
$lang['menu_logout'] = 'Logout';

$lang['menu_ffma'] = "Fred Fish Memorial Award";
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_maintenance']='Maintenance';
1 change: 1 addition & 0 deletions application/language/swedish/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@
$lang['menu_logout'] = 'Logga ut';

$lang['menu_ffma'] = "Fred Fish Memorial Award";
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_maintenance']='Underhåll';
1 change: 1 addition & 0 deletions application/language/turkish/menu_lang.php
Original file line number Diff line number Diff line change
Expand Up @@ -86,4 +86,5 @@
$lang['menu_logout'] = 'Logout';

$lang['menu_ffma'] = "Fred Fish Memorial Award";
$lang['menu_ja_gridmaster'] = 'JA Gridmaster';
$lang['menu_maintenance']='Maintenance';
172 changes: 172 additions & 0 deletions application/models/Ja_gridmaster_model.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,172 @@
<?php

class Ja_gridmaster_model extends CI_Model {

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'
];

function get_lotw() {
$CI =& get_instance();
$CI->load->model('logbooks_model');
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));

if (!$logbooks_locations_array) {
return null;
}
$location_list = "'".implode("','",$logbooks_locations_array)."'";

$sql = 'SELECT distinct substring(COL_GRIDSQUARE,1,4) as GRID_SQUARES FROM '
.$this->config->item('table_name')
.' 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->ja_grids).'\')';
return $this->db->query($sql);
}

function get_paper() {
$CI =& get_instance();
$CI->load->model('logbooks_model');
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));

if (!$logbooks_locations_array) {
return null;
}
$location_list = "'".implode("','",$logbooks_locations_array)."'";

$sql = 'SELECT distinct substring(COL_GRIDSQUARE,1,4) as GRID_SQUARES FROM '
.$this->config->item('table_name')
.' 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->ja_grids).'\')';
return $this->db->query($sql);
}

function get_worked() {
$CI =& get_instance();
$CI->load->model('logbooks_model');
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));

if (!$logbooks_locations_array) {
return null;
}
$location_list = "'".implode("','",$logbooks_locations_array)."'";

$sql = 'SELECT distinct substring(COL_GRIDSQUARE,1,4) as GRID_SQUARES FROM '
.$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->ja_grids).'\')';
return $this->db->query($sql);
}

function get_vucc_lotw() {
$CI =& get_instance();
$CI->load->model('logbooks_model');
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));

if (!$logbooks_locations_array) {
return null;
}
$location_list = "'".implode("','",$logbooks_locations_array)."'";

$sql = 'SELECT distinct COL_VUCC_GRIDS as VUCC_GRIDS FROM '
.$this->config->item('table_name')
.' WHERE station_id in ('.$location_list.')'
." and COL_LOTW_QSL_RCVD = 'Y'"
." and COL_VUCC_GRIDS != ''"
." and COL_VUCC_GRIDS IS NOT NULL"
." and COL_PROP_MODE = 'SAT'";
$query = $this->db->query($sql);
$vucc_grids = [];
foreach ($query->result() as $row) {
$grids = explode(',', $row->VUCC_GRIDS);
foreach ($grids as $grid) {
if (in_array(substr($grid, 0, 4), $this->ja_grids)) {
if (!in_array(substr($grid, 0, 4), $vucc_grids)) {
$vucc_grids[] = substr($grid, 0, 4);
}
}
}
}
return $vucc_grids;
}

function get_vucc_paper() {
$CI =& get_instance();
$CI->load->model('logbooks_model');
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));

if (!$logbooks_locations_array) {
return null;
}
$location_list = "'".implode("','",$logbooks_locations_array)."'";

$sql = 'SELECT distinct COL_VUCC_GRIDS as VUCC_GRIDS FROM '
.$this->config->item('table_name')
.' WHERE station_id in ('.$location_list.')'
." and COL_QSL_RCVD = 'Y'"
." and COL_VUCC_GRIDS != ''"
." and COL_VUCC_GRIDS IS NOT NULL"
." and COL_PROP_MODE = 'SAT'";
$query = $this->db->query($sql);
$vucc_grids = [];
foreach ($query->result() as $row) {
$grids = explode(',', $row->VUCC_GRIDS);
foreach ($grids as $grid) {
if (in_array(substr($grid, 0, 4), $this->ja_grids)) {
if (!in_array(substr($grid, 0, 4), $vucc_grids)) {
$vucc_grids[] = substr($grid, 0, 4);
}
}
}
}
return $vucc_grids;
}

function get_vucc_worked() {
$CI =& get_instance();
$CI->load->model('logbooks_model');
$logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook'));

if (!$logbooks_locations_array) {
return null;
}
$location_list = "'".implode("','",$logbooks_locations_array)."'";

$sql = 'SELECT distinct COL_VUCC_GRIDS as VUCC_GRIDS FROM '
.$this->config->item('table_name')
.' WHERE station_id in ('.$location_list.')'
." and COL_VUCC_GRIDS != ''"
." and COL_VUCC_GRIDS IS NOT NULL"
." and COL_PROP_MODE = 'SAT'";
$query = $this->db->query($sql);
$vucc_grids = [];
foreach ($query->result() as $row) {
$grids = explode(',', $row->VUCC_GRIDS);
foreach ($grids as $grid) {
if (in_array(substr($grid, 0, 4), $this->ja_grids)) {
if (!in_array(substr($grid, 0, 4), $vucc_grids)) {
$vucc_grids[] = substr($grid, 0, 4);
}
}
}
}
return $vucc_grids;
}

function get_grid_count() {
return count($this->ja_grids);
}

function get_grids() {
return $this->ja_grids;
}

}
Loading

0 comments on commit 29cfc7c

Please sign in to comment.