From 8719441eb687f1f66efa0304571125ce973b3e97 Mon Sep 17 00:00:00 2001 From: Andreas <6977712+AndreasK79@users.noreply.github.com> Date: Sun, 14 Nov 2021 17:17:20 +0100 Subject: [PATCH] [Custom Map] Fixed error if logbook is empty --- application/controllers/Map.php | 69 +++++++++++++++------------- application/models/Logbook_model.php | 4 ++ 2 files changed, 42 insertions(+), 31 deletions(-) diff --git a/application/controllers/Map.php b/application/controllers/Map.php index bfb477678..c84258d81 100644 --- a/application/controllers/Map.php +++ b/application/controllers/Map.php @@ -69,7 +69,12 @@ class Map extends CI_Controller { $CI =& get_instance(); $CI->load->model('logbooks_model'); $result = $CI->logbooks_model->logbook($this->session->userdata('active_station_logbook'))->result(); - $logbook_name = $result[0]->logbook_name; + + if ($result) { + $logbook_name = $result[0]->logbook_name; + } else { + $logbook_name = ''; + } // load the view $data['logbook_name'] = $logbook_name; @@ -111,39 +116,41 @@ class Map extends CI_Controller { echo "{\"markers\": ["; $count = 1; - foreach ($qsos->result() as $row) { - //print_r($row); - if($row->COL_GRIDSQUARE != null) { - $stn_loc = $this->qra->qra2latlong($row->COL_GRIDSQUARE); - if($count != 1) { - echo ","; - } - - if($row->COL_SAT_NAME != null) { - echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."
Date/Time: ".$row->COL_TIME_ON."
SAT: ".$row->COL_SAT_NAME."
Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}"; - } else { - echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."
Date/Time: ".$row->COL_TIME_ON."
Band: ".$row->COL_BAND."
Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}"; - } - - $count++; - - } else { - $query = $this->db->query(' - SELECT * - FROM dxcc_entities - WHERE prefix = SUBSTRING( \''.$row->COL_CALL.'\', 1, LENGTH( prefix ) ) - ORDER BY LENGTH( prefix ) DESC - LIMIT 1 - '); - - foreach ($query->result() as $dxcc) { + if ($qsos) { + foreach ($qsos->result() as $row) { + //print_r($row); + if($row->COL_GRIDSQUARE != null) { + $stn_loc = $this->qra->qra2latlong($row->COL_GRIDSQUARE); if($count != 1) { - echo ","; - } - echo "{\"lat\":\"".$dxcc->lat."\",\"lng\":\"".$dxcc->long."\", \"html\":\"Callsign: ".$row->COL_CALL."
Date/Time: ".$row->COL_TIME_ON."
Band: ".$row->COL_BAND."
Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}"; + echo ","; + } + + if($row->COL_SAT_NAME != null) { + echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."
Date/Time: ".$row->COL_TIME_ON."
SAT: ".$row->COL_SAT_NAME."
Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}"; + } else { + echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."
Date/Time: ".$row->COL_TIME_ON."
Band: ".$row->COL_BAND."
Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}"; + } + $count++; + + } else { + $query = $this->db->query(' + SELECT * + FROM dxcc_entities + WHERE prefix = SUBSTRING( \''.$row->COL_CALL.'\', 1, LENGTH( prefix ) ) + ORDER BY LENGTH( prefix ) DESC + LIMIT 1 + '); + + foreach ($query->result() as $dxcc) { + if($count != 1) { + echo ","; + } + echo "{\"lat\":\"".$dxcc->lat."\",\"lng\":\"".$dxcc->long."\", \"html\":\"Callsign: ".$row->COL_CALL."
Date/Time: ".$row->COL_TIME_ON."
Band: ".$row->COL_BAND."
Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}"; + $count++; + } } - } + } } echo "]"; diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 8a80e6c76..3e16345d2 100755 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -1074,6 +1074,10 @@ class Logbook_model extends CI_Model { $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; + } + $this->db->where("COL_TIME_ON BETWEEN '".$start."' AND '".$end."'"); $this->db->where_in("station_id", $logbooks_locations_array);