当前提交
						9325169e24
					
				
					共有  23 个文件被更改,包括 329 次插入 和 63 次删除
				
			
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							|  | @ -1,5 +1,6 @@ | |||
| /application/config/database.php | ||||
| /application/config/config.php | ||||
| /application/logs/*.php | ||||
| /uploads/*.adi | ||||
| /uploads/*.ADI | ||||
| /uploads/*.tq8 | ||||
|  |  | |||
|  | @ -21,7 +21,7 @@ $config['migration_enabled'] = TRUE; | |||
| | be upgraded / downgraded to. | ||||
| | | ||||
| */ | ||||
| $config['migration_version'] = 12; | ||||
| $config['migration_version'] = 13; | ||||
| 
 | ||||
| /* | ||||
| |-------------------------------------------------------------------------- | ||||
|  |  | |||
|  | @ -60,7 +60,7 @@ class Awards extends CI_Controller { | |||
| 
 | ||||
| 		// Render Page
 | ||||
| 		$data['page_title'] = "Log View - DXCC"; | ||||
| 		$data['filter'] = $a["Country"] . " and " . $a["Band"]; | ||||
| 		$data['filter'] = str_replace("(and)", ", ", $q);//implode(", ", array_keys($a));
 | ||||
| 		$this->load->view('layout/header', $data); | ||||
| 		$this->load->view('awards/dxcc/details'); | ||||
| 		$this->load->view('layout/footer'); | ||||
|  | @ -117,4 +117,18 @@ class Awards extends CI_Controller { | |||
| 		$this->load->view('layout/footer'); | ||||
| 	} | ||||
| 	 | ||||
| 	public function cq(){ | ||||
|         $this->load->model('cq'); | ||||
|         $zones = array(); | ||||
|         foreach($this->cq->get_zones() as $row){ | ||||
|             array_push($zones, intval($row->COL_CQZ)); | ||||
|         } | ||||
|         $data['cqz'] = $zones; | ||||
| 
 | ||||
|         // Render page
 | ||||
|         $data['page_title'] = "Awards - CQ Magazine"; | ||||
| 		$this->load->view('layout/header', $data); | ||||
| 		$this->load->view('awards/cq/index'); | ||||
| 		$this->load->view('layout/footer'); | ||||
| 	} | ||||
| } | ||||
|  |  | |||
|  | @ -371,6 +371,17 @@ class eqsl extends CI_Controller { | |||
| 				$adif .= $qsl['COL_RST_SENT']; | ||||
| 				$adif .= "%20"; | ||||
| 
 | ||||
| 				// adding prop mode if it isn't blank
 | ||||
| 				if ($qsl['COL_PROP_MODE'] = ''){ | ||||
|                     $adif .= "%3C"; | ||||
|                     $adif .= "PROP_MODE"; | ||||
|                     $adif .= "%3A"; | ||||
|                     $adif .= strlen($qsl['COL_PROP_MODE']); | ||||
|                     $adif .= "%3E"; | ||||
|                     $adif .= $qsl['COL_PROP_MODE']; | ||||
|                     $adif .= "%20"; | ||||
| 				} | ||||
| 
 | ||||
| 				# Tie a bow on it!
 | ||||
| 				$adif .= "%3C"; | ||||
| 				$adif .= "EOR"; | ||||
|  |  | |||
|  | @ -351,6 +351,19 @@ class Logbook extends CI_Controller { | |||
|     echo $json; | ||||
|   } | ||||
| 
 | ||||
|   /* | ||||
|    * Provide a dxcc search, returning results json encoded | ||||
|    */ | ||||
|   function local_find_dxcc($call = "", $date = "") { | ||||
|     $this->load->model("logbook_model"); | ||||
|     if ($date == ''){ | ||||
|       $date = date("Y-m-d"); | ||||
|     } | ||||
|     $ans = $this->logbook_model->check_dxcc_stored_proc($call, $date); | ||||
|     print json_encode($ans); | ||||
|   } | ||||
| 
 | ||||
| 
 | ||||
|   /* return station bearing */ | ||||
|   function bearing() { | ||||
|       $this->load->library('Qra'); | ||||
|  |  | |||
|  | @ -58,7 +58,10 @@ class Statistics extends CI_Controller { | |||
| 			} | ||||
| 		} | ||||
| 	 | ||||
| 	    $this->load->model('logbook_model'); | ||||
| 
 | ||||
| 		$data['page_title'] = "Custom Statistics"; | ||||
| 		$data['modes'] = $this->logbook_model->get_modes(); | ||||
| 	 | ||||
| 		$this->load->helper(array('form', 'url')); | ||||
| 
 | ||||
