| 
									
										
										
										
											2012-11-14 09:44:23 +08:00
										 |  |  | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Logbook extends CI_Controller { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |   function index() | 
					
						
							|  |  |  |   { | 
					
						
							| 
									
										
										
										
											2012-11-14 09:44:23 +08:00
										 |  |  |         $this->load->model('user_model'); | 
					
						
							|  |  |  |         if(!$this->user_model->authorize($this->config->item('auth_mode'))) { | 
					
						
							|  |  |  |             if($this->user_model->validate_session()) { | 
					
						
							|  |  |  |                 $this->user_model->clear_session(); | 
					
						
							|  |  |  |                 show_error('Access denied<p>Click <a href="'.site_url('user/login').'">here</a> to log in as another user', 403); | 
					
						
							|  |  |  |             } else { | 
					
						
							|  |  |  |                 redirect('user/login'); | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     $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'] = '<strong class="active"><a href="">'; | 
					
						
							|  |  |  |     $config['cur_tag_close'] = '</a></strong>'; | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     $this->pagination->initialize($config); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     //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)); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-12-01 00:16:43 +08:00
										 |  |  |     // Calculate Lat/Lng from Locator to use on Maps
 | 
					
						
							|  |  |  |     if($this->session->userdata('user_locator')) { | 
					
						
							|  |  |  |         $this->load->library('qra'); | 
					
						
							|  |  |  |         $qra_position = $this->qra->qra2latlong($this->session->userdata('user_locator')); | 
					
						
							|  |  |  |         $data['qra'] = "set"; | 
					
						
							|  |  |  |         $data['qra_lat'] = $qra_position[0]; | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |         $data['qra_lng'] = $qra_position[1]; | 
					
						
							| 
									
										
										
										
											2012-12-01 00:16:43 +08:00
										 |  |  |     } else { | 
					
						
							|  |  |  |         $data['qra'] = "none"; | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     // load the view
 | 
					
						
							|  |  |  |     $data['page_title'] = "Logbook"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $this->load->view('layout/header', $data); | 
					
						
							|  |  |  |     $this->load->view('view_log/index'); | 
					
						
							|  |  |  |     $this->load->view('layout/footer'); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   /* Used to generate maps for displaying on /logbook/ */ | 
					
						
							|  |  |  |   function qso_map() { | 
					
						
							|  |  |  |     $this->load->model('logbook_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $this->load->library('qra'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     $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 ","; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |         if($row->COL_SAT_NAME != null) { | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |             echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />SAT: ".$row->COL_SAT_NAME."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}"; | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |             echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />Band: ".$row->COL_BAND."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}"; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $count++; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       } else { | 
					
						
							|  |  |  |         $query = $this->db->query(' | 
					
						
							|  |  |  |           SELECT * | 
					
						
							|  |  |  |           FROM dxcc | 
					
						
							|  |  |  |           WHERE prefix = SUBSTRING( \''.$row->COL_CALL.'\', 1, LENGTH( prefix ) ) | 
					
						
							|  |  |  |           ORDER BY LENGTH( prefix ) DESC | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |           LIMIT 1 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         '); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         foreach ($query->result() as $dxcc) { | 
					
						
							|  |  |  |           if($count != 1) { | 
					
						
							|  |  |  |           echo ","; | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |           echo "{\"lat\":\"".$dxcc->lat."\",\"lng\":\"".$dxcc->long."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />Band: ".$row->COL_BAND."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}"; | 
					
						
							|  |  |  |           $count++; | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     echo "]"; | 
					
						
							|  |  |  |     echo "}"; | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |   function view($id) { | 
					
						
							|  |  |  |     $this->load->model('user_model'); | 
					
						
							| 
									
										
										
										
											2012-11-14 09:44:23 +08:00
										 |  |  |         if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     $this->load->library('qra'); | 
					
						
							| 
									
										
										
										
											2012-11-14 09:44:23 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |     $this->db->where('COL_PRIMARY_KEY', $id); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     $data['query'] = $this->db->get($this->config->item('table_name')); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     $this->load->view('view_log/qso', $data); | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |   function callsign_qra($qra) { | 
					
						
							|  |  |  |     $this->load->model('user_model'); | 
					
						
							| 
									
										
										
										
											2012-11-14 09:44:23 +08:00
										 |  |  |         if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     $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
 | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         $this->load->library('qrz'); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         if(!$this->session->userdata('qrz_session_key')) { | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |           $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |           $this->session->set_userdata('qrz_session_key', $qrz_session_key); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         $callbook = $this->qrz->search($qra, $this->session->userdata('qrz_session_key')); | 
					
						
							|  |  |  |         echo $callbook['gridsquare']; | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |       } else { | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |         // Lookup using hamli
 | 
					
						
							|  |  |  |         $this->load->library('hamli'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $callbook = $this->hamli->callsign($qra); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |         echo $callbook['gridsquare']; | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   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
 | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         $this->load->library('qrz'); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         if(!$this->session->userdata('qrz_session_key')) { | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |           $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |           $this->session->set_userdata('qrz_session_key', $qrz_session_key); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); | 
					
						
							|  |  |  |         echo $callbook['city']; | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |       } else { | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |         // Lookup using hamli
 | 
					
						
							|  |  |  |         $this->load->library('hamli'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $callbook = $this->hamli->callsign($callsign); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |         echo $callbook['city']; | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |       } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |   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
 | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         $this->load->library('qrz'); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         if(!$this->session->userdata('qrz_session_key')) { | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |           $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |           $this->session->set_userdata('qrz_session_key', $qrz_session_key); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); | 
					
						
							|  |  |  |         echo $callbook['iota']; | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |       } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |   function callsign_name($callsign) { | 
					
						
							|  |  |  |     $this->load->model('user_model'); | 
					
						
							| 
									
										
										
										
											2012-11-14 09:44:23 +08:00
										 |  |  |         if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     $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
 | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         $this->load->library('qrz'); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         if(!$this->session->userdata('qrz_session_key')) { | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |           $qrz_session_key = $this->qrz->session($this->config->item('qrz_username'), $this->config->item('qrz_password')); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |           $this->session->set_userdata('qrz_session_key', $qrz_session_key); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         $callbook = $this->qrz->search($callsign, $this->session->userdata('qrz_session_key')); | 
					
						
							|  |  |  |         echo $callbook['name']; | 
					
						
							|  |  |  |       } else { | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |         // Lookup using hamli
 | 
					
						
							|  |  |  |         $this->load->library('hamli'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $callbook = $this->hamli->callsign($callsign); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |         echo $callbook['name']; | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |   function partial($id) { | 
					
						
							|  |  |  |     $this->load->model('user_model'); | 
					
						
							| 
									
										
										
										
											2012-11-14 09:44:23 +08:00
										 |  |  |         if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     $this->db->like('COL_CALL', $id); | 
					
						
							|  |  |  |     $this->db->order_by("COL_TIME_ON", "desc"); | 
					
						
							| 
									
										
										
										
											2013-05-05 06:51:41 +08:00
										 |  |  |     $this->db->limit(16); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     $query = $this->db->get($this->config->item('table_name')); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     if ($query->num_rows() > 0) | 
					
						
							|  |  |  |     { | 
					
						
							|  |  |  |       echo "<h2>QSOs Matches with ".strtoupper($id)."</h2>"; | 
					
						
							|  |  |  |       echo "<table class=\"partial\" width=\"100%\">"; | 
					
						
							|  |  |  |         echo "<tr>"; | 
					
						
							|  |  |  |           echo "<td>Date</td>"; | 
					
						
							|  |  |  |           echo "<td>Callsign</td>"; | 
					
						
							|  |  |  |           echo "<td>RST Sent</td>"; | 
					
						
							|  |  |  |           echo "<td>RST Recv</td>"; | 
					
						
							|  |  |  |           echo "<td>Band</td>"; | 
					
						
							|  |  |  |           echo "<td>Mode</td>"; | 
					
						
							|  |  |  |         echo "</tr>"; | 
					
						
							|  |  |  |       foreach ($query->result() as $row) | 
					
						
							|  |  |  |       { | 
					
						
							|  |  |  |         echo "<tr>"; | 
					
						
							|  |  |  |           echo "<td>".$row->COL_TIME_ON."</td>"; | 
					
						
							|  |  |  |           echo "<td>".$row->COL_CALL."</td>"; | 
					
						
							|  |  |  |           echo "<td>".$row->COL_RST_SENT."</td>"; | 
					
						
							|  |  |  |           echo "<td>".$row->COL_RST_RCVD."</td>"; | 
					
						
							| 
									
										
										
										
											2013-05-05 06:51:41 +08:00
										 |  |  |           if($row->COL_SAT_NAME != null) { | 
					
						
							|  |  |  |                   echo "<td>".$row->COL_SAT_NAME."</td>"; | 
					
						
							|  |  |  |           } else { | 
					
						
							|  |  |  |                 echo "<td>".$row->COL_BAND."</td>"; | 
					
						
							|  |  |  |           } | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |           echo "<td>".$row->COL_MODE."</td>"; | 
					
						
							|  |  |  |         echo "</tr>"; | 
					
						
							|  |  |  |       } | 
					
						
							|  |  |  |       echo "</table>"; | 
					
						
							|  |  |  |     } else { | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |         $this->load->library('hamli'); | 
					
						
							|  |  |  |         $data['callsign'] = $this->hamli->callsign($id); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         $data['id'] = strtoupper($id); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         $this->load->view('search/result', $data); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |   function search_result($id) { | 
					
						
							|  |  |  |     $this->load->model('user_model'); | 
					
						
							| 
									
										
										
										
											2014-12-29 00:33:52 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; } | 
					
						
							| 
									
										
										
										
											2012-11-14 09:44:23 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     $this->db->like('COL_CALL', $id); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |     $this->db->or_like('COL_GRIDSQUARE', $id); | 
					
						
							|  |  |  |     $this->db->order_by("COL_TIME_ON", "desc"); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     $query = $this->db->get($this->config->item('table_name')); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     if ($query->num_rows() > 0) | 
					
						
							|  |  |  |     { | 
					
						
							| 
									
										
										
										
											2014-12-29 00:33:52 +08:00
										 |  |  |       $data['results'] = $query; | 
					
						
							|  |  |  |       $this->load->view('search/result_search.php', $data); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     } else { | 
					
						
							| 
									
										
										
										
											2013-08-07 06:02:49 +08:00
										 |  |  |       $this->load->model('search'); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-07 06:02:49 +08:00
										 |  |  |       $iota_search = $this->search->callsign_iota($id); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-08-07 06:02:49 +08:00
										 |  |  |       if ($iota_search->num_rows() > 0) | 
					
						
							|  |  |  |       { | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |         $data['results'] = $iota_search; | 
					
						
							| 
									
										
										
										
											2013-08-07 06:02:49 +08:00
										 |  |  |         $this->load->view('search/result_search.php', $data); | 
					
						
							|  |  |  |       } else { | 
					
						
							| 
									
										
										
										
											2014-12-29 00:33:52 +08:00
										 |  |  |         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'); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-29 00:33:52 +08:00
										 |  |  |           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); | 
					
						
							|  |  |  |           } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-29 00:33:52 +08:00
										 |  |  |           $data['callsign'] = $this->qrz->search($id, $this->session->userdata('qrz_session_key')); | 
					
						
							|  |  |  |         } else { | 
					
						
							|  |  |  |           // Lookup using hamli
 | 
					
						
							|  |  |  |           $this->load->library('hamli'); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-29 00:33:52 +08:00
										 |  |  |           $data['callsign'] = $this->hamli->callsign($id); | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-29 00:33:52 +08:00
										 |  |  |         $data['id'] = strtoupper($id); | 
					
						
							| 
									
										
										
										
											2013-08-07 06:02:49 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-29 00:33:52 +08:00
										 |  |  |         $this->load->view('search/result', $data); | 
					
						
							| 
									
										
										
										
											2013-08-07 06:02:49 +08:00
										 |  |  |       } | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |     } | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |   // Find DXCC
 | 
					
						
							|  |  |  |   function find_dxcc($callsign) { | 
					
						
							| 
									
										
										
										
											2014-12-29 00:22:59 +08:00
										 |  |  |     // Live lookup against Clublogs API
 | 
					
						
							|  |  |  |     $url = "https://secure.clublog.org/dxcc?call=".$callsign."&api=a11c3235cd74b88212ce726857056939d52372bd&full=1"; | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-29 00:22:59 +08:00
										 |  |  |     $json = file_get_contents($url); | 
					
						
							|  |  |  |     $data = json_decode($json, TRUE); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2014-12-29 00:22:59 +08:00
										 |  |  |     echo ucfirst(strtolower($data['Name'])); | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |   } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |   /* return station bearing */ | 
					
						
							|  |  |  |   function bearing() { | 
					
						
							|  |  |  |       $this->load->library('Qra'); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |       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)); | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2012-11-15 00:01:51 +08:00
										 |  |  |         echo $bearing; | 
					
						
							|  |  |  |       } | 
					
						
							| 
									
										
										
										
											2014-06-07 05:46:38 +08:00
										 |  |  |   } | 
					
						
							|  |  |  | } |