| 
									
										
										
										
											2019-08-14 04:22:06 +08:00
										 |  |  | <?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /* | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	Data lookup functions used within Cloudlog | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class Lookup extends CI_Controller { | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-06 02:35:55 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	function __construct() | 
					
						
							|  |  |  | 	{ | 
					
						
							|  |  |  | 		parent::__construct(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$this->load->model('user_model'); | 
					
						
							|  |  |  | 		if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); } | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2021-03-14 17:11:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-14 04:22:06 +08:00
										 |  |  | 	public function index() | 
					
						
							|  |  |  | 	{ | 
					
						
							| 
									
										
										
										
											2021-03-14 17:11:21 +08:00
										 |  |  | 		$data['page_title'] = "Quick Lookup"; | 
					
						
							|  |  |  | 		$this->load->model('logbook_model'); | 
					
						
							|  |  |  | 		$data['dxcc'] = $this->logbook_model->fetchDxcc(); | 
					
						
							|  |  |  | 		$data['iota'] = $this->logbook_model->fetchIota(); | 
					
						
							|  |  |  | 		$this->load->view('lookup/index', $data); | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 	public function search() { | 
					
						
							|  |  |  | 		$CI =& get_instance(); | 
					
						
							|  |  |  | 		$CI->load->model('Stations'); | 
					
						
							|  |  |  | 		$station_id = $CI->Stations->find_active(); | 
					
						
							| 
									
										
										
										
											2019-08-14 04:22:06 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-03-14 17:11:21 +08:00
										 |  |  | 		$this->load->model('lookup_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$data['bands'] = $this->lookup_model->get_Worked_Bands($station_id); | 
					
						
							| 
									
										
										
										
											2021-03-18 01:23:01 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		$queryinfo['type'] = xss_clean($this->input->post('type')); | 
					
						
							|  |  |  | 		$queryinfo['dxcc'] = xss_clean($this->input->post('dxcc')); | 
					
						
							|  |  |  | 		$queryinfo['was'] = xss_clean($this->input->post('was')); | 
					
						
							|  |  |  | 		$queryinfo['sota'] = xss_clean($this->input->post('sota')); | 
					
						
							|  |  |  | 		$queryinfo['grid'] = xss_clean($this->input->post('grid')); | 
					
						
							|  |  |  | 		$queryinfo['iota'] = xss_clean($this->input->post('iota')); | 
					
						
							|  |  |  | 		$queryinfo['cqz'] = xss_clean($this->input->post('cqz')); | 
					
						
							|  |  |  | 		$queryinfo['wwff'] = xss_clean($this->input->post('wwff')); | 
					
						
							|  |  |  | 		$queryinfo['station_id'] = $station_id; | 
					
						
							|  |  |  | 		$queryinfo['bands'] = $data['bands']; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$data['result'] = $this->lookup_model->getSearchResult($queryinfo); | 
					
						
							| 
									
										
										
										
											2021-03-14 17:11:21 +08:00
										 |  |  | 		$this->load->view('lookup/result', $data); | 
					
						
							| 
									
										
										
										
											2019-08-14 04:22:06 +08:00
										 |  |  | 	} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-15 18:53:32 +08:00
										 |  |  | 	public function scp($call) { | 
					
						
							| 
									
										
										
										
											2021-03-14 17:11:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-11 23:42:18 +08:00
										 |  |  | 		if($call) { | 
					
						
							|  |  |  | 			$uppercase_callsign = strtoupper($call); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-15 18:53:32 +08:00
										 |  |  | 		// SCP results from logbook
 | 
					
						
							|  |  |  | 		$this->load->model('logbook_model'); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-11 23:42:18 +08:00
										 |  |  | 		$arCalls = array(); | 
					
						
							| 
									
										
										
										
											2019-08-15 18:53:32 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-11 23:42:18 +08:00
										 |  |  | 		$query = $this->logbook_model->get_callsigns($uppercase_callsign); | 
					
						
							| 
									
										
										
										
											2019-08-15 18:53:32 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-11 23:42:18 +08:00
										 |  |  | 		foreach ($query->result() as $row) | 
					
						
							|  |  |  | 	    { | 
					
						
							|  |  |  | 	    	if (in_array($row->COL_CALL, $arCalls) == false) | 
					
						
							|  |  |  | 			{ | 
					
						
							|  |  |  | 					$arCalls[] = $row->COL_CALL; | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 	    } | 
					
						
							| 
									
										
										
										
											2019-10-11 20:58:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-15 18:53:32 +08:00
										 |  |  | 		// SCP results from master scp db
 | 
					
						
							| 
									
										
										
										
											2019-10-11 23:42:18 +08:00
										 |  |  | 		$file = 'updates/clublog_scp.txt'; | 
					
						
							| 
									
										
										
										
											2019-08-14 04:22:06 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-15 19:00:57 +08:00
										 |  |  | 		if (is_readable($file)) { | 
					
						
							|  |  |  | 			$lines = file($file, FILE_IGNORE_NEW_LINES); | 
					
						
							| 
									
										
										
										
											2019-10-11 23:42:18 +08:00
										 |  |  | 			$input = preg_quote($uppercase_callsign, '~'); | 
					
						
							| 
									
										
										
										
											2019-08-15 19:00:57 +08:00
										 |  |  | 			$result = preg_grep('~' . $input . '~', $lines, 0); | 
					
						
							| 
									
										
										
										
											2019-10-11 23:42:18 +08:00
										 |  |  | 			foreach ($result as &$value) { | 
					
						
							|  |  |  | 				if (in_array($value, $arCalls) == false) | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					$arCalls[] = $value; | 
					
						
							|  |  |  | 				} | 
					
						
							|  |  |  | 			} | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		$file = 'updates/masterscp.txt'; | 
					
						
							| 
									
										
										
										
											2019-08-14 04:22:06 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-11 23:42:18 +08:00
										 |  |  | 		if (is_readable($file)) { | 
					
						
							|  |  |  | 			$lines = file($file, FILE_IGNORE_NEW_LINES); | 
					
						
							|  |  |  | 			$input = preg_quote($uppercase_callsign, '~'); | 
					
						
							|  |  |  | 			$result = preg_grep('~' . $input . '~', $lines, 0); | 
					
						
							| 
									
										
										
										
											2019-08-15 19:00:57 +08:00
										 |  |  | 			foreach ($result as &$value) { | 
					
						
							| 
									
										
										
										
											2019-10-11 23:42:18 +08:00
										 |  |  | 				if (in_array($value, $arCalls) == false) | 
					
						
							|  |  |  | 				{ | 
					
						
							|  |  |  | 					$arCalls[] = $value; | 
					
						
							|  |  |  | 				} | 
					
						
							| 
									
										
										
										
											2019-08-15 19:00:57 +08:00
										 |  |  | 			} | 
					
						
							| 
									
										
										
										
											2019-08-14 04:22:06 +08:00
										 |  |  | 		} | 
					
						
							| 
									
										
										
										
											2019-10-11 23:42:18 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 		sort($arCalls); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 		foreach ($arCalls as $strCall) | 
					
						
							|  |  |  | 		{ | 
					
						
							|  |  |  | 			echo " " . $strCall . " "; | 
					
						
							|  |  |  | 		} | 
					
						
							| 
									
										
										
										
											2021-03-14 17:11:21 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-10-09 20:54:07 +08:00
										 |  |  | 	} | 
					
						
							| 
									
										
										
										
											2019-10-11 20:58:43 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2019-08-15 18:54:18 +08:00
										 |  |  | } |