当前提交
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');
|
||||
|
|
|
|||
|
|
@ -7,4 +7,4 @@
|
|||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
</html>
|
||||
|
|
@ -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,
|
||||
"6m" =>0,
|
||||
"4m" =>0,
|
||||
"2m" =>0,
|
||||
"70cm" =>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'));
|
||||
|
|
@ -740,7 +746,12 @@ class Logbook_model extends CI_Model {
|
|||
} else if (isset($record['notes'])) {
|
||||
$comment = $record['notes'];
|
||||
} else {
|
||||
$comment = "";
|
||||
// Try 'comment'
|
||||
if(isset($record['comment'])){
|
||||
$comment = $record['comment'];
|
||||
}else{
|
||||
$comment = "";
|
||||
}
|
||||
}
|
||||
|
||||
// Store 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>
|
||||
</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">
|
||||
|
||||
|
|
@ -50,4 +45,4 @@
|
|||
?>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
||||
|
|
@ -50,4 +45,4 @@
|
|||
?>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
@ -51,4 +46,4 @@
|
|||
<?php } else { ?>
|
||||
<p>You have lot logged any <a href="http://www.wacral.org" target="_blank">WACRAL</a></p>
|
||||
<?php } ?>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -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
普通文件
文件差异因一行或多行过长而隐藏
正在加载…
在新工单中引用