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);