From 951b31a03f444062f076e820c26e6cb34db250c8 Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Wed, 14 Nov 2012 10:01:51 -0600 Subject: [PATCH] Switched to use search.ham.io --- README.md | 6 +- application/config/config.php | 110 ++--- application/controllers/logbook.php | 596 +++++++++++++-------------- application/controllers/welcome.php | 16 +- application/libraries/callbytxt.php | 37 -- application/libraries/hamio.php | 30 ++ application/models/logbook_model.php | 334 ++++++++------- 7 files changed, 558 insertions(+), 571 deletions(-) delete mode 100644 application/libraries/callbytxt.php create mode 100644 application/libraries/hamio.php diff --git a/README.md b/README.md index fdde67f1..c4e16cf4 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,6 @@ Copyright (c) 2011 Peter Goodhall ([2E0SQL](http://www.m3php.com)). ## Credits -* Andy (M0VKG) [http://m0vkg.org.uk](http://m0vkg.org.uk/) -* Gavin (M1BXF) [http://www.geekshed.co.uk](http://www.geekshed.co.uk/) -* Graham (W5ISP) [http://www.callbytxt.org](http://www.callbytxt.org) \ No newline at end of file +* Andy (M0VKG) [http://m0vkg.org.uk](http://m0vkg.org.uk/) +* Gavin (M1BXF) [http://www.geekshed.co.uk](http://www.geekshed.co.uk/) +* Graham (W5ISP) [http://ham.io](http://ham.io) \ No newline at end of file diff --git a/application/config/config.php b/application/config/config.php index 064ccfd0..f1d6cb3e 100644 --- a/application/config/config.php +++ b/application/config/config.php @@ -6,26 +6,26 @@ | Install Options |-------------------------------------------------------------------------- | -| 'app_name' Name of the App 'Cloudlog' -| 'app_version' Set by the dev team. -| 'directory' directory where cloudlog is installed eg "logger" -| 'callbook' Selects which Callbook lookup to use defaults "callbytxt" but supports "qrz" +| 'app_name' Name of the App 'Cloudlog' +| 'app_version' Set by the dev team. +| 'directory' directory where cloudlog is installed eg "logger" +| 'callbook' Selects which Callbook lookup to use defaults "hamio" but supports "qrz" */ $config['app_name'] = "Cloudlog"; $config['app_version'] = "0.1"; $config['directory'] = "logbook"; -$config['callbook'] = "callbytxt"; // Options are qrz or callbytxt +$config['callbook'] = "hamio"; // Options are hamio or qrz /* |-------------------------------------------------------------------------- | Logbook Options |-------------------------------------------------------------------------- | -| 'table_name' SQL table where log can be found -| 'locator' Default locator used to calculate bearings/distance -| 'display_freq' Show or Hide frequnecy info +| 'table_name' SQL table where log can be found +| 'locator' Default locator used to calculate bearings/distance +| 'display_freq' Show or Hide frequnecy info */ $config['table_name'] = "table_hrd_contacts_v01"; @@ -37,11 +37,11 @@ $config['display_freq'] = false; | Authentication |-------------------------------------------------------------------------- | -| 'use_auth' False turns all authentication off, best used when setting up -| 'auth_table' MySQL Database Table defaults "users" -| 'auth_mode' Minimum user level required 0 = anonymous, 1 = viewer, -| 2 = editor, 3 = api user, 99 = owner -| 'auth_level[]' Defines level titles +| 'use_auth' False turns all authentication off, best used when setting up +| 'auth_table' MySQL Database Table defaults "users" +| 'auth_mode' Minimum user level required 0 = anonymous, 1 = viewer, +| 2 = editor, 3 = api user, 99 = owner +| 'auth_level[]' Defines level titles */ $config['use_auth'] = true; @@ -59,8 +59,8 @@ $config['auth_level'][99] = "Administrator"; | QRZ Subscription Information |-------------------------------------------------------------------------- | -| 'username' QRZ.com Username -| 'password' Default locator used to calculate bearings/distance +| 'username' QRZ.com Username +| 'password' Default locator used to calculate bearings/distance */ $config['qrz_username'] = ""; @@ -74,13 +74,13 @@ $config['qrz_password'] = ""; | URL to your CodeIgniter root. Typically this will be your base URL, | WITH a trailing slash: | -| http://example.com/ +| http://example.com/ | | If this is not set then CodeIgniter will guess the protocol, domain and | path to your installation. | */ -$config['base_url'] = 'http://localhost/logbook'; +$config['base_url'] = 'http://localhost/logbook'; /* |-------------------------------------------------------------------------- @@ -103,14 +103,14 @@ $config['index_page'] = 'index.php'; | URI string. The default setting of 'AUTO' works for most servers. | If your links do not seem to work, try one of the other delicious flavors: | -| 'AUTO' Default - auto detects -| 'PATH_INFO' Uses the PATH_INFO -| 'QUERY_STRING' Uses the QUERY_STRING -| 'REQUEST_URI' Uses the REQUEST_URI -| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO +| 'AUTO' Default - auto detects +| 'PATH_INFO' Uses the PATH_INFO +| 'QUERY_STRING' Uses the QUERY_STRING +| 'REQUEST_URI' Uses the REQUEST_URI +| 'ORIG_PATH_INFO' Uses the ORIG_PATH_INFO | */ -$config['uri_protocol'] = 'AUTO'; +$config['uri_protocol'] = 'AUTO'; /* |-------------------------------------------------------------------------- @@ -135,7 +135,7 @@ $config['url_suffix'] = ''; | than english. | */ -$config['language'] = 'english'; +$config['language'] = 'english'; /* |-------------------------------------------------------------------------- @@ -219,11 +219,11 @@ $config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-=[]()*,'; | use segment based URLs. | */ -$config['allow_get_array'] = TRUE; +$config['allow_get_array'] = TRUE; $config['enable_query_strings'] = FALSE; -$config['controller_trigger'] = 'c'; -$config['function_trigger'] = 'm'; -$config['directory_trigger'] = 'd'; // experimental not currently in use +$config['controller_trigger'] = 'c'; +$config['function_trigger'] = 'm'; +$config['directory_trigger'] = 'd'; // experimental not currently in use /* |-------------------------------------------------------------------------- @@ -235,11 +235,11 @@ $config['directory_trigger'] = 'd'; // experimental not currently in use | You can enable error logging by setting a threshold over zero. The | threshold determines what gets logged. Threshold options are: | -| 0 = Disables logging, Error logging TURNED OFF -| 1 = Error Messages (including PHP errors) -| 2 = Debug Messages -| 3 = Informational Messages -| 4 = All Messages +| 0 = Disables logging, Error logging TURNED OFF +| 1 = Error Messages (including PHP errors) +| 2 = Debug Messages +| 3 = Informational Messages +| 4 = All Messages | | For a live site you'll usually only enable Errors (1) to be logged otherwise | your log files will fill up very fast. @@ -296,28 +296,28 @@ $config['encryption_key'] = 'flossie1234555541'; | Session Variables |-------------------------------------------------------------------------- | -| 'sess_cookie_name' = the name you want for the cookie -| 'sess_expiration' = the number of SECONDS you want the session to last. +| 'sess_cookie_name' = the name you want for the cookie +| 'sess_expiration' = the number of SECONDS you want the session to last. | by default sessions last 7200 seconds (two hours). Set to zero for no expiration. -| 'sess_expire_on_close' = Whether to cause the session to expire automatically +| 'sess_expire_on_close' = Whether to cause the session to expire automatically | when the browser window is closed -| 'sess_encrypt_cookie' = Whether to encrypt the cookie -| 'sess_use_database' = Whether to save the session data to a database -| 'sess_table_name' = The name of the session database table -| 'sess_match_ip' = Whether to match the user's IP address when reading the session data -| 'sess_match_useragent' = Whether to match the User Agent when reading the session data -| 'sess_time_to_update' = how many seconds between CI refreshing Session Information +| 'sess_encrypt_cookie' = Whether to encrypt the cookie +| 'sess_use_database' = Whether to save the session data to a database +| 'sess_table_name' = The name of the session database table +| 'sess_match_ip' = Whether to match the user's IP address when reading the session data +| 'sess_match_useragent' = Whether to match the User Agent when reading the session data +| 'sess_time_to_update' = how many seconds between CI refreshing Session Information | */ -$config['sess_cookie_name'] = 'ci_cloudlog'; -$config['sess_expiration'] = 0; -$config['sess_expire_on_close'] = FALSE; -$config['sess_encrypt_cookie'] = FALSE; -$config['sess_use_database'] = FALSE; -$config['sess_table_name'] = 'ci_sessions'; -$config['sess_match_ip'] = FALSE; -$config['sess_match_useragent'] = TRUE; -$config['sess_time_to_update'] = 300; +$config['sess_cookie_name'] = 'ci_cloudlog'; +$config['sess_expiration'] = 0; +$config['sess_expire_on_close'] = FALSE; +$config['sess_encrypt_cookie'] = FALSE; +$config['sess_use_database'] = FALSE; +$config['sess_table_name'] = 'ci_sessions'; +$config['sess_match_ip'] = FALSE; +$config['sess_match_useragent'] = TRUE; +$config['sess_time_to_update'] = 300; /* |-------------------------------------------------------------------------- @@ -330,10 +330,10 @@ $config['sess_time_to_update'] = 300; | 'cookie_secure' = Cookies will only be set if a secure HTTPS connection exists. | */ -$config['cookie_prefix'] = ""; -$config['cookie_domain'] = ""; -$config['cookie_path'] = "/"; -$config['cookie_secure'] = FALSE; +$config['cookie_prefix'] = ""; +$config['cookie_domain'] = ""; +$config['cookie_path'] = "/"; +$config['cookie_secure'] = FALSE; /* |-------------------------------------------------------------------------- diff --git a/application/controllers/logbook.php b/application/controllers/logbook.php index ec570ab8..9a823c38 100644 --- a/application/controllers/logbook.php +++ b/application/controllers/logbook.php @@ -2,8 +2,8 @@ class Logbook extends CI_Controller { - function index() - { + function index() + { $this->load->model('user_model'); if(!$this->user_model->authorize($this->config->item('auth_mode'))) { if($this->user_model->validate_session()) { @@ -14,335 +14,335 @@ class Logbook extends CI_Controller { } } - $this->load->library('pagination'); - $config['base_url'] = base_url().'index.php/logbook/index/'; - $config['total_rows'] = $this->db->count_all($this->config->item('table_name')); - $config['per_page'] = '25'; - $config['num_links'] = 6; - $config['full_tag_open'] = ''; - $config['full_tag_close'] = ''; - $config['cur_tag_open'] = ''; - $config['cur_tag_close'] = ''; - - $this->pagination->initialize($config); - - //load the model and get results - $this->load->model('logbook_model'); - $data['results'] = $this->logbook_model->get_qsos($config['per_page'],$this->uri->segment(3)); + $this->load->library('pagination'); + $config['base_url'] = base_url().'index.php/logbook/index/'; + $config['total_rows'] = $this->db->count_all($this->config->item('table_name')); + $config['per_page'] = '25'; + $config['num_links'] = 6; + $config['full_tag_open'] = ''; + $config['full_tag_close'] = ''; + $config['cur_tag_open'] = ''; + $config['cur_tag_close'] = ''; + + $this->pagination->initialize($config); + + //load the model and get results + $this->load->model('logbook_model'); + $data['results'] = $this->logbook_model->get_qsos($config['per_page'],$this->uri->segment(3)); - - // load the view - $data['page_title'] = "Logbook"; + + // load the view + $data['page_title'] = "Logbook"; - $this->load->view('layout/header', $data); - $this->load->view('view_log/index'); - $this->load->view('layout/footer'); - - } + $this->load->view('layout/header', $data); + $this->load->view('view_log/index'); + $this->load->view('layout/footer'); + + } - /* Used to generate maps for displaying on /logbook/ */ - function qso_map() { - $this->load->model('logbook_model'); + /* Used to generate maps for displaying on /logbook/ */ + function qso_map() { + $this->load->model('logbook_model'); - $this->load->library('qra'); + $this->load->library('qra'); - $data['qsos'] = $this->logbook_model->get_qsos($this->uri->segment(3),$this->uri->segment(4)); + $data['qsos'] = $this->logbook_model->get_qsos($this->uri->segment(3),$this->uri->segment(4)); - echo "{\"markers\": ["; - $count = 1; - foreach ($data['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 "{\"markers\": ["; + $count = 1; + foreach ($data['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."\"}"; - } + 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++; + $count++; - } else { - $query = $this->db->query(' - SELECT * - FROM dxcc - WHERE prefix = SUBSTRING( \''.$row->COL_CALL.'\', 1, LENGTH( prefix ) ) - ORDER BY LENGTH( prefix ) DESC - LIMIT 1 - '); + } else { + $query = $this->db->query(' + SELECT * + FROM dxcc + 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++; - } - } + 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 "]"; - echo "}"; - } - - function view($id) { - $this->load->model('user_model'); + } + echo "]"; + echo "}"; + } + + function view($id) { + $this->load->model('user_model'); if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; } - $this->load->library('qra'); + $this->load->library('qra'); - $this->db->where('COL_PRIMARY_KEY', $id); - $data['query'] = $this->db->get($this->config->item('table_name')); - - $this->load->view('view_log/qso', $data); - } - - function callsign_qra($qra) { - $this->load->model('user_model'); + $this->db->where('COL_PRIMARY_KEY', $id); + $data['query'] = $this->db->get($this->config->item('table_name')); + + $this->load->view('view_log/qso', $data); + } + + function callsign_qra($qra) { + $this->load->model('user_model'); if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; } - $this->load->model('logbook_model'); + $this->load->model('logbook_model'); - if($this->logbook_model->call_qra($qra)) { - echo $this->logbook_model->call_qra($qra); - } else { - if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) { - // Lookup using QRZ - - $this->load->library('qrz'); - - if(!$this->session->userdata('qrz_session_key')) { - $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); - $this->session->set_userdata('qrz_session_key', $qrz_session_key); - } - - $callbook = $this->qrz->search($qra, $this->session->userdata('qrz_session_key')); - echo $callbook['gridsquare']; - - } else { - // Lookup using Callbytxt - $this->load->library('callbytxt'); - - $callbook = $this->callbytxt->callsign($qra); + if($this->logbook_model->call_qra($qra)) { + echo $this->logbook_model->call_qra($qra); + } else { + if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) { + // Lookup using QRZ + + $this->load->library('qrz'); + + if(!$this->session->userdata('qrz_session_key')) { + $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); + $this->session->set_userdata('qrz_session_key', $qrz_session_key); + } + + $callbook = $this->qrz->search($qra, $this->session->userdata('qrz_session_key')); + echo $callbook['gridsquare']; + + } else { + // Lookup using hamio + $this->load->library('hamio'); + + $callbook = $this->hamio->callsign($qra); - echo $callbook['gridsquare']; - } - } - } + echo $callbook['gridsquare']; + } + } + } - function callsign_qth($callsign) { - if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) { - // Lookup using QRZ - - $this->load->library('qrz'); - - if(!$this->session->userdata('qrz_session_key')) { - $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); - $this->session->set_userdata('qrz_session_key', $qrz_session_key); - } - - $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); - echo $callbook['city']; - - } else { - // Lookup using Callbytxt - $this->load->library('callbytxt'); - - $callbook = $this->callbytxt->callsign($callsign); + function callsign_qth($callsign) { + if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) { + // Lookup using QRZ + + $this->load->library('qrz'); + + if(!$this->session->userdata('qrz_session_key')) { + $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); + $this->session->set_userdata('qrz_session_key', $qrz_session_key); + } + + $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); + echo $callbook['city']; + + } else { + // Lookup using hamio + $this->load->library('hamio'); + + $callbook = $this->hamio->callsign($callsign); - echo $callbook['city']; - } - } - - function callsign_iota($callsign) { - if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) { - // Lookup using QRZ - - $this->load->library('qrz'); - - if(!$this->session->userdata('qrz_session_key')) { - $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); - $this->session->set_userdata('qrz_session_key', $qrz_session_key); - } - - $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); - echo $callbook['iota']; - - } - } - - function callsign_name($callsign) { - $this->load->model('user_model'); + echo $callbook['city']; + } + } + + function callsign_iota($callsign) { + if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) { + // Lookup using QRZ + + $this->load->library('qrz'); + + if(!$this->session->userdata('qrz_session_key')) { + $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); + $this->session->set_userdata('qrz_session_key', $qrz_session_key); + } + + $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); + echo $callbook['iota']; + + } + } + + function callsign_name($callsign) { + $this->load->model('user_model'); if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; } - $this->load->model('logbook_model'); + $this->load->model('logbook_model'); - if($this->logbook_model->call_name($callsign) != null) { - echo $this->logbook_model->call_name($callsign); - } else { - if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) { - // Lookup using QRZ - - $this->load->library('qrz'); - - if(!$this->session->userdata('qrz_session_key')) { - $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); - $this->session->set_userdata('qrz_session_key', $qrz_session_key); - } - - $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); - echo $callbook['name']; - } else { - // Lookup using Callbytxt - $this->load->library('callbytxt'); - - $callbook = $this->callbytxt->callsign($callsign); + if($this->logbook_model->call_name($callsign) != null) { + echo $this->logbook_model->call_name($callsign); + } else { + if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) { + // Lookup using QRZ + + $this->load->library('qrz'); + + if(!$this->session->userdata('qrz_session_key')) { + $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); + $this->session->set_userdata('qrz_session_key', $qrz_session_key); + } + + $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); + echo $callbook['name']; + } else { + // Lookup using hamio + $this->load->library('hamio'); + + $callbook = $this->hamio->callsign($callsign); - echo $callbook['name']; - } - } - } - - function partial($id) { - $this->load->model('user_model'); + echo $callbook['name']; + } + } + } + + function partial($id) { + $this->load->model('user_model'); if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; } - - $this->db->like('COL_CALL', $id); - $this->db->limit(5); - $query = $this->db->get($this->config->item('table_name')); - - if ($query->num_rows() > 0) - { - echo "

QSOs Matches with ".strtoupper($id)."

"; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - foreach ($query->result() as $row) - { - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - } - echo "
DateCallsignRST SentRST RecvBandMode
".$row->COL_TIME_ON."".$row->COL_CALL."".$row->COL_RST_SENT."".$row->COL_RST_RCVD."".$row->COL_BAND."".$row->COL_MODE."
"; - } else { - $this->load->library('Callbytxt'); - $data['callsign'] = $this->callbytxt->callsign($id); - $data['id'] = strtoupper($id); + + $this->db->like('COL_CALL', $id); + $this->db->limit(5); + $query = $this->db->get($this->config->item('table_name')); + + if ($query->num_rows() > 0) + { + echo "

QSOs Matches with ".strtoupper($id)."

"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + foreach ($query->result() as $row) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + } + echo "
DateCallsignRST SentRST RecvBandMode
".$row->COL_TIME_ON."".$row->COL_CALL."".$row->COL_RST_SENT."".$row->COL_RST_RCVD."".$row->COL_BAND."".$row->COL_MODE."
"; + } else { + $this->load->library('hamio'); + $data['callsign'] = $this->hamio->callsign($id); + $data['id'] = strtoupper($id); - $this->load->view('search/result', $data); - } - } - - function search_result($id) { - $this->load->model('user_model'); + $this->load->view('search/result', $data); + } + } + + function search_result($id) { + $this->load->model('user_model'); if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; } - $this->db->like('COL_CALL', $id); - $this->db->or_like('COL_GRIDSQUARE', $id); - $query = $this->db->get($this->config->item('table_name')); + $this->db->like('COL_CALL', $id); + $this->db->or_like('COL_GRIDSQUARE', $id); + $query = $this->db->get($this->config->item('table_name')); - if ($query->num_rows() > 0) - { - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; - foreach ($query->result() as $row) - { - echo ""; - echo ""; - echo ""; - echo ""; - echo ""; + if ($query->num_rows() > 0) + { + echo "
DateCallsignRST SentRST RecvBandMode
".$row->COL_TIME_ON."".$row->COL_CALL."".$row->COL_RST_SENT."".$row->COL_RST_RCVD."
"; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; + foreach ($query->result() as $row) + { + echo ""; + echo ""; + echo ""; + echo ""; + echo ""; - if($row->COL_SAT_NAME != null) { - echo ""; - } else { - echo ""; - } - echo ""; - if($this->user_model->authorize(2)) { - echo ""; - } else { - echo ""; - } - echo ""; - } - echo "
DateCallsignRST SentRST RecvBandMode
".$row->COL_TIME_ON."".$row->COL_CALL."".$row->COL_RST_SENT."".$row->COL_RST_RCVD."".$row->COL_SAT_NAME."".$row->COL_BAND."".$row->COL_MODE."COL_PRIMARY_KEY."\" >\"Edit\"
"; - } else { - if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) { - // Lookup using QRZ - - $this->load->library('qrz'); - - if(!$this->session->userdata('qrz_session_key')) { - $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); - $this->session->set_userdata('qrz_session_key', $qrz_session_key); - } - - $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key')); + if($row->COL_SAT_NAME != null) { + echo "".$row->COL_SAT_NAME.""; + } else { + echo "".$row->COL_BAND.""; + } + echo "".$row->COL_MODE.""; + if($this->user_model->authorize(2)) { + echo "COL_PRIMARY_KEY."\" >\"Edit\""; + } else { + echo ""; + } + echo ""; + } + echo ""; + } else { + if ($this->config->item('callbook') == "qrz" && $this->config->item('qrz_username') != null && $this->config->item('qrz_password') != null) { + // Lookup using QRZ + + $this->load->library('qrz'); + + if(!$this->session->userdata('qrz_session_key')) { + $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); + $this->session->set_userdata('qrz_session_key', $qrz_session_key); + } + + $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key')); - - } else { - // Lookup using Callbytxt - $this->load->library('callbytxt'); - - $data['callsign'] = $this->callbytxt->callsign($id); - } - - $data['id'] = strtoupper($id); + + } else { + // Lookup using hamio + $this->load->library('hamio'); + + $data['callsign'] = $this->hamio->callsign($id); + } + + $data['id'] = strtoupper($id); - $this->load->view('search/result', $data); - } - } - - // Find DXCC - function find_dxcc($callsign) { - $this->load->model('dxcc'); + $this->load->view('search/result', $data); + } + } + + // Find DXCC + function find_dxcc($callsign) { + $this->load->model('dxcc'); - $dxccinfo = $this->dxcc->info($callsign); + $dxccinfo = $this->dxcc->info($callsign); - foreach ($dxccinfo->result() as $row) - { - echo ucfirst(strtolower($row->name)); - } - } - - /* return station bearing */ - function bearing() { - $this->load->library('Qra'); - - if($this->uri->segment(3) != null) { - if($this->session->userdata('user_locator') != null){ - $mylocator = $this->session->userdata('user_locator'); - } else { - $mylocator = $this->config->item('locator'); - } + foreach ($dxccinfo->result() as $row) + { + echo ucfirst(strtolower($row->name)); + } + } + + /* return station bearing */ + function bearing() { + $this->load->library('Qra'); + + if($this->uri->segment(3) != null) { + if($this->session->userdata('user_locator') != null){ + $mylocator = $this->session->userdata('user_locator'); + } else { + $mylocator = $this->config->item('locator'); + } - $bearing = $this->qra->bearing($mylocator, $this->uri->segment(3)); - - echo $bearing; - } - } + $bearing = $this->qra->bearing($mylocator, $this->uri->segment(3)); + + echo $bearing; + } + } } \ No newline at end of file diff --git a/application/controllers/welcome.php b/application/controllers/welcome.php index 4d9d10d5..7ad2da42 100644 --- a/application/controllers/welcome.php +++ b/application/controllers/welcome.php @@ -3,15 +3,15 @@ class Welcome extends CI_Controller { - public function index() - { - $this->load->library('callbytxt'); - - $callbook = $this->callbytxt->callsign('m3php'); - - print_r($callbook); + public function index() + { + $this->load->library('hamio'); + + $callbook = $this->hamio->callsign('m3php'); + + print_r($callbook); - } + } } /* End of file welcome.php */ diff --git a/application/libraries/callbytxt.php b/application/libraries/callbytxt.php deleted file mode 100644 index 163f6fd7..00000000 --- a/application/libraries/callbytxt.php +++ /dev/null @@ -1,37 +0,0 @@ -calls->callsign; - $data['name'] = ucfirst(strtolower((current(explode(' ', $json_output->calls->first_name))))); - - if(strtoupper($json_output->calls->gridsquare) == "JJ00AA") { - $data['gridsquare'] = ""; - } else { - $data['gridsquare'] = ucfirst($json_output->calls->gridsquare); - } - - $data['city'] = ucfirst(strtolower(($json_output->calls->city))); - - $data['lat'] = ucfirst($json_output->calls->lat); - $data['long'] = ucfirst($json_output->calls->long); - - return $data; - } - } -} - -/* End of file Callbytxt.php */ \ No newline at end of file diff --git a/application/libraries/hamio.php b/application/libraries/hamio.php new file mode 100644 index 00000000..1a85a4d1 --- /dev/null +++ b/application/libraries/hamio.php @@ -0,0 +1,30 @@ +calls->callsign; + $data['name'] = "$json_output->calls->first_name $json_output->calls->last_name"; + $data['gridsquare'] = $json_output->calls->gridsquare; + $data['city'] = ucfirst(strtolower(($json_output->calls->city))); + $data['lat'] = ucfirst($json_output->calls->latitude); + $data['long'] = ucfirst($json_output->calls->longitude); + + return $data; + } + } +} + +/* End of file hamio.php */ \ No newline at end of file diff --git a/application/models/logbook_model.php b/application/models/logbook_model.php index 09d0f0f9..595f7e36 100644 --- a/application/models/logbook_model.php +++ b/application/models/logbook_model.php @@ -8,17 +8,17 @@ class Logbook_model extends CI_Model { parent::__construct(); } - /* Add QSO to Logbook */ - function add() { - // Join date+time - $datetime = date('Y-m-d') ." ". $this->input->post('start_time'); - - if ($this->input->post('prop_mode') != null) { - $prop_mode = $this->input->post('prop_mode'); - } else { - $prop_mode = ""; - } - + /* Add QSO to Logbook */ + function add() { + // Join date+time + $datetime = date('Y-m-d') ." ". $this->input->post('start_time'); + + if ($this->input->post('prop_mode') != null) { + $prop_mode = $this->input->post('prop_mode'); + } else { + $prop_mode = ""; + } + if($this->input->post('sat_name')) { $prop_mode = "SAT"; } @@ -29,61 +29,61 @@ class Logbook_model extends CI_Model { $locator = $this->config->item('locator'); } - // Create array with QSO Data - - $data = array( - 'COL_TIME_ON' => $datetime, - 'COL_TIME_OFF' => $datetime, - 'COL_CALL' => strtoupper($this->input->post('callsign')), - 'COL_BAND' => $this->input->post('band'), - 'COL_FREQ' => $this->input->post('freq_display'), - 'COL_MODE' => $this->input->post('mode'), - 'COL_RST_RCVD' => $this->input->post('rst_recv'), - 'COL_RST_SENT' => $this->input->post('rst_sent'), - 'COL_NAME' => $this->input->post('name'), - 'COL_COMMENT' => $this->input->post('comment'), - 'COL_SAT_NAME' => strtoupper($this->input->post('sat_name')), - 'COL_SAT_MODE' => strtoupper($this->input->post('sat_mode')), - 'COL_GRIDSQUARE' => strtoupper(trim($this->input->post('locator'))), - 'COL_COUNTRY' => $this->input->post('country'), - 'COL_MY_RIG' => $this->input->post('equipment'), - 'COL_QSLSDATE' => date('Y-m-d'), - 'COL_QSLRDATE' => date('Y-m-d'), - 'COL_QSL_SENT' => $this->input->post('qsl_sent'), - 'COL_QSL_RCVD' => $this->input->post('qsl_recv'), - 'COL_QSL_SENT_VIA' => $this->input->post('qsl_sent_method'), - 'COL_QSL_RCVD_VIA' => $this->input->post('qsl_recv_method'), - 'COL_QSL_VIA' => $this->input->post('qsl_via'), - 'COL_OPERATOR' => $this->session->userdata('user_callsign'), - 'COL_QTH' => $this->input->post('qth'), - 'COL_PROP_MODE' => $prop_mode, - 'COL_IOTA' => $this->input->post('iota_ref'), - 'COL_MY_GRIDSQUARE' => strtoupper($locator), - 'COL_DISTANCE' => "0", - 'COL_FREQ_RX' => 0, - 'COL_BAND_RX' => null, - 'COL_ANT_AZ' => null, - 'COL_ANT_EL' => null, - 'COL_A_INDEX' => null, - 'COL_AGE' => null, - 'COL_TEN_TEN' => null, - 'COL_TX_PWR' => null, - 'COL_STX' => null, - 'COL_SRX' => null, - 'COL_NR_BURSTS' => null, - 'COL_NR_PINGS' => null, - 'COL_MAX_BURSTS' => null, - 'COL_K_INDEX' => null, - 'COL_SFI' => null, - 'COL_RX_PWR' => null, - 'COL_LAT' => null, - 'COL_LON' => null, - ); + // Create array with QSO Data + + $data = array( + 'COL_TIME_ON' => $datetime, + 'COL_TIME_OFF' => $datetime, + 'COL_CALL' => strtoupper($this->input->post('callsign')), + 'COL_BAND' => $this->input->post('band'), + 'COL_FREQ' => $this->input->post('freq_display'), + 'COL_MODE' => $this->input->post('mode'), + 'COL_RST_RCVD' => $this->input->post('rst_recv'), + 'COL_RST_SENT' => $this->input->post('rst_sent'), + 'COL_NAME' => $this->input->post('name'), + 'COL_COMMENT' => $this->input->post('comment'), + 'COL_SAT_NAME' => strtoupper($this->input->post('sat_name')), + 'COL_SAT_MODE' => strtoupper($this->input->post('sat_mode')), + 'COL_GRIDSQUARE' => strtoupper(trim($this->input->post('locator'))), + 'COL_COUNTRY' => $this->input->post('country'), + 'COL_MY_RIG' => $this->input->post('equipment'), + 'COL_QSLSDATE' => date('Y-m-d'), + 'COL_QSLRDATE' => date('Y-m-d'), + 'COL_QSL_SENT' => $this->input->post('qsl_sent'), + 'COL_QSL_RCVD' => $this->input->post('qsl_recv'), + 'COL_QSL_SENT_VIA' => $this->input->post('qsl_sent_method'), + 'COL_QSL_RCVD_VIA' => $this->input->post('qsl_recv_method'), + 'COL_QSL_VIA' => $this->input->post('qsl_via'), + 'COL_OPERATOR' => $this->session->userdata('user_callsign'), + 'COL_QTH' => $this->input->post('qth'), + 'COL_PROP_MODE' => $prop_mode, + 'COL_IOTA' => $this->input->post('iota_ref'), + 'COL_MY_GRIDSQUARE' => strtoupper($locator), + 'COL_DISTANCE' => "0", + 'COL_FREQ_RX' => 0, + 'COL_BAND_RX' => null, + 'COL_ANT_AZ' => null, + 'COL_ANT_EL' => null, + 'COL_A_INDEX' => null, + 'COL_AGE' => null, + 'COL_TEN_TEN' => null, + 'COL_TX_PWR' => null, + 'COL_STX' => null, + 'COL_SRX' => null, + 'COL_NR_BURSTS' => null, + 'COL_NR_PINGS' => null, + 'COL_MAX_BURSTS' => null, + 'COL_K_INDEX' => null, + 'COL_SFI' => null, + 'COL_RX_PWR' => null, + 'COL_LAT' => null, + 'COL_LON' => null, + ); - $this->add_qso($data); - } + $this->add_qso($data); + } - /* Add QSO to Logbook */ + /* Add QSO to Logbook */ function create_qso() { // Join date+time $datetime = date("Y-m-d",strtotime($this->input->post('start_date')))." ". $this->input->post('start_time'); @@ -157,65 +157,65 @@ class Logbook_model extends CI_Model { $this->add_qso($data); } - function add_qso($data) { - // Add QSO to database - $this->db->insert($this->config->item('table_name'), $data); - } - - /* Edit QSO */ - function edit() { - - $data = array( - 'COL_TIME_ON' => $this->input->post('time_on'), - 'COL_TIME_OFF' => $this->input->post('time_off'), - 'COL_CALL' => strtoupper($this->input->post('callsign')), - 'COL_BAND' => $this->input->post('band'), - 'COL_FREQ' => $this->input->post('freq'), - 'COL_MODE' => $this->input->post('mode'), - 'COL_RST_RCVD' => $this->input->post('rst_recv'), - 'COL_RST_SENT' => $this->input->post('rst_sent'), - 'COL_GRIDSQUARE' => $this->input->post('locator'), - 'COL_COMMENT' => $this->input->post('comment'), - 'COL_NAME' => $this->input->post('name'), + function add_qso($data) { + // Add QSO to database + $this->db->insert($this->config->item('table_name'), $data); + } + + /* Edit QSO */ + function edit() { + + $data = array( + 'COL_TIME_ON' => $this->input->post('time_on'), + 'COL_TIME_OFF' => $this->input->post('time_off'), + 'COL_CALL' => strtoupper($this->input->post('callsign')), + 'COL_BAND' => $this->input->post('band'), + 'COL_FREQ' => $this->input->post('freq'), + 'COL_MODE' => $this->input->post('mode'), + 'COL_RST_RCVD' => $this->input->post('rst_recv'), + 'COL_RST_SENT' => $this->input->post('rst_sent'), + 'COL_GRIDSQUARE' => $this->input->post('locator'), + 'COL_COMMENT' => $this->input->post('comment'), + 'COL_NAME' => $this->input->post('name'), 'COL_COUNTRY' => $this->input->post('country'), - 'COL_SAT_NAME' => $this->input->post('sat_name'), - 'COL_SAT_MODE' => $this->input->post('sat_mode'), - 'COL_QSLSDATE' => date('Y-m-d'), - 'COL_QSLRDATE' => date('Y-m-d'), - 'COL_QSL_SENT' => $this->input->post('qsl_sent'), - 'COL_QSL_RCVD' => $this->input->post('qsl_recv'), - 'COL_QSL_SENT_VIA' => $this->input->post('qsl_sent_method'), - 'COL_QSL_RCVD_VIA' => $this->input->post('qsl_recv_method'), - 'COL_IOTA' => $this->input->post('iota_ref'), - 'COL_QTH' => $this->input->post('qth'), - 'COL_FREQ_RX' => '0', - 'COL_STX_STRING' => $this->input->post('stx_string'), + 'COL_SAT_NAME' => $this->input->post('sat_name'), + 'COL_SAT_MODE' => $this->input->post('sat_mode'), + 'COL_QSLSDATE' => date('Y-m-d'), + 'COL_QSLRDATE' => date('Y-m-d'), + 'COL_QSL_SENT' => $this->input->post('qsl_sent'), + 'COL_QSL_RCVD' => $this->input->post('qsl_recv'), + 'COL_QSL_SENT_VIA' => $this->input->post('qsl_sent_method'), + 'COL_QSL_RCVD_VIA' => $this->input->post('qsl_recv_method'), + 'COL_IOTA' => $this->input->post('iota_ref'), + 'COL_QTH' => $this->input->post('qth'), + 'COL_FREQ_RX' => '0', + 'COL_STX_STRING' => $this->input->post('stx_string'), 'COL_SRX_STRING' => $this->input->post('srx_string') - ); + ); - $this->db->where('COL_PRIMARY_KEY', $this->input->post('id')); - $this->db->update($this->config->item('table_name'), $data); - - } + $this->db->where('COL_PRIMARY_KEY', $this->input->post('id')); + $this->db->update($this->config->item('table_name'), $data); + + } - /* Return last 10 QSOs */ - function last_ten() { - $this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME'); - $this->db->order_by("COL_TIME_ON", "desc"); - $this->db->limit(10); - - return $this->db->get($this->config->item('table_name')); - } - - /* Show custom number of qsos */ - function last_custom($num) { - $this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME'); - $this->db->order_by("COL_TIME_ON", "desc"); - $this->db->limit($num); - - return $this->db->get($this->config->item('table_name')); - } - + /* Return last 10 QSOs */ + function last_ten() { + $this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME'); + $this->db->order_by("COL_TIME_ON", "desc"); + $this->db->limit(10); + + return $this->db->get($this->config->item('table_name')); + } + + /* Show custom number of qsos */ + function last_custom($num) { + $this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME'); + $this->db->order_by("COL_TIME_ON", "desc"); + $this->db->limit($num); + + return $this->db->get($this->config->item('table_name')); + } + /* Callsign QRA */ function call_qra($callsign) { @@ -253,42 +253,36 @@ class Logbook_model extends CI_Model { { $data = $query->row(); $name = $data->COL_NAME; - } else { - //$json = file_get_contents("http://callbytxt.org/db/".$callsign.".json"); - - //$obj = json_decode($json); - //$uppercase_name = strtolower($obj->{'calls'}->{'first_name'}); - // $name = ucwords($uppercase_name); } return $name; } - /* Return QSO Info */ - function qso_info($id) { - $this->db->where('COL_PRIMARY_KEY', $id); - - return $this->db->get($this->config->item('table_name')); - } - - - function get_qsos($num, $offset) { - $this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME, COL_GRIDSQUARE, COL_QSL_RCVD, COL_QSL_SENT, COL_STX_STRING, COL_SRX_STRING'); - $this->db->order_by("COL_TIME_ON", "desc"); - - $query = $this->db->get($this->config->item('table_name'), $num, $offset); - - return $query; - } + /* Return QSO Info */ + function qso_info($id) { + $this->db->where('COL_PRIMARY_KEY', $id); + + return $this->db->get($this->config->item('table_name')); + } - function get_last_qsos($num) { - $this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME, COL_STX_STRING, COL_SRX_STRING'); - $this->db->order_by("COL_TIME_ON", "desc"); - $this->db->limit($num); - $query = $this->db->get($this->config->item('table_name')); - - return $query; - } + + function get_qsos($num, $offset) { + $this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME, COL_GRIDSQUARE, COL_QSL_RCVD, COL_QSL_SENT, COL_STX_STRING, COL_SRX_STRING'); + $this->db->order_by("COL_TIME_ON", "desc"); + + $query = $this->db->get($this->config->item('table_name'), $num, $offset); + + return $query; + } + + function get_last_qsos($num) { + $this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME, COL_STX_STRING, COL_SRX_STRING'); + $this->db->order_by("COL_TIME_ON", "desc"); + $this->db->limit($num); + $query = $this->db->get($this->config->item('table_name')); + + return $query; + } /* Get All QSOs with a Valid Grid */ function kml_get_all_qsos() { @@ -310,15 +304,15 @@ class Logbook_model extends CI_Model { return $query; } - - function get_todays_qsos() { + + function get_todays_qsos() { - $morning = date('Y-m-d 00:00:00'); - $night = date('Y-m-d 23:59:59'); - $query = $this->db->query('SELECT * FROM '.$this->config->item('table_name').' WHERE COL_TIME_ON between \''.$morning.'\' AND \''.$night.'\''); + $morning = date('Y-m-d 00:00:00'); + $night = date('Y-m-d 23:59:59'); + $query = $this->db->query('SELECT * FROM '.$this->config->item('table_name').' WHERE COL_TIME_ON between \''.$morning.'\' AND \''.$night.'\''); - return $query; - } + return $query; + } /* Return total number of qsos */ function total_qsos() { @@ -516,29 +510,29 @@ class Logbook_model extends CI_Model { return $query->num_rows(); } - function api_search_query($query) { - $time_start = microtime(true); - $results = $this->db->query($query); + function api_search_query($query) { + $time_start = microtime(true); + $results = $this->db->query($query); if(!$results) { return array('query' => $query, 'error' => $this->db->_error_number(), 'time' => 0); } - $time_end = microtime(true); - $time = round($time_end - $time_start, 4); + $time_end = microtime(true); + $time = round($time_end - $time_start, 4); - return array('query' => $query, 'results' => $results, 'time' => $time); - } + return array('query' => $query, 'results' => $results, 'time' => $time); + } - function api_insert_query($query) { - $time_start = microtime(true); - $results = $this->db->insert($this->config->item('table_name'), $query); + function api_insert_query($query) { + $time_start = microtime(true); + $results = $this->db->insert($this->config->item('table_name'), $query); if(!$results) { return array('query' => $query, 'error' => $this->db->_error_number(), 'time' => 0); } - $time_end = microtime(true); - $time = round($time_end - $time_start, 4); + $time_end = microtime(true); + $time = round($time_end - $time_start, 4); - return array('query' => $this->db->queries[2], 'result_string' => $results, 'time' => $time); - } + return array('query' => $this->db->queries[2], 'result_string' => $results, 'time' => $time); + } /* Delete QSO based on the QSO ID */ function delete($id) {