当前提交
						8a534042df
					
				
					共有  6 个文件被更改,包括 285 次插入 和 0 次删除
				
			
		|  | @ -17,6 +17,56 @@ class Awards extends CI_Controller { | ||||||
| 		$this->load->view('interface_assets/footer'); | 		$this->load->view('interface_assets/footer'); | ||||||
| 	} | 	} | ||||||
| 	 | 	 | ||||||
|  | 	public function dok () | ||||||
|  | 	{ | ||||||
|  | 		//echo "Needs Developed";
 | ||||||
|  | 		$this->load->model('dok'); | ||||||
|  | 		$data['doks'] = $this->dok->show_stats(); | ||||||
|  | 		$data['worked_bands'] = $this->dok->get_worked_bands(); | ||||||
|  | 
 | ||||||
|  | 		// Render Page
 | ||||||
|  | 		$data['page_title'] = "Awards - DOK"; | ||||||
|  | 		$this->load->view('interface_assets/header', $data); | ||||||
|  | 		$this->load->view('awards/dok/index'); | ||||||
|  | 		$this->load->view('interface_assets/footer'); | ||||||
|  | 
 | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
|  | 	public function dok_details(){ | ||||||
|  |         $a = $this->input->get(); | ||||||
|  |         $q = ""; | ||||||
|  |         foreach ($a as $key => $value) { | ||||||
|  |         	$q .= $key."=".$value.("(and)"); | ||||||
|  |         } | ||||||
|  |         $q = substr($q, 0, strlen($q)-13); | ||||||
|  | 
 | ||||||
|  |         $arguments["query"] = $q; | ||||||
|  |         $arguments["fields"] = ''; | ||||||
|  |         $arguments["format"] = "json"; | ||||||
|  |         $arguments["limit"] = ''; | ||||||
|  |         $arguments["order"] = ''; | ||||||
|  | 
 | ||||||
|  |         // print_r($arguments);
 | ||||||
|  |         // return;
 | ||||||
|  | 
 | ||||||
|  | 		// Load the API and Logbook models
 | ||||||
|  | 		$this->load->model('api_model'); | ||||||
|  | 		$this->load->model('logbook_model'); | ||||||
|  | 
 | ||||||
|  | 		// Call the parser within the API model to build the query
 | ||||||
|  | 		$query = $this->api_model->select_parse($arguments); | ||||||
|  | 
 | ||||||
|  | 		// Execute the query, and retrieve the results
 | ||||||
|  | 		$data = $this->logbook_model->api_search_query($query); | ||||||
|  | 
 | ||||||
|  | 		// Render Page
 | ||||||
|  | 		$data['page_title'] = "Log View - DOK"; | ||||||
|  | 		$data['filter'] = str_replace("(and)", ", ", $q);//implode(", ", array_keys($a));
 | ||||||
|  | 		$this->load->view('interface_assets/header', $data); | ||||||
|  | 		$this->load->view('awards/dok/details'); | ||||||
|  | 		$this->load->view('interface_assets/footer'); | ||||||
|  | 	} | ||||||
|  | 	 | ||||||
| 	public function dxcc () | 	public function dxcc () | ||||||
| 	{ | 	{ | ||||||
| 		//echo "Needs Developed";
 | 		//echo "Needs Developed";
 | ||||||
|  |  | ||||||
|  | @ -337,6 +337,7 @@ class API_Model extends CI_Model { | ||||||
| 		'COL_CONTEST_ID'				=> array('Name' => 'ContestID', 'Description' => '', 'Type' => ''), | 		'COL_CONTEST_ID'				=> array('Name' => 'ContestID', 'Description' => '', 'Type' => ''), | ||||||
| 		'COL_COUNTRY'					=> array('Name' => 'Country', 'Description' => '', 'Type' => ''), | 		'COL_COUNTRY'					=> array('Name' => 'Country', 'Description' => '', 'Type' => ''), | ||||||
| 		'COL_CQZ'						=> array('Name' => 'CQZone', 'Description' => '', 'Type' => ''), | 		'COL_CQZ'						=> array('Name' => 'CQZone', 'Description' => '', 'Type' => ''), | ||||||
|  | 		'COL_DARC_DOK'					=> array('Name' => 'Dok', 'Description' => '', 'Type' => ''), | ||||||
| 		'COL_DISTANCE'					=> array('Name' => 'Distance', 'Description' => '', 'Type' => ''), | 		'COL_DISTANCE'					=> array('Name' => 'Distance', 'Description' => '', 'Type' => ''), | ||||||
| 		'COL_DXCC'						=> array('Name' => 'DXCC', 'Description' => '', 'Type' => ''), | 		'COL_DXCC'						=> array('Name' => 'DXCC', 'Description' => '', 'Type' => ''), | ||||||
| 		'COL_EMAIL'						=> array('Name' => 'EMail', 'Description' => '', 'Type' => ''), | 		'COL_EMAIL'						=> array('Name' => 'EMail', 'Description' => '', 'Type' => ''), | ||||||
|  |  | ||||||
							
								
								
									
										127
									
								
								application/models/Dok.php
									
									
									
									
									
										普通文件
									
								
							
							
						
						
									
										127
									
								
								application/models/Dok.php
									
									
									
									
									
										普通文件
									
								
							|  | @ -0,0 +1,127 @@ | ||||||
|  | <?php | ||||||
|  | 
 | ||||||
|  | class DOK extends CI_Model { | ||||||
|  | 
 | ||||||
|  | 	public $bandslots = array("160m"=>0, | ||||||
|  |                            "80m"=>0, | ||||||
|  |                            "60m"=>0, | ||||||
|  |                            "40m"=>0, | ||||||
|  |                            "30m"=>0, | ||||||
|  |                            "20m"=>0, | ||||||
|  |                            "17m"=>0, | ||||||
|  |                            "15m"=>0, | ||||||
|  |                            "12m"=>0, | ||||||
|  |                            "10m"=>0, | ||||||
|  |                            "6m" =>0, | ||||||
|  |                            "4m" =>0, | ||||||
|  |                            "2m" =>0, | ||||||
|  |                            "70cm"=>0, | ||||||
|  |                            "23cm"=>0, | ||||||
|  |                            "13cm"=>0, | ||||||
|  |                            "9cm"=>0, | ||||||
|  |                            "6cm"=>0, | ||||||
|  |                            "3cm"=>0, | ||||||
|  |                            "1.25cm"=>0); | ||||||
|  | 
 | ||||||
|  | 	function __construct() | ||||||
|  | 	{ | ||||||
|  | 		// Call the Model constructor
 | ||||||
|  | 		parent::__construct(); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	function get_worked_bands() { | ||||||
|  | 		// get all worked slots from database
 | ||||||
|  | 		$data = $this->db->query( | ||||||
|  | 			"SELECT distinct LOWER(`COL_BAND`) as `COL_BAND` FROM `".$this->config->item('table_name')."` WHERE COL_DARC_DOK IS NOT NULL AND COL_DARC_DOK != ''  AND COL_DXCC = 230 " | ||||||
|  | 		); | ||||||
|  | 		$worked_slots = array(); | ||||||
|  | 		foreach($data->result() as $row){ | ||||||
|  | 			array_push($worked_slots, $row->COL_BAND); | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 		// bring worked-slots in order of defined $bandslots
 | ||||||
|  | 		$results = array(); | ||||||
|  | 		foreach(array_keys($this->bandslots) as $slot) { | ||||||
|  | 			if(in_array($slot, $worked_slots)) { | ||||||
|  | 				array_push($results, $slot); | ||||||
|  | 			}  | ||||||
|  | 		} | ||||||
|  | 		return $results; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	function show_stats(){ | ||||||
|  | 
 | ||||||
|  |         $data = $this->db->query( | ||||||
|  |             "select upper(COL_DARC_DOK) as COL_DARC_DOK, COL_MODE, lcase(COL_BAND) as COL_BAND, count(COL_DARC_DOK) as cnt
 | ||||||
|  |             from ".$this->config->item('table_name')." WHERE COL_DARC_DOK IS NOT NULL AND COL_DARC_DOK != '' AND COL_DXCC = 230 | ||||||
|  |             group by COL_DARC_DOK, COL_MODE, COL_BAND" | ||||||
|  |             ); | ||||||
|  | 
 | ||||||
|  |         $results = array(); | ||||||
|  |         $last_dok = ""; | ||||||
|  |         foreach($data->result() as $row){ | ||||||
|  |             if ($last_dok != $row->COL_DARC_DOK){ | ||||||
|  |                 // new row
 | ||||||
|  |                 $results[$row->COL_DARC_DOK] = $this->bandslots; | ||||||
|  |                 $last_dok = $row->COL_DARC_DOK; | ||||||
|  |             } | ||||||
|  | 
 | ||||||
|  |             // update stats
 | ||||||
|  |             if (!isset($results[$row->COL_DARC_DOK])) | ||||||
|  |                 $results[$row->COL_DARC_DOK] = [];  | ||||||
|  | 
 | ||||||
|  |             if (!isset($results[$row->COL_DARC_DOK][$row->COL_BAND])) | ||||||
|  |                 $results[$row->COL_DARC_DOK][$row->COL_BAND] = 0;  | ||||||
|  | 
 | ||||||
|  |             $results[$row->COL_DARC_DOK][$row->COL_BAND] += $row->cnt; | ||||||
|  |         } | ||||||
|  |          | ||||||
|  |         return $results; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	/** | ||||||
|  | 	*	Function: mostactive | ||||||
|  | 	*	Information: Returns the most active band | ||||||
|  | 	**/ | ||||||
|  | 	function info($callsign) | ||||||
|  | 	{ | ||||||
|  | 		$exceptions = $this->db->query(' | ||||||
|  | 				SELECT * | ||||||
|  | 				FROM `dxccexceptions` | ||||||
|  | 				WHERE `prefix` = \''.$callsign.'\' | ||||||
|  | 				LIMIT 1 | ||||||
|  | 			'); | ||||||
|  | 
 | ||||||
|  | 		if ($exceptions->num_rows() > 0) | ||||||
|  | 		{ | ||||||
|  | 			return $exceptions; | ||||||
|  | 		} else { | ||||||
|  | 
 | ||||||
|  | 			$query = $this->db->query(' | ||||||
|  | 					SELECT * | ||||||
|  | 					FROM dxcc_entities | ||||||
|  | 					WHERE prefix = SUBSTRING( \''.$callsign.'\', 1, LENGTH( prefix ) ) | ||||||
|  | 					ORDER BY LENGTH( prefix ) DESC | ||||||
|  | 					LIMIT 1 | ||||||
|  | 				'); | ||||||
|  | 
 | ||||||
|  | 			return $query; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  |     function search(){ | ||||||
|  |         print_r($this->input->get()); | ||||||
|  |         return; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  | 	function empty_table($table) { | ||||||
|  | 		$this->db->empty_table($table); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 	function list() { | ||||||
|  | 		$this->db->order_by('name', 'ASC'); | ||||||
|  | 		return $this->db->get('dxcc_entities'); | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | ?>
 | ||||||
|  | @ -0,0 +1,40 @@ | ||||||
|  | <script type="text/javascript" src="<?php echo base_url() ;?>/fancybox/jquery.mousewheel-3.0.4.pack.js"></script> | ||||||
|  | 
 | ||||||
|  | 	<script type="text/javascript" src="<?php echo base_url() ;?>/fancybox/jquery.fancybox-1.3.4.pack.js"></script> | ||||||
|  | 
 | ||||||
|  | 	<link rel="stylesheet" type="text/css" href="<?php echo base_url() ;?>/fancybox/jquery.fancybox-1.3.4.css" media="screen" /> | ||||||
|  | 	 | ||||||
|  | 	<script type="text/javascript"> | ||||||
|  | 		$(document).ready(function() { | ||||||
|  | 			$(".qsobox").fancybox({ | ||||||
|  | 				'autoDimensions'	: false, | ||||||
|  | 				'width'         	: 700, | ||||||
|  | 				'height'        	: 300, | ||||||
|  | 				'transitionIn'		: 'fade', | ||||||
|  | 				'transitionOut'		: 'fade', | ||||||
|  | 				'type'				: 'iframe' | ||||||
|  | 			}); | ||||||
|  | 
 | ||||||
|  | 			$(".editbox").fancybox({ | ||||||
|  | 				'autoDimensions'	: false, | ||||||
|  | 				'width'         	: 600, | ||||||
|  | 				'height'        	: 550, | ||||||
|  | 				'transitionIn'		: 'fade', | ||||||
|  | 				'transitionOut'		: 'fade', | ||||||
|  | 				'type'				: 'iframe', | ||||||
|  | 				onCleanup   : function() { | ||||||
|  |                 return window.location.reload(); | ||||||
|  |             	} | ||||||
|  | 			}); | ||||||
|  | 
 | ||||||
|  | 		}); | ||||||
|  | 	</script> | ||||||
|  | 	 | ||||||
|  | 
 | ||||||
|  | <div class="container"> | ||||||
|  | 
 | ||||||
|  | 	<h2>Logbook</h2> | ||||||
|  | 
 | ||||||
|  | 	<h3>Filtering on <?php echo $filter ?></h3>
 | ||||||
|  | 	 | ||||||
|  | 	<?php $this->load->view('view_log/partial/log') ?>
 | ||||||
|  | @ -0,0 +1,66 @@ | ||||||
|  | 
 | ||||||
|  | <div class="container"> | ||||||
|  | 	<h1><?php echo $page_title; ?></h1>
 | ||||||
|  | 
 | ||||||
|  | 	<!-- Sub Nav for Awards --> | ||||||
|  | 	 | ||||||
|  |     <?php $this->load->view("awards/nav_bar")?>
 | ||||||
|  |      | ||||||
|  | 	<table class="table table-striped table-hover"> | ||||||
|  | 	<thead> | ||||||
|  |         <tr> | ||||||
|  |         <td style="width:225px">DOKs (<?php echo count($doks)?>)</td>
 | ||||||
|  |     <?php | ||||||
|  | 	foreach ($worked_bands as $slot) { | ||||||
|  | 		echo "          <td>$slot</td>\n"; | ||||||
|  | 	} | ||||||
|  |     ?>
 | ||||||
|  |         </tr> | ||||||
|  |     </thead> | ||||||
|  |     <tbody> | ||||||
|  |     <?php | ||||||
|  |         foreach($doks as $dok=>$val){ | ||||||
|  |             print("<tr><td>$dok</td>"); | ||||||
|  |             foreach($val as $band=>$count){ | ||||||
|  | 		if (in_array($band, $worked_bands)) { | ||||||
|  | 	                if ($count == 0){ | ||||||
|  | 	      	             print("<td> </td>"); | ||||||
|  | 	                }else{ | ||||||
|  | 	                    printf("<td><a href='dok_details?Dok=\"%s\"&Band=\"%s\"'>%d</a></td>", str_replace("&", "%26", $dok), $band, $count); | ||||||
|  | 	                } | ||||||
|  | 		}  | ||||||
|  |             } | ||||||
|  |             print("</tr>"); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |     ?>
 | ||||||
|  |     </tbody> | ||||||
|  | 
 | ||||||
|  | 	</table> | ||||||
|  | 	<style> | ||||||
|  |         #table-fixed{
 | ||||||
|  |             position: fixed; | ||||||
|  |             top: 40px; | ||||||
|  |             display: none; | ||||||
|  |             background-color: white; | ||||||
|  |             border: 1px solid black; | ||||||
|  |         } | ||||||
|  | 	</style> | ||||||
|  | 	<script> | ||||||
|  | 	var tableOffset = $(".zebra-striped").offset().top-40; | ||||||
|  | 	$('#table-fixed').width($(".zebra-striped").width()); | ||||||
|  | 	var $header = $(".zebra-striped > thead").clone(); | ||||||
|  | 	var $fixedHeader = $("#table-fixed").append($header); | ||||||
|  | 
 | ||||||
|  | 	$(window).bind("scroll", function() { | ||||||
|  | 	    var offset = $(this).scrollTop(); | ||||||
|  | 
 | ||||||
|  |         if (offset >= tableOffset && $fixedHeader.is(":hidden")) { | ||||||
|  | 	        $fixedHeader.show(); | ||||||
|  | 	    } | ||||||
|  | 	    else if (offset < tableOffset) { | ||||||
|  | 	        $fixedHeader.hide(); | ||||||
|  | 	    } | ||||||
|  | 	}); | ||||||
|  | 	</script> | ||||||
|  | </div> | ||||||
|  | @ -4,4 +4,5 @@ | ||||||
|   <a class="nav-link" href="<?php echo site_url('awards/wab'); ?>">WAB</a> |   <a class="nav-link" href="<?php echo site_url('awards/wab'); ?>">WAB</a> | ||||||
|   <a class="nav-link" href="<?php echo site_url('awards/sota'); ?>">SOTA</a> |   <a class="nav-link" href="<?php echo site_url('awards/sota'); ?>">SOTA</a> | ||||||
|   <a class="nav-link" href="<?php echo site_url('awards/cq'); ?>">CQ</a> |   <a class="nav-link" href="<?php echo site_url('awards/cq'); ?>">CQ</a> | ||||||
|  |   <a class="nav-link" href="<?php echo site_url('awards/dok'); ?>">DOK</a> | ||||||
| </nav> | </nav> | ||||||
		正在加载…
	
		在新工单中引用