当前提交
8a534042df
共有 6 个文件被更改,包括 285 次插入 和 0 次删除
|
|
@ -17,6 +17,56 @@ class Awards extends CI_Controller {
|
|||
$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 ()
|
||||
{
|
||||
//echo "Needs Developed";
|
||||
|
|
|
|||
|
|
@ -337,6 +337,7 @@ class API_Model extends CI_Model {
|
|||
'COL_CONTEST_ID' => array('Name' => 'ContestID', 'Description' => '', 'Type' => ''),
|
||||
'COL_COUNTRY' => array('Name' => 'Country', '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_DXCC' => array('Name' => 'DXCC', '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/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/dok'); ?>">DOK</a>
|
||||
</nav>
|
||||
正在加载…
在新工单中引用