|  | @ -70,7 +73,7 @@ class Statistics extends CI_Controller { | |||
| 		if ($this->form_validation->run() == FALSE) | ||||
| 		{ | ||||
| 			$this->load->view('layout/header', $data); | ||||
| 			$this->load->view('statistics/custom'); | ||||
| 			$this->load->view('statistics/custom', $data); | ||||
| 			$this->load->view('layout/footer'); | ||||
| 		} | ||||
| 		else | ||||
|  | @ -80,7 +83,6 @@ class Statistics extends CI_Controller { | |||
| 	 | ||||
| 			$data['result'] = $this->stats->result(); | ||||
| 		 | ||||
| 			 | ||||
| 			$this->load->view('layout/header', $data); | ||||
| 			$this->load->view('statistics/custom_result'); | ||||
| 			$this->load->view('layout/footer'); | ||||
|  |  | |||
|  | @ -0,0 +1,46 @@ | |||
| <?php defined('BASEPATH') OR exit('No direct script access allowed'); | ||||
| 
 | ||||
| class Migration_add_dxcc_stored_proc extends CI_Migration { | ||||
| 
 | ||||
|   public function up(){ | ||||
|     $res = $this->db->query("drop procedure if exists `find_country`"); | ||||
|     if (!$res){ | ||||
|       print ("Error dropping stored proc"); | ||||
|       exit(0); | ||||
|     } | ||||
| 
 | ||||
|     $sql = <<<EOF | ||||
| CREATE PROCEDURE `find_country`( | ||||
|   IN callsign varchar(10),  | ||||
|   IN qso_date date,  | ||||
|   OUT country varchar(255), | ||||
|   OUT dxcc_id int) | ||||
| begin | ||||
|   declare calllen int default 0; | ||||
|   set calllen = char_length(callsign); | ||||
|   L1: while calllen >0 do | ||||
|     select `entity`, `adif` into country, dxcc_id | ||||
|       from dxcc_prefixes  | ||||
|       where `call`= substring(callsign, 1, calllen) | ||||
|       and (`start` <= qso_date or `start`='0000-00-00') | ||||
|       and (`end` >= qso_date or `end`='0000-00-00'); | ||||
|     if (FOUND_ROWS() >0) THEN | ||||
|       LEAVE L1; | ||||
|     else | ||||
|       set calllen = calllen - 1; | ||||
|     end IF; | ||||
|   end WHILE; | ||||
| end | ||||
| EOF; | ||||
| 
 | ||||
|     $res = $this->db->query($sql); | ||||
|     if (!$res){ | ||||
|       print ("Error setting stored proc"); | ||||
|       exit(0); | ||||
|     } | ||||
|   } | ||||
| 
 | ||||
|   public function down(){ | ||||
|     $this->db->query("drop procedure if exists `find_country`"); | ||||
|   } | ||||
| } | ||||
							
								
								
									
										21
									
								
								application/models/Cq.php
									
									
									
									
									
										普通文件
									
								
							
							
						
						
									
										21
									
								
								application/models/Cq.php
									
									
									
									
									
										普通文件
									
								
							|  | @ -0,0 +1,21 @@ | |||
| <?php | ||||
| 
 | ||||
| class CQ extends CI_Model{ | ||||
| 
 | ||||
|     function __construct(){ | ||||
|         // Call the Model constructor
 | ||||
|         parent::__construct(); | ||||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     function get_zones(){ | ||||
|         $data = $this->db->query( | ||||
|             "select COL_CQZ, count(COL_CQZ)
 | ||||
|             from TABLE_HRD_CONTACTS_V01 | ||||
|             where COL_CQZ is not null | ||||
|             group by COL_CQZ order by COL_CQZ" | ||||
|         ); | ||||
| 
 | ||||
|         return $data->result(); | ||||
|     } | ||||
| } | ||||
|  | @ -30,15 +30,15 @@ class DXCC extends CI_Model { | |||
|                                                 "15m"=>0,  | ||||
|                                                 "12m"=>0,  | ||||
|                                                 "10m"=>0,  | ||||
|                                                 "4m" =>0, | ||||
|                                                 "6m" =>0, | ||||
|                                                 "4m" =>0,  | ||||
|                                                 "2m" =>0, | ||||
|                                                 "70cm"=>0); | ||||
|                 $last_country = $row->COL_COUNTRY; | ||||
|             } | ||||
| 
 | ||||
|             // update stats
 | ||||
|             $results[$row->COL_COUNTRY][$row->COL_BAND] = $row->cnt; | ||||
|             $results[$row->COL_COUNTRY][$row->COL_BAND] += $row->cnt; | ||||
|         } | ||||
| 
 | ||||
|         // print_r($results);
 | ||||
|  |  | |||
|  | @ -480,6 +480,12 @@ class Logbook_model extends CI_Model { | |||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /* Return the list of modes in the logbook */ | ||||
|     function get_modes(){ | ||||
|         $query = $this->db->query('select distinct(COL_MODE) from '.$this->config->item('table_name').' order by COL_MODE'); | ||||
|         return $query; | ||||
|     } | ||||
| 
 | ||||
|     /* Return total number of QSOs per band */ | ||||
|    function total_bands() { | ||||
|         $query = $this->db->query('SELECT DISTINCT (COL_BAND) AS band, count( * ) AS count FROM '.$this->config->item('table_name').' GROUP BY band ORDER BY count DESC'); | ||||
|  | @ -567,8 +573,8 @@ class Logbook_model extends CI_Model { | |||
|     function import_check($datetime, $callsign, $band) { | ||||
| 
 | ||||
| 		$this->db->select('COL_TIME_ON, COL_CALL, COL_BAND'); | ||||
| 		$this->db->where('COL_TIME_ON >= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL -5 MINUTE )'); | ||||
| 		$this->db->where('COL_TIME_ON <= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL 5 MINUTE )'); | ||||
| 		$this->db->where('COL_TIME_ON >= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL -15 MINUTE )'); | ||||
| 		$this->db->where('COL_TIME_ON <= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL 15 MINUTE )'); | ||||
| 		$this->db->where('COL_CALL', $callsign); | ||||
| 		$this->db->where('COL_BAND', $band); | ||||
| 
 | ||||
|  | @ -620,8 +626,8 @@ class Logbook_model extends CI_Model { | |||
| 			   'COL_EQSL_QSL_RCVD' => $qsl_status | ||||
| 		); | ||||
| 
 | ||||
| 		$this->db->where('COL_TIME_ON >= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL -5 MINUTE )'); | ||||
| 		$this->db->where('COL_TIME_ON <= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL 5 MINUTE )'); | ||||
| 		$this->db->where('COL_TIME_ON >= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL -15 MINUTE )'); | ||||
| 		$this->db->where('COL_TIME_ON <= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL 15 MINUTE )'); | ||||
| 		$this->db->where('COL_CALL', $callsign); | ||||
| 		$this->db->where('COL_BAND', $band); | ||||
| 
 | ||||
|  | @ -666,8 +672,8 @@ class Logbook_model extends CI_Model { | |||
|   	// Determine if we've already received an eQSL for this QSO
 | ||||
|   	function eqsl_dupe_check($datetime, $callsign, $band, $qsl_status) { | ||||
|     	$this->db->select('COL_EQSL_QSLRDATE'); | ||||
|     	$this->db->where('COL_TIME_ON >= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL -5 MINUTE )'); | ||||
| 		$this->db->where('COL_TIME_ON <= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL 5 MINUTE )'); | ||||
|     	$this->db->where('COL_TIME_ON >= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL -15 MINUTE )'); | ||||
| 		$this->db->where('COL_TIME_ON <= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL 15 MINUTE )'); | ||||
|     	$this->db->where('COL_CALL', $callsign); | ||||
|     	$this->db->where('COL_BAND', $band); | ||||
|     	$this->db->where('COL_EQSL_QSL_RCVD', $qsl_status); | ||||
|  | @ -689,7 +695,7 @@ class Logbook_model extends CI_Model { | |||
|   	// Show all QSOs we need to send to eQSL
 | ||||
|   	function eqsl_not_yet_sent() { | ||||
|   		//$this->db->select("COL_PRIMARY_KEY, DATE_FORMAT(COL_TIME_ON,\'%Y%m%d\') AS COL_QSO_DATE, DATE_FORMAT(COL_TIME_ON,\'%H%i\') AS TIME_ON, COL_CALL, COL_MODE, COL_BAND");
 | ||||
|   		$this->db->select("COL_PRIMARY_KEY, COL_TIME_ON, COL_CALL, COL_MODE, COL_BAND, COL_COMMENT, COL_RST_SENT"); | ||||
|   		$this->db->select("COL_PRIMARY_KEY, COL_TIME_ON, COL_CALL, COL_MODE, COL_BAND, COL_COMMENT, COL_RST_SENT, COL_PROP_MODE"); | ||||
|   		$this->db->where('COL_EQSL_QSL_SENT', 'N'); | ||||
| 
 | ||||
|   		return $this->db->get($this->config->item('table_name')); | ||||
|  | @ -739,9 +745,14 @@ class Logbook_model extends CI_Model { | |||
|             $comment = $record['comment']; | ||||
|         } else if (isset($record['notes'])) { | ||||
|             $comment = $record['notes']; | ||||
|         } else { | ||||
|             // Try 'comment'
 | ||||
|             if(isset($record['comment'])){ | ||||
|                 $comment = $record['comment']; | ||||
|             }else{ | ||||
|                 $comment = ""; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         // Store Sat Name
 | ||||
|         if(isset($record['sat_name'])) { | ||||
|  | @ -764,25 +775,30 @@ class Logbook_model extends CI_Model { | |||
|             $gridsquare = ""; | ||||
|         } | ||||
| 
 | ||||
|         // DXCC id
 | ||||
|         $dxcc = $this->check_dxcc_table($record['call'], $time_off); | ||||
| 
 | ||||
|         // Store or find country name
 | ||||
|         if(isset($record['country'])) { | ||||
|             $country = $record['country']; | ||||
|         } else { | ||||
|             $this->load->model('dxcc'); | ||||
|             // $this->load->model('dxcc');
 | ||||
| 
 | ||||
|             $dxccinfo = $this->dxcc->info($record['call']); | ||||
|             // $dxccinfo = $this->dxcc->info($record['call']);
 | ||||
| 
 | ||||
|             if ($dxccinfo->num_rows() > 0) | ||||
|             { | ||||
|                 foreach ($dxccinfo->result() as $row1) | ||||
|                 { | ||||
|                     $country = ucfirst(strtolower($row1->name)); | ||||
|                 } | ||||
|             } else { | ||||
|                 $country = ""; | ||||
|             } | ||||
|             // if ($dxccinfo->num_rows() > 0)
 | ||||
|             // {
 | ||||
|             //     foreach ($dxccinfo->result() as $row1)
 | ||||
|             //     {
 | ||||
|             //         $country = ucfirst(strtolower($row1->name));
 | ||||
|             //     }
 | ||||
|             // } else {
 | ||||
|             //     $country = "";
 | ||||
|             // }
 | ||||
|             $country = ucwords(strtolower($dxcc[1])); | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         // Store QTH
 | ||||
|         if(isset($record['qth'])) { | ||||
|             $qth = $record['qth']; | ||||
|  | @ -912,7 +928,6 @@ class Logbook_model extends CI_Model { | |||
|                 $mode = $record['mode']; | ||||
|         } | ||||
| 
 | ||||
| 
 | ||||
|         $this->db->where('COL_CALL', $record['call']); | ||||
|         $this->db->where('COL_TIME_ON', $time_on); | ||||
|         $check = $this->db->get($this->config->item('table_name')); | ||||
|  | @ -951,6 +966,8 @@ class Logbook_model extends CI_Model { | |||
|                'COL_QSL_SENT' => $QSLSENT, | ||||
|                'COL_LOTW_QSL_SENT' => $LOTWQSLSENT, | ||||
|                'COL_LOTW_QSL_RCVD' => $LOTWQSLRCVD, | ||||
|                'COL_DXCC' => $dxcc[0], | ||||
|                'COL_CQZ' => $dxcc[2], | ||||
|                'COL_MY_RIG' => $my_rig, | ||||
|                'COL_TX_PWR' => $tx_pwr, | ||||
|                'COL_MY_GRIDSQUARE' => $my_gridsquare | ||||
|  | @ -967,13 +984,16 @@ class Logbook_model extends CI_Model { | |||
|     } | ||||
| 
 | ||||
| 
 | ||||
|     private function check_dxcc_table($call, $date){ | ||||
|     /* | ||||
|      * Check the dxxc_prefixes table and return (dxcc, country) | ||||
|      */ | ||||
|     public function check_dxcc_table($call, $date){ | ||||
|         $len = strlen($call); | ||||
| 
 | ||||
|         // query the table, removing a character from the right until a match
 | ||||
|         for ($i = $len; $i > 0; $i--){ | ||||
|             //printf("searching for %s\n", substr($call, 0, $i));
 | ||||
|             $dxcc_result = $this->db->select('`call`, `entity`, `adif`') | ||||
|             $dxcc_result = $this->db->select('`call`, `entity`, `adif`, `cqz`') | ||||
|                                     ->where('call', substr($call, 0, $i)) | ||||
|                                     ->where('(start <= ', $date) | ||||
|                                     ->or_where("start = '0000-00-00')", NULL, false) | ||||
|  | @ -986,13 +1006,28 @@ class Logbook_model extends CI_Model { | |||
| 
 | ||||
|             if ($dxcc_result->num_rows() > 0){ | ||||
|                 $row = $dxcc_result->row_array(); | ||||
|                 return array($row['adif'], $row['entity']); | ||||
|                 return array($row['adif'], $row['entity'], $row['cqz']); | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         return array("Not Found", "Not Found"); | ||||
|     } | ||||
| 
 | ||||
|     /* | ||||
|      * Same as check_dxcc_table, but the functionality is in  | ||||
|      * a stored procedure which we call | ||||
|      */ | ||||
|     public function check_dxcc_stored_proc($call, $date){ | ||||
|         $this->db->query("call find_country('".$call."','".$date."', @country, @adif, @cqz)"); | ||||
|         $res = $this->db->query("select @country as country, @adif as adif, @cqz as cqz"); | ||||
|         $d = $res->result_array(); | ||||
| 
 | ||||
|         // Should only be one result.
 | ||||
|         // NOTE: might cause unexpected data if there's an 
 | ||||
|         // error with clublog.org data.
 | ||||
|         return $d[0]; | ||||
|     } | ||||
| 
 | ||||
|     public function check_missing_dxcc_id($all){ | ||||
|         // get all records with no COL_DXCC
 | ||||
|         $this->db->select("COL_PRIMARY_KEY, COL_CALL, COL_TIME_ON, COL_TIME_OFF"); | ||||
|  | @ -1012,8 +1047,12 @@ class Logbook_model extends CI_Model { | |||
|                 $qso_date = $row['COL_TIME_OFF']=='' ? $row['COL_TIME_ON'] : $row['COL_TIME_ON']; | ||||
|                 $qso_date = strftime("%Y-%m-%d", strtotime($qso_date)); | ||||
| 
 | ||||
|                 // Manual call
 | ||||
|                 $d = $this->check_dxcc_table($row['COL_CALL'], $qso_date); | ||||
| 
 | ||||
|                 // Stored procedure call
 | ||||
|                 //$d = $this->check_dxcc_stored_proc($row["COL_CALL"], $qso_date);
 | ||||
| 
 | ||||
|                 if ($d[0] != 'Not Found'){ | ||||
|                     $sql = sprintf("update %s set COL_COUNTRY = '%s', COL_DXCC='%s' where COL_PRIMARY_KEY=%d", | ||||
|                                     $this->config->item('table_name'), addslashes(ucwords(strtolower($d[1]))), $d[0], $row['COL_PRIMARY_KEY']); | ||||
|  |  | |||
|  | @ -0,0 +1,79 @@ | |||
| <div id="container"> | ||||
|   <h1><?php echo $page_title?></h1>
 | ||||
| 
 | ||||
|   <?php $this->load->view("awards/nav_bar")?>
 | ||||
| 
 | ||||
| <h3>CQ Zones worked:</h3> | ||||
| <map name="CQ"> | ||||
| <area href="dxcc_details?CQZone=1" title="zone_1" class="zone_1" shape="poly" coords="306,0,306,25,322,37,322,41,291,62,291,76,291,84,364,84,364,67,368,64,373,60,378,60,378,57,377,57,372,52,366,52,366,51,393,51,419,51,419,37,422,35,422,33,420,33,417,30,417,26,408,17,408,0"> | ||||
| <area href="dxcc_details?CQZone=2" title="zone_2" class="zone_2" shape="poly" coords="408,0,408,17,417,26,417,30,420,33,422,33,422,35,419,37,419,51,444,51,452,64,452,67,483,67,487,64,495,61,494,53,491,48,490,46,486,40,485,39,461,21,461,19,471,16,477,15,480,14,480,0"> | ||||
| <area href="dxcc_details?CQZone=3" title="zone_3" class="zone_3" shape="poly" coords="366,51,366,52,372,52,377,57,378,57,378,60,373,60,368,64,364,67,364,84,364,97,401,97,404,99,409,99,409,83,406,83,406,77,403,77,399,72,400,67,393,61,393,51"> | ||||
| <area href="dxcc_details?CQZone=4" title="zone_4" class="zone_4" shape="poly" coords="393,51,393,61,400,67,399,72,403,77,406,77,406,83,409,83,409,99,411,98,414,99,415,102,420,101,424,107,427,109,433,110,438,111,440,111,440,100,441,99,444,99,444,93,448,90,448,88,451,81,454,78,457,78,458,75,452,73,452,67,452,64,444,51,419,51"> | ||||
| <area href="dxcc_details?CQZone=5" title="zone_5" class="zone_5" shape="poly" coords="452,67,452,73,458,75,457,78,454,78,451,81,448,88,448,90,444,93,444,99,441,99,440,100,440,111,451,111,452,110,452,108,453,103,458,102,459,101,517,101,517,91,517,53,495,61,487,64,483,67"> | ||||
| <area href="dxcc_details?CQZone=6" title="zone_6" class="zone_6" shape="poly" coords="364,97,364,128,433,128,434,126,435,121,440,121,441,120,444,118,440,111,438,111,433,110,427,109,424,107,420,101,416,102,414,99,411,98,409,99,404,99,401,97"> | ||||
| <area href="dxcc_details?CQZone=7" title="zone_7" class="zone_7" shape="poly" coords="364,128,364,148,432,148,454,139,456,136,456,130,444,118,441,120,440,121,435,121,434,126,433,128"> | ||||
| <area href="dxcc_details?CQZone=8" title="zone_8" class="zone_8" shape="poly" coords="524,116,517,116,517,101,459,101,458,102,453,103,452,109,451,111,440,111,444,118,456,130,465,130,475,132,524,132"> | ||||
| <area href="dxcc_details?CQZone=8" title="zone_8" class="zone_8" shape="poly" coords="0,116,0,132,6,132,6,116"> | ||||
| <area href="dxcc_details?CQZone=9" title="zone_9" class="zone_9" shape="poly" coords="524,132,475,132,465,130,456,130,456,130,456,136,454,139,432,148,432,149,453,149,455,151,459,152,461,155,467,156,466,149,473,150,475,148,474,145,481,144,481,149,487,148,491,148,493,143,524,143"> | ||||
| <area href="dxcc_details?CQZone=9" title="zone_9" class="zone_9" shape="poly" coords="0,132,0,143,6,143,6,132"> | ||||
| <area href="dxcc_details?CQZone=10" title="zone_10" class="zone_10" shape="poly" coords="364,148,364,163,371,163,371,168,393,168,393,185,460,185,466,182,468,184,468,187,470,190,472,189,474,189,476,188,477,186,479,184,483,184,482,179,480,179,480,175,476,173,473,172,473,168,466,169,463,168,459,163,467,156,461,155,459,152,455,151,453,149,432,149,432,148"> | ||||
| <area href="dxcc_details?CQZone=11" title="zone_11" class="zone_11" shape="poly" coords="524,143,493,143,491,148,489,148,487,148,481,149,481,144,474,145,475,148,473,150,466,149,467,156,459,163,463,168,466,169,473,168,473,172,476,173,480,175,480,179,482,179,483,184,479,184,477,186,476,188,483,193,483,197,487,197,489,195,490,196,485,201,484,201,485,202,490,206,490,209,524,209"> | ||||
| <area href="dxcc_details?CQZone=11" title="zone_11" class="zone_11" shape="poly" coords="0,143,0,209,6,209,6,185,6,151,6,143"> | ||||
| <area href="dxcc_details?CQZone=12" title="zone_12" class="zone_12" shape="poly" coords="466,303,466,249,471,244,471,243,468,243,468,239,463,239,463,237,460,236,462,233,463,225,464,213,465,211,465,200,468,197,468,194,470,192,470,190,468,187,468,184,466,182,460,185,393,185,393,303"> | ||||
| <area href="dxcc_details?CQZone=13" title="zone_13" class="zone_13" shape="poly" coords="524,209,490,209,490,206,485,202,484,201,485,201,490,196,489,195,487,197,483,197,483,194,476,188,474,189,472,189,470,190,470,192,468,194,468,197,465,200,465,211,464,213,463,225,462,233,460,236,463,237,463,239,468,239,468,243,471,243,471,244,466,249,466,303,524,303"> | ||||
| <area href="dxcc_details?CQZone=13" title="zone_13" class="zone_13" shape="poly" coords="0,209,0,303,6,303,6,209"> | ||||
| <area href="dxcc_details?CQZone=14" title="zone_14" class="zone_14" shape="poly" coords="0,91,42,91,51,88,54,81,54,74,63,70,62,67,65,65,65,58,70,58,72,56,72,47,78,42,78,38,75,36,75,35,76,35,85,34,88,34,88,28,0,51"> | ||||
| <area href="dxcc_details?CQZone=14" title="zone_14" class="zone_14" shape="poly" coords="524,51,517,53,517,91,524,91"> | ||||
| <area href="dxcc_details?CQZone=15" title="zone_15" class="zone_15" shape="poly" coords="52,87,59,87,63,91,66,92,68,92,72,85,76,82,76,77,74,75,76,70,78,66,78,62,84,56,84,50,88,46,87,43,86,35,85,34,76,35,75,35,75,36,78,38,78,42,72,47,72,56,70,58,65,58,65,65,62,67,63,70,54,74,54,81,52,86"> | ||||
| <area href="dxcc_details?CQZone=16" title="zone_16" class="zone_16" shape="poly" coords="146,0,146,15,145,15,89,28,89,35,86,35,87,43,88,46,84,50,84,56,78,62,78,66,76,70,83,71,85,74,101,81,102,78,113,81,114,81,116,79,114,72,111,69,111,68,118,65,131,65,129,63,129,57,123,56,121,54,121,50,115,51,115,48,111,44,115,42,115,40,119,39,135,39,138,36,138,27,152,21,152,0"> | ||||
| <area href="dxcc_details?CQZone=17" title="zone_17" class="zone_17" shape="poly" coords="152,21,138,27,138,36,135,39,119,39,115,40,115,42,111,44,115,48,115,51,121,50,121,54,123,56,129,57,129,63,131,65,118,65,111,68,111,69,114,72,116,79,121,88,129,88,133,91,136,91,139,88,144,88,147,87,148,89,152,88,150,84,157,82,160,80,160,76,163,75,165,72,167,72,169,69,166,66,159,65,154,59,154,51,156,49,163,49,167,48,168,43,164,39,163,35,160,34,159,31,156,28,153,24,153,21"> | ||||
| <area href="dxcc_details?CQZone=18" title="zone_18" class="zone_18" shape="poly" coords="153,0,153,24,156,28,159,31,160,34,163,35,164,39,168,43,167,48,163,49,156,49,154,51,154,59,159,65,166,66,169,69,172,68,173,65,180,63,182,62,187,62,188,64,192,65,193,66,199,67,201,68,208,68,217,67,219,62,222,61,221,58,218,57,216,52,212,50,209,51,203,51,203,46,199,42,198,42,199,35,206,31,206,27,213,24,213,0"> | ||||
| <area href="dxcc_details?CQZone=19" title="zone_19" class="zone_19" shape="poly" coords="213,0,213,24,206,27,206,31,199,35,198,42,199,42,203,46,203,51,209,51,212,50,216,52,218,57,221,58,222,61,224,61,227,63,228,66,230,68,232,68,234,70,239,70,239,72,235,76,234,79,238,82,240,83,248,75,255,75,255,79,257,79,262,76,291,76,291,62,322,41,322,37,306,25,306,0"> | ||||
| <area href="dxcc_details?CQZone=20" title="zone_20" class="zone_20" shape="poly" coords="76,71,74,75,76,77,76,82,72,85,69,91,69,93,92,98,94,101,97,101,98,100,98,98,100,98,100,95,103,93,104,90,108,88,108,84,105,81,101,81,85,74,83,71"> | ||||
| <area href="dxcc_details?CQZone=21" title="zone_21" class="zone_21" shape="poly" coords="94,101,94,105,107,131,111,131,131,126,144,110,146,110,146,108,145,107,145,105,147,105,149,103,153,97,151,93,156,92,152,88,148,89,147,87,144,88,139,88,136,91,133,91,129,88,121,88,116,79,114,81,112,81,102,78,101,81,105,81,108,84,108,88,104,90,103,93,100,95,100,98,98,98,98,100,97,101"> | ||||
| <area href="dxcc_details?CQZone=22" title="zone_22" class="zone_22" shape="poly" coords="131,151,144,151,148,154,152,154,156,151,160,151,178,151,178,141,178,116,180,111,183,106,185,104,183,102,178,104,169,104,158,98,158,94,156,92,151,93,153,97,149,103,147,105,145,105,145,107,146,108,146,110,144,110,131,126"> | ||||
| <area href="dxcc_details?CQZone=23" title="zone_23" class="zone_23" shape="poly" coords="158,94,158,98,169,104,178,104,183,102,185,104,187,104,187,96,192,96,194,95,197,96,199,94,199,93,201,91,201,88,203,86,212,81,217,81,223,79,222,75,222,72,224,70,226,67,226,65,223,65,221,63,222,61,219,62,217,67,208,68,201,68,199,67,193,66,192,65,188,64,187,62,182,62,180,63,173,65,172,68,169,69,167,72,165,72,163,75,160,76,160,80,157,82,150,84,152,88,156,92"> | ||||
| <area href="dxcc_details?CQZone=24" title="zone_24" class="zone_24" shape="poly" coords="188,111,188,114,191,115,196,112,198,113,200,115,201,121,202,122,205,122,212,119,213,119,220,115,223,113,223,108,225,90,225,84,228,82,234,79,235,76,239,72,239,70,234,70,232,68,230,68,228,66,227,63,224,61,222,61,221,63,223,65,226,65,226,67,224,70,222,72,222,75,223,79,217,81,212,81,203,86,201,88,201,91,199,93,199,94,197,96,194,95,192,96,187,96,186,111"> | ||||
| <area href="dxcc_details?CQZone=25" title="zone_25" class="zone_25" shape="poly" coords="223,113,233,113,249,103,262,84,284,84,291,84,291,76,262,76,257,79,255,79,255,75,248,75,240,83,238,82,234,79,227,82,225,84,225,90,223,108"> | ||||
| <area href="dxcc_details?CQZone=26" title="zone_26" class="zone_26" shape="poly" coords="178,116,178,141,192,141,212,140,212,119,205,122,202,122,201,121,200,115,198,113,196,112,191,115,188,114,188,111,186,111,187,104,185,104,183,106,180,111"> | ||||
| <area href="dxcc_details?CQZone=27" title="zone_27" class="zone_27" shape="poly" coords="222,113,222,115,213,119,213,140,215,140,219,144,229,144,233,148,242,148,242,151,284,151,284,141,277,135,277,126,284,126,284,84,262,84,249,103,233,113"> | ||||
| <area href="dxcc_details?CQZone=28" title="zone_28" class="zone_28" shape="poly" coords="178,141,178,168,213,168,222,171,224,171,231,168,250,168,253,167,253,173,284,173,284,168,284,151,241,151,241,148,233,148,229,144,219,144,215,140,212,140,192,141"> | ||||
| <area href="dxcc_details?CQZone=29" title="zone_29" class="zone_29" shape="poly" coords="231,303,231,195,245,195,245,168,231,168,224,171,222,171,213,168,178,168,178,151,160,151,160,303"> | ||||
| <area href="dxcc_details?CQZone=30" title="zone_30" class="zone_30" shape="poly" coords="291,303,291,252,284,244,284,244,284,191,279,191,279,180,284,180,284,173,253,173,253,167,250,168,245,168,245,195,231,195,231,303"> | ||||
| <area href="dxcc_details?CQZone=31" title="zone_31" class="zone_31" shape="poly" coords="284,84,284,126,277,126,277,135,284,141,284,151,284,168,295,168,296,172,301,171,303,170,303,172,311,172,311,168,327,168,339,166,339,172,371,172,371,168,371,163,364,163,364,148,364,128,364,97,364,84,291,84"> | ||||
| <area href="dxcc_details?CQZone=32" title="zone_32" class="zone_32" shape="poly" coords="393,303,393,185,393,168,371,168,371,172,339,172,339,166,327,168,311,168,311,172,303,172,303,170,301,171,296,172,295,168,284,168,284,173,284,180,283,180,279,180,279,191,284,191,284,244,291,252,291,303"> | ||||
| <area href="dxcc_details?CQZone=33" title="zone_33" class="zone_33" shape="poly" coords="0,116,6,116,25,116,26,108,31,108,31,106,35,108,38,110,48,118,53,118,56,116,61,112,57,108,58,100,63,91,59,87,52,87,51,88,42,91,0,91"> | ||||
| <area href="dxcc_details?CQZone=33" title="zone_33" class="zone_33" shape="poly" coords="524,91,517,91,517,101,517,116,524,116"> | ||||
| <area href="dxcc_details?CQZone=34" title="zone_34" class="zone_34" shape="poly" coords="63,91,58,100,57,108,61,112,65,113,67,112,77,118,78,119,78,124,76,127,76,132,81,140,84,143,89,145,92,145,95,143,95,142,92,137,97,128,97,123,100,121,101,120,94,105,94,101,92,98,69,93,68,92,66,92"> | ||||
| <area href="dxcc_details?CQZone=35" title="zone_35" class="zone_35" shape="poly" coords="6,151,49,151,55,145,56,142,58,140,60,140,63,133,64,132,64,127,66,120,66,112,61,112,56,116,53,118,48,118,38,110,35,108,31,106,31,108,26,108,25,116,6,116"> | ||||
| <area href="dxcc_details?CQZone=36" title="zone_36" class="zone_36" shape="poly" coords="6,185,49,185,62,180,64,181,83,181,88,177,89,177,91,175,91,171,92,168,88,165,86,160,88,157,87,150,88,149,89,145,84,143,81,140,76,132,76,127,78,124,78,119,77,118,67,112,66,112,66,120,64,127,64,132,63,133,60,140,58,140,56,142,55,145,49,151,6,151"> | ||||
| <area href="dxcc_details?CQZone=37" title="zone_37" class="zone_37" shape="poly" coords="89,145,88,149,87,150,88,157,86,160,88,165,92,168,91,171,91,175,89,177,91,179,91,186,90,189,90,196,95,201,96,201,100,186,105,177,105,168,120,151,131,151,131,126,111,131,107,131,101,120,100,121,97,123,97,128,92,137,95,142,95,143,92,145"> | ||||
| <area href="dxcc_details?CQZone=38" title="zone_38" class="zone_38" shape="poly" coords="96,303,96,235,101,235,101,224,96,224,96,201,95,201,90,196,90,189,91,186,91,179,89,177,88,177,83,181,64,181,62,180,49,185,6,185,6,209,6,303"> | ||||
| <area href="dxcc_details?CQZone=39" title="zone_39" class="zone_39" shape="poly" coords="160,303,160,151,156,151,152,154,148,154,144,151,131,151,120,151,105,168,105,177,100,186,96,201,96,224,101,224,101,235,96,235,96,303"> | ||||
| <area href="dxcc_details?CQZone=40" title="zone_40" class="zone_40" shape="poly" coords="0,0,0,51,88,28,89,28,145,15,145,0"> | ||||
| <area href="dxcc_details?CQZone=40" title="zone_40" class="zone_40" shape="poly" coords="480,0,480,14,477,15,471,16,461,19,461,21,485,39,486,40,490,46,491,48,494,53,495,61,517,53,524,51,524,0"> | ||||
| </map> | ||||
| <img class="map" src="<?php echo site_url("../images/CQzone.gif"); ?>" usemap="#CQ" border="0"> | ||||
|   <!-- <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script> --> | ||||
|   <script src="<?php echo site_url("../js/jquery.maphilight.min.js");?>"></script> | ||||
|   <script> | ||||
|     var zones=<?php echo json_encode($cqz) ?>;
 | ||||
| 
 | ||||
|     $(function() { | ||||
|   		$('.map').maphilight({ | ||||
|         fillOpacity: 0.25, | ||||
|         neverOn: true | ||||
|       }); | ||||
|       zones.forEach(hi_lite); | ||||
|   	}); | ||||
|     function hi_lite(el, index, array){ | ||||
|       $('.zone_'+el).data('maphilight', {'alwaysOn':true}).trigger('alwaysOn.maphilight'); | ||||
|     } | ||||
|   </script> | ||||
| 
 | ||||
|   Maps from <a href="http://www4.plala.or.jp/nomrax/hammaps.htm">JF9EXF</a> site. | ||||
|   <h4>Notes:</h4> | ||||
|   <ul> | ||||
|     <li>All US callsigns are allocated zone 5 by the FCC. This may not be correct</li> | ||||
|   </ul> | ||||
| </div> | ||||
|  | @ -4,17 +4,14 @@ | |||
| 
 | ||||
| 	<!-- Sub Nav for Awards --> | ||||
| 	 | ||||
| 	<ul class="tabs"> | ||||
| 	  <li class="active"><a href="<?php echo site_url('awards/dxcc'); ?>">DXCC</a></li> | ||||
| 	  <li><a href="<?php echo site_url('awards/wab'); ?>">WAB</a></li> | ||||
| 	  <li><a href="<?php echo site_url('awards/sota'); ?>">SOTA</a></li> | ||||
| 	  <li><a href="<?php echo site_url('awards/wacral'); ?>">WACRAL</a></li> | ||||
| 	</ul> | ||||
|     <?php $this->load->view("awards/nav_bar")?>
 | ||||
|      | ||||
|     <table id="table-fixed"></table> | ||||
| 
 | ||||
| 	<table width="100%" class="zebra-striped"> | ||||
| 	<thead> | ||||
|         <tr> | ||||
|         <td>Country</td> | ||||
|         <td style="width:225px">Country (<?php echo count($dxcc)?>)</td>
 | ||||
|         <td>160m</td> | ||||
|         <td>80m</td> | ||||
|         <td>40m</td> | ||||
|  | @ -49,4 +46,30 @@ | |||
|     </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> | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ | |||
| 	  <li><a href="<?php echo site_url('awards/wab'); ?>">WAB</a></li> | ||||
| 	  <li><a href="<?php echo site_url('awards/sota'); ?>">SOTA</a></li> | ||||
| 	  <li><a href="<?php echo site_url('awards/wacral'); ?>">WACRAL</a></li> | ||||
| 	  <li><a href="<?php echo site_url('awards/cq'); ?>">CQ</a></li> | ||||
| 	</ul> | ||||
| 
 | ||||
| </div> | ||||
|  | @ -0,0 +1,23 @@ | |||
| 
 | ||||
| 	<ul class="tabs"> | ||||
| 	  <li id="tab_dxcc"> | ||||
| 	    <a href="<?php echo site_url('awards/dxcc'); ?>">DXCC</a> | ||||
| 	  </li> | ||||
| 	  <li id="tab_wab"> | ||||
| 	    <a href="<?php echo site_url('awards/wab'); ?>">WAB</a> | ||||
| 	  </li> | ||||
| 	  <li id="tab_sota"> | ||||
| 	    <a href="<?php echo site_url('awards/sota'); ?>">SOTA</a> | ||||
| 	  </li> | ||||
| 	  <li id="tab_wacral"> | ||||
| 	    <a href="<?php echo site_url('awards/wacral'); ?>">WACRAL</a> | ||||
| 	  </li> | ||||
| 	  <li id="tab_cq"> | ||||
| 	    <a href="<?php echo site_url('awards/cq'); ?>">CQ</a> | ||||
| 	  </li> | ||||
| 	</ul> | ||||
| 
 | ||||
|     <script> | ||||
|         var tab = "<?php echo $this->router->fetch_method(); ?>"; | ||||
|         $('#tab_'+tab).addClass('active'); | ||||
|     </script> | ||||
|  | @ -3,12 +3,7 @@ | |||
| 	 | ||||
| 	<!-- Sub Nav for Awards --> | ||||
| 	 | ||||
| 	<ul class="tabs"> | ||||
| 	  <li><a href="<?php echo site_url('awards/dxcc'); ?>">DXCC</a></li> | ||||
| 	  <li><a href="<?php echo site_url('awards/wab'); ?>">WAB</a></li> | ||||
| 	  <li class="active"><a href="<?php echo site_url('awards/sota'); ?>">SOTA</a></li> | ||||
| 	  <li><a href="<?php echo site_url('awards/wacral'); ?>">WACRAL</a></li> | ||||
| 	</ul> | ||||
|     <?php $this->load->view("awards/nav_bar")?>
 | ||||
| 	 | ||||
| 	<table width="100%" class="zebra-striped"> | ||||
| 		 | ||||
|  |  | |||
|  | @ -3,12 +3,7 @@ | |||
| 
 | ||||
| 	<!-- Sub Nav for Awards --> | ||||
| 	 | ||||
| 	<ul class="tabs"> | ||||
| 	  <li><a href="<?php echo site_url('awards/dxcc'); ?>">DXCC</a></li> | ||||
| 	  <li class="active"><a href="<?php echo site_url('awards/wab'); ?>">WAB</a></li> | ||||
| 	  <li><a href="<?php echo site_url('awards/sota'); ?>">SOTA</a></li> | ||||
| 	  <li><a href="<?php echo site_url('awards/wacral'); ?>">WACRAL</a></li> | ||||
| 	</ul> | ||||
|     <?php $this->load->view("awards/nav_bar")?>
 | ||||
| 
 | ||||
| 	<table width="100%" class="zebra-striped"> | ||||
| 		 | ||||
|  |  | |||
|  | @ -3,12 +3,7 @@ | |||
| 
 | ||||
| 	<!-- Sub Nav for Awards --> | ||||
| 	 | ||||
| 	<ul class="tabs"> | ||||
| 	  <li><a href="<?php echo site_url('awards/dxcc'); ?>">DXCC</a></li> | ||||
| 	  <li><a href="<?php echo site_url('awards/wab'); ?>">WAB</a></li> | ||||
| 	  <li><a href="<?php echo site_url('awards/sota'); ?>">SOTA</a></li> | ||||
| 	  <li class="active"><a href="<?php echo site_url('awards/wacral'); ?>">WACRAL</a></li> | ||||
| 	</ul> | ||||
|     <?php $this->load->view("awards/nav_bar")?>
 | ||||
| 
 | ||||
| 	<?php if ($wacral_all->num_rows() > 0) { ?>
 | ||||
| 	<table width="100%" class="zebra-striped"> | ||||
|  |  | |||
|  | @ -54,6 +54,11 @@ | |||
| 					<input type="checkbox" name="mode_data" value="data" /> Data | ||||
| 					<input type="checkbox" name="mode_fm" value="FM" /> FM | ||||
| 					<input type="checkbox" name="mode_am" value="AM" /> AM | ||||
| 				<?php | ||||
| 				foreach($modes->result() as $row){ | ||||
|                     printf('<input type="checkbox" name="mode_%s" value="%s" />%s',  $row->COL_MODE, $row->COL_MODE, $row->COL_MODE); | ||||
| 				} | ||||
| 				?>
 | ||||
| 			</div> | ||||
| 			 | ||||
| 			<div class="type"> | ||||
|  |  | |||
|  | @ -8,8 +8,8 @@ | |||
|     Status:</br> | ||||
|     </div> | ||||
| <br/> | ||||
|     <a href="update/check_missing_dxcc">Check missing DXCC/Countries values</a> | ||||
|     <a href="update/check_missing_dxcc/all">[Re-Check ALL]</a> | ||||
|     <a href="check_missing_dxcc">Check missing DXCC/Countries values</a> | ||||
|     <a href="check_missing_dxcc/all">[Re-Check ALL]</a> | ||||
| </div> | ||||
| 
 | ||||
| <style> | ||||
|  |  | |||
							
								
								
									
										
											二进制
										
									
								
								images/CQzone.gif
									
									
									
									
									
										普通文件
									
								
							
							
						
						
									
										
											二进制
										
									
								
								images/CQzone.gif
									
									
									
									
									
										普通文件
									
								
							
										
											二进制文件未显示。
										
									
								
							| 之后 宽度: | 高度: | 大小: 25 KiB | 
							
								
								
									
										2
									
								
								js/jquery.maphilight.min.js
									
									
									
									
										vendored
									
									
										普通文件
									
								
							
							
						
						
									
										2
									
								
								js/jquery.maphilight.min.js
									
									
									
									
										vendored
									
									
										普通文件
									
								
							
										
											
												文件差异因一行或多行过长而隐藏
											
										
									
								
							
							
								
								
									
										1
									
								
								kml/qsos.kml
									
									
									
									
									
										普通文件
									
								
							
							
						
						
									
										1
									
								
								kml/qsos.kml
									
									
									
									
									
										普通文件
									
								
							
										
											
												文件差异因一行或多行过长而隐藏
											
										
									
								
							
		正在加载…
	
		在新工单中引用