Merge branch 'master' of https://github.com/magicbug/Cloudlog into magicbug-master

这个提交包含在:
Jeremy Brown 2021-08-05 15:36:28 -04:00
当前提交 791cc04f62
共有 353 个文件被更改,包括 194343 次插入14942 次删除

22
.editorconfig 普通文件
查看文件

@ -0,0 +1,22 @@
# Automatic editor configuration for the Cloudlog coding style.
# See https://editorconfig.org/#download to check for support in your editor of
# choice.
# This is the root configuration file (there are no others in subdirectories).
root = true
# These global rules affect all files under the repository root.
[*]
charset = utf-8
end_of_line = lf
# These rules affect the listed file types only. Global rules still apply and
# are overridden if the same key is assigned a different value here.
[*.{php,js,html,xml,css}]
indent_style = tab
indent_size = 4
# These rules are specifically for code
[*.{php,js}]
insert_final_newline = true
trim_trailing_whitespace = true

2
.github/FUNDING.yml vendored
查看文件

@ -1,4 +1,4 @@
# These are supported funding model platforms
github: magicbug
patreon: 2m0sql
custom: ['https://paypal.me/PGoodhall']

查看文件

@ -1,22 +0,0 @@
---
name: Feature request
about: Suggest an idea for this project
title: ''
labels: ''
assignees: ''
---
**This is for reporting bugs with the code, if this issue is regarding setting up on your local server please use the forum see readme for details**
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.

1
.gitignore vendored
查看文件

@ -14,3 +14,4 @@
.idea/*
.DS_Store
sync.sh
*.p12

查看文件

@ -7,22 +7,22 @@ Website: [http://www.cloudlog.co.uk](http://www.cloudlog.co.uk)
## Requirements
* Linux based Operating System
* Apache (Nginx should work)
* PHP (Version 7 or higher) & MySQL (MySQL 5.7 or higher)
* PHP Version 7 (Currently not fully working on PHP 8)
* MySQL (MySQL 5.7 or higher)
## Versions
* **Master** - Current working branch
Notes
* If you want to log microwave QSOs you will need to use a 64bit operating system.
## Setup
Installation information can be found on the [wiki](https://github.com/magicbug/Cloudlog/wiki).
Cloudlog now has a [Change Log](https://github.com/magicbug/Cloudlog/wiki/Change-Log) to go along with the commit history please consult this when updating.
## Support
Cloudlog has two support systems for code issues use Github issues, however if you have general issues with setting up your server please use our general discussion forum [https://forum.cloudlog.co.uk](https://forum.cloudlog.co.uk).
Cloudlog has two support systems for code issues use Github issues, however if you have general issues with setting up your server please use our general discussion forum [https://github.com/magicbug/Cloudlog/discussions](https://github.com/magicbug/Cloudlog/discussions).
## Security Vulnerabilities
If you discover a security vulnerability within Cloudlog, please send an e-mail to Peter Goodhall, 2M0SQL via [peter@magicbug.co.uk](mailto:peter@magicbug.co.uk). All security vulnerabilities will be promptly addressed.
## Want Cloudlog Hosting?
@ -44,6 +44,6 @@ Thanks to Andy (VE7CXZ), Gavin (M1BXF), Graham (W5ISP), Robert (M0VFC), Corby (K
Cloudlog is supported by Patreon and donations via PayPal, thanks to the following people:
Paul (M0TZO), Tim (G4VXE), Paul (N8HM), Michelle (W5NYV), Mitchell (AD0HJ), Dan (M0TCB), Martin (DK3ML), Juan Carlos (EA5WA), Iain (M0PCB), Charlie (GM1TGY), Ondrej (OK1CDJ).
Paul (M0TZO), Tim (G4VXE), Paul (N8HM), Michelle (W5NYV), Mitchell (AD0HJ), Dan (M0TCB), Martin (DK3ML), Juan Carlos (EA5WA), Iain (M0PCB), Charlie (GM1TGY), Ondrej (OK1CDJ), Trystan (G0KAY), Oliver (DL6KBG), Volkmar Schirmer, Jordan (M0PIR), Thomas Ziegler, Mathis (DB9MAT), Ken (VE3HLS), Tyler (WL7T), Jeremy Taylor, Ben Kuhn, Eric Thresher, Michael Cullen, Juuso (OH1JW), Anthony Castiglia, Fernando Ramirez-Ferrer, Robert Dixon, Mark Percival, Julia (KV1V), Timo Tomasini, Ant (NU1U), Christopher Williams, Danny Barnes, Vic, Tom (M0LTE), smurphboy
If you'd like to donate to Cloudlog to help allow @magicbug spend less time doing commercial work and more time coding Cloudlog then you can donate via [PayPal](https://paypal.me/PGoodhall) or become a [Patreon](https://www.patreon.com/2m0sql)
If you'd like to donate to Cloudlog to help allow @magicbug spend less time doing commercial work and more time coding Cloudlog then you can donate via [PayPal](https://paypal.me/PGoodhall), [Github Sponsor](https://github.com/sponsors/magicbug) or become a [Patreon](https://www.patreon.com/2m0sql)

7
SECURITY.md 普通文件
查看文件

@ -0,0 +1,7 @@
# Security Policy
## Reporting a Vulnerability
If you discover a security vulnerability within Cloudlog, please send an e-mail to Peter Goodhall, 2M0SQL via [peter@magicbug.co.uk](mailto:peter@magicbug.co.uk).
All security vulnerabilities will be promptly addressed.

查看文件

@ -52,7 +52,7 @@ $autoload['packages'] = array(APPPATH.'third_party');
| $autoload['libraries'] = array('database', 'session', 'xmlrpc');
*/
$autoload['libraries'] = array('database', 'session', 'curl');
$autoload['libraries'] = array('database', 'session', 'curl', 'OptionsLib', 'Frequency');
/*

查看文件

@ -4,7 +4,7 @@
| Enable/Disable Migrations
|--------------------------------------------------------------------------
|
| Migrations are disabled by default but should be enabled
| Migrations are disabled by default but should be enabled
| whenever you intend to do a schema migration.
|
*/
@ -21,7 +21,7 @@ $config['migration_enabled'] = TRUE;
| be upgraded / downgraded to.
|
*/
$config['migration_version'] = 54;
$config['migration_version'] = 70;
/*
|--------------------------------------------------------------------------

查看文件

@ -14,7 +14,7 @@ class Accumulated extends CI_Controller {
public function index()
{
// Render Page
$data['page_title'] = "Accumulated statistics";
$data['page_title'] = "Accumulated Statistics";
$this->load->model('Accumulate_model');

查看文件

@ -76,23 +76,26 @@ class adif extends CI_Controller {
}
public function export_custom() {
// Set memory limit to unlimited to allow heavy usage
ini_set('memory_limit', '-1');
$this->load->model('adif_data');
$station_id = $this->security->xss_clean($this->input->post('station_profile'));
// Used for exporting QSOs not previously exported to LoTW
if ($this->input->post('exportLotw') == 1) {
$exportLotw = true;
} else {
$exportLotw = false;
}
}
$data['qsos'] = $this->adif_data->export_custom($this->input->post('from'), $this->input->post('to'), $station_id, $exportLotw);
$data['qsos'] = $this->adif_data->export_custom($this->input->post('from'), $this->input->post('to'), $exportLotw);
$this->load->view('adif/data/exportall', $data);
if ($this->input->post('markLotw') == 1) {
foreach ($data['qsos']->result() as $qso)
{
@ -105,11 +108,10 @@ class adif extends CI_Controller {
// Set memory limit to unlimited to allow heavy usage
ini_set('memory_limit', '-1');
$station_id = $this->security->xss_clean($this->input->post('station_profile'));
$this->load->model('adif_data');
$data['qsos'] = $this->adif_data->export_custom($this->input->post('from'), $this->input->post('to'));
//$this->load->view('adif/import', $data);
$data['qsos'] = $this->adif_data->export_custom($this->input->post('from'), $this->input->post('to'), $station_id);
foreach ($data['qsos']->result() as $qso)
{
@ -119,6 +121,26 @@ class adif extends CI_Controller {
$this->load->view('adif/mark_lotw', $data);
}
public function mark_qrz() {
// Set memory limit to unlimited to allow heavy usage
ini_set('memory_limit', '-1');
$station_id = $this->security->xss_clean($this->input->post('station_profile'));
$this->load->model('adif_data');
$data['qsos'] = $this->adif_data->export_custom($this->input->post('from'), $this->input->post('to'), $station_id);
$this->load->model('logbook_model');
foreach ($data['qsos']->result() as $qso)
{
$this->logbook_model->mark_qrz_qsos_sent($qso->COL_PRIMARY_KEY);
}
$this->load->view('adif/mark_qrz', $data);
}
public function export_lotw()
{
// Set memory limit to unlimited to allow heavy usage
@ -204,11 +226,11 @@ class adif extends CI_Controller {
$custom_errors .= $this->logbook_model->import($record, $this->input->post('station_profile'),
$this->input->post('skipDuplicate'), $this->input->post('markLotw'), $this->input->post('dxccAdif'));
$this->input->post('skipDuplicate'), $this->input->post('markLotw'), $this->input->post('dxccAdif'), $this->input->post('markQrz'), true, $this->input->post('operatorName'));
};
$data['adif_errors'] = $custom_errors;
$data['adif_errors'] = $custom_errors;
unlink('./uploads/'.$data['upload_data']['file_name']);

查看文件

@ -60,7 +60,7 @@ class API extends CI_Controller {
function edit($key) {
$this->load->model('user_model');
if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
$this->load->model('api_model');
@ -426,12 +426,12 @@ class API extends CI_Controller {
{
break;
};
if(isset($obj['station_profile_id'])) {
$this->logbook_model->import($record, $obj['station_profile_id'], NULL, NULL, NULL);
$this->logbook_model->import($record, $obj['station_profile_id'], NULL, NULL, NULL, NULL, false, false);
} else {
$this->logbook_model->import($record, 0, NULL, NULL, NULL);
$this->logbook_model->import($record, 0, NULL, NULL, NULL, NULL, false, false);
}
};

查看文件

@ -2,12 +2,12 @@
/*
Handles Displaying of information for awards.
These are taken from comments fields or ADIF fields
These are taken from comments fields or ADIF fields
*/
class Awards extends CI_Controller {
function __construct()
{
parent::__construct();
@ -24,7 +24,7 @@ class Awards extends CI_Controller {
$this->load->view('awards/index');
$this->load->view('interface_assets/footer');
}
public function dok ()
{
//echo "Needs Developed";
@ -39,7 +39,7 @@ class Awards extends CI_Controller {
$this->load->view('interface_assets/footer');
}
public function dok_details_ajax(){
$a = $this->input->post();
$q = "";
@ -72,10 +72,13 @@ class Awards extends CI_Controller {
$data['filter'] = str_replace("(and)", ", ", $q);//implode(", ", array_keys($a));
$this->load->view('awards/details', $data);
}
public function dxcc () {
$this->load->model('dxcc');
$this->load->model('modes');
$data['worked_bands'] = $this->dxcc->get_worked_bands(); // Used in the view for band select
$data['modes'] = $this->modes->active(); // Used in the view for mode select
if ($this->input->post('band') != NULL) { // Band is not set when page first loads.
if ($this->input->post('band') == 'All') { // Did the user specify a band? If not, use all bands
@ -106,6 +109,7 @@ class Awards extends CI_Controller {
$postdata['Oceania'] = $this->input->post('Oceania');
$postdata['Antarctica'] = $this->input->post('Antarctica');
$postdata['band'] = $this->input->post('band');
$postdata['mode'] = $this->input->post('mode');
}
else { // Setting default values at first load of page
$postdata['lotw'] = 1;
@ -122,11 +126,12 @@ class Awards extends CI_Controller {
$postdata['Oceania'] = 1;
$postdata['Antarctica'] = 1;
$postdata['band'] = 'All';
$postdata['mode'] = 'All';
}
$dxcclist = $this->dxcc->fetchdxcc($postdata);
$data['dxcc_array'] = $this->dxcc->get_dxcc_array($dxcclist, $bands, $postdata);
$data['dxcc_summary'] = $this->dxcc->get_dxcc_summary($bands);
$data['dxcc_summary'] = $this->dxcc->get_dxcc_summary($data['worked_bands']);
// Render Page
$data['page_title'] = "Awards - DXCC";
@ -135,19 +140,6 @@ class Awards extends CI_Controller {
$this->load->view('interface_assets/footer');
}
public function dxcc_details_ajax(){
$this->load->model('logbook_model');
$country = str_replace('"', "", $this->input->post("Country"));
$band = str_replace('"', "", $this->input->post("Band"));
$data['results'] = $this->logbook_model->dxcc_qso_details($country, $band);
// Render Page
$data['page_title'] = "Log View - DXCC";
$data['filter'] = "country ".$country. " and ".$band;
$this->load->view('awards/details', $data);
}
public function vucc() {
$this->load->model('vucc');
$data['worked_bands'] = $this->vucc->get_worked_bands();
@ -169,7 +161,7 @@ class Awards extends CI_Controller {
$data['type'] = $type;
// Render Page
$data['page_title'] = "VUCC - band";
$data['page_title'] = "VUCC - " .$band . " Band";
$data['filter'] = "band ".$band;
$data['band'] = $band;
$this->load->view('interface_assets/header', $data);
@ -191,65 +183,59 @@ class Awards extends CI_Controller {
}
/*
Handles Displaying of WAB Squares worked.
Comment field - WAB:#
*/
public function wab() {
// Grab all worked WABs
$this->load->model('wab');
$data['wab_all'] = $this->wab->get_all();
* Used to fetch QSOs from the logbook in the awards
*/
public function qso_details_ajax(){
$this->load->model('logbook_model');
$searchphrase = str_replace('"', "", $this->input->post("Searchphrase"));
$band = str_replace('"', "", $this->input->post("Band"));
$mode = str_replace('"', "", $this->input->post("Mode"));
$type = $this->input->post('Type');
$data['results'] = $this->logbook_model->qso_details($searchphrase, $band, $mode, $type);
// This is done because we have two different ways to get dxcc info in Cloudlog. Once is using the name (in awards), and the other one is using the ADIF DXCC.
// We replace the values to make it look a bit nicer
if ($type == 'DXCC2') {
$type = 'DXCC';
$dxccname = $this->logbook_model->get_entity($searchphrase);
$searchphrase = $dxccname['name'];
}
// Render Page
$data['page_title'] = "Awards - WAB";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/wab/index');
$this->load->view('interface_assets/footer');
$data['page_title'] = "Log View - " . $type;
$data['filter'] = $type . " " . $searchphrase . " and band ".$band . " and mode ".$mode;
$this->load->view('awards/details', $data);
}
/*
Handles showing worked SOTAs
Comment field - SOTA:#
*/
public function sota() {
// Grab all worked sota stations
$this->load->model('sota');
$data['sota_all'] = $this->sota->get_all();
// Render page
$data['page_title'] = "Awards - SOTA";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/sota/index');
$this->load->view('interface_assets/footer');
}
/*
Handles showing worked WACRAL members (wacral.org)
Comment field - WACRAL:#
*/
public function wacral() {
// Grab all worked wacral members
$this->load->model('wacral');
$data['wacral_all'] = $this->wacral->get_all();
// Render page
$data['page_title'] = "Awards - WACRAL Members";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/wacral/index');
$this->load->view('interface_assets/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;
$data['worked_bands'] = $this->cq->get_worked_bands();
public function cq(){
$CI =& get_instance();
$CI->load->model('Stations');
$station_id = $CI->Stations->find_active();
$this->load->model('cq');
$this->load->model('modes');
$data['worked_bands'] = $this->cq->get_worked_bands($station_id);
$data['modes'] = $this->modes->active(); // Used in the view for mode select
if ($this->input->post('band') != NULL) { // Band is not set when page first loads.
if ($this->input->post('band') == 'All') { // Did the user specify a band? If not, use all bands
@ -272,6 +258,7 @@ class Awards extends CI_Controller {
$postdata['confirmed'] = $this->input->post('confirmed');
$postdata['notworked'] = $this->input->post('notworked');
$postdata['band'] = $this->input->post('band');
$postdata['mode'] = $this->input->post('mode');
}
else { // Setting default values at first load of page
$postdata['lotw'] = 1;
@ -280,10 +267,11 @@ class Awards extends CI_Controller {
$postdata['confirmed'] = 1;
$postdata['notworked'] = 1;
$postdata['band'] = 'All';
$postdata['mode'] = 'All';
}
$data['cq_array'] = $this->cq->get_cq_array($bands, $postdata);
$data['cq_summary'] = $this->cq->get_cq_summary($bands);
$data['cq_array'] = $this->cq->get_cq_array($bands, $postdata, $station_id);
$data['cq_summary'] = $this->cq->get_cq_summary($data['worked_bands'], $station_id);
// Render page
$data['page_title'] = "Awards - CQ Magazine";
@ -292,22 +280,12 @@ class Awards extends CI_Controller {
$this->load->view('interface_assets/footer');
}
public function cq_details_ajax(){
$this->load->model('logbook_model');
$cqzone = str_replace('"', "", $this->input->post("CQZone"));
$band = str_replace('"', "", $this->input->post("Band"));
$data['results'] = $this->logbook_model->cq_qso_details($cqzone, $band);
// Render Page
$data['page_title'] = "Log View - DXCC";
$data['filter'] = "CQZone ".$cqzone. " and ".$band;;
$this->load->view('awards/details', $data);
}
public function was() {
$this->load->model('was');
$this->load->model('modes');
$data['worked_bands'] = $this->was->get_worked_bands();
$data['modes'] = $this->modes->active(); // Used in the view for mode select
if ($this->input->post('band') != NULL) { // Band is not set when page first loads.
if ($this->input->post('band') == 'All') { // Did the user specify a band? If not, use all bands
@ -330,6 +308,7 @@ class Awards extends CI_Controller {
$postdata['confirmed'] = $this->input->post('confirmed');
$postdata['notworked'] = $this->input->post('notworked');
$postdata['band'] = $this->input->post('band');
$postdata['mode'] = $this->input->post('mode');
}
else { // Setting default values at first load of page
$postdata['lotw'] = 1;
@ -338,33 +317,23 @@ class Awards extends CI_Controller {
$postdata['confirmed'] = 1;
$postdata['notworked'] = 1;
$postdata['band'] = 'All';
$postdata['mode'] = 'All';
}
$data['was_array'] = $this->was->get_was_array($bands, $postdata);
$data['was_summary'] = $this->was->get_was_summary($bands);
$data['was_summary'] = $this->was->get_was_summary($data['worked_bands']);
// Render Page
$data['page_title'] = "Awards - WAS (Worked all states)";
$data['page_title'] = "Awards - WAS (Worked All States)";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/was/index');
$this->load->view('interface_assets/footer');
}
public function was_details_ajax() {
$this->load->model('logbook_model');
$state = str_replace('"', "", $this->input->post("State"));
$band = str_replace('"', "", $this->input->post("Band"));
$data['results'] = $this->logbook_model->was_qso_details($state, $band);
// Render Page
$data['page_title'] = "Log View - WAS";
$data['filter'] = "state ".$state. " and ".$band;
$this->load->view('awards/details', $data);
}
public function iota () {
$this->load->model('iota');
$this->load->model('modes');
$data['worked_bands'] = $this->iota->get_worked_bands(); // Used in the view for band select
if ($this->input->post('band') != NULL) { // Band is not set when page first loads.
@ -380,6 +349,7 @@ class Awards extends CI_Controller {
}
$data['bands'] = $bands; // Used for displaying selected band(s) in the table in the view
$data['modes'] = $this->modes->active(); // Used in the view for mode select
if($this->input->method() === 'post') {
$postdata['worked'] = $this->input->post('worked');
@ -394,6 +364,7 @@ class Awards extends CI_Controller {
$postdata['Oceania'] = $this->input->post('Oceania');
$postdata['Antarctica'] = $this->input->post('Antarctica');
$postdata['band'] = $this->input->post('band');
$postdata['mode'] = $this->input->post('mode');
}
else { // Setting default values at first load of page
$postdata['worked'] = 1;
@ -408,6 +379,7 @@ class Awards extends CI_Controller {
$postdata['Oceania'] = 1;
$postdata['Antarctica'] = 1;
$postdata['band'] = 'All';
$postdata['mode'] = 'All';
}
$iotalist = $this->iota->fetchIota($postdata);
@ -421,16 +393,120 @@ class Awards extends CI_Controller {
$this->load->view('interface_assets/footer');
}
public function iota_details_ajax(){
$this->load->model('logbook_model');
$iota = str_replace('"', "", $this->input->post("Iota"));
$band = str_replace('"', "", $this->input->post("Band"));
$data['results'] = $this->logbook_model->iota_qso_details($iota, $band);
public function counties() {
$this->load->model('counties');
$data['counties_array'] = $this->counties->get_counties_array();
// Render Page
$data['page_title'] = "Log View - IOTA";
$data['filter'] = "iota ".$iota. " and ".$band;
$data['page_title'] = "Awards - US Counties";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/counties/index');
$this->load->view('interface_assets/footer');
}
public function counties_details() {
$this->load->model('counties');
$state = str_replace('"', "", $this->input->get("State"));
$type = str_replace('"', "", $this->input->get("Type"));
$data['counties_array'] = $this->counties->counties_details($state, $type);
$data['type'] = $type;
// Render Page
$data['page_title'] = "US Counties";
$data['filter'] = $type . " counties in state ".$state;
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/counties/details');
$this->load->view('interface_assets/footer');
}
public function counties_details_ajax(){
$this->load->model('logbook_model');
$state = str_replace('"', "", $this->input->post("State"));
$county = str_replace('"', "", $this->input->post("County"));
$data['results'] = $this->logbook_model->county_qso_details($state, $county);
// Render Page
$data['page_title'] = "Log View - Counties";
$data['filter'] = "county " . $state;
$this->load->view('awards/details', $data);
}
/*
Handles showing worked Sigs
Adif fields: my_sig
*/
public function sig() {
// Grab all worked sig stations
$this->load->model('sig');
$data['sig_types'] = $this->sig->get_all_sig_types();
// Render page
$data['page_title'] = "Awards - SIG";
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/sig/index');
$this->load->view('interface_assets/footer');
}
/*
Handles showing worked Sigs
*/
public function sig_details() {
// Grab all worked sig stations
$this->load->model('sig');
$type = str_replace('"', "", $this->input->get("type"));
$data['sig_all'] = $this->sig->get_all($type);
$data['type'] = $type;
// Render page
$data['page_title'] = "Awards - SIG - " . $type;
$this->load->view('interface_assets/header', $data);
$this->load->view('awards/sig/qso_list');
$this->load->view('interface_assets/footer');
}
/*
Handles exporting SIGS to ADIF
*/
public function sigexportadif() {
// Set memory limit to unlimited to allow heavy usage
ini_set('memory_limit', '-1');
$this->load->model('adif_data');
//$type = str_replace('"', "", $this->input->get("type"));
$type = $this->uri->segment(3);
$data['qsos'] = $this->adif_data->sig_all($type);
$this->load->view('adif/data/exportall', $data);
}
/*
function was_map
This displays the WAS map and requires the $band_type and $mode_type
*/
public function was_map($band_type, $mode_type) {
$this->load->model('was');
$data['mode'] = $mode_type;
$bands[] = $band_type;
$postdata['lotw'] = 1;
$postdata['qsl'] = 1;
$postdata['worked'] = 1;
$postdata['confirmed'] = 1;
$postdata['notworked'] = 1;
$postdata['band'] = $band_type;
$postdata['mode'] = $mode_type;
$data['was_array'] = $this->was->get_was_array($bands, $postdata);
$data['page_title'] = "";
$this->load->view('awards/was/map', $data);
}
}

查看文件

@ -99,11 +99,11 @@ class Clublog extends CI_Controller {
// If Clublog Accepts mark the QSOs
if (preg_match('/\baccepted\b/', $response)) {
echo "QSOs uploaded and Logbook QSOs marked as sent to Clublog";
echo "QSOs uploaded and Logbook QSOs marked as sent to Clublog"."<br>";
$this->load->model('clublog_model');
$this->clublog_model->mark_qsos_sent($station_row->station_id);
echo "Clublog upload for ".$station_row->station_callsign;
echo "Clublog upload for ".$station_row->station_callsign."<br>";
log_message('info', 'Clublog upload for '.$station_row->station_callsign.' successfully sent.');
} else {
echo "Error ".$response;
@ -116,7 +116,7 @@ class Clublog extends CI_Controller {
}
} else {
echo "Nothing awaiting upload to clublog for ".$station_row->station_callsign;
echo "Nothing awaiting upload to clublog for ".$station_row->station_callsign."<br>";
log_message('info', 'Nothing awaiting upload to clublog for '.$station_row->station_callsign);
}

查看文件

@ -9,8 +9,153 @@ if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Contesting extends CI_Controller {
public function index()
{
echo 'Functions to come';
function __construct()
{
parent::__construct();
$this->lang->load('contesting');
$this->load->model('user_model');
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
}
}
public function index()
{
$this->load->model('cat');
$this->load->model('stations');
$this->load->model('logbook_model');
$this->load->model('user_model');
$this->load->model('modes');
$this->load->model('contesting_model');
$data['active_station_profile'] = $this->stations->find_active();
$data['notice'] = false;
$data['stations'] = $this->stations->all();
$data['radios'] = $this->cat->radios();
$data['modes'] = $this->modes->active();
$data['contestnames'] = $this->contesting_model->getActivecontests();
$this->load->library('form_validation');
$this->form_validation->set_rules('start_date', 'Date', 'required');
$this->form_validation->set_rules('start_time', 'Time', 'required');
$this->form_validation->set_rules('callsign', 'Callsign', 'required');
$data['page_title'] = "Contest Logging";
$this->load->view('interface_assets/header', $data);
$this->load->view('contesting/index');
$this->load->view('interface_assets/footer');
//setcookie("radio", $qso_data['radio'], time()+3600*24*99);
//setcookie("station_profile_id", $qso_data['station_profile_id'], time()+3600*24*99);
//$this->session->set_userdata($qso_data);
// If SAT name is set make it session set to sat
if($this->input->post('sat_name')) {
$this->session->set_userdata('prop_mode', 'SAT');
}
}
public function getSessionQsos() {
//load model
$this->load->model('Contesting_model');
$qso = $this->input->post('qso');
// get QSOs to fill the table
$data = $this->Contesting_model->getSessionQsos($qso);
return json_encode($data);
}
public function create()
{
$this->load->model('Contesting_model');
$this->load->library('form_validation');
$this->form_validation->set_rules('name', 'Contest Name', 'required');
$this->form_validation->set_rules('adifname', 'Contest Adif Name', 'required');
if ($this->form_validation->run() == FALSE)
{
$data['page_title'] = "Create Mode";
$this->load->view('contesting/create', $data);
}
else
{
$this->Contesting_model->add();
}
}
public function add() {
$this->load->model('Contesting_model');
$data['contests'] = $this->Contesting_model->getAllContests();
// Render Page
$data['page_title'] = "Contests";
$this->load->view('interface_assets/header', $data);
$this->load->view('contesting/add');
$this->load->view('interface_assets/footer');
}
public function edit($id)
{
$this->load->library('form_validation');
$this->load->model('Contesting_model');
$item_id_clean = $this->security->xss_clean($id);
$data['contest'] = $this->Contesting_model->contest($item_id_clean);
$data['page_title'] = "Edit Contest";
$this->form_validation->set_rules('name', 'Contest Name', 'required');
$this->form_validation->set_rules('adifname', 'Adif Contest Name', 'required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('interface_assets/header', $data);
$this->load->view('contesting/edit');
$this->load->view('interface_assets/footer');
}
else
{
$this->Contesting_model->edit($item_id_clean);
$data['notice'] = "Contest ".$this->security->xss_clean($this->input->post('name', true))." Updated";
redirect('contesting/add');
}
}
public function delete() {
$id = $this->input->post('id');
$this->load->model('Contesting_model');
$this->Contesting_model->delete($id);
}
public function activate() {
$id = $this->input->post('id');
$this->load->model('Contesting_model');
$this->Contesting_model->activate($id);
header('Content-Type: application/json');
echo json_encode(array('message' => 'OK'));
return;
}
public function deactivate() {
$id = $this->input->post('id');
$this->load->model('Contesting_model');
$this->Contesting_model->deactivate($id);
header('Content-Type: application/json');
echo json_encode(array('message' => 'OK'));
return;
}
}

查看文件

@ -44,6 +44,12 @@ class Dashboard extends CI_Controller {
$this->load->view('setup/check_list');
$this->load->view('interface_assets/footer');
} else {
//
$this->load->model('cat');
$data['radio_status'] = $this->cat->recent_status();
// Store info
$data['todays_qsos'] = $this->logbook_model->todays_qsos();
$data['total_qsos'] = $this->logbook_model->total_qsos();

查看文件

@ -0,0 +1,72 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Debug extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->model('user_model');
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
if(ENVIRONMENT != "development") {
show_error("You must have global enviroment set to development", '403', $heading = 'An Error Was Encountered');
}
}
/* User Facing Links to Backup URLs */
public function index()
{
$this->load->helper('file');
// Test writing to backup folder
if ( ! write_file('backup/myfile.txt', "dummydata"))
{
$data['backup_folder'] = false;
}
else
{
if(unlink(realpath('backup/myfile.txt'))) {
$data['backup_folder'] = true;
} else {
$data['backup_folder'] = false;
}
}
// Test writing to updates folder
if ( ! write_file('updates/myfile.txt', "dummydata"))
{
$data['updates_folder'] = false;
}
else
{
if(unlink(realpath('updates/myfile.txt'))) {
$data['updates_folder'] = true;
} else {
$data['updates_folder'] = false;
}
}
// Test writing to uploads folder
if ( ! write_file('uploads/myfile.txt', "dummydata"))
{
$data['uploads_folder'] = false;
}
else
{
if(unlink(realpath('uploads/myfile.txt'))) {
$data['uploads_folder'] = true;
} else {
$data['uploads_folder'] = false;
}
}
$data['page_title'] = "Debug";
$this->load->view('interface_assets/header', $data);
$this->load->view('debug/main');
$this->load->view('interface_assets/footer');
}
}

查看文件

@ -14,20 +14,11 @@ class Distances extends CI_Controller {
public function index()
{
// Render Page
$data['page_title'] = "Distances worked";
$data['page_title'] = "Distances Worked";
function js_str($s)
{
return '"' . addcslashes($s, "\0..\37\"\\") . '"';
}
function js_array($array)
{
$temp = array_map('js_str', $array);
return '[' . implode(',', $temp) . ']';
}
$data['bands_available'] = js_array($this->config->item('bands_available'));
$this->load->model('Distances_model');
$data['bands_available'] = $this->Distances_model->get_worked_bands();
$data['sats_available'] = $this->Distances_model->get_worked_sats();
$this->load->view('interface_assets/header', $data);
$this->load->view('distances/index');
@ -41,10 +32,16 @@ class Distances extends CI_Controller {
//load model
$this->load->model('Distances_model');
if ($this->session->userdata('user_measurement_base') == NULL) {
$measurement_base = $this->config->item('measurement_base');
}
else {
$measurement_base = $this->session->userdata('user_measurement_base');
}
// get data
$data = $this->Distances_model->get_distances($postData);
$data = $this->Distances_model->get_distances($postData, $measurement_base);
return json_encode($data);
}
}

查看文件

@ -460,7 +460,7 @@ class eqsl extends CI_Controller {
# Make sure we don't have any spaces
$adif = str_replace(" ", '%20', $adif);
$status = "Unknown";
$status = "";
// begin script
$ch = curl_init();
@ -551,6 +551,7 @@ class eqsl extends CI_Controller {
// Dump out a table with the results
$data['eqsl_results_table'] = $table;
log_message('debug', $result);
}
else
{
@ -571,7 +572,7 @@ class eqsl extends CI_Controller {
{
$table .= "<tr>";
$table .= "<td>".$qsl['COL_TIME_ON']."</td>";
$table .= "<td><a class=\"qsobox\" href=\"".site_url('qso/edit')."/".$qsl['COL_PRIMARY_KEY']."\">".str_replace("0","&Oslash;",strtoupper($qsl['COL_CALL']))."</a></td>";
$table .= "<td><a href=\"javascript:displayQso(" . $qsl['COL_PRIMARY_KEY'] . ")\">" . str_replace("0","&Oslash;",strtoupper($qsl['COL_CALL'])) . "</a></td>";
$table .= "<td>".$qsl['COL_MODE']."</td>";
$table .= "<td>".$qsl['COL_BAND']."</td>";
$table .= "<td>".$qsl['eqslqthnickname']."</td>";

查看文件

@ -9,7 +9,28 @@
class Kml extends CI_Controller {
public function index()
public function index()
{
$this->load->model('user_model');
$this->load->model('modes');
$this->load->model('dxcc');
$this->load->model('logbook_model');
if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
$data['worked_bands'] = $this->dxcc->get_worked_bands(); // Used in the view for band select
$data['modes'] = $this->modes->active(); // Used in the view for mode select
$data['dxcc'] = $this->logbook_model->fetchDxcc(); // Used in the view for dxcc select
$data['page_title'] = "KML Export";
$this->load->view('interface_assets/header', $data);
$this->load->view('kml/index');
$this->load->view('interface_assets/footer');
}
public function export()
{
// Load Librarys
$this->load->library('qra');
@ -18,12 +39,18 @@ class Kml extends CI_Controller {
// Load Database connections
$this->load->model('logbook_model');
// Get QSOs with Valid QRAs
$qsos = $this->logbook_model->kml_get_all_qsos();
// Parameters
$band = $this->input->post('band');
$mode = $this->input->post('mode');
$dxcc = $this->input->post('dxcc_id');
$cqz = $this->input->post('cqz');
$propagation = $this->input->post('prop_mode');
$fromdate = $this->input->post('fromdate');
$todate = $this->input->post('todate');
// Get QSOs with Valid QRAs
$qsos = $this->logbook_model->kml_get_all_qsos($band, $mode, $dxcc, $cqz, $propagation, $fromdate, $todate);
//header('Content-type: text/xml');
//header("Cache-Control: no-cache");
$output = "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
$output .= "<kml xmlns=\"http://www.opengis.net/kml/2.2\">";
@ -32,7 +59,7 @@ class Kml extends CI_Controller {
foreach ($qsos->result() as $row)
{
$output .= "<Placemark>";
//print_r($row);
if($row->COL_GRIDSQUARE != null) {
$stn_loc = $this->qra->qra2latlong($row->COL_GRIDSQUARE);
@ -41,7 +68,7 @@ class Kml extends CI_Controller {
} else {
$query = $this->db->query('
SELECT *
FROM dxcc
FROM dxcc_entities
WHERE prefix = SUBSTRING( \''.$row->COL_CALL.'\', 1, LENGTH( prefix ) )
ORDER BY LENGTH( prefix ) DESC
LIMIT 1
@ -55,7 +82,6 @@ class Kml extends CI_Controller {
$timestamp = strtotime($row->COL_TIME_ON);
$output .= "<name>".$row->COL_CALL."</name>";
$output .= "<description><![CDATA[<p>Date/Time: ".date('Y-m-d H:i:s', ($timestamp))."<br/>Band: ".$row->COL_BAND."<br /></p>]]></description>";
$output .= "<Point>";
@ -64,13 +90,16 @@ class Kml extends CI_Controller {
$output .= "</Placemark>";
}
$output .= "</Document>";
$output .= "</kml>";
if (!file_exists('kml')) {
mkdir('kml', 0755, true);
}
if ( ! write_file('kml/qsos.kml', $output))
{
echo 'Unable to write the file - Make the folder KML has write permissions.';
echo 'Unable to write the file. Make sure the folder KML has write permissions.';
}
else
{

查看文件

@ -3,6 +3,18 @@
class Logbook extends CI_Controller {
function __construct()
{
parent::__construct();
// Load language files
$this->lang->load(array(
'qslcard',
'lotw',
'qso'
));
}
function index()
{
$this->load->model('user_model');
@ -67,6 +79,9 @@ class Logbook extends CI_Controller {
$this->load->model('user_model');
if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; }
// Convert - in Callsign to / Used for URL processing
$callsign = str_replace("-","/",$callsign);
// Check if callsign is an LOTW User
$lotw_member = "";
$lotw_file_name = "./updates/lotw_users.csv";
@ -127,6 +142,7 @@ class Logbook extends CI_Controller {
$return['callsign_qth'] = $this->logbook_model->call_qth($callsign);
$return['callsign_iota'] = $this->logbook_model->call_iota($callsign);
$return['qsl_manager'] = $this->logbook_model->call_qslvia($callsign);
$return['callsign_state'] = $this->logbook_model->call_state($callsign);
$return['bearing'] = $this->bearing($return['callsign_qra'], $measurement_base);
$return['workedBefore'] = $this->worked_grid_before($return['callsign_qra'], $type, $band, $mode);
@ -177,7 +193,7 @@ class Logbook extends CI_Controller {
function worked_grid_before($gridsquare, $type, $band, $mode)
{
if (strlen($gridsquare) < 4)
return false;
return false;
$CI =& get_instance();
$CI->load->model('Stations');
@ -185,14 +201,14 @@ class Logbook extends CI_Controller {
if($type == "SAT") {
$this->db->where('COL_PROP_MODE', 'SAT');
$this->db->where('COL_PROP_MODE', 'SAT');
} else {
$this->db->where('COL_MODE', $mode);
$this->db->where('COL_BAND', $band);
$this->db->where('COL_MODE', $mode);
$this->db->where('COL_BAND', $band);
$this->db->where('COL_PROP_MODE !=','SAT');
}
$this->db->where('station_id', $station_id);
$this->db->where('station_id', $station_id);
$this->db->like('SUBSTRING(COL_GRIDSQUARE, 1, 4)', substr($gridsquare, 0, 4));
$this->db->order_by($this->config->item('table_name').".COL_TIME_ON", "desc");
$this->db->limit(1);
@ -211,7 +227,7 @@ class Logbook extends CI_Controller {
/*
* Function: jsonlookupgrid
*
* Usage: Used to look up gridsquares when creating a QSO to check whether its needed or not
* Usage: Used to look up gridsquares when creating a QSO to check whether its needed or not
* the $type variable is only used for satellites, set this to SAT.
*
*/
@ -225,16 +241,16 @@ class Logbook extends CI_Controller {
$station_id = $CI->Stations->find_active();
if($type == "SAT") {
$this->db->where('COL_PROP_MODE', 'SAT');
$this->db->where('COL_PROP_MODE', 'SAT');
} else {
$this->db->where('COL_MODE', $mode);
$this->db->where('COL_BAND', $band);
$this->db->where('COL_MODE', $mode);
$this->db->where('COL_BAND', $band);
$this->db->where('COL_PROP_MODE !=','SAT');
}
$this->db->where('station_id', $station_id);
$this->db->where('station_id', $station_id);
$this->db->like('SUBSTRING(COL_GRIDSQUARE, 1, 4)', substr($gridsquare, 0, 4));
$query = $this->db->get($this->config->item('table_name'), 1, 0);
foreach ($query->result() as $workedBeforeRow)
@ -249,7 +265,7 @@ class Logbook extends CI_Controller {
}
function jsonlookupdxcc($country, $type, $band, $mode) {
$return = [
"workedBefore" => false,
];
@ -259,17 +275,17 @@ class Logbook extends CI_Controller {
$station_id = $CI->Stations->find_active();
if($type == "SAT") {
$this->db->where('COL_PROP_MODE', 'SAT');
$this->db->where('COL_PROP_MODE', 'SAT');
} else {
$this->db->where('COL_MODE', $mode);
$this->db->where('COL_BAND', $band);
$this->db->where('COL_MODE', $mode);
$this->db->where('COL_BAND', $band);
$this->db->where('COL_PROP_MODE !=','SAT');
}
$this->db->where('station_id', $station_id);
$this->db->where('COL_COUNTRY', urldecode($country));
$this->db->where('station_id', $station_id);
$this->db->where('COL_COUNTRY', urldecode($country));
$query = $this->db->get($this->config->item('table_name'), 1, 0);
foreach ($query->result() as $workedBeforeRow)
{
@ -283,7 +299,10 @@ class Logbook extends CI_Controller {
}
function jsonlookupcallsign($callsign, $type, $band, $mode) {
// Convert - in Callsign to / Used for URL processing
$callsign = str_replace("-","/",$callsign);
$return = [
"workedBefore" => false,
];
@ -293,17 +312,17 @@ class Logbook extends CI_Controller {
$station_id = $CI->Stations->find_active();
if($type == "SAT") {
$this->db->where('COL_PROP_MODE', 'SAT');
$this->db->where('COL_PROP_MODE', 'SAT');
} else {
$this->db->where('COL_MODE', $mode);
$this->db->where('COL_BAND', $band);
$this->db->where('COL_MODE', $mode);
$this->db->where('COL_BAND', $band);
$this->db->where('COL_PROP_MODE !=','SAT');
}
$this->db->where('station_id', $station_id);
$this->db->where('COL_CALL', strtoupper($callsign));
$this->db->where('station_id', $station_id);
$this->db->where('COL_CALL', strtoupper($callsign));
$query = $this->db->get($this->config->item('table_name'), 1, 0);
foreach ($query->result() as $workedBeforeRow)
{
@ -364,7 +383,7 @@ class Logbook extends CI_Controller {
echo "]";
echo "}";
}
function view($id) {
$this->load->model('user_model');
if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; }
@ -388,11 +407,11 @@ class Logbook extends CI_Controller {
$this->load->view('view_log/qso');
$this->load->view('interface_assets/footer');
}
function partial($id) {
$this->load->model('user_model');
if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; }
$html = "";
@ -422,10 +441,23 @@ class Logbook extends CI_Controller {
$html .= "<td>QSL</td>";
$html .= "<td></td>";
$html .= "</tr>";
// Get Date format
if($this->session->userdata('user_date_format')) {
// If Logged in and session exists
$custom_date_format = $this->session->userdata('user_date_format');
} else {
// Get Default date format from /config/cloudlog.php
$custom_date_format = $this->config->item('qso_date_format');
}
foreach ($query->result() as $row)
{
$timestamp = strtotime($row->COL_TIME_ON);
$html .= "<tr>";
$html .= "<td>".date($this->config->item('qso_date_format').' H:i',strtotime($row->COL_TIME_ON))."</td>";
$html .= "<td>".date($custom_date_format, $timestamp). date(' H:i',strtotime($row->COL_TIME_ON)) . "</td>";
$html .= "<td>".str_replace("0","&Oslash;",strtoupper($row->COL_CALL))."</td>";
$html .= "<td>".$row->COL_RST_SENT."</td>";
$html .= "<td>".$row->COL_RST_RCVD."</td>";
@ -520,12 +552,12 @@ class Logbook extends CI_Controller {
if(!$this->user_model->authorize($this->config->item('auth_mode'))) { return; }
$this->db->select(''.$this->config->item('table_name').'.COL_CALL, '.$this->config->item('table_name').'.COL_BAND, '.$this->config->item('table_name').'.COL_TIME_ON, '.$this->config->item('table_name').'.COL_RST_RCVD, '.$this->config->item('table_name').'.COL_RST_SENT, '.$this->config->item('table_name').'.COL_MODE, '.$this->config->item('table_name').'.COL_SUBMODE, '.$this->config->item('table_name').'.COL_NAME, '.$this->config->item('table_name').'.COL_COUNTRY, '.$this->config->item('table_name').'.COL_PRIMARY_KEY, '.$this->config->item('table_name').'.COL_SAT_NAME, '.$this->config->item('table_name').'.COL_GRIDSQUARE, '.$this->config->item('table_name').'.COL_QSL_RCVD, '.$this->config->item('table_name').'.COL_EQSL_QSL_RCVD, '.$this->config->item('table_name').'.COL_EQSL_QSL_SENT, '.$this->config->item('table_name').'.COL_QSL_SENT, '.$this->config->item('table_name').'.COL_STX, '.$this->config->item('table_name').'.COL_STX_STRING, '.$this->config->item('table_name').'.COL_SRX, '.$this->config->item('table_name').'.COL_SRX_STRING, '.$this->config->item('table_name').'.COL_LOTW_QSL_SENT, '.$this->config->item('table_name').'.COL_LOTW_QSL_RCVD, '.$this->config->item('table_name').'.COL_VUCC_GRIDS, station_profile.*');
//$this->db->select(''.$this->config->item('table_name').'.COL_CALL, '.$this->config->item('table_name').'.COL_BAND, '.$this->config->item('table_name').'.COL_TIME_ON, '.$this->config->item('table_name').'.COL_RST_RCVD, '.$this->config->item('table_name').'.COL_RST_SENT, '.$this->config->item('table_name').'.COL_MODE, '.$this->config->item('table_name').'.COL_SUBMODE, '.$this->config->item('table_name').'.COL_NAME, '.$this->config->item('table_name').'.COL_COUNTRY, '.$this->config->item('table_name').'.COL_PRIMARY_KEY, '.$this->config->item('table_name').'.COL_SAT_NAME, '.$this->config->item('table_name').'.COL_GRIDSQUARE, '.$this->config->item('table_name').'.COL_QSL_RCVD, '.$this->config->item('table_name').'.COL_EQSL_QSL_RCVD, '.$this->config->item('table_name').'.COL_EQSL_QSL_SENT, '.$this->config->item('table_name').'.COL_QSL_SENT, '.$this->config->item('table_name').'.COL_STX, '.$this->config->item('table_name').'.COL_STX_STRING, '.$this->config->item('table_name').'.COL_SRX, '.$this->config->item('table_name').'.COL_SRX_STRING, '.$this->config->item('table_name').'.COL_LOTW_QSL_SENT, '.$this->config->item('table_name').'.COL_LOTW_QSL_RCVD, '.$this->config->item('table_name').'.COL_VUCC_GRIDS, station_profile.*');
$this->db->from($this->config->item('table_name'));
$this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id');
$this->db->like(''.$this->config->item('table_name').'.COL_CALL', $id);
$this->db->or_like(''.$this->config->item('table_name').'.COL_GRIDSQUARE', $id);
$this->db->or_like(''.$this->config->item('table_name').'.COL_VUCC_GRIDS', $id);
@ -673,4 +705,4 @@ class Logbook extends CI_Controller {
}
}
}

查看文件

@ -16,14 +16,42 @@ class Lookup extends CI_Controller {
$this->load->model('user_model');
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
}
public function index()
{
$data['page_title'] = "Quick Lookup";
$this->load->model('logbook_model');
$data['dxcc'] = $this->logbook_model->fetchDxcc();
$data['iota'] = $this->logbook_model->fetchIota();
$this->load->view('lookup/index', $data);
}
public function search() {
$CI =& get_instance();
$CI->load->model('Stations');
$station_id = $CI->Stations->find_active();
$this->load->model('lookup_model');
$data['bands'] = $this->lookup_model->get_Worked_Bands($station_id);
$data['type'] = xss_clean($this->input->post('type'));
$data['dxcc'] = xss_clean($this->input->post('dxcc'));
$data['was'] = xss_clean($this->input->post('was'));
$data['sota'] = xss_clean($this->input->post('sota'));
$data['grid'] = xss_clean($this->input->post('grid'));
$data['iota'] = xss_clean($this->input->post('iota'));
$data['cqz'] = xss_clean($this->input->post('cqz'));
$data['wwff'] = xss_clean($this->input->post('wwff'));
$data['station_id'] = $station_id;
$data['result'] = $this->lookup_model->getSearchResult($data);
$this->load->view('lookup/result', $data);
}
public function scp($call) {
if($call) {
$uppercase_callsign = strtoupper($call);
}
@ -78,7 +106,7 @@ class Lookup extends CI_Controller {
{
echo " " . $strCall . " ";
}
}
}

查看文件

@ -5,7 +5,7 @@ class Lotw extends CI_Controller {
|--------------------------------------------------------------------------
| Controller: Lotw
|--------------------------------------------------------------------------
|
|
| This Controller handles all things LOTW, upload and download.
|
|
@ -23,13 +23,16 @@ class Lotw extends CI_Controller {
{
parent::__construct();
$this->load->helper(array('form', 'url'));
// Load language files
$this->lang->load('lotw');
}
/*
|--------------------------------------------------------------------------
| Function: index
|--------------------------------------------------------------------------
|
|
| Default function for the controller which loads when doing /lotw
| this shows all the uploaded lotw p12 certificates the user has uploaded
|
@ -62,28 +65,32 @@ class Lotw extends CI_Controller {
|--------------------------------------------------------------------------
| Function: cert_upload
|--------------------------------------------------------------------------
|
|
| Nothing fancy just shows the cert_upload form for uploading p12 files
|
*/
public function cert_upload() {
$this->load->model('user_model');
$this->load->model('dxcc');
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
// Load DXCC Countrys List
$data['dxcc_list'] = $this->dxcc->list();
// Set Page Title
$data['page_title'] = "Logbook of the World";
// Load Views
$this->load->view('interface_assets/header', $data);
$this->load->view('lotw_views/upload_cert', array('error' => ' ' ));
$this->load->view('interface_assets/footer');
$this->load->view('interface_assets/footer');
}
/*
|--------------------------------------------------------------------------
| Function: do_cert_upload
|--------------------------------------------------------------------------
|
|
| do_cert_upload is called from cert_upload form submit and handles uploading
| and processing of p12 files and storing the data into mysql
|
@ -91,6 +98,7 @@ class Lotw extends CI_Controller {
public function do_cert_upload()
{
$this->load->model('user_model');
$this->load->model('dxcc');
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
// Fire OpenSSL missing error if not found
@ -113,13 +121,13 @@ class Lotw extends CI_Controller {
// Upload of P12 Failed
$error = array('error' => $this->upload->display_errors());
// Set Page Title
// Set Page Title
$data['page_title'] = "Logbook of the World";
// Load Views
$this->load->view('interface_assets/header', $data);
$this->load->view('lotw_views/upload_cert', $error);
$this->load->view('interface_assets/footer');
$this->load->view('interface_assets/footer');
}
else
{
@ -131,13 +139,18 @@ class Lotw extends CI_Controller {
$info = $this->decrypt_key($data['upload_data']['full_path']);
// Check to see if certificate is already in the system
$new_certficiate = $this->LotwCert->find_cert($info['issued_callsign'], $this->session->userdata('user_id'));
// Check DXCC & Store Country Name
$this->load->model('Logbook_model');
$dxcc_check = $this->Logbook_model->check_dxcc_table($info['issued_callsign'], $info['validFrom']);
$dxcc = $dxcc_check[1];
$this->load->model('Logbook_model');
if($this->input->post('dxcc') != "") {
$dxcc = $this->input->post('dxcc');
} else{
$dxcc_check = $this->Logbook_model->check_dxcc_table($info['issued_callsign'], $info['validFrom']);
$dxcc = $dxcc_check[1];
}
// Check to see if certificate is already in the system
$new_certficiate = $this->LotwCert->find_cert($info['issued_callsign'], $dxcc, $this->session->userdata('user_id'));
if($new_certficiate == 0) {
// New Certificate Store in Database
@ -180,7 +193,7 @@ class Lotw extends CI_Controller {
|--------------------------------------------------------------------------
| Function: lotw_upload
|--------------------------------------------------------------------------
|
|
| This function Uploads to LOTW
|
*/
@ -209,7 +222,7 @@ class Lotw extends CI_Controller {
// Get Certificate Data
$this->load->model('LotwCert');
$data['station_profile'] = $station_profile;
$data['lotw_cert_info'] = $this->LotwCert->lotw_cert_details($station_profile->station_callsign);
$data['lotw_cert_info'] = $this->LotwCert->lotw_cert_details($station_profile->station_callsign, $station_profile->station_country);
// If Station Profile has no LOTW Cert continue on.
if(!isset($data['lotw_cert_info']->cert_dxcc)) {
@ -229,14 +242,11 @@ class Lotw extends CI_Controller {
if(empty($data['qsos']->result())){
echo $station_profile->station_callsign." (".$station_profile->station_profile_name.") No QSOs to Upload <br>";
continue;
}
foreach ($data['qsos']->result() as $temp_qso) {
array_push($qso_id_array, $temp_qso->COL_PRIMARY_KEY);
}
//$this->load->view('lotw_views/adif_views/adif_export', $data);
foreach ($data['qsos']->result() as $temp_qso) {
array_push($qso_id_array, $temp_qso->COL_PRIMARY_KEY);
}
// Build File to save
$adif_to_save = $this->load->view('lotw_views/adif_views/adif_export', $data, TRUE);
@ -247,7 +257,6 @@ class Lotw extends CI_Controller {
}
// Build Filename
$filename_for_saving = './uploads/lotw/'.preg_replace('/[^a-z0-9]+/', '-', strtolower($data['lotw_cert_info']->callsign))."-".date("Y-m-d-H-i-s")."-cloudlog.tq8";
$gzdata = gzencode($adif_to_save, 9);
@ -257,25 +266,25 @@ class Lotw extends CI_Controller {
//The URL that accepts the file upload.
$url = 'https://lotw.arrl.org/lotw/upload';
//The name of the field for the uploaded file.
$uploadFieldName = 'upfile';
//The full path to the file that you want to upload
$filePath = realpath($filename_for_saving);
//Initiate cURL
$ch = curl_init();
//Set the URL
curl_setopt($ch, CURLOPT_URL, $url);
//Set the HTTP request to POST
curl_setopt($ch, CURLOPT_POST, true);
//Tell cURL to return the output as a string.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
//If the function curl_file_create exists
if(function_exists('curl_file_create')){
//Use the recommended way, creating a CURLFile object.
@ -289,23 +298,23 @@ class Lotw extends CI_Controller {
//starting with an @
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false);
}
//Setup our POST fields
$postFields = array(
$uploadFieldName => $filePath
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);
//Execute the request
$result = curl_exec($ch);
//If an error occured, throw an exception
//with the error message.
if(curl_errno($ch)){
throw new Exception(curl_error($ch));
}
$pos = strpos($result, "<!-- .UPL. accepted -->");
if ($pos === false) {
@ -344,7 +353,7 @@ class Lotw extends CI_Controller {
|--------------------------------------------------------------------------
| Function: delete_cert
|--------------------------------------------------------------------------
|
|
| Deletes LOTW certificate from the MySQL table
|
*/
@ -366,7 +375,7 @@ class Lotw extends CI_Controller {
|--------------------------------------------------------------------------
| Function: decrypt_key
|--------------------------------------------------------------------------
|
|
| Accepts p12 file and optional password and encrypts the file returning
| the required fields for LOTW and the PEM Key
|
@ -420,12 +429,12 @@ class Lotw extends CI_Controller {
return $data;
}
/*
|--------------------------------------------------------------------------
| Function: loadFromFile
|--------------------------------------------------------------------------
|
|
| $filepath is the ADIF file, $display_view is used to hide the output if its internal script
|
| Internal function that takes the LoTW ADIF and imports into the log
@ -489,7 +498,7 @@ class Lotw extends CI_Controller {
$station_id = $this->logbook_model->find_correct_station_id($record['station_callsign'], $record['my_gridsquare']);
if ($station_id != NULL) {
$result = $this->logbook_model->import($record, $station_id, NULL, NULL, NULL); // Create the Entry
$result = $this->logbook_model->import($record, $station_id, NULL, TRUE, NULL, NULL, true, false); // Create the Entry
if ($result == "") {
$lotw_status = 'QSO imported';
} else {
@ -548,8 +557,8 @@ class Lotw extends CI_Controller {
|--------------------------------------------------------------------------
| Function: lotw_download
|--------------------------------------------------------------------------
|
| Collects users with LoTW usernames and passwords and runs through them
|
| Collects users with LoTW usernames and passwords and runs through them
| downloading matching QSOs.
|
*/
@ -825,11 +834,11 @@ class Lotw extends CI_Controller {
/*
Load the ARRL LOTW User Activity CSV and saves into uploads/lotw_users.csv
*/
*/
public function load_users() {
$contents = file_get_contents('https://lotw.arrl.org/lotw-user-activity.csv', true);
if($contents === FALSE) {
if($contents === FALSE) {
echo "something went wrong";
} else {
$file = './updates/lotw_users.csv';
@ -896,9 +905,34 @@ class Lotw extends CI_Controller {
"TO-108" => "CAS-6",
"TAURUS" => "TAURUS-1",
"AISAT1" => "AISAT-1",
'UVSQ' => "UVSQ-SAT"
);
return array_search(strtoupper($satname),$arr,true);
}
/*
| Function: mode_map
| Requires: mode as $mode, submode as $submode
|
| This converts ADIF modes to the mode that LoTW expects if its non standard
*/
function mode_map($mode, $submode) {
switch ($mode):
case "PKT":
return "PACKET";
break;
case "MFSK":
if ($submode == "FT4") {
return "FT4";
break;
} else {
return "MFSK";
break;
}
default:
return $mode;
endswitch;
}
} // end class

查看文件

@ -0,0 +1,209 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class Map extends CI_Controller {
function index()
{
// Calculate Lat/Lng from Locator to use on Maps
if($this->session->userdata('user_locator')) {
$this->load->library('qra');
$qra_position = $this->qra->qra2latlong($this->session->userdata('user_locator'));
$data['qra'] = "set";
$data['qra_lat'] = $qra_position[0];
$data['qra_lng'] = $qra_position[1];
} else {
$data['qra'] = "none";
}
$this->load->model('Stations');
$station_id = $this->Stations->find_active();
$station_data = $this->Stations->profile_clean($station_id);
// load the view
$data['station_profile'] = $station_data;
$data['page_title'] = "Map QSOs";
$this->load->view('interface_assets/header', $data);
$this->load->view('map/qsos');
$this->load->view('interface_assets/footer');
}
function custom()
{
$this->load->model('dxcc');
$this->load->model('modes');
$data['worked_bands'] = $this->dxcc->get_worked_bands(); // Used in the view for band select
$data['modes'] = $this->modes->active(); // Used in the view for mode select
if ($this->input->post('band') != NULL) { // Band is not set when page first loads.
if ($this->input->post('band') == 'All') { // Did the user specify a band? If not, use all bands
$bands = $data['worked_bands'];
}
else {
$bands[] = $this->input->post('band');
}
}
else {
$bands = $data['worked_bands'];
}
$data['bands'] = $bands; // Used for displaying selected band(s) in the table in the view
// Calculate Lat/Lng from Locator to use on Maps
if($this->session->userdata('user_locator')) {
$this->load->library('qra');
$qra_position = $this->qra->qra2latlong($this->session->userdata('user_locator'));
$data['qra'] = "set";
$data['qra_lat'] = $qra_position[0];
$data['qra_lng'] = $qra_position[1];
} else {
$data['qra'] = "none";
}
$this->load->model('Stations');
$station_id = $this->Stations->find_active();
$station_data = $this->Stations->profile_clean($station_id);
// load the view
$data['station_profile'] = $station_data;
$data['page_title'] = "Map QSOs";
if ($this->input->post('from')) {
$from = $this->input->post('from');
$from = DateTime::createFromFormat('m/d/Y g:i A', $from);
$from = $from->format('Y-m-d H:i');
$footer_data['date_from'] = $from;
} else {
$footer_data['date_from'] = date('Y-m-d H:i:00');
}
if ($this->input->post('to')) {
$to = DateTime::createFromFormat('m/d/Y g:i A', $this->input->post('to'));
$to = $to->modify('+1 day')->format('Y-m-d H:i:00');
$footer_data['date_to'] = $to;
} else {
$temp_to = new DateTime('tomorrow');
$footer_data['date_to'] = $temp_to->format('Y-m-d H:i:00');
}
$this->load->view('interface_assets/header', $data);
$this->load->view('map/custom_date');
$this->load->view('interface_assets/footer',$footer_data);
}
function map_data_custom() {
$start_date = $this->uri->segment(3);
$end_date = $this->uri->segment(4);
$band = $this->uri->segment(5);
$this->load->model('logbook_model');
$this->load->library('qra');
$qsos = $this->logbook_model->map_custom_qsos(rawurldecode($start_date), rawurldecode($end_date), $band);
echo "{\"markers\": [";
$count = 1;
foreach ($qsos->result() as $row) {
//print_r($row);
if($row->COL_GRIDSQUARE != null) {
$stn_loc = $this->qra->qra2latlong($row->COL_GRIDSQUARE);
if($count != 1) {
echo ",";
}
if($row->COL_SAT_NAME != null) {
echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />SAT: ".$row->COL_SAT_NAME."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}";
} else {
echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />Band: ".$row->COL_BAND."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}";
}
$count++;
} else {
$query = $this->db->query('
SELECT *
FROM dxcc_entities
WHERE prefix = SUBSTRING( \''.$row->COL_CALL.'\', 1, LENGTH( prefix ) )
ORDER BY LENGTH( prefix ) DESC
LIMIT 1
');
foreach ($query->result() as $dxcc) {
if($count != 1) {
echo ",";
}
echo "{\"lat\":\"".$dxcc->lat."\",\"lng\":\"".$dxcc->long."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />Band: ".$row->COL_BAND."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}";
$count++;
}
}
}
echo "]";
echo "}";
}
function map_data() {
$this->load->model('logbook_model');
$this->load->library('qra');
//echo date('Y-m-d')
$raw = strtotime('Monday last week');
$mon = date('Y-m-d', $raw);
$sun = date('Y-m-d', strtotime('Monday next week'));
$qsos = $this->logbook_model->map_all_qsos_for_active_station_profile();
echo "{\"markers\": [";
$count = 1;
foreach ($qsos->result() as $row) {
//print_r($row);
if($row->COL_GRIDSQUARE != null) {
$stn_loc = $this->qra->qra2latlong($row->COL_GRIDSQUARE);
if($count != 1) {
echo ",";
}
if($row->COL_SAT_NAME != null) {
echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />SAT: ".$row->COL_SAT_NAME."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}";
} else {
echo "{\"lat\":\"".$stn_loc[0]."\",\"lng\":\"".$stn_loc[1]."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />Band: ".$row->COL_BAND."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}";
}
$count++;
} else {
$query = $this->db->query('
SELECT *
FROM dxcc_entities
WHERE prefix = SUBSTRING( \''.$row->COL_CALL.'\', 1, LENGTH( prefix ) )
ORDER BY LENGTH( prefix ) DESC
LIMIT 1
');
foreach ($query->result() as $dxcc) {
if($count != 1) {
echo ",";
}
echo "{\"lat\":\"".$dxcc->lat."\",\"lng\":\"".$dxcc->long."\", \"html\":\"Callsign: ".$row->COL_CALL."<br />Date/Time: ".$row->COL_TIME_ON."<br />Band: ".$row->COL_BAND."<br />Mode: ".$row->COL_MODE."\",\"label\":\"".$row->COL_CALL."\"}";
$count++;
}
}
}
echo "]";
echo "}";
}
}

查看文件

@ -8,6 +8,9 @@ class Notes extends CI_Controller {
$this->load->model('user_model');
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
// Load language files
$this->lang->load('notes');
}

查看文件

@ -0,0 +1,148 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
/*
Handles Displaying of information for station tools.
*/
class Options extends CI_Controller {
function __construct()
{
parent::__construct();
$this->load->helper(array('form', 'url'));
$this->load->model('user_model');
if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
}
// Default /options view just gives some text to explain the options area
function index() {
//echo $this->config->item('option_theme');
//echo $this->optionslib->get_option('theme');
$data['page_title'] = "Cloudlog Options";
$this->load->view('interface_assets/header', $data);
$this->load->view('options/index');
$this->load->view('interface_assets/footer');
}
// function used to display the /appearance url
function appearance() {
// Get Language Options
$directory = 'application/language';
$data['language_options'] = array_diff(scandir($directory), array('..', '.'));
$data['page_title'] = "Cloudlog Options";
$data['sub_heading'] = "Appearance";
$this->load->view('interface_assets/header', $data);
$this->load->view('options/appearance');
$this->load->view('interface_assets/footer');
}
// Handles saving the appreance options to the options system.
function appearance_save() {
// Get Language Options
$directory = 'application/language';
$data['language_options'] = array_diff(scandir($directory), array('..', '.'));
$data['page_title'] = "Cloudlog Options";
$data['sub_heading'] = "Appearance";
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('theme', 'theme', 'required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('interface_assets/header', $data);
$this->load->view('options/appearance');
$this->load->view('interface_assets/footer');
}
else
{
// Update theme choice within the options system
$theme_update_status = $this->optionslib->update('theme', $this->input->post('theme'));
// If theme update is complete set a flashsession with a success note
if($theme_update_status == TRUE) {
$this->session->set_flashdata('success', 'Theme changed to '.$this->input->post('theme'));
}
// Update theme choice within the options system
$search_update_status = $this->optionslib->update('global_search', $this->input->post('globalSearch'));
// If theme update is complete set a flashsession with a success note
if($search_update_status == TRUE) {
$this->session->set_flashdata('success', 'Global Search changed to '.$this->input->post('globalSearch'));
}
// Update Lang choice within the options system
// $lang_update_status = $this->optionslib->update('language', $this->input->post('language'));
// If Lang update is complete set a flashsession with a success note
// if($lang_update_status == TRUE) {
// $this->session->set_flashdata('success', 'Language changed to '.ucfirst($this->input->post('language')));
// }
// Redirect back to /appearance
redirect('/options/appearance');
}
}
// function used to display the /radio url
function radio() {
$data['page_title'] = "Cloudlog Options";
$data['sub_heading'] = "Radio Settings";
$this->load->view('interface_assets/header', $data);
$this->load->view('options/radios');
$this->load->view('interface_assets/footer');
}
// Handles saving the radio options to the options system.
function radio_save() {
// Get Language Options
$data['page_title'] = "Cloudlog Options";
$data['sub_heading'] = "Radio Settings";
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('radioTimeout', 'radioTimeout', 'required');
if ($this->form_validation->run() == FALSE)
{
$this->load->view('interface_assets/header', $data);
$this->load->view('options/radios');
$this->load->view('interface_assets/footer');
}
else
{
// Update theme choice within the options system
$radioTimeout_update = $this->optionslib->update('cat_timeout_interval', $this->input->post('radioTimeout'));
// If theme update is complete set a flashsession with a success note
if($radioTimeout_update == TRUE) {
$this->session->set_flashdata('success', 'Radio Timeout Warning changed to '.$this->input->post('radioTimeout').' seconds');
}
// Redirect back to /appearance
redirect('/options/radio');
}
}
}

查看文件

@ -25,7 +25,8 @@ class Qrz extends CI_Controller {
if ($station_ids) {
foreach ($station_ids as $station_id) {
$qrz_api_key = $this->logbook_model->exists_qrz_api_key($station_id);
$result = $this->logbook_model->exists_qrz_api_key($station_id);
$qrz_api_key = $result->qrzapikey;
if($this->mass_upload_qsos($station_id, $qrz_api_key)) {
echo "QSOs have been uploaded to QRZ.com.";
log_message('info', 'QSOs have been uploaded to QRZ.com.');
@ -58,23 +59,26 @@ class Qrz extends CI_Controller {
$data['qsos'] = $this->logbook_model->get_qrz_qsos($station_id);
$errormessages=array();
if ($data['qsos']) {
foreach ($data['qsos'] as $qso) {
$adif = $this->logbook_model->create_adif_from_data($qso);
$CI =& get_instance();
$CI->load->library('AdifHelper');
if ($qso['COL_QRZCOM_QSO_UPLOAD_STATUS'] == 'M') {
if ($data['qsos']) {
foreach ($data['qsos']->result() as $qso) {
$adif = $CI->adifhelper->getAdifLine($qso);
if ($qso->COL_QRZCOM_QSO_UPLOAD_STATUS == 'M') {
$result = $this->logbook_model->push_qso_to_qrz($qrz_api_key, $adif, true);
} else {
$result = $this->logbook_model->push_qso_to_qrz($qrz_api_key, $adif);
}
if ($result['status'] == 'OK') {
$this->markqso($qso['COL_PRIMARY_KEY']);
$this->markqso($qso->COL_PRIMARY_KEY);
$i++;
} else {
log_message('error', 'QRZ upload failed for qso: Call: ' . $qso['COL_CALL'] . ' Band: ' . $qso['COL_BAND'] . ' Mode: ' . $qso['COL_MODE'] . ' Time: ' . $qso['COL_TIME_ON']);
log_message('error', 'QRZ upload failed for qso: Call: ' . $qso->COL_CALL . ' Band: ' . $qso->COL_BAND . ' Mode: ' . $qso->COL_MODE . ' Time: ' . $qso->COL_TIME_ON);
log_message('error', 'QRZ upload failed with the following message: ' .$result['message']);
$errormessages[] = $result['message'] . ' Call: ' . $qso['COL_CALL'] . ' Band: ' . $qso['COL_BAND'] . ' Mode: ' . $qso['COL_MODE'] . ' Time: ' . $qso['COL_TIME_ON'];
$errormessages[] = $result['message'] . ' Call: ' . $qso->COL_CALL . ' Band: ' . $qso->COL_BAND . ' Mode: ' . $qso->COL_MODE . ' Time: ' . $qso->COL_TIME_ON;
}
}
$result['status'] = 'OK';
@ -124,8 +128,8 @@ class Qrz extends CI_Controller {
$postData = $this->input->post();
$this->load->model('logbook_model');
$qrz_api_key = $this->logbook_model->exists_qrz_api_key($postData['station_id']);
$result = $this->logbook_model->exists_qrz_api_key($postData['station_id']);
$qrz_api_key = $result->qrzapikey;
header('Content-type: application/json');
$result = $this->mass_upload_qsos($postData['station_id'], $qrz_api_key);
if ($result['status'] == 'OK') {

查看文件

@ -8,7 +8,7 @@ class Qsl extends CI_Controller {
function __construct() {
parent::__construct();
$this->lang->load('qslcard');
$this->load->model('user_model');
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
}
@ -143,7 +143,32 @@ class Qsl extends CI_Controller {
}
}
function loadSearchForm() {
$data['filename'] = $this->input->post('filename');
$this->load->view('qslcard/searchform', $data);
}
function searchQsos() {
$this->load->model('Qsl_model');
$callsign = $this->input->post('callsign');
$data['results'] = $this->Qsl_model->searchQsos($callsign);
$data['filename'] = $this->input->post('filename');
$this->load->view('qslcard/searchresult', $data);
}
function addQsoToQsl() {
$qsoid = $this->input->post('qsoid');
$filename = $this->input->post('filename');
$this->load->model('Qsl_model');
$insertid = $this->Qsl_model->addQsotoQsl($qsoid, $filename);
header("Content-type: application/json");
$result['status'] = 'Success';
$result['insertid'] = $insertid;
$result['filename'] = $filename;
echo json_encode($result);
}
}
@ -166,27 +191,27 @@ function folderSize($dir){
return $count_size;
}
function sizeFormat($bytes){
function sizeFormat($bytes){
$kb = 1024;
$mb = $kb * 1024;
$gb = $mb * 1024;
$tb = $gb * 1024;
if (($bytes >= 0) && ($bytes < $kb)) {
return $bytes . ' B';
} elseif (($bytes >= $kb) && ($bytes < $mb)) {
return ceil($bytes / $kb) . ' KB';
} elseif (($bytes >= $mb) && ($bytes < $gb)) {
return ceil($bytes / $mb) . ' MB';
} elseif (($bytes >= $gb) && ($bytes < $tb)) {
return ceil($bytes / $gb) . ' GB';
} elseif ($bytes >= $tb) {
return ceil($bytes / $tb) . ' TB';
} else {
return $bytes . ' B';
}
}
}

查看文件

@ -15,13 +15,19 @@ class QSLPrint extends CI_Controller {
{
$this->load->model('user_model');
if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
$this->load->model('stations');
$data['station_profile'] = $this->stations->all();
$this->load->model('qslprint_model');
$data['qsos'] = $this->qslprint_model->get_qsos_for_print();
$data['page_title'] = "Print Requested QSLs";
$this->load->view('interface_assets/header', $data);
$this->load->view('qslprint/index');
$this->load->view('interface_assets/footer');
}
public function exportadif()
@ -29,86 +35,137 @@ class QSLPrint extends CI_Controller {
// Set memory limit to unlimited to allow heavy usage
ini_set('memory_limit', '-1');
if ($this->uri->segment(3) == 'All') {
$station_id = NULL;
} else {
$station_id = $this->security->xss_clean($this->uri->segment(3));
}
$this->load->model('adif_data');
$data['qsos'] = $this->adif_data->export_printrequested();
$data['qsos'] = $this->adif_data->export_printrequested($station_id);
$this->load->view('adif/data/exportall', $data);
}
}
public function exportcsv()
{
// Set memory limit to unlimited to allow heavy usage
ini_set('memory_limit', '-1');
if ($this->uri->segment(3) == 'All') {
$station_id = NULL;
} else {
$station_id = $this->security->xss_clean($this->uri->segment(3));
}
$this->load->model('logbook_model');
$myData = $this->logbook_model->get_qsos_for_printing();
$myData = $this->logbook_model->get_qsos_for_printing($station_id);
// file name
$filename = 'qsl_export.csv';
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: application/csv;charset=iso-8859-1");
// file creation
$file = fopen('php://output', 'w');
$header = array("STATION_CALLSIGN",
"COL_CALL",
"COL_QSL_VIA",
"COL_TIME_ON",
"COL_MODE",
"COL_FREQ",
"COL_BAND",
"COL_RST_SENT",
"COL_SAT_NAME",
"COL_SAT_MODE",
"COL_QSL_RCVD",
"COL_CALL",
"COL_QSL_VIA",
"COL_TIME_ON",
"COL_MODE",
"COL_FREQ",
"COL_BAND",
"COL_RST_SENT",
"COL_SAT_NAME",
"COL_SAT_MODE",
"COL_QSL_RCVD",
"COL_COMMENT",
"COL_ROUTING",
"ADIF",
"COL_ROUTING",
"ADIF",
"ENTITY");
fputcsv($file, $header);
foreach ($myData->result() as $qso) {
fputcsv($file,
fputcsv($file,
array($qso->STATION_CALLSIGN,
str_replace("0", "Ø", $qso->COL_CALL),
$qso->COL_QSL_VIA!=""?"Via ".str_replace("0", "Ø", $qso->COL_QSL_VIA):"",
$qso->COL_TIME_ON,
$qso->COL_MODE,
$qso->COL_FREQ,
$qso->COL_BAND,
$qso->COL_RST_SENT,
$qso->COL_SAT_NAME,
$qso->COL_SAT_MODE,
$qso->COL_QSL_RCVD =='Y'?'TNX QSL':'PSE QSL',
$qso->COL_COMMENT,
str_replace("0", "Ø", $qso->COL_CALL),
$qso->COL_QSL_VIA!=""?"Via ".str_replace("0", "Ø", $qso->COL_QSL_VIA):"",
$qso->COL_TIME_ON,
$qso->COL_MODE,
$qso->COL_FREQ,
$qso->COL_BAND,
$qso->COL_RST_SENT,
$qso->COL_SAT_NAME,
$qso->COL_SAT_MODE,
$qso->COL_QSL_RCVD =='Y'?'TNX QSL':'PSE QSL',
$qso->COL_COMMENT,
$qso->COL_ROUTING,
$qso->ADIF,
$qso->ADIF,
$qso->ENTITY));
}
fclose($file);
exit;
}
function qsl_printed() {
if ($this->uri->segment(3) == 'All') {
$station_id = NULL;
} else {
$station_id = $this->security->xss_clean($this->uri->segment(3));
}
$this->load->model('qslprint_model');
$this->load->model('user_model');
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
// Update Logbook to Mark Paper Card Received
$this->qslprint_model->mark_qsos_printed();
$this->qslprint_model->mark_qsos_printed($station_id);
$this->session->set_flashdata('notice', 'QSOs are marked as sent via buro');
redirect('logbook');
}
public function delete_from_qsl_queue() {
$id = $this->input->post('id');
$this->load->model('qslprint_model');
$this->qslprint_model->delete_from_qsl_queue($this->security->xss_clean($id));
}
public function get_qsos_for_print_ajax() {
$station_id = $this->input->post('station_id');
$this->load->model('qslprint_model');
$data['qsos'] = $this->qslprint_model->get_qsos_for_print_ajax($this->security->xss_clean($station_id));
$data['station_id'] = $station_id;
$this->load->view('qslprint/qslprint', $data);
}
public function open_qso_list() {
$callsign = $this->input->post('callsign');
$this->load->model('qslprint_model');
$data['qsos'] = $this->qslprint_model->open_qso_list($this->security->xss_clean($callsign));
$this->load->view('qslprint/qsolist', $data);
}
public function add_qso_to_print_queue() {
$id = $this->input->post('id');
$this->load->model('qslprint_model');
$this->qslprint_model->add_qso_to_print_queue($this->security->xss_clean($id));
}
}
/* End of file Qslprint.php */
/* Location: ./application/controllers/Qslprint.php */
/* Location: ./application/controllers/Qslprint.php */

查看文件

@ -9,16 +9,25 @@ TODO
class QSO extends CI_Controller {
function __construct()
{
parent::__construct();
$this->lang->load('qso');
$this->load->model('user_model');
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
}
public function index()
{
$this->load->model('cat');
$this->load->model('stations');
$this->load->model('logbook_model');
$this->load->model('user_model');
$this->load->model('modes');
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
$data['active_station_profile'] = $this->stations->find_active();
$data['notice'] = false;
$data['stations'] = $this->stations->all();
@ -27,7 +36,7 @@ class QSO extends CI_Controller {
$data['dxcc'] = $this->logbook_model->fetchDxcc();
$data['iota'] = $this->logbook_model->fetchIota();
$data['modes'] = $this->modes->active();
$this->load->library('form_validation');
@ -45,11 +54,6 @@ class QSO extends CI_Controller {
}
else
{
// Add QSO
// $this->logbook_model->add();
//change to create_qso function as add and create_qso duplicate functionality
$this->logbook_model->create_qso();
// Store Basic QSO Info for reuse
// Put data in an array first, then call set_userdata once.
// This solves the problem of CI dumping out the session
@ -62,6 +66,7 @@ class QSO extends CI_Controller {
'start_time' => $this->input->post('start_time'),
'time_stamp' => time(),
'band' => $this->input->post('band'),
'band_rx' => $this->input->post('band_rx'),
'freq' => $this->input->post('freq_display'),
'freq_rx' => $this->input->post('freq_display_rx'),
'mode' => $this->input->post('mode'),
@ -73,7 +78,7 @@ class QSO extends CI_Controller {
'transmit_power' => $this->input->post('transmit_power')
);
// ];
setcookie("radio", $qso_data['radio'], time()+3600*24*99);
setcookie("station_profile_id", $qso_data['station_profile_id'], time()+3600*24*99);
@ -83,13 +88,18 @@ class QSO extends CI_Controller {
if($this->input->post('sat_name')) {
$this->session->set_userdata('prop_mode', 'SAT');
}
// Add QSO
// $this->logbook_model->add();
//change to create_qso function as add and create_qso duplicate functionality
$this->logbook_model->create_qso();
// Get last 5 qsos
$data['query'] = $this->logbook_model->last_custom('5');
// Set Any Notice Messages
$data['notice'] = "QSO Added";
// Load view to create another contact
$data['page_title'] = "Add QSO";
@ -98,15 +108,23 @@ class QSO extends CI_Controller {
$this->load->view('interface_assets/footer');
}
}
/*
* This is used for contest-logging and the ajax-call
*/
public function saveqso() {
$this->load->model('logbook_model');
$this->logbook_model->create_qso();
}
function edit() {
$this->load->model('logbook_model');
$this->load->model('user_model');
$this->load->model('modes');
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
$query = $this->logbook_model->qso_info($this->uri->segment(3));
$this->load->library('form_validation');
$this->form_validation->set_rules('time_on', 'Start Date', 'required');
@ -117,7 +135,7 @@ class QSO extends CI_Controller {
$data['dxcc'] = $this->logbook_model->fetchDxcc();
$data['iota'] = $this->logbook_model->fetchIota();
$data['modes'] = $this->modes->all();
if ($this->form_validation->run() == FALSE)
{
$this->load->view('qso/edit', $data);
@ -162,7 +180,7 @@ class QSO extends CI_Controller {
$this->logbook_model->edit();
}
function qsl_rcvd($id, $method) {
$this->load->model('logbook_model');
$this->load->model('user_model');
@ -197,13 +215,55 @@ class QSO extends CI_Controller {
echo json_encode(array('message' => 'OK'));
}
}
function qsl_requested_ajax() {
$id = str_replace('"', "", $this->input->post("id"));
$method = str_replace('"', "", $this->input->post("method"));
$this->load->model('logbook_model');
$this->load->model('user_model');
header('Content-Type: application/json');
if(!$this->user_model->authorize(2)) {
echo json_encode(array('message' => 'Error'));
}
else {
// Update Logbook to Mark Paper Card Received
$this->logbook_model->paperqsl_requested($id, $method);
echo json_encode(array('message' => 'OK'));
}
}
function qsl_ignore_ajax() {
$id = str_replace('"', "", $this->input->post("id"));
$method = str_replace('"', "", $this->input->post("method"));
$this->load->model('logbook_model');
$this->load->model('user_model');
header('Content-Type: application/json');
if(!$this->user_model->authorize(2)) {
echo json_encode(array('message' => 'Error'));
}
else {
// Update Logbook to Mark Paper Card Received
$this->logbook_model->paperqsl_ignore($id, $method);
echo json_encode(array('message' => 'OK'));
}
}
/* Delete QSO */
function delete($id) {
$this->load->model('logbook_model');
$this->logbook_model->delete($id);
$this->session->set_flashdata('notice', 'QSO Deleted Successfully');
$data['message_title'] = "Deleted";
$data['message_contents'] = "QSO Deleted Successfully";
@ -227,12 +287,136 @@ class QSO extends CI_Controller {
echo json_encode(array('message' => 'OK'));
return;
}
function band_to_freq($band, $mode) {
$this->load->library('frequency');
echo $this->frequency->convent_band($band, $mode);
}
/*
* Function is used for autocompletion of SOTA in the QSO entry form
*/
public function get_sota() {
$json = [];
if(!empty($this->input->get("query"))) {
$query = isset($_GET['query']) ? $_GET['query'] : FALSE;
$sota = strtoupper($query);
$file = 'assets/json/sota.txt';
if (is_readable($file)) {
$lines = file($file, FILE_IGNORE_NEW_LINES);
$input = preg_quote($sota, '~');
$reg = '~^'. $input .'(.*)$~';
$result = preg_grep($reg, $lines);
$json = [];
$i = 0;
foreach ($result as &$value) {
// Limit to 100 as to not slowdown browser too much
if (count($json) <= 100) {
$json[] = ["name"=>$value];
}
}
}
}
header('Content-Type: application/json');
echo json_encode($json);
}
/*
* Function is used for autocompletion of DOK in the QSO entry form
*/
public function get_dok() {
$json = [];
if(!empty($this->input->get("query"))) {
$query = isset($_GET['query']) ? $_GET['query'] : FALSE;
$dok = strtoupper($query);
$file = 'assets/json/dok.txt';
if (is_readable($file)) {
$lines = file($file, FILE_IGNORE_NEW_LINES);
$input = preg_quote($dok, '~');
$reg = '~^'. $input .'(.*)$~';
$result = preg_grep($reg, $lines);
$json = [];
$i = 0;
foreach ($result as &$value) {
// Limit to 100 as to not slowdown browser too much
if (count($json) <= 100) {
$json[] = ["name"=>$value];
}
}
}
}
header('Content-Type: application/json');
echo json_encode($json);
}
/*
* Function is used for autocompletion of Counties in the station profile form
*/
public function get_county() {
$json = [];
if(!empty($this->input->get("query"))) {
//$query = isset($_GET['query']) ? $_GET['query'] : FALSE;
$county = $this->input->get("state");
$cleanedcounty = explode('(', $county);
$cleanedcounty = trim($cleanedcounty[0]);
$file = 'assets/json/US_counties.csv';
if (is_readable($file)) {
$lines = file($file, FILE_IGNORE_NEW_LINES);
$input = preg_quote($cleanedcounty, '~');
$reg = '~^'. $input .'(.*)$~';
$result = preg_grep($reg, $lines);
$json = [];
$i = 0;
foreach ($result as &$value) {
$county = explode(',', $value);
// Limit to 100 as to not slowdown browser too much
if (count($json) <= 100) {
$json[] = ["name"=>$county[1]];
}
}
}
}
header('Content-Type: application/json');
echo json_encode($json);
}
public function get_sota_info() {
$sota = xss_clean($this->input->post('sota'));
$url = 'https://api2.sota.org.uk/api/summits/' . $sota;
// Let's use cURL instead of file_get_contents
// begin script
$ch = curl_init();
// basic curl options for all requests
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
// use the URL we built
curl_setopt($ch, CURLOPT_URL, $url);
$input = curl_exec($ch);
$chi = curl_getinfo($ch);
// Close cURL handle
curl_close($ch);
header('Content-Type: application/json');
echo $input;
}
}

查看文件

@ -8,7 +8,7 @@ class Search extends CI_Controller {
parent::__construct();
$this->load->helper(array('form', 'url'));
if($this->config->item('public_search') != TRUE) {
if($this->optionslib->get_option('global_search') != "true") {
$this->load->model('user_model');
if(!$this->user_model->authorize(2)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
}

查看文件

@ -25,7 +25,7 @@ class Station extends CI_Controller {
$data['is_there_qsos_with_no_station_id'] = $this->Logbook_model->check_for_station_id();
// Render Page
$data['page_title'] = "Station Profiles";
$data['page_title'] = "Station Location";
$this->load->view('interface_assets/header', $data);
$this->load->view('station_profile/index');
$this->load->view('interface_assets/footer');
@ -46,7 +46,7 @@ class Station extends CI_Controller {
if ($this->form_validation->run() == FALSE)
{
$data['page_title'] = "Create Station Profile";
$data['page_title'] = "Create Station Location";
$this->load->view('interface_assets/header', $data);
$this->load->view('station_profile/create');
$this->load->view('interface_assets/footer');
@ -77,7 +77,7 @@ class Station extends CI_Controller {
$data['dxcc_list'] = $this->dxcc->list();
$data['page_title'] = "Edit Station Profile";
$data['page_title'] = "Edit Station Location";
$this->form_validation->set_rules('station_profile_name', 'Station Profile Name', 'required');
@ -135,4 +135,37 @@ class Station extends CI_Controller {
redirect('station');
}
/*
* Function is used for autocompletion of Counties in the station profile form
*/
public function get_county() {
$json = [];
if(!empty($this->input->get("query"))) {
$query = isset($_GET['query']) ? $_GET['query'] : FALSE;
$county = $this->input->get("state");
$file = 'assets/json/US_counties.csv';
if (is_readable($file)) {
$lines = file($file, FILE_IGNORE_NEW_LINES);
$input = preg_quote($county, '~');
$reg = '~^'. $input .'(.*)$~';
$result = preg_grep($reg, $lines);
$json = [];
$i = 0;
foreach ($result as &$value) {
$county = explode(',', $value);
// Limit to 100 as to not slowdown browser too much
if (count($json) <= 100) {
$json[] = ["name"=>$county[1]];
}
}
}
}
header('Content-Type: application/json');
echo json_encode($json);
}
}

查看文件

@ -224,6 +224,11 @@ class Update extends CI_Controller {
$this->logbook_model->check_missing_dxcc_id($all);
}
public function check_missing_grid($all = false){
$this->load->model('logbook_model');
$this->logbook_model->check_missing_grid_id($all);
}
public function update_clublog_scp() {
$strFile = "./updates/clublog_scp.txt";
@ -289,6 +294,75 @@ class Update extends CI_Controller {
fclose($f);
}
/*
* Used for autoupdating the DOK file which is used in the QSO entry dialog for autocompletion.
*/
public function update_dok() {
$contents = file_get_contents('https://www.df2et.de/cqrlog/dok_and_sdok.txt', true);
if($contents === FALSE) {
echo "Something went wrong with fetching the DOK file.";
} else {
$file = './assets/json/dok.txt';
file_put_contents($file, $contents); // Save our content to the file.
if (file_exists($file))
{
$nCount = count(file($file));
if ($nCount > 0)
{
echo "DONE: " . number_format($nCount) . " DOKs and SDOKs saved";
} else {
echo"FAILED: Empty file";
}
} else {
echo"FAILED: Could not create dok.txt file locally";
}
}
}
/*
* Used for autoupdating the SOTA file which is used in the QSO entry dialog for autocompletion.
*/
public function update_sota() {
$csvfile = 'https://www.sotadata.org.uk/summitslist.csv';
$sotafile = './assets/json/sota.txt';
if($csvfile === FALSE) {
echo "Something went wrong with fetching the SOTA file";
} else {
$csvhandle = fopen($csvfile,"r");
$data = fgetcsv($csvhandle,1000,","); // Skip line we are not interested in
$data = fgetcsv($csvhandle,1000,","); // Skip line we are not interested in
$data = fgetcsv($csvhandle,1000,",");
$sotafilehandle = fopen($sotafile, 'w');
do {
if ($data[0]) {
fwrite($sotafilehandle, $data[0].PHP_EOL);
}
} while ($data = fgetcsv($csvhandle,1000,","));
fclose($csvhandle);
fclose($sotafilehandle);
if (file_exists($sotafile))
{
$nCount = count(file($sotafile));
if ($nCount > 0)
{
echo "DONE: " . number_format($nCount) . " SOTA's saved";
} else {
echo"FAILED: Empty file";
}
} else {
echo"FAILED: Could not create sota.txt file locally";
}
}
}
}
?>

查看文件

@ -2,6 +2,15 @@
class User extends CI_Controller {
function __construct()
{
parent::__construct();
// Load language files
$this->lang->load(array(
'account',
));
}
public function index()
{
@ -20,7 +29,7 @@ class User extends CI_Controller {
function add() {
$this->load->model('user_model');
if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
$this->load->library('form_validation');
$this->form_validation->set_rules('user_name', 'Username', 'required');
@ -55,6 +64,13 @@ class User extends CI_Controller {
$data['user_timezone'] = $this->input->post('user_timezone');
$data['user_measurement_base'] = $this->input->post('user_measurement_base');
$data['user_stylesheet'] = $this->input->post('user_stylesheet');
$data['user_sota_lookup'] = $this->input->post('user_sota_lookup');
$data['user_show_notes'] = $this->input->post('user_show_notes');
$data['user_column1'] = $this->input->post('user_column1');
$data['user_column2'] = $this->input->post('user_column2');
$data['user_column3'] = $this->input->post('user_column3');
$data['user_column4'] = $this->input->post('user_column4');
$data['user_column5'] = $this->input->post('user_column5');
$this->load->view('user/add', $data);
} else {
$this->load->view('user/add', $data);
@ -63,7 +79,25 @@ class User extends CI_Controller {
}
else
{
switch($this->user_model->add($this->input->post('user_name'), $this->input->post('user_password'), $this->input->post('user_email'), $this->input->post('user_type'), $this->input->post('user_firstname'), $this->input->post('user_lastname'), $this->input->post('user_callsign'), $this->input->post('user_locator'), $this->input->post('user_timezone'), $this->input->post('user_measurement_base'), $this->input->post('user_date_format'), $this->input->post('user_stylesheet'))) {
switch($this->user_model->add($this->input->post('user_name'),
$this->input->post('user_password'),
$this->input->post('user_email'),
$this->input->post('user_type'),
$this->input->post('user_firstname'),
$this->input->post('user_lastname'),
$this->input->post('user_callsign'),
$this->input->post('user_locator'),
$this->input->post('user_timezone'),
$this->input->post('user_measurement_base'),
$this->input->post('user_date_format'),
$this->input->post('user_stylesheet'),
$this->input->post('user_sota_lookup'),
$this->input->post('user_show_notes'),
$this->input->post('user_column1'),
$this->input->post('user_column2'),
$this->input->post('user_column3'),
$this->input->post('user_column4'),
$this->input->post('user_column5'))) {
// Check for errors
case EUSERNAMEEXISTS:
$data['username_error'] = 'Username <b>'.$this->input->post('user_name').'</b> already in use!';
@ -93,6 +127,13 @@ class User extends CI_Controller {
$data['user_locator'] = $this->input->post('user_locator');
$data['user_measurement_base'] = $this->input->post('user_measurement_base');
$data['user_stylesheet'] = $this->input->post('user_stylesheet');
$data['user_sota_lookup'] = $this->input->post('user_sota_lookup');
$data['user_show_notes'] = $this->input->post('user_show_notes');
$data['user_column1'] = $this->input->post('user_column1');
$data['user_column2'] = $this->input->post('user_column2');
$data['user_column3'] = $this->input->post('user_column3');
$data['user_column4'] = $this->input->post('user_column4');
$data['user_column5'] = $this->input->post('user_column5');
$this->load->view('user/add', $data);
$this->load->view('interface_assets/footer');
}
@ -102,7 +143,7 @@ class User extends CI_Controller {
$this->load->model('user_model');
if((!$this->user_model->authorize(99)) && ($this->session->userdata('user_id') != $this->uri->segment(3))) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); }
$query = $this->user_model->get_by_id($this->uri->segment(3));
$this->load->library('form_validation');
$this->form_validation->set_rules('user_name', 'Username', 'required|xss_clean');
@ -206,7 +247,7 @@ class User extends CI_Controller {
} else {
$data['user_clublog_name'] = $q->user_clublog_name;
}
if($this->input->post('user_clublog_password')) {
$data['user_clublog_password'] = $this->input->post('user_clublog_password', true);
} else {
@ -218,13 +259,13 @@ class User extends CI_Controller {
} else {
$data['user_lotw_password'] = $q->user_lotw_password;
}
if($this->input->post('user_eqsl_name')) {
$data['user_eqsl_name'] = $this->input->post('user_eqsl_name', true);
} else {
$data['user_eqsl_name'] = $q->user_eqsl_name;
}
if($this->input->post('user_eqsl_password')) {
$data['user_eqsl_password'] = $this->input->post('user_eqsl_password', true);
} else {
@ -248,7 +289,49 @@ class User extends CI_Controller {
} else {
$data['user_stylesheet'] = $q->user_stylesheet;
}
if($this->input->post('user_sota_lookup')) {
$data['user_sota_lookup'] = $this->input->post('user_sota_lookup', true);
} else {
$data['user_sota_lookup'] = $q->user_sota_lookup;
}
if($this->input->post('user_show_notes')) {
$data['user_show_notes'] = $this->input->post('user_show_notes', true);
} else {
$data['user_show_notes'] = $q->user_show_notes;
}
if($this->input->post('user_column1')) {
$data['user_column1'] = $this->input->post('user_column1', true);
} else {
$data['user_column1'] = $q->user_column1;
}
if($this->input->post('user_column2')) {
$data['user_column2'] = $this->input->post('user_column2', true);
} else {
$data['user_column2'] = $q->user_column2;
}
if($this->input->post('user_column3')) {
$data['user_column3'] = $this->input->post('user_column3', true);
} else {
$data['user_column3'] = $q->user_column3;
}
if($this->input->post('user_column4')) {
$data['user_column4'] = $this->input->post('user_column4', true);
} else {
$data['user_column4'] = $q->user_column4;
}
if($this->input->post('user_column5')) {
$data['user_column5'] = $this->input->post('user_column5', true);
} else {
$data['user_column5'] = $q->user_column5;
}
$this->load->view('user/edit', $data);
$this->load->view('interface_assets/footer');
}
@ -269,10 +352,10 @@ class User extends CI_Controller {
// All okay, return to user screen
case OK:
if($this->session->userdata('user_id') == $this->input->post('id', true)) {
$this->session->set_flashdata('notice', 'User '.$this->input->post('user_name', true).' edited');
redirect('user/profile');
$this->session->set_flashdata('success', 'User '.$this->input->post('user_name', true).' edited');
redirect('user/edit/'.$this->uri->segment(3));
} else {
$this->session->set_flashdata('notice', 'User '.$this->input->post('user_name', true).' edited');
$this->session->set_flashdata('success', 'User '.$this->input->post('user_name', true).' edited');
redirect('user');
}
return;
@ -290,6 +373,14 @@ class User extends CI_Controller {
$data['user_locator'] = $this->input->post('user_locator', true);
$data['user_timezone'] = $this->input->post('user_timezone', true);
$data['user_stylesheet'] = $this->input->post('user_stylesheet');
$data['user_sota_lookup'] = $this->input->post('user_sota_lookup');
$data['user_show_notes'] = $this->input->post('user_show_notes');
$data['user_column1'] = $this->input->post('user_column1');
$data['user_column2'] = $this->input->post('user_column2');
$data['user_column3'] = $this->input->post('user_column3');
$data['user_column4'] = $this->input->post('user_column4');
$data['user_column4'] = $this->input->post('user_column4');
$data['user_column5'] = $this->input->post('user_column5');
$this->load->view('user/edit');
$this->load->view('interface_assets/footer');
}
@ -347,8 +438,8 @@ class User extends CI_Controller {
function login() {
// Check our version and run any migrations
$this->load->library('Migration');
$this->migration->current();
$this->migration->current();
$this->load->model('user_model');
$query = $this->user_model->get($this->input->post('user_name', true));

查看文件

@ -0,0 +1,18 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['contesting_page_title'] = 'Závodní deník';
$lang['contesting_button_reset_contest_session'] = 'Resetovat závod';
$lang['contesting_exchange_type'] = 'Typ předávaného kódu';
$lang['contesting_exchange_type_serial'] = 'Číslo spojení';
$lang['contesting_exchange_type_other'] = 'Jiné';
$lang['contesting_contest_name'] = 'Název závodu';
$lang['contesting_btn_reset_qso'] = 'Smazat QSO';
$lang['contesting_btn_save_qso'] = 'Uložit QSO';
$lang['contesting_title_callsign_suggestions'] = 'Našeptávač značek';
$lang['contesting_title_contest_logbook'] = 'Závodní deník';

查看文件

@ -0,0 +1,99 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['error_no_active_station_profile'] = 'Pozor: je třeba mít nastaven aktivní profil stanice.';
$lang['notice_turn_the_radio_on'] = 'Dnes žádné spojení, je čas zapnout rádio!';
$lang['general_word_important'] = 'Důležité';
$lang['general_word_info'] = 'Info';
$lang['general_word_choose_file'] = 'Vybrat soubor';
$lang['general_word_date'] = 'Datum';
$lang['general_word_time'] = 'Čas';
$lang['general_word_none'] = 'Nic';
$lang['general_word_name'] = 'Jméno';
$lang['general_word_location'] = 'Location';
$lang['general_word_comment'] = 'Komentář';
$lang['general_word_general'] = 'Všeobecné';
$lang['general_word_satellite'] = 'Satelit';
$lang['general_word_satellite_short'] = 'Sat';
$lang['general_word_notes'] = 'Poznámky';
$lang['general_word_comment'] = 'Obsah';
$lang['general_word_country'] = 'Země';
$lang['general_word_total'] = 'Celkem';
$lang['general_word_year'] = 'Rok';
$lang['general_word_month'] = 'Měsíc';
$lang['general_word_worked'] = 'Pracováno';
$lang['general_word_confirmed'] = 'Potvrzeno';
$lang['general_word_needed'] = 'Potřeba';
$lang['general_word_no'] = 'Ne';
$lang['general_word_yes'] = 'Ano';
$lang['general_word_method'] = 'Method';
$lang['general_word_sent'] = 'Odesláno';
$lang['general_word_received'] = 'Přijato';
$lang['general_word_requested'] = 'Žádáno';
$lang['general_word_qslcards'] = 'QSL lístků';
$lang['general_word_qslcard_direct'] = 'Direct';
$lang['general_word_qslcard_bureau'] = 'Bureau';
$lang['general_word_qslcard_via'] = 'Via';
$lang['general_edit_qso'] = 'Editovat QSO';
$lang['general_mark_qsl_rx_bureau'] = 'Označit QSL jako přijaté (Bureau)';
$lang['general_mark_qsl_rx_direct'] = 'Označit QSL jako přijaté (Direct)';
$lang['general_delete_qso'] = 'Smazat QSO';
// Cloudlog Terms
$lang['cloudlog_station_profile'] = 'Profil stanice';
// ham radio terms
$lang['gen_hamradio_qso'] = 'QSO';
$lang['gen_hamradio_station'] = 'Stanice';
$lang['gen_hamradio_call'] = 'Značka';
$lang['gen_hamradio_callsign'] = 'Značka';
$lang['gen_hamradio_mode'] = 'Mód';
$lang['gen_hamradio_rst_sent'] = 'Odesláno';
$lang['gen_hamradio_rst_recv'] = 'Přijato';
$lang['gen_hamradio_band'] = 'Pásmo';
$lang['gen_hamradio_band_rx'] = 'Pásmo (RX)';
$lang['gen_hamradio_frequency'] = 'Kmitočet';
$lang['gen_hamradio_frequency_rx'] = 'Kmitočet (RX)';
$lang['gen_hamradio_radio'] = 'Rádio';
$lang['gen_hamradio_rsts'] = 'RST (S)';
$lang['gen_hamradio_rstr'] = 'RST (R)';
$lang['gen_hamradio_exchange_sent_short'] = 'Exch (S)';
$lang['gen_hamradio_exchange_recv_short'] = 'Exch (R)';
$lang['gen_hamradio_qsl'] = 'QSL';
$lang['gen_hamradio_locator'] = 'Lokátor';
$lang['gen_hamradio_transmit_power'] = 'Výkon (W)';
$lang['gen_hamradio_propagation_mode'] = 'Druh šíření';
$lang['gen_hamradio_satellite_name'] = 'Jméno satelitu';
$lang['gen_hamradio_satellite_mode'] = 'Mód satelitu';
$lang['gen_hamradio_logbook'] = 'Deník';
$lang['gen_hamradio_cq_zone'] = 'CQ zóna';
$lang['gen_hamradio_dxcc'] = 'DXCC';
$lang['gen_hamradio_usa_state'] = 'Stát USA';
$lang['gen_hamradio_iota_reference'] = 'IOTA Reference';
$lang['gen_hamradio_sota_reference'] = 'SOTA Reference';
$lang['gen_hamradio_dok'] = 'DOK';
$lang['gen_hamradio_sig'] = 'Sig';
$lang['gen_hamradio_sig_info'] = 'Sig Info';
// Dashboard Words
$lang['dashboard_you_have_had'] = 'Máš dnes';
$lang['dashboard_qsos_today'] = 'spojení!';
$lang['dashboard_qso_breakdown'] = 'Statistika spojení';
$lang['dashboard_countries_breakdown'] = 'Statistika zemí';
$lang['gen_from_date'] = 'Datum od';

查看文件

@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

查看文件

@ -0,0 +1,49 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['lotw_title'] = 'Logbook of the World';
$lang['lotw_title_available_cert'] = 'Dostupné certifikáty';
$lang['lotw_title_information'] = 'Informace';
$lang['lotw_title_upload_p12_cert'] = 'Nahraj LoTW .p12 certifikát';
$lang['lotw_title_export_p12_file_instruction'] = 'Instrukce k exportu souboru .p12';
$lang['lotw_title_adif_import'] = 'Import ADIF';
$lang['lotw_title_adif_import_options'] = 'Nastavení importu';
$lang['lotw_beta_warning'] = 'Prosím pozor, synchronizace s LoTW je zatím v testování, podívej se do Wiki pro nápovědu.';
$lang['lotw_no_certs_uploaded'] = 'Musíte nahrát nějké LoTW certifikáty ve formátu p12.';
$lang['lotw_date_created'] = 'Datum vytvoření';
$lang['lotw_date_expires'] = 'Datum vypršení';
$lang['lotw_status'] = 'Stav';
$lang['lotw_options'] = 'Možnosti';
$lang['lotw_valid'] = 'Platný';
$lang['lotw_expired'] = 'Vypršel';
$lang['lotw_not_synced'] = 'Není synchronizováno';
$lang['lotw_certificate_dxcc'] = 'Certifikát DXCC';
$lang['lotw_certificate_dxcc_help_text'] = 'Certifikát zěmě DXCC. Například: Scotsko';
$lang['lotw_input_a_file'] = 'Nahraj soubor';
$lang['lotw_upload_exported_adif_file_from_lotw'] = 'Nahraj exportovaný soubor z LoTW z <a href="https://p1k.arrl.org/lotwuser/qsos?qsoscmd=adif" target="_blank">Download Report</a> Area, to mark QSOs as confirmed on LOTW.';
$lang['lotw_upload_type_must_be_adi'] = 'Deník musí být ve formátu .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Stáhni data z LoTW';
$lang['lotw_import_missing_qsos_text'] = 'Importovat chybějící spojení do deníku. Bude zkontrolována značka a lokátor pro nalezní správného profilu pro import. Pokud nebude nalezeno, spojení bude přeskočeno.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog použije uživatelské jméno a heslo LoTW uložené ve vašem uživatelském profilu, aby vám stáhl datz LoTW.Stažen budu data od nastaveného datumu nebo od posledního stažení až do teď.';
// Buttons
$lang['lotw_btn_lotw_import'] = 'Import z LoTW';
$lang['lotw_btn_upload_certificate'] = 'Nahraj certifikát';
$lang['lotw_btn_delete'] = 'Smazat';
$lang['lotw_btn_manual_sync'] = 'Ruční synchronizace';
$lang['lotw_btn_upload_file'] = 'Nahraj soubor';
$lang['lotw_btn_import_matches'] = 'Import QSL z LoTW';
// P12 Export Text
$lang['lotw_p12_export_step_one'] = 'Otevři TQSL &amp; bež do záložky Callsign Certificates';
$lang['lotw_p12_export_step_two'] = 'pravé tlačítko myši na vyprané značce';
$lang['lotw_p12_export_step_three'] = 'Klikni "Save Callsign Certificate File" a nezadavej heslo';
$lang['lotw_p12_export_step_four'] = 'Nahraj soubor níže.';

查看文件

@ -0,0 +1,23 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['notes_menu_notes'] = 'Poznámky';
$lang['notes_edit_note'] = 'Editovat poznámku';
$lang['notes_your_notes'] = 'Tvoje poznámky';
$lang['notes_welcome'] = "V současné době nemáte žádné poznámky, jedná se o fantastický způsob ukládání dat, jako je nastavení tuneru, poslechu majáků a další. Je to lepší než papír, protože je nemůžete ztratit!";
$lang['notes_create_note'] = 'Vytvoř poznámku';
$lang['notes_input_title'] = 'Název';
$lang['notes_input_category'] = 'Kategorie';
$lang['notes_input_notes_content'] = 'Note Contents';
$lang['notes_input_btn_save_note'] = 'Uložit poznámku';
$lang['notes_input_btn_edit_note'] = 'Editovat poznámku';
$lang['notes_input_btn_delete_note'] = 'Smazat poznámku';
$lang['notes_selection_general'] = 'Obecná';
$lang['notes_selection_antennas'] = 'Antény';
$lang['notes_selection_satellites'] = 'Satelity';

查看文件

@ -0,0 +1,7 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// Tiles
$lang['qslcard_string_your_are_using'] = 'Je využito';
$lang['qslcard_string_disk_space'] = 'místa pro QSL lístky';

查看文件

@ -0,0 +1,25 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// Tiles
$lang['qso_title_qso_map'] = 'Mapa spojení';
$lang['qso_title_suggestions'] = 'Návrhy';
$lang['qso_title_pervious_contacts'] = 'Předchozí spojení';
// Input Help Text on the /QSO Display
$lang['qso_transmit_power_helptext'] = 'Zadej výkon ve Wattech. Jsou povolen pouz čísla';
$lang['qso_sota_ref_helptext'] = 'Příklad: GM/NS-001.';
$lang['qso_sig_helptext'] = 'Příklad: WWFF or POTA';
$lang['qso_sig_info_helptext'] = 'Příklad: DLFF-0029';
$lang['qso_dok_helptext'] = 'Příklad: Q03';
$lang['qso_notes_helptext'] = 'Obsah je užíván pouze Cloudlogu a není exportován do dalších služeb.';
// Button Text on /qso Display
$lang['qso_btn_reset_qso'] = 'Vymazat';
$lang['qso_btn_save_qso'] = 'Uložit spojení';

查看文件

@ -0,0 +1,18 @@
<?php
defined('BASEPATH') OR exit('Directe toegang tot scripts is niet toegestaan');
$lang['contesting_page_title'] = 'Contest Logging';
$lang['contesting_button_reset_contest_session'] = 'Herstel Contest Sessie';
$lang['contesting_exchange_type'] = 'Soort uitwisseling';
$lang['contesting_exchange_type_serial'] = 'Volgnummer';
$lang['contesting_exchange_type_other'] = 'Anders';
$lang['contesting_contest_name'] = 'Contest Naam';
$lang['contesting_btn_reset_qso'] = 'Wis QSO';
$lang['contesting_btn_save_qso'] = 'Bewaar QSO';
$lang['contesting_title_callsign_suggestions'] = 'Roepnaam suggesties';
$lang['contesting_title_contest_logbook'] = 'Contest Logboek';

查看文件

@ -0,0 +1,85 @@
<?php
defined('BASEPATH') OR exit('Directe toegang tot scripts is niet toegestaan');
$lang['error_no_active_station_profile'] = 'Let op: Activeer een station profiel.';
$lang['notice_turn_the_radio_on'] = 'Je hebt vandaag nog geen QSOs gemaakt. Tijd om de set aan te zetten!';
$lang['general_word_important'] = 'Belangrijk';
$lang['general_word_info'] = 'Info';
$lang['general_word_date'] = 'Datum';
$lang['general_word_time'] = 'Tijd';
$lang['general_word_none'] = 'Geen';
$lang['general_word_name'] = 'Naam';
$lang['general_word_location'] = 'Locatie';
$lang['general_word_comment'] = 'Opmerking';
$lang['general_word_general'] = 'Algemeen';
$lang['general_word_satellite'] = 'Satelliet';
$lang['general_word_satellite_short'] = 'Sat';
$lang['general_word_notes'] = 'Aantekeningen';
$lang['general_word_country'] = 'Land';
$lang['general_word_total'] = 'Totaal';
$lang['general_word_year'] = 'Jaar';
$lang['general_word_month'] = 'Maand';
$lang['general_word_worked'] = 'Gewerkt';
$lang['general_word_confirmed'] = 'Bevestigd';
$lang['general_word_needed'] = 'Nodig';
$lang['general_word_sent'] = 'Verzonden';
$lang['general_word_received'] = 'Ontvangen';
$lang['general_word_requested'] = 'Aangevraagd';
$lang['general_word_qslcards'] = 'QSL kaarten';
$lang['general_word_qslcard_direct'] = 'Direct';
$lang['general_word_qslcard_bureau'] = 'Bureau';
$lang['general_word_qslcard_via'] = 'Via';
$lang['general_edit_qso'] = 'Wijzig QSO';
$lang['general_mark_qsl_rx_bureau'] = 'Markeer QSL ontvangen (Bureau)';
$lang['general_mark_qsl_rx_direct'] = 'Markeer QLS ontvangen (Direct)';
$lang['general_delete_qso'] = 'Wis QSO';
// Cloudlog Terms
$lang['cloudlog_station_profile'] = 'Station Profiel';
// ham radio terms
$lang['gen_hamradio_qso'] = 'QSO';
$lang['gen_hamradio_station'] = 'Station';
$lang['gen_hamradio_call'] = 'Call';
$lang['gen_hamradio_callsign'] = 'Roepletters';
$lang['gen_hamradio_mode'] = 'Mode';
$lang['gen_hamradio_rst_sent'] = 'Verzonden';
$lang['gen_hamradio_rst_recv'] = 'Ontvangen';
$lang['gen_hamradio_band'] = 'Band';
$lang['gen_hamradio_band_rx'] = 'Band (RX)';
$lang['gen_hamradio_frequency'] = 'Frequentie';
$lang['gen_hamradio_frequency_rx'] = 'Frequentie (RX)';
$lang['gen_hamradio_radio'] = 'Radio';
$lang['gen_hamradio_rsts'] = 'RST (S)';
$lang['gen_hamradio_rstr'] = 'RST (R)';
$lang['gen_hamradio_exchange_sent_short'] = 'Verz (S)';
$lang['gen_hamradio_exchange_recv_short'] = 'Ontv (R)';
$lang['gen_hamradio_qsl'] = 'QSL';
$lang['gen_hamradio_locator'] = 'Locator';
$lang['gen_hamradio_transmit_power'] = 'Vermogen (W)';
$lang['gen_hamradio_propagation_mode'] = 'Propagattie Mode';
$lang['gen_hamradio_satellite_name'] = 'Satelliet Naam';
$lang['gen_hamradio_satellite_mode'] = 'Satelliet Mode';
$lang['gen_hamradio_logbook'] = 'Logboek';
$lang['gen_hamradio_cq_zone'] = 'CQ Zone';
$lang['gen_hamradio_dxcc'] = 'DXCC';
$lang['gen_hamradio_usa_state'] = 'USA Staat';
$lang['gen_hamradio_iota_reference'] = 'IOTA Referentie';
$lang['gen_hamradio_sota_reference'] = 'SOTA Referentie';
$lang['gen_hamradio_dok'] = 'DOK';
$lang['gen_hamradio_sig'] = 'Sig';
$lang['gen_hamradio_sig_info'] = 'Sig Info';
// Dashboard Words
$lang['dashboard_you_have_had'] = 'Je hebt';
$lang['dashboard_qsos_today'] = 'QSOs vandaag!';
$lang['dashboard_qso_breakdown'] = 'QSOs overzicht';
$lang['dashboard_countries_breakdown'] = 'Landen overzicht';

查看文件

@ -0,0 +1,10 @@
<html>
<head>
<title>403 Geen toegang</title>
</head>
<body>
<p>Toegang tot de map niet toegestaan.</p>
</body>
</html>

查看文件

@ -0,0 +1,7 @@
<?php
defined('BASEPATH') OR exit('Directe toegang tot scripts is niet toegestaan');
// Tiles
$lang['qslcard_string_your_are_using'] = 'Je gebruikt';
$lang['qslcard_string_disk_space'] = 'diskruimte om QSL kaarten op te slaan';

查看文件

@ -0,0 +1,25 @@
<?php
defined('BASEPATH') OR exit('Directe toegang tot scripts is niet toegestaan');
// Tiles
$lang['qso_title_qso_map'] = 'QSO Kaart';
$lang['qso_title_suggestions'] = 'Suggesties';
$lang['qso_title_pervious_contacts'] = 'Eerdere verbindingen';
// Input Help Text on the /QSO Display
$lang['qso_transmit_power_helptext'] = 'Geef vermogen in Watt. Vermeld alleen cijfers.';
$lang['qso_sota_ref_helptext'] = 'Bijvoorbeeld: GM/NS-001.';
$lang['qso_sig_helptext'] = 'Bijvoorbeeld: WWFF of POTA';
$lang['qso_sig_info_helptext'] = 'Bijvoorbeeld: DLFF-0029';
$lang['qso_dok_helptext'] = 'Bijvoorbeeld: Q03';
$lang['qso_notes_helptext'] = 'Notities worden alleen in Cloudlog gebruikt en worden niet geexporteerd naar andere diensten.';
// Button Text on /qso Display
$lang['qso_btn_reset_qso'] = 'Wis QSO';
$lang['qso_btn_save_qso'] = 'Bewaar QSO';

查看文件

@ -0,0 +1,10 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['account_logbook_fields'] = 'Logbook fields';
$lang['account_column1_text'] = 'Choose column 1';
$lang['account_column2_text'] = 'Choose column 2';
$lang['account_column3_text'] = 'Choose column 3';
$lang['account_column4_text'] = 'Choose column 4';
$lang['account_column5_text'] = 'Choose column 5 (only for logbook)';

查看文件

@ -0,0 +1,18 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['contesting_page_title'] = 'Contest Logging';
$lang['contesting_button_reset_contest_session'] = 'Reset Contest Session';
$lang['contesting_exchange_type'] = 'Exchange Type';
$lang['contesting_exchange_type_serial'] = 'Serial';
$lang['contesting_exchange_type_other'] = 'Other';
$lang['contesting_contest_name'] = 'Contest Name';
$lang['contesting_btn_reset_qso'] = 'Reset QSO';
$lang['contesting_btn_save_qso'] = 'Save QSO';
$lang['contesting_title_callsign_suggestions'] = 'Callsign Suggestions';
$lang['contesting_title_contest_logbook'] = 'Contest Logbook';

查看文件

@ -2,14 +2,26 @@
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['error_no_active_station_profile'] = 'Attention: you need to set an active station profile.';
$lang['error_no_active_station_profile'] = 'Attention: you need to set an active station location.';
$lang['notice_turn_the_radio_on'] = 'You have made no QSOs today; time to turn on the radio!';
$lang['general_word_important'] = 'Important';
$lang['general_word_info'] = 'Info';
$lang['general_word_choose_file'] = 'Choose file';
$lang['general_word_date'] = 'Date';
$lang['general_word_time'] = 'Time';
$lang['general_word_datetime'] = 'Date/Time';
$lang['general_word_none'] = 'None';
$lang['general_word_name'] = 'Name';
$lang['general_word_location'] = 'Location';
$lang['general_word_comment'] = 'Comment';
$lang['general_word_general'] = 'General';
$lang['general_word_satellite'] = 'Satellite';
$lang['general_word_satellite_short'] = 'Sat';
$lang['general_word_notes'] = 'Notes';
$lang['general_word_country'] = 'Country';
$lang['general_word_total'] = 'Total';
$lang['general_word_year'] = 'Year';
@ -19,21 +31,80 @@ $lang['general_word_worked'] = 'Worked';
$lang['general_word_confirmed'] = 'Confirmed';
$lang['general_word_needed'] = 'Needed';
$lang['general_word_no'] = 'No';
$lang['general_word_yes'] = 'Yes';
$lang['general_word_method'] = 'Method';
$lang['general_word_sent'] = 'Sent';
$lang['general_word_received'] = 'Received';
$lang['general_word_requested'] = 'Requested';
$lang['general_word_qslcard'] = 'QSL Card';
$lang['general_word_qslcard_management'] = 'QSL Management';
$lang['general_word_qslcards'] = 'QSL Cards';
$lang['general_word_qslcard_direct'] = 'Direct';
$lang['general_word_qslcard_bureau'] = 'Bureau';
$lang['general_word_qslcard_via'] = 'Via';
$lang['general_edit_qso'] = 'Edit QSO';
$lang['general_mark_qsl_rx_bureau'] = 'Mark QSL Received (Bureau)';
$lang['general_mark_qsl_rx_direct'] = 'Mark QSL Received (Direct)';
$lang['general_delete_qso'] = 'Delete QSO';
$lang['general_total_distance'] = 'Total Distance';
// Cloudlog Terms
$lang['cloudlog_station_profile'] = 'Station Location';
// ham radio terms
$lang['gen_hamradio_qso'] = 'QSO';
$lang['gen_hamradio_station'] = 'Station';
$lang['gen_hamradio_call'] = 'Call';
$lang['gen_hamradio_callsign'] = 'Callsign';
$lang['gen_hamradio_mode'] = 'Mode';
$lang['gen_hamradio_rst_sent'] = 'Sent';
$lang['gen_hamradio_rst_recv'] = 'Recv';
$lang['gen_hamradio_rst_recv'] = 'Recv\'d';
$lang['gen_hamradio_band'] = 'Band';
$lang['gen_hamradio_band_rx'] = 'Band (RX)';
$lang['gen_hamradio_frequency'] = 'Frequency';
$lang['gen_hamradio_frequency_rx'] = 'Frequency (RX)';
$lang['gen_hamradio_radio'] = 'Radio';
$lang['gen_hamradio_rsts'] = 'RST (S)';
$lang['gen_hamradio_rstr'] = 'RST (R)';
$lang['gen_hamradio_exchange_sent_short'] = 'Exch (S)';
$lang['gen_hamradio_exchange_recv_short'] = 'Exch (R)';
$lang['gen_hamradio_qsl'] = 'QSL';
$lang['gen_hamradio_locator'] = 'Locator';
$lang['gen_hamradio_transmit_power'] = 'Transmit Power (W)';
$lang['gen_hamradio_propagation_mode'] = 'Propagation Mode';
$lang['gen_hamradio_satellite_name'] = 'Satellite Name';
$lang['gen_hamradio_satellite_mode'] = 'Satellite Mode';
$lang['gen_hamradio_logbook'] = 'Logbook';
$lang['gen_hamradio_cq_zone'] = 'CQ Zone';
$lang['gen_hamradio_dxcc'] = 'DXCC';
$lang['gen_hamradio_usa_state'] = 'USA State';
$lang['gen_hamradio_county_reference'] = 'USA County';
$lang['gen_hamradio_iota_reference'] = 'IOTA Reference';
$lang['gen_hamradio_sota_reference'] = 'SOTA Reference';
$lang['gen_hamradio_wwff_reference'] = 'WWFF Reference';
$lang['gen_hamradio_dok'] = 'DOK';
$lang['gen_hamradio_state'] = 'State';
$lang['gen_hamradio_iota'] = 'IOTA';
$lang['gen_hamradio_gridsquare'] = 'Gridsquare';
$lang['gen_hamradio_sig'] = 'Sig';
$lang['gen_hamradio_sig_info'] = 'Sig Info';
// Dashboard Words
$lang['dashboard_you_have_had'] = 'You have had';
$lang['dashboard_qsos_today'] = 'QSOs Today!';
$lang['dashboard_qso_breakdown'] = 'QSOs Breakdown';
$lang['dashboard_countries_breakdown'] = 'Countries Breakdown';
$lang['gen_from_date'] = 'From date';
$lang['gen_this_qso_was_confirmed_on'] = 'This QSO was confirmed on';

查看文件

@ -0,0 +1,52 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['lotw_short'] = 'LoTW';
$lang['lotw_title'] = 'Logbook of the World';
$lang['lotw_title_available_cert'] = 'Available Certificates';
$lang['lotw_title_information'] = 'Information';
$lang['lotw_title_upload_p12_cert'] = 'Upload Logbook of the World .p12 Certificate';
$lang['lotw_title_export_p12_file_instruction'] = 'Export .p12 File Instructions';
$lang['lotw_title_adif_import'] = 'ADIF Import';
$lang['lotw_title_adif_import_options'] = 'Import Options';
$lang['lotw_beta_warning'] = 'Please be aware that LoTW Sync is BETA, see wiki for help.';
$lang['lotw_no_certs_uploaded'] = 'You need to upload some LoTW p12 certificates to use this area.';
$lang['lotw_date_created'] = 'Date Created';
$lang['lotw_date_expires'] = 'Date Expires';
$lang['lotw_status'] = 'Status';
$lang['lotw_options'] = 'Options';
$lang['lotw_valid'] = 'Valid';
$lang['lotw_expired'] = 'Expired';
$lang['lotw_not_synced'] = 'Not Synced';
$lang['lotw_certificate_dxcc'] = 'Certificate DXCC';
$lang['lotw_certificate_dxcc_help_text'] = 'Certificate DXCC entity. For example: Scotland';
$lang['lotw_input_a_file'] = 'Upload a File';
$lang['lotw_upload_exported_adif_file_from_lotw'] = 'Upload the Exported ADIF file from LoTW from the <a href="https://p1k.arrl.org/lotwuser/qsos?qsoscmd=adif" target="_blank">Download Report</a> Area, to mark QSOs as confirmed on LOTW.';
$lang['lotw_upload_type_must_be_adi'] = 'Log files must have the file type .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Pull LoTW data for me';
$lang['lotw_import_missing_qsos_text'] = 'Import missing QSOs into the log. Call and gridsquare will be checked to try to find the correct profile to import the QSO into. If not found, the QSO will be skipped.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog will use the LoTW username and password stored in your user profile to download a report from LoTW for you. The report Cloudlog downloads will have all confirmations since chosen date, or since your last LoTW confirmation (fetched from your log), up until now.';
// Buttons
$lang['lotw_btn_lotw_import'] = 'LoTW Import';
$lang['lotw_btn_upload_certificate'] = 'Upload Certificate';
$lang['lotw_btn_delete'] = 'Delete';
$lang['lotw_btn_manual_sync'] = 'Manual Sync';
$lang['lotw_btn_upload_file'] = 'Upload File';
$lang['lotw_btn_import_matches'] = 'Import LoTW Matches';
// P12 Export Text
$lang['lotw_p12_export_step_one'] = 'Open TQSL &amp; go to the Callsign Certificates Tab';
$lang['lotw_p12_export_step_two'] = 'Right click on desired Callsign';
$lang['lotw_p12_export_step_three'] = 'Click "Save Callsign Certificate File" and do not add a password';
$lang['lotw_p12_export_step_four'] = 'Upload File below.';
$lang['lotw_confirmed'] = 'This QSO is confirmed on LoTW';

查看文件

@ -0,0 +1,23 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['notes_menu_notes'] = 'Notes';
$lang['notes_edit_note'] = 'Edit Note';
$lang['notes_your_notes'] = 'Your Notes';
$lang['notes_welcome'] = "You don't currently have any notes, these are a fantastic way of storing data like ATU settings, beacons and general station notes and its better than paper as you can't lose them!";
$lang['notes_create_note'] = 'Create Note';
$lang['notes_input_title'] = 'Title';
$lang['notes_input_category'] = 'Category';
$lang['notes_input_notes_content'] = 'Note Contents';
$lang['notes_input_btn_save_note'] = 'Save Note';
$lang['notes_input_btn_edit_note'] = 'Edit Note';
$lang['notes_input_btn_delete_note'] = 'Delete Note';
$lang['notes_selection_general'] = 'General';
$lang['notes_selection_antennas'] = 'Antennas';
$lang['notes_selection_satellites'] = 'Satellites';

查看文件

@ -0,0 +1,18 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// Tiles
$lang['qslcard_string_your_are_using'] = 'You are using';
$lang['qslcard_string_disk_space'] = 'of disk space to store QSL Card assets';
$lang['qslcard_info'] = 'QSL Info';
$lang['qslcard_sent_bureau'] = 'QSL Card has been sent via the bureau';
$lang['qslcard_sent_direct'] = 'QSL Card has been sent via direct';
$lang['qslcard_recv_bureau'] = 'QSL Card has been received via the bureau';
$lang['qslcard_recv_direct'] = 'QSL Card has been received via direct';
$lang['qslcard_upload_front'] = 'Uploaded QSL Card front image';
$lang['qslcard_upload_back'] = 'Uploaded QSL Card back image';
$lang['qslcard_upload_button'] = 'Upload QSL Card image';

查看文件

@ -0,0 +1,30 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// Tiles
$lang['qso_title_qso_map'] = 'QSO Map';
$lang['qso_title_suggestions'] = 'Suggestions';
$lang['qso_title_pervious_contacts'] = 'Previous Contacts';
// Input Help Text on the /QSO Display
$lang['qso_transmit_power_helptext'] = 'Give power value in Watts. Include only numbers in the input.';
$lang['qso_sota_ref_helptext'] = 'For example: GM/NS-001.';
$lang['qso_sig_helptext'] = 'For example: WWFF or POTA';
$lang['qso_sig_info_helptext'] = 'For example: DLFF-0029';
$lang['qso_dok_helptext'] = 'For example: Q03';
$lang['qso_notes_helptext'] = 'Note content is used within Cloudlog only and is not exported to other services.';
// Button Text on /qso Display
$lang['qso_btn_reset_qso'] = 'Reset';
$lang['qso_btn_save_qso'] = 'Save QSO';
$lang['qso_btn_edit_qso'] = 'Edit QSO';
// QSO Details
$lang['qso_details'] = 'QSO Details';

查看文件

@ -0,0 +1,10 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['account_logbook_fields'] = 'Lokin sarakkeiden sisältö';
$lang['account_column1_text'] = 'Sarake 1';
$lang['account_column2_text'] = 'Sarake 2';
$lang['account_column3_text'] = 'Sarake 3';
$lang['account_column4_text'] = 'Sarake 4';
$lang['account_column5_text'] = 'Sarake 5 (vain lokikirjassa)';

查看文件

@ -0,0 +1,18 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['contesting_page_title'] = 'Kilpailuloki';
$lang['contesting_button_reset_contest_session'] = 'Nollaa kilpailuloki';
$lang['contesting_exchange_type'] = 'Annettava sanoma';
$lang['contesting_exchange_type_serial'] = 'Sarjanumero';
$lang['contesting_exchange_type_other'] = 'Muu';
$lang['contesting_contest_name'] = 'Kilpailun nimi';
$lang['contesting_btn_reset_qso'] = 'Nollaa QSO';
$lang['contesting_btn_save_qso'] = 'TALLENNA QSO';
$lang['contesting_title_callsign_suggestions'] = 'Ehdotettu kutsu';
$lang['contesting_title_contest_logbook'] = 'Kilpailussa pidetyt yhteydet';

查看文件

@ -0,0 +1,110 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['error_no_active_station_profile'] = 'Varoitus: sinun täytyy valita aktiivinen asemaprofiili.';
$lang['notice_turn_the_radio_on'] = 'Ei kusoja tänään - siis radio päälle ja bandeille!';
$lang['general_word_important'] = 'Tärkeää';
$lang['general_word_info'] = 'Info';
$lang['general_word_choose_file'] = 'Valitse tiedosto';
$lang['general_word_date'] = 'Päivä';
$lang['general_word_time'] = 'Aika';
$lang['general_word_datetime'] = 'Päivä/Aika';
$lang['general_word_none'] = 'None';
$lang['general_word_name'] = 'Nimi';
$lang['general_word_location'] = 'Sijainti';
$lang['general_word_comment'] = 'Kommentti';
$lang['general_word_general'] = 'Yleinen';
$lang['general_word_satellite'] = 'Satelliitti';
$lang['general_word_satellite_short'] = 'Sat';
$lang['general_word_notes'] = 'Muistiinpanot';
$lang['general_word_country'] = 'Maa';
$lang['general_word_total'] = 'Yhteensä';
$lang['general_word_year'] = 'Vuosi';
$lang['general_word_month'] = 'Kuukausi';
$lang['general_word_worked'] = 'Workittu';
$lang['general_word_confirmed'] = 'Kuitattu';
$lang['general_word_needed'] = 'Tarvittu';
$lang['general_word_no'] = 'Ei';
$lang['general_word_yes'] = 'Kyllä';
$lang['general_word_method'] = 'Method / tapa';
$lang['general_word_sent'] = 'Lähetetyt';
$lang['general_word_received'] = 'Vastaanotetut';
$lang['general_word_requested'] = 'Pyydetyt';
$lang['general_word_qslcard'] = 'QSL kortti';
$lang['general_word_qslcard_management'] = 'QSL manageri';
$lang['general_word_qslcards'] = 'QSL-kortit';
$lang['general_word_qslcard_direct'] = 'Direct';
$lang['general_word_qslcard_bureau'] = 'Bureau';
$lang['general_word_qslcard_via'] = 'Via';
$lang['general_edit_qso'] = 'Muokkaa QSO:a';
$lang['general_mark_qsl_rx_bureau'] = 'Merkitse QSL vastaanotetuksi (Bureau)';
$lang['general_mark_qsl_rx_direct'] = 'Merkitse QSL vastaanotetuksi (Direct)';
$lang['general_delete_qso'] = 'Poista QSO';
$lang['general_total_distance'] = 'Kokonaismatka';
// Cloudlog Terms
$lang['cloudlog_station_profile'] = 'Asemaprofiili';
// ham radio terms
$lang['gen_hamradio_qso'] = 'QSO';
$lang['gen_hamradio_station'] = 'Asema';
$lang['gen_hamradio_call'] = 'Kutsu';
$lang['gen_hamradio_callsign'] = 'Kutsumerkki';
$lang['gen_hamradio_mode'] = 'Lähetelaji';
$lang['gen_hamradio_rst_sent'] = 'Annettu raportti';
$lang['gen_hamradio_rst_recv'] = 'Saatu raportti';
$lang['gen_hamradio_band'] = 'Bandi';
$lang['gen_hamradio_band_rx'] = 'Bandi (RX)';
$lang['gen_hamradio_frequency'] = 'Taajuus';
$lang['gen_hamradio_frequency_rx'] = 'Taajuus (RX)';
$lang['gen_hamradio_radio'] = 'Radio';
$lang['gen_hamradio_rsts'] = 'RST (S)';
$lang['gen_hamradio_rstr'] = 'RST (R)';
$lang['gen_hamradio_exchange_sent_short'] = 'Exch (S)';
$lang['gen_hamradio_exchange_recv_short'] = 'Exch (R)';
$lang['gen_hamradio_qsl'] = 'QSL';
$lang['gen_hamradio_locator'] = 'Lokaattori';
$lang['gen_hamradio_transmit_power'] = 'Lähetysteho (W)';
$lang['gen_hamradio_propagation_mode'] = 'Propagaatiomuoto';
$lang['gen_hamradio_satellite_name'] = 'Satelliitti';
$lang['gen_hamradio_satellite_mode'] = 'Satelliitin Mode';
$lang['gen_hamradio_logbook'] = 'Lokikirja';
$lang['gen_hamradio_cq_zone'] = 'CQ Zone';
$lang['gen_hamradio_dxcc'] = 'DXCC';
$lang['gen_hamradio_usa_state'] = 'USA:n osavaltio';
$lang['gen_hamradio_county_reference'] = 'USA lääni';
$lang['gen_hamradio_iota_reference'] = 'IOTA ref.numero';
$lang['gen_hamradio_sota_reference'] = 'SOTA ref.numero';
$lang['gen_hamradio_wwff_reference'] = 'WWFF ref.nro';
$lang['gen_hamradio_dok'] = 'DOK';
$lang['gen_hamradio_state'] = 'osavaltio';
$lang['gen_hamradio_iota'] = 'IOTA';
$lang['gen_hamradio_gridsquare'] = 'Gridsquare';
$lang['gen_hamradio_sig'] = 'Sig';
$lang['gen_hamradio_sig_info'] = 'Sig Info';
// Dashboard Words
$lang['dashboard_you_have_had'] = 'Olet pitänyt';
$lang['dashboard_qsos_today'] = 'yhteyttä tänään!';
$lang['dashboard_qso_breakdown'] = 'Yhteystilasto';
$lang['dashboard_countries_breakdown'] = 'Maatilasto';
$lang['gen_from_date'] = 'päivämäärästä';
$lang['gen_this_qso_was_confirmed_on'] = 'Tämä QSO vahvistettiin';

查看文件

@ -0,0 +1,11 @@
<html>
<head>
<title>403 Kielletty</title>
</head>
<body>
<p>Kansioon on pääsy kielletty.</p>
</body>
</html>

查看文件

@ -0,0 +1,52 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['lotw_short'] = 'LoTW';
$lang['lotw_title'] = 'Logbook of the World';
$lang['lotw_title_available_cert'] = 'Kutsumerkin varmenteet';
$lang['lotw_title_information'] = 'Info';
$lang['lotw_title_upload_p12_cert'] = 'Tuo palveluun LotW:n .p12 kutsumerkin varmenne';
$lang['lotw_title_export_p12_file_instruction'] = 'Vie .p12 tiedoston ohjeistus';
$lang['lotw_title_adif_import'] = 'ADIF tuonti';
$lang['lotw_title_adif_import_options'] = 'Tuonnin asetukset';
$lang['lotw_beta_warning'] = 'HUOM! LoTW synkronointi on vasta BETA-vaiheessa, katso wikistä lisätietoa ja apua.';
$lang['lotw_no_certs_uploaded'] = 'Sinun täytyy ladata ainakin yksi LoTW:n P12 tiedostomuotoinen kutsumerkin varmenne käyttääksesi tätä toimintoaluetta.';
$lang['lotw_date_created'] = 'Päivä jolloin luotu';
$lang['lotw_date_expires'] = 'Päivä joloin vanhenee';
$lang['lotw_status'] = 'Status';
$lang['lotw_options'] = 'Lisävaihtoehdot';
$lang['lotw_valid'] = 'Voimassa';
$lang['lotw_expired'] = 'Vanhentunut';
$lang['lotw_not_synced'] = 'Ei synkronoitu';
$lang['lotw_certificate_dxcc'] = 'Kutsumerkin varmenteen DXCC';
$lang['lotw_certificate_dxcc_help_text'] = 'Kutsumerkin varmenteen DXCC, esimerkiksi Finland.';
$lang['lotw_input_a_file'] = 'Lataa tiedosto';
$lang['lotw_upload_exported_adif_file_from_lotw'] = 'Lataa ADIF-tiedosto LoTW:n palvelusta: <a href="https://p1k.arrl.org/lotwuser/qsos?qsoscmd=adif" target="_blank">LATAA TÄSTÄ</a>, merkataksesi yhteydet kuitatuksi LoTW:ssa.';
$lang['lotw_upload_type_must_be_adi'] = 'Lokitiedoston pitää olla ADI-tiedosto --> .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Lataa ja tuo LoTW:n data';
$lang['lotw_import_missing_qsos_text'] = 'Tuo yhteyslokistasi mahdollisesti puuttuvat yhteydet LoTW:n rekisteristä. Kutsu ja lokaattori tarkistetaan, jotta yhteydet sidotaan oikeaan asemaprofiiliin. Jos yhteyttä ei löydy, kusot jätetään tuomatta.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog käyttää profiiliisi tallennettuja LoTW:n käyttäjätietoja lokikoosteen lataamiseen. Lokikooste sisältää tähän päivään asti kaikki kuitatut yhteydet, alkaen valitsemastasi päivästä tai siitä päivästä kun olet viimeksi ne palvelusta ladannut .';
// Buttons
$lang['lotw_btn_lotw_import'] = 'LoTW Tuonti';
$lang['lotw_btn_upload_certificate'] = 'Lataa ja tuo kutsumerkin varmenne';
$lang['lotw_btn_delete'] = 'Poista';
$lang['lotw_btn_manual_sync'] = 'Synkronoi yhteydet manuaalisesti';
$lang['lotw_btn_upload_file'] = 'Lataa tiedosto';
$lang['lotw_btn_import_matches'] = 'Tuo LoTW:n osumat';
// P12 Export Text
$lang['lotw_p12_export_step_one'] = 'Avaa TQSL &amp; ja siirry kutsumerkin varmeenteen / Callsign Certificates välilehdelle';
$lang['lotw_p12_export_step_two'] = 'Klikkaa hiiren oikealla näppäimella haluamaasi kutsua';
$lang['lotw_p12_export_step_three'] = 'Klikkaa "Tallenna kutsumerkin varmenne / "Save Callsign Certificate File" äläkä aseta salasanaa';
$lang['lotw_p12_export_step_four'] = 'Lataa ja tuo äsken tallentamasi tiedosto tänne.';
$lang['lotw_confirmed'] = 'Tämä QSO on kuitattu LoTW:ssa';

查看文件

@ -0,0 +1,22 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['notes_menu_notes'] = 'Muistiinpanot';
$lang['notes_edit_note'] = 'Muokkaa muistiinpanoa';
$lang['notes_your_notes'] = 'Muistiinpanosi';
$lang['notes_welcome'] = "Näyttää siltä, ettei sinulla ole vielä yhtään muistiinpanoa. Nämä Cloudlogin muistiinpanot ovat kätevä tapa tallentaa tärkeitä tietoja, kuten ATU:n asetukset, taajuudet ja mitä tahansa mieleesi tuleekin. Muistiinpanosi säilyvät täällä tallessa, eikä sinun tarvitse etsiä niitä paperipinojesi alta. Näin aika säästyy workkimiseen --... ...-- ";
$lang['notes_create_note'] = 'Luo uusi muistiinpano';
$lang['notes_input_title'] = 'Otsikko';
$lang['notes_input_category'] = 'Kategoria';
$lang['notes_input_notes_content'] = 'Muistiinpanon teksti:';
$lang['notes_input_btn_save_note'] = 'Tallenna muistiinpano';
$lang['notes_input_btn_edit_note'] = 'Muokkaa muistiinpanoa';
$lang['notes_input_btn_delete_note'] = 'Poista muistiinpano';
$lang['notes_selection_general'] = 'Yleinen';
$lang['notes_selection_antennas'] = 'Antennit';
$lang['notes_selection_satellites'] = 'Satelliitit';

查看文件

@ -0,0 +1,18 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// Tiles
$lang['qslcard_string_your_are_using'] = 'Käytät';
$lang['qslcard_string_disk_space'] = 'levytilaa QSL-korteille';
$lang['qslcard_info'] = 'QSL Info';
$lang['qslcard_sent_bureau'] = 'QSL kortti on lähetty buron kautta';
$lang['qslcard_sent_direct'] = 'QSL kortti on lähetetty direktinä';
$lang['qslcard_recv_bureau'] = 'QSL kortti on vastaanotettu buron kautta';
$lang['qslcard_recv_direct'] = 'QSL kortti on vastaanotettu direktinä';
$lang['qslcard_upload_front'] = 'QSL-kortin ladattu etukuva';
$lang['qslcard_upload_back'] = 'QSL-kortin ladattu takakuva';
$lang['qslcard_upload_button'] = 'Lähetä QSL-kortin kuva';

查看文件

@ -0,0 +1,30 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// Tiles
$lang['qso_title_qso_map'] = 'Vasta-aseman sijainti kartalla';
$lang['qso_title_suggestions'] = 'Kutsumerkkiehdotukset';
$lang['qso_title_pervious_contacts'] = 'Edelliset yhteydet';
// Input Help Text on the /QSO Display
$lang['qso_transmit_power_helptext'] = 'Anna teholukema Watteina käyttäen vain numeroita.';
$lang['qso_sota_ref_helptext'] = 'Esimerkiksi: OH/JS-004.';
$lang['qso_sig_helptext'] = 'Esimerkiksi: WWFF tai POTA';
$lang['qso_sig_info_helptext'] = 'Esimerkiksi: OHFF-0029';
$lang['qso_dok_helptext'] = 'Esimerkiksi: Q03';
$lang['qso_notes_helptext'] = 'Muistion sisältö tallentuu vain Cloudlogiin, tämän kuson yhteyteen, eikä siirry eteenpäin muihin palveluihin.';
// Button Text on /qso Display
$lang['qso_btn_reset_qso'] = 'Tyhjennä';
$lang['qso_btn_save_qso'] = 'TALLENNA QSO';
$lang['qso_btn_edit_qso'] = 'muokkaa QSO:a';
// QSO Details
$lang['qso_details'] = 'QSO:n tiedot';

查看文件

@ -0,0 +1,18 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['contesting_page_title'] = 'Logging Contest';
$lang['contesting_button_reset_contest_session'] = 'Rinitialiser la Session Contest';
$lang['contesting_exchange_type'] = 'Type d\'échange';
$lang['contesting_exchange_type_serial'] = 'Serie';
$lang['contesting_exchange_type_other'] = 'Autre';
$lang['contesting_contest_name'] = 'Nom du Contest';
$lang['contesting_btn_reset_qso'] = 'Reinitialise QSO';
$lang['contesting_btn_save_qso'] = 'Sauvegarder QSO';
$lang['contesting_title_callsign_suggestions'] = 'Sugestion d\'indicatif';
$lang['contesting_title_contest_logbook'] = 'Logbook du Contest';

查看文件

@ -0,0 +1,95 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['error_no_active_station_profile'] = 'Attention: vous devez activer le profil d\'une station.';
$lang['notice_turn_the_radio_on'] = 'Vous n\'avez fait aucun QSOs aujourd\'hui. Il est temps d\'allumer la radio!';
$lang['general_word_important'] = 'Important';
$lang['general_word_info'] = 'Information';
$lang['general_word_date'] = 'Date';
$lang['general_word_time'] = 'Heure';
$lang['general_word_none'] = 'Aucun';
$lang['general_word_name'] = 'Nom';
$lang['general_word_location'] = 'Lieu';
$lang['general_word_comment'] = 'Comment.';
$lang['general_word_general'] = 'General';
$lang['general_word_satellite'] = 'Satellite';
$lang['general_word_satellite_short'] = 'Sat';
$lang['general_word_notes'] = 'Notes';
$lang['general_word_country'] = 'Pays';
$lang['general_word_total'] = 'Total';
$lang['general_word_year'] = 'Année';
$lang['general_word_month'] = 'Mois';
$lang['general_word_worked'] = 'Réalisés';
$lang['general_word_confirmed'] = 'Confirmés';
$lang['general_word_needed'] = 'Demandés';
$lang['general_word_no'] = 'Non';
$lang['general_word_yes'] = 'Oui';
$lang['general_word_method'] = 'Methode';
$lang['general_word_sent'] = 'Envoyées';
$lang['general_word_received'] = 'Reçues';
$lang['general_word_requested'] = 'Demandées';
$lang['general_word_qslcards'] = 'Cartes QSL';
$lang['general_word_qslcard_direct'] = 'Direct';
$lang['general_word_qslcard_bureau'] = 'Bureau';
$lang['general_word_qslcard_via'] = 'Via';
$lang['general_edit_qso'] = 'Editer QSO';
$lang['general_mark_qsl_rx_bureau'] = 'Marquer QSL Reçue (Bureau)';
$lang['general_mark_qsl_rx_direct'] = 'Marquer QSL Reçue (Direct)';
$lang['general_delete_qso'] = 'Effacer QSO';
// Cloudlog Terms
$lang['cloudlog_station_profile'] = 'Profil Station';
// ham radio terms
$lang['gen_hamradio_qso'] = 'QSO';
$lang['gen_hamradio_station'] = 'Station';
$lang['gen_hamradio_call'] = 'QRZ';
$lang['gen_hamradio_callsign'] = 'Indicatif';
$lang['gen_hamradio_mode'] = 'Mode';
$lang['gen_hamradio_rst_sent'] = 'Envoyé';
$lang['gen_hamradio_rst_recv'] = 'Reçu';
$lang['gen_hamradio_band'] = 'Bande';
$lang['gen_hamradio_band_rx'] = 'Bande (RX)';
$lang['gen_hamradio_frequency'] = 'Frequence';
$lang['gen_hamradio_frequency_rx'] = 'Frequence (RX)';
$lang['gen_hamradio_radio'] = 'Radio';
$lang['gen_hamradio_rsts'] = 'RST (S)';
$lang['gen_hamradio_rstr'] = 'RST (R)';
$lang['gen_hamradio_exchange_sent_short'] = 'Exch (S)';
$lang['gen_hamradio_exchange_recv_short'] = 'Exch (R)';
$lang['gen_hamradio_qsl'] = 'QSL';
$lang['gen_hamradio_locator'] = 'Locator';
$lang['gen_hamradio_transmit_power'] = 'Power Emission (W)';
$lang['gen_hamradio_propagation_mode'] = 'Mode Propagation';
$lang['gen_hamradio_satellite_name'] = 'Nom du Satellite';
$lang['gen_hamradio_satellite_mode'] = 'Mode du Satellite';
$lang['gen_hamradio_logbook'] = 'Logbook';
$lang['gen_hamradio_cq_zone'] = 'Zone CQ ';
$lang['gen_hamradio_dxcc'] = 'DXCC';
$lang['gen_hamradio_usa_state'] = 'Etat USA';
$lang['gen_hamradio_iota_reference'] = 'Référence IOTA';
$lang['gen_hamradio_sota_reference'] = 'Référence SOTA';
$lang['gen_hamradio_dok'] = 'DOK';
$lang['gen_hamradio_sig'] = 'Sig';
$lang['gen_hamradio_sig_info'] = 'Sig Info';
// Dashboard Words
$lang['dashboard_you_have_had'] = 'Vous avez effectué';
$lang['dashboard_qsos_today'] = 'QSOs aujourd\'hui!';
$lang['dashboard_qso_breakdown'] = 'Ventilation par QSO';
$lang['dashboard_countries_breakdown'] = 'Ventilation par Pays';

查看文件

@ -0,0 +1,10 @@
<html>
<head>
<title>403 Interdit</title>
</head>
<body>
<p>l'acc&egrave;s au dossier est interdit.</p>
</body>
</html>

查看文件

@ -0,0 +1,49 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['lotw_title'] = 'Logbook du monde';
$lang['lotw_title_available_cert'] = 'Certificats disponibles';
$lang['lotw_title_information'] = 'Information';
$lang['lotw_title_upload_p12_cert'] = 'Envoyer certificat .p12 du Logbook du monde';
$lang['lotw_title_export_p12_file_instruction'] = 'Instruction pour l\'export des fichiers .p12';
$lang['lotw_title_adif_import'] = 'Import ADIF';
$lang['lotw_title_adif_import_options'] = 'Options d\'import';
$lang['lotw_beta_warning'] = 'Attention la synchro LOTW est au stage BETA, voir le wiki pour l\'aide.';
$lang['lotw_no_certs_uploaded'] = 'Vous devez envoyer des certificats p1 pour utiliser cette zone.';
$lang['lotw_date_created'] = 'Date Création';
$lang['lotw_date_expires'] = 'Date Expiration';
$lang['lotw_status'] = 'Status';
$lang['lotw_options'] = 'Options';
$lang['lotw_valid'] = 'Valide';
$lang['lotw_expired'] = 'Expiré';
$lang['lotw_not_synced'] = 'Non Synchronisé';
$lang['lotw_certificate_dxcc'] = 'Certificat DXCC';
$lang['lotw_certificate_dxcc_help_text'] = 'Entité Certificat DXCC. Par example: Scotland';
$lang['lotw_input_a_file'] = 'Envoyer un fichier';
$lang['lotw_upload_exported_adif_file_from_lotw'] = 'Envoyer le fichier ADIF exporté depuis la zone LoTW à l\'adresse <a href="https://p1k.arrl.org/lotwuser/qsos?qsoscmd=adif" target="_blank">Download Report</a>, pour marquer les QSO comme "confirmés" sur LOTW.';
$lang['lotw_upload_type_must_be_adi'] = 'Les fichiers de log doivent être au format .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Récuperer mes données LoTW';
$lang['lotw_import_missing_qsos_text'] = 'Importer les QSO manquants dans le log. Les indicatifs et gridsquare seront testés pour essayer de trouver le profil d\'importation correct. Les QSO seront ignorés si non trouvé.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog utilise le nom d\'utilisateur et mot de passe enregistré dans votre profil utilisateur pour télécharger les rapport depuis LoTw. Les rapports téléchargés seront confirmés depuis la date de votre dernière confirmation (extraite de vos log) jusqu\'à aujourd\'hui';
// Buttons
$lang['lotw_btn_lotw_import'] = 'Import LoTW';
$lang['lotw_btn_upload_certificate'] = 'Envoi Certificat';
$lang['lotw_btn_delete'] = 'Supprimer';
$lang['lotw_btn_manual_sync'] = 'Synchro manuelle';
$lang['lotw_btn_upload_file'] = 'Envoi fichier';
$lang['lotw_btn_import_matches'] = 'Import LoTW correspondants';
// P12 Export Text
$lang['lotw_p12_export_step_one'] = 'Ouvrir TQSL et aller à l\'onglet Certificats Indicatifs';
$lang['lotw_p12_export_step_two'] = 'Click droit sur l\indicatif désiré';
$lang['lotw_p12_export_step_three'] = 'Cliquer "Enregistrer le fichier des certificats d\'indicatif sans ajouter de mot de passe';
$lang['lotw_p12_export_step_four'] = 'Envoyer le fichier ci-dessous.';

查看文件

@ -0,0 +1,22 @@
<?php
defined('BASEPATH') OR exit('Accès direct au script non autorisé');
$lang['notes_menu_notes'] = 'Notes';
$lang['notes_edit_note'] = 'Editer Note';
$lang['notes_your_notes'] = 'Vos Notes';
$lang['notes_welcome'] = "Vous n'avez actuellement aucune note, C'est une manière fantastique de conserver vos données comme les réglages de boite d'accord, balises, notes sur les stations etc. et c'est bien mieux que des notes papiers que vous finirez par perdre";
$lang['notes_create_note'] = 'Creation Note';
$lang['notes_input_title'] = 'Titre';
$lang['notes_input_category'] = 'Categorie';
$lang['notes_input_notes_content'] = 'Contenu Note';
$lang['notes_input_btn_save_note'] = 'Enregistrer Note';
$lang['notes_input_btn_edit_note'] = 'Editer Note';
$lang['notes_input_btn_delete_note'] = 'Supprimer Note';
$lang['notes_selection_general'] = 'General';
$lang['notes_selection_antennas'] = 'Antennes';
$lang['notes_selection_satellites'] = 'Satellites';

查看文件

@ -0,0 +1,7 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// Tiles
$lang['qslcard_string_your_are_using'] = 'Vous utilisez';
$lang['qslcard_string_disk_space'] = 'd\'espace disque pour stocker les actifs des cartes QSL';

查看文件

@ -0,0 +1,25 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// Tiles
$lang['qso_title_qso_map'] = 'Carte QSO';
$lang['qso_title_suggestions'] = 'Suggestions';
$lang['qso_title_pervious_contacts'] = 'Contacts précédents';
// Input Help Text on the /QSO Display
$lang['qso_transmit_power_helptext'] = 'Saisissez la ouissance en Watts en utilisant uniquement des chiffres.';
$lang['qso_sota_ref_helptext'] = 'Par exemple: GM/NS-001.';
$lang['qso_sig_helptext'] = 'Par exemple: WWFF or POTA';
$lang['qso_sig_info_helptext'] = 'Par exemple: DLFF-0029';
$lang['qso_dok_helptext'] = 'Par exemple: Q03';
$lang['qso_notes_helptext'] = 'A noter : le contenu est utilisé par Cloudlog uniquement et n\'est pas exporté vers d\'autre services';
// Button Text on /qso Display
$lang['qso_btn_reset_qso'] = 'Réinitialiser';
$lang['qso_btn_save_qso'] = 'Enregistrer QSO';

查看文件

@ -0,0 +1,10 @@
<?php
defined('BASEPATH') OR exit('Direkter Zugriff auf Skripte ist nicht erlaubt');
$lang['account_logbook_fields'] = 'Logbuchfelder';
$lang['account_column1_text'] = 'Wähle Spalte 1';
$lang['account_column2_text'] = 'Wähle Spalte 2';
$lang['account_column3_text'] = 'Wähle Spalte 3';
$lang['account_column4_text'] = 'Wähle Spalte 4';
$lang['account_column5_text'] = 'Wähle Spalte 5 (nur für Logbuch)';

查看文件

@ -0,0 +1,18 @@
<?php
defined('BASEPATH') OR exit('Direkter Zugriff auf Skripte ist nicht erlaubt');
$lang['contesting_page_title'] = 'Contest-Logging';
$lang['contesting_button_reset_contest_session'] = 'Setze Contest-Sitzung zurück';
$lang['contesting_exchange_type'] = 'Austauschtyp';
$lang['contesting_exchange_type_serial'] = 'Laufende Nummer';
$lang['contesting_exchange_type_other'] = 'Andere';
$lang['contesting_contest_name'] = 'Contest-Name';
$lang['contesting_btn_reset_qso'] = 'Setze QSO zurück';
$lang['contesting_btn_save_qso'] = 'Speichere QSO';
$lang['contesting_title_callsign_suggestions'] = 'Rufzeichenvorschläge';
$lang['contesting_title_contest_logbook'] = 'Contest-Logbuch';

查看文件

@ -0,0 +1,98 @@
<?php
defined('BASEPATH') OR exit('Direkter Zugriff auf Skripte ist nicht erlaubt');
$lang['error_no_active_station_profile'] = 'Achtung: Du musst ein aktives Stationsprofil auswählen.';
$lang['notice_turn_the_radio_on'] = 'Du hast heute noch keine QSOs gemacht; Zeit, das Funkgerät einzuschalten!';
$lang['general_word_important'] = 'Wichtig';
$lang['general_word_info'] = 'Info';
$lang['general_word_choose_file'] = 'Datei wählen';
$lang['general_word_date'] = 'Datum';
$lang['general_word_time'] = 'Zeit';
$lang['general_word_none'] = 'None';
$lang['general_word_name'] = 'Name';
$lang['general_word_location'] = 'Stelle';
$lang['general_word_comment'] = 'Kommentar';
$lang['general_word_general'] = 'Allgemeines';
$lang['general_word_satellite'] = 'Satellit';
$lang['general_word_satellite_short'] = 'Sat';
$lang['general_word_notes'] = 'Notizen';
$lang['general_word_country'] = 'Land';
$lang['general_word_total'] = 'Gesamt';
$lang['general_word_year'] = 'Jahr';
$lang['general_word_month'] = 'Monat';
$lang['general_word_worked'] = 'Gearbeitet';
$lang['general_word_confirmed'] = 'Bestätigt';
$lang['general_word_needed'] = 'Benötigt';
$lang['general_word_no'] = 'Nein';
$lang['general_word_yes'] = 'Ja';
$lang['general_word_method'] = 'Methode';
$lang['general_word_sent'] = 'Gesendet';
$lang['general_word_received'] = 'Erhalten';
$lang['general_word_requested'] = 'Angefordert';
$lang['general_word_qslcards'] = 'QSL Karten';
$lang['general_word_qslcard_direct'] = 'Direkt';
$lang['general_word_qslcard_bureau'] = 'Büro';
$lang['general_word_qslcard_via'] = 'Via';
$lang['general_edit_qso'] = 'QSO bearbeiten';
$lang['general_mark_qsl_rx_bureau'] = 'Markiere QSL erhalten (Büro)';
$lang['general_mark_qsl_rx_direct'] = 'Markiere QSL erhalten (Direkt)';
$lang['general_delete_qso'] = 'QSO Löschen';
// Cloudlog Terms
$lang['cloudlog_station_profile'] = 'Stationsprofil';
// ham radio terms
$lang['gen_hamradio_qso'] = 'QSO';
$lang['gen_hamradio_station'] = 'Station';
$lang['gen_hamradio_call'] = 'Call';
$lang['gen_hamradio_callsign'] = 'Rufzeichen';
$lang['gen_hamradio_mode'] = 'Mode';
$lang['gen_hamradio_rst_sent'] = 'Gegeben';
$lang['gen_hamradio_rst_recv'] = 'Erhalten';
$lang['gen_hamradio_band'] = 'Band';
$lang['gen_hamradio_band_rx'] = 'Band (RX)';
$lang['gen_hamradio_frequency'] = 'Frequenz';
$lang['gen_hamradio_frequency_rx'] = 'Frequenz (RX)';
$lang['gen_hamradio_radio'] = 'Radio';
$lang['gen_hamradio_rsts'] = 'RST (S)';
$lang['gen_hamradio_rstr'] = 'RST (R)';
$lang['gen_hamradio_exchange_sent_short'] = 'Exch (S)';
$lang['gen_hamradio_exchange_recv_short'] = 'Exch (R)';
$lang['gen_hamradio_qsl'] = 'QSL';
$lang['gen_hamradio_locator'] = 'Locator';
$lang['gen_hamradio_transmit_power'] = 'Sendeleistung (W)';
$lang['gen_hamradio_propagation_mode'] = 'Propagation';
$lang['gen_hamradio_satellite_name'] = 'Satellit';
$lang['gen_hamradio_satellite_mode'] = 'Satellitenmodus';
$lang['gen_hamradio_logbook'] = 'Logbuch';
$lang['gen_hamradio_cq_zone'] = 'CQ Zone';
$lang['gen_hamradio_dxcc'] = 'DXCC';
$lang['gen_hamradio_usa_state'] = 'USA-Staat';
$lang['gen_hamradio_iota_reference'] = 'IOTA Referenznummer';
$lang['gen_hamradio_sota_reference'] = 'SOTA Referenznummer';
$lang['gen_hamradio_dok'] = 'DOK';
$lang['gen_hamradio_sig'] = 'Sig';
$lang['gen_hamradio_sig_info'] = 'Sig Info';
// Dashboard Words
$lang['dashboard_you_have_had'] = 'Du hattest';
$lang['dashboard_qsos_today'] = 'QSOs heute!';
$lang['dashboard_qso_breakdown'] = 'QSO-Übersicht';
$lang['dashboard_countries_breakdown'] = 'Länderübersicht';

查看文件

@ -0,0 +1,10 @@
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

查看文件

@ -0,0 +1,49 @@
<?php
defined('BASEPATH') OR exit('Direkter Zugriff auf Skripte ist nicht erlaubt');
$lang['lotw_title'] = 'Logbook of the World';
$lang['lotw_title_available_cert'] = 'Verfügbare Zertifikate';
$lang['lotw_title_information'] = 'Information';
$lang['lotw_title_upload_p12_cert'] = 'Lade Logbook of the World .p12 Zertifikat hoch';
$lang['lotw_title_export_p12_file_instruction'] = 'Anleitung für den Export einer .p12 Datei';
$lang['lotw_title_adif_import'] = 'ADIF-Import';
$lang['lotw_title_adif_import_options'] = 'Importoptionen';
$lang['lotw_beta_warning'] = 'Bitte beachte, dass sich die LotW-Synchronisation im Betastadium befindet. Siehe Wiki für weitere Hilfe.';
$lang['lotw_no_certs_uploaded'] = 'Du musst mindestens ein LoTW-p12-Zertifikat hochladen, um diesen Bereich nutzen zu können.';
$lang['lotw_date_created'] = 'Ausstellungsdatum';
$lang['lotw_date_expires'] = 'Ablaufdatum';
$lang['lotw_status'] = 'Status';
$lang['lotw_options'] = 'Optionen';
$lang['lotw_valid'] = 'Gültig';
$lang['lotw_expired'] = 'Abgelaufen';
$lang['lotw_not_synced'] = 'Nicht synchronisiert';
$lang['lotw_certificate_dxcc'] = 'Zertifikats-DXCC';
$lang['lotw_certificate_dxcc_help_text'] = 'DXCC-Entität des Zertifikats. Zum Beispiel: Schottland';
$lang['lotw_input_a_file'] = 'Lade eine Datei hoch';
$lang['lotw_upload_exported_adif_file_from_lotw'] = 'Lade die exportierte ADIF-Datei aus LotW vom <a href="https://p1k.arrl.org/lotwuser/qsos?qsoscmd=adif" target="_blank">Download Report</a> Bereich, um die QSOs als via LotW bestätigt zu markieren.';
$lang['lotw_upload_type_must_be_adi'] = 'Logdateien müssen den Dateityp .adi haben';
$lang['lotw_pull_lotw_data_for_me'] = 'Lade LotW-Daten für mich';
$lang['lotw_import_missing_qsos_text'] = 'Importiere fehlende QSOs in das Log. Rufzeichzeichen und Locator werden geprüft, um das passende Profil zu erkennen, in das importiert werden soll. Kann das nicht gefunden werden, wird das QSO übersprungen.';
$lang['lotw_report_download_overview_helptext'] = 'Cloudlog nutzt Benutzername und Passwort, welche in Deinem Benutzerprofil gespeichert sind, um einen Report vom LotW zu laden. Der Report, den Cloudlog lädt, enthält alle Bestätigungen seit dem gewählten Datum oder seit der letzen LotW-Bestätigung (wird aus Deinem Log extrahiert) bis jetzt.';
// Buttons
$lang['lotw_btn_lotw_import'] = 'LoTW Import';
$lang['lotw_btn_upload_certificate'] = 'Zertifikats-Upload';
$lang['lotw_btn_delete'] = 'Lösche';
$lang['lotw_btn_manual_sync'] = 'Manuelle Synchronisation';
$lang['lotw_btn_upload_file'] = 'Lade Datei hoch';
$lang['lotw_btn_import_matches'] = 'Importiere LoTW-Übereinstimmungen';
// P12 Export Text
$lang['lotw_p12_export_step_one'] = 'Öffne TQSL &amp; und gehe zum Rufzeichen Zertifikate Reiter';
$lang['lotw_p12_export_step_two'] = 'Klicke rechts auf das gewünschte Rufzeichen';
$lang['lotw_p12_export_step_three'] = 'Klick "Save Callsign Certificate File" und füge kein Passwort hinzu';
$lang['lotw_p12_export_step_four'] = 'Lade untenstehende Datei hoch.';

查看文件

@ -0,0 +1,23 @@
<?php
defined('BASEPATH') OR exit('Direkter Zugriff auf Skripte ist nicht erlaubt');
$lang['notes_menu_notes'] = 'Notizen';
$lang['notes_edit_note'] = 'Editiere Notiz';
$lang['notes_your_notes'] = 'Deine Notizen';
$lang['notes_welcome'] = "Du hast derzeit keine Notizen. Diese sind eine fantastische Methode, Informationen wie Tunereinstellungen, Baken und allgemeine Stationsinformationen zu speichern. Und sie sind besser als Papier, da du sie nicht verlieren kannst!";
$lang['notes_create_note'] = 'Lege Notiz an';
$lang['notes_input_title'] = 'Titel';
$lang['notes_input_category'] = 'Kategorie';
$lang['notes_input_notes_content'] = 'Notizeninhalt';
$lang['notes_input_btn_save_note'] = 'Speichere Notiz';
$lang['notes_input_btn_edit_note'] = 'Editiere Notiz';
$lang['notes_input_btn_delete_note'] = 'Lösche Notiz';
$lang['notes_selection_general'] = 'Allgemein';
$lang['notes_selection_antennas'] = 'Antennen';
$lang['notes_selection_satellites'] = 'Satelliten';

查看文件

@ -0,0 +1,7 @@
<?php
defined('BASEPATH') OR exit('Direkter Zugriff auf Skripte ist nicht erlaubt');
// Tiles
$lang['qslcard_string_your_are_using'] = 'Du benutzt';
$lang['qslcard_string_disk_space'] = 'an Speicherplatz, um QSL-Karteninformationen zu speichern';

查看文件

@ -0,0 +1,25 @@
<?php
defined('BASEPATH') OR exit('Direkter Zugriff auf Skripte ist nicht erlaubt');
// Tiles
$lang['qso_title_qso_map'] = 'QSO-Karte';
$lang['qso_title_suggestions'] = 'Vorschläge';
$lang['qso_title_pervious_contacts'] = 'Vorherige Kontakte';
// Input Help Text on the /QSO Display
$lang['qso_transmit_power_helptext'] = 'Gib die Ausgangsleistung in Watt an. Erfasse nur Zahlen bei der Eingabe.';
$lang['qso_sota_ref_helptext'] = 'Zum Beispiel: GM/NS-001.';
$lang['qso_sig_helptext'] = 'Zum Beispiel: WWFF oder POTA';
$lang['qso_sig_info_helptext'] = 'Zum Beispiel: DLFF-0029';
$lang['qso_dok_helptext'] = 'Zum Beispiel: Q03';
$lang['qso_notes_helptext'] = 'Notizeninhalt wird nur innerhalb von Cloudlog genutzt und nicht an andere Dienste weitergegeben.';
// Button Text on /qso Display
$lang['qso_btn_reset_qso'] = 'Zurücksetzen';
$lang['qso_btn_save_qso'] = 'Speichere QSO';

查看文件

@ -0,0 +1,10 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['account_logbook_fields'] = 'Campos a mostrar en el Logbook';
$lang['account_column1_text'] = 'Columna 1';
$lang['account_column2_text'] = 'Columna 2';
$lang['account_column3_text'] = 'Columna 3';
$lang['account_column4_text'] = 'Columna 4';
$lang['account_column5_text'] = 'Columna 5 (solo en logbook)';

查看文件

@ -0,0 +1,57 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @author Iban Eguia
* @copyright Copyright (c) 2014-2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['cal_su'] = 'Do';
$lang['cal_mo'] = 'Lu';
$lang['cal_tu'] = 'Ma';
$lang['cal_we'] = 'Mi';
$lang['cal_th'] = 'Ju';
$lang['cal_fr'] = 'Vi';
$lang['cal_sa'] = 'Sá';
$lang['cal_sun'] = 'Dom';
$lang['cal_mon'] = 'Lun';
$lang['cal_tue'] = 'Mar';
$lang['cal_wed'] = 'Mié';
$lang['cal_thu'] = 'Jue';
$lang['cal_fri'] = 'Vie';
$lang['cal_sat'] = 'Sáb';
$lang['cal_sunday'] = 'Domingo';
$lang['cal_monday'] = 'Lunes';
$lang['cal_tuesday'] = 'Martes';
$lang['cal_wednesday'] = 'Miércoles';
$lang['cal_thursday'] = 'Jueves';
$lang['cal_friday'] = 'Viernes';
$lang['cal_saturday'] = 'Sábado';
$lang['cal_jan'] = 'Ene';
$lang['cal_feb'] = 'Feb';
$lang['cal_mar'] = 'Mar';
$lang['cal_apr'] = 'Abr';
$lang['cal_may'] = 'May';
$lang['cal_jun'] = 'Jun';
$lang['cal_jul'] = 'Jul';
$lang['cal_aug'] = 'Ago';
$lang['cal_sep'] = 'Sep';
$lang['cal_oct'] = 'Oct';
$lang['cal_nov'] = 'Nov';
$lang['cal_dec'] = 'Dic';
$lang['cal_january'] = 'Enero';
$lang['cal_february'] = 'Febrero';
$lang['cal_march'] = 'Marzo';
$lang['cal_april'] = 'Abril';
$lang['cal_mayl'] = 'Mayo';
$lang['cal_june'] = 'Junio';
$lang['cal_july'] = 'Julio';
$lang['cal_august'] = 'Agosto';
$lang['cal_september'] = 'Septiembre';
$lang['cal_october'] = 'Octubre';
$lang['cal_november'] = 'Noviembre';
$lang['cal_december'] = 'Diciembre';

查看文件

@ -0,0 +1,18 @@
<?php
defined('BASEPATH') OR exit('Acceso directo a los scripts restringido');
$lang['contesting_page_title'] = 'Registro de concurso';
$lang['contesting_button_reset_contest_session'] = 'Resetar la sesión del concurso';
$lang['contesting_exchange_type'] = 'Tipo de intercambio';
$lang['contesting_exchange_type_serial'] = 'Serial';
$lang['contesting_exchange_type_other'] = 'Other';
$lang['contesting_contest_name'] = 'Nombre del concurso';
$lang['contesting_btn_reset_qso'] = 'Resetear QSO';
$lang['contesting_btn_save_qso'] = 'Guardar QSO';
$lang['contesting_title_callsign_suggestions'] = 'Indicativos sugeridos';
$lang['contesting_title_contest_logbook'] = 'Logbook del concurso';

查看文件

@ -0,0 +1,67 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @author Iban Eguia
* @copyright Copyright (c) 2014-2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['date_year'] = 'Año';
$lang['date_years'] = 'Años';
$lang['date_month'] = 'Mes';
$lang['date_months'] = 'Meses';
$lang['date_week'] = 'Semana';
$lang['date_weeks'] = 'Semanas';
$lang['date_day'] = 'Día';
$lang['date_days'] = 'Días';
$lang['date_hour'] = 'Hora';
$lang['date_hours'] = 'Horas';
$lang['date_minute'] = 'Minuto';
$lang['date_minutes'] = 'Minutos';
$lang['date_second'] = 'Segundo';
$lang['date_seconds'] = 'Segundos';
$lang['UM12'] = '(UTC -12:00) Isla Howland/Baker';
$lang['UM11'] = '(UTC -11:00) Niue';
$lang['UM10'] = '(UTC -10:00) Tiempo de Hawái-Aleutiano, Islas Cook, Tahití';
$lang['UM95'] = '(UTC -9:30) Islas Marquesas';
$lang['UM9'] = '(UTC -9:00) Tiempo de Alaska, Islas Gambier';
$lang['UM8'] = '(UTC -8:00) Tiempo del Pacífico, Isla Clipperton';
$lang['UM7'] = '(UTC -7:00) Tiempo de la montaña';
$lang['UM6'] = '(UTC -6:00) Hora Estándar del Centro';
$lang['UM5'] = '(UTC -5:00) Tiempo del Este, Hora Estándar del Caribe Occidental';
$lang['UM45'] = '(UTC -4:30) Hora Estándar de Venezuela';
$lang['UM4'] = '(UTC -4:00) Tiempo Estándar del Atlántico, Hora Estándar del Caribe Oriental';
$lang['UM35'] = '(UTC -3:30) Tiempo de Terranova y Labrador';
$lang['UM3'] = '(UTC -3:00) Argentina, Brasil, Guayana Francesa, Uruguay';
$lang['UM2'] = '(UTC -2:00) Islas Georgias del Sur/Islas Sandwich del Sur';
$lang['UM1'] = '(UTC -1:00) Azores, Islas de Cabo Verde';
$lang['UTC'] = '(UTC) Tiempo medio de Greenwich, Hora de Europa Occidental';
$lang['UP1'] = '(UTC +1:00) Hora Central Europea, Tiempo de África Occidental';
$lang['UP2'] = '(UTC +2:00) Tiempo de África Central, Hora de Europa Oriental, Hora de Kaliningrado';
$lang['UP3'] = '(UTC +3:00) Hora de Moscú, Tiempo de África Oriental, Hora Estándar de Arabia';
$lang['UP35'] = '(UTC +3:30) Hora Estándar de Irán';
$lang['UP4'] = '(UTC +4:00) Hora Estándar de Azerbaiyán, Hora de Samara';
$lang['UP45'] = '(UTC +4:30) Afganistán';
$lang['UP5'] = '(UTC +5:00) Hora Estándar de Pakistan, Hora de Ekaterimburgo';
$lang['UP55'] = '(UTC +5:30) Hora Estándar de la India, Hora Estándar de Sri Lanka';
$lang['UP575'] = '(UTC +5:45) Hora de Nepal';
$lang['UP6'] = '(UTC +6:00) Hora Estándar de Bangladés, Hora de Bután, Hora de Omsk';
$lang['UP65'] = '(UTC +6:30) Islas Cocos, Birmania';
$lang['UP7'] = '(UTC +7:00) Hora de Krasnoyarsk, Camboya, Laos, Tailandia, Vietnam';
$lang['UP8'] = '(UTC +8:00) Hora Estándar Occidental Australiana, Hora de Pekín, Hora de Irkutsk';
$lang['UP875'] = '(UTC +8:45) Hora Estándar Centro Occidental Australiana';
$lang['UP9'] = '(UTC +9:00) Hora Estándar de Japón, Hora Estándar de Corea, Hora de Yakutsk';
$lang['UP95'] = '(UTC +9:30) Hora Estándar Central Australiana';
$lang['UP10'] = '(UTC +10:00) Hora Estándar Oriental Australiana, Hora de Vladivostok';
$lang['UP105'] = '(UTC +10:30) Isla de Lord Howe';
$lang['UP11'] = '(UTC +11:00) Hora de Srednekolimsk, Islas Salomón, Vanuatu';
$lang['UP115'] = '(UTC +11:30) Isla Norfolk';
$lang['UP12'] = '(UTC +12:00) Fiji, Islas Gilbert, Horario de Kamchatka, Hora estandar de Nueva Zelanda';
$lang['UP1275'] = '(UTC +12:45) Hora Estándar de las Islas Chatham';
$lang['UP13'] = '(UTC +13:00) Zona horaria de Samoa, Hora de las Islas Fénix, Tonga';
$lang['UP14'] = '(UTC +14:00) Islas de la Línea';

查看文件

@ -0,0 +1,36 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @author Iban Eguia
* @copyright Copyright (c) 2014-2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['db_invalid_connection_str'] = 'No ha sido posible determinar la configuración de la base de datos basada en la cadena de conexión introducida.';
$lang['db_unable_to_connect'] = 'No ha sido posible conectar al servidor de la base de datos haciendo uso de la configuración proporcionada.';
$lang['db_unable_to_select'] = 'No ha sido posible seleccionar la base de datos especificada: %s';
$lang['db_unable_to_create'] = 'No ha sido posible crear la base de datos especificada: %s';
$lang['db_invalid_query'] = 'La consulta introducida no es válida.';
$lang['db_must_set_table'] = 'Debes fijar la tabla de la base de datos que será usada con tu consulta.';
$lang['db_must_use_set'] = 'Debes usar el método "set" para actualizar una entrada.';
$lang['db_must_use_index'] = 'Debes especificar un índice para emparejar las actualizaciones masivas.';
$lang['db_batch_missing_index'] = 'A una o más filas introducidas para la actualización masiva le falta el índice especificado.';
$lang['db_must_use_where'] = 'Las actualizaciones no están permitidas a no ser que contengan la cláusula "where".';
$lang['db_del_must_use_where'] = 'Los borrados no están permitidos a no ser que contengan la cláusula "where" o "like".';
$lang['db_field_param_missing'] = 'Para obtener campos se requiere el nombre de la tabla como parámetro.';
$lang['db_unsupported_function'] = 'Esta característica no está disponible para la base de datos que estás usando.';
$lang['db_transaction_failure'] = 'Fallo de transacción: Rollback realizado.';
$lang['db_unable_to_drop'] = 'No ha sido posible borrar la base de datos especificada.';
$lang['db_unsupported_feature'] = 'Característica no soportada de la plataforma de bases de datos que estás usando.';
$lang['db_unsupported_compression'] = 'El formato de compresión elegido no está soportado por el servidor.';
$lang['db_filepath_error'] = 'No ha sido posible escribir los datos en la ruta de archivo especificada.';
$lang['db_invalid_cache_path'] = 'La ruta de la caché introducida no es válida o escribible.';
$lang['db_table_name_required'] = 'Se requiere un nombre de tabla para esa operación.';
$lang['db_column_name_required'] = 'Se requiere un nombre de columna para esa operación.';
$lang['db_column_definition_required'] = 'Se requiere una definición de columna para esa operación.';
$lang['db_unable_to_set_charset'] = 'No ha sido posible fijar en la conexión el conjunto de caracteres: %s';
$lang['db_error_heading'] = 'Ha ocurrido un error con la base de datos';

查看文件

@ -0,0 +1,31 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @author Iban Eguia
* @copyright Copyright (c) 2014-2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['email_must_be_array'] = 'Debes pasar un array al método de validación de email.';
$lang['email_invalid_address'] = 'Correo electrónico no válido: %s';
$lang['email_attachment_missing'] = 'No ha sido posible encontrar este adjunto: %s';
$lang['email_attachment_unreadable'] = 'No ha sido posible abrir este adjunto: %s';
$lang['email_no_from'] = 'No se puede enviar un email sin la cabecera "From".';
$lang['email_no_recipients'] = 'Debes incluir destinatarios: Para, Cc, o Cco';
$lang['email_send_failure_phpmail'] = 'No ha sido posible enviar el correo usando PHP mail(). Tu servidor podría no estar configurado para enviar emails con este método.';
$lang['email_send_failure_sendmail'] = 'No ha sido posible enviar el correo usando PHP Sendmail. Tu servidor podría no estar configurado para enviar emails con este método.';
$lang['email_send_failure_smtp'] = 'No ha sido posible enviar el correo usando PHP SMTP. Tu servidor podría no estar configurado para enviar emails con este método.';
$lang['email_sent'] = 'Tu mensaje ha sido enviado con éxito usando este protocolo: %s';
$lang['email_no_socket'] = 'No ha sido posible abrir un socket a Sendmail. Por favor, comprueba la configuración.';
$lang['email_no_hostname'] = 'No has especificado un servidor SMTP.';
$lang['email_smtp_error'] = 'Se ha encontrado este error SMTP: %s';
$lang['email_no_smtp_unpw'] = 'Error: Debes asignar un usuario y una contraseña SMTP.';
$lang['email_failed_smtp_login'] = 'Fallo al enviar el comando AUTH LOGIN. Error: %s';
$lang['email_smtp_auth_un'] = 'Fallo al autenticar el usuario. Error: %s';
$lang['email_smtp_auth_pw'] = 'Fallo al autenticar la contraseña. Error: %s';
$lang['email_smtp_data_failure'] = 'No ha sido posible enviar los datos: %s';
$lang['email_exit_status'] = 'Código estado al salir: %s';

查看文件

@ -0,0 +1,42 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @author Iban Eguia
* @copyright Copyright (c) 2014-2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['form_validation_required'] = 'El campo {field} es obligatorio.';
$lang['form_validation_isset'] = 'El campo {field} debe contener un valor.';
$lang['form_validation_valid_email'] = 'El campo {field} debe contener un email válido.';
$lang['form_validation_valid_emails'] = 'El campo {field} debe contener todos los emails válidos.';
$lang['form_validation_valid_url'] = 'El campo {field} debe contener una URL válida.';
$lang['form_validation_valid_ip'] = 'El campo {field} debe contener una IP válida.';
$lang['form_validation_valid_base64'] = 'El campo {field} debe contener un Base64 válido.';
$lang['form_validation_min_length'] = 'El campo {field} debe ser de al menos {param} caracteres de longitud.';
$lang['form_validation_max_length'] = 'El campo {field} no puede superar los {param} caracteres de longitud.';
$lang['form_validation_exact_length'] = 'El campo {field} debe ser de exactamente {param} caracteres de longitud.';
$lang['form_validation_alpha'] = 'El campo {field} solo puede contener caracteres alfabéticos.';
$lang['form_validation_alpha_numeric'] = 'El campo {field} solo puede contener caracteres alfanuméricos.';
$lang['form_validation_alpha_numeric_spaces'] = 'El campo {field} solo puede contener caracteres alfanuméricos y espacios.';
$lang['form_validation_alpha_dash'] = 'El campo {field} solo puede contener caracteres alfanuméricos, guiones bajos y guiones.';
$lang['form_validation_numeric'] = 'El campo {field} solo puede contener números.';
$lang['form_validation_is_numeric'] = 'El campo {field} solo puede contener caracteres numéricos.';
$lang['form_validation_integer'] = 'El campo {field} debe contener un entero.';
$lang['form_validation_regex_match'] = 'El campo {field} no está en el formato correcto.';
$lang['form_validation_matches'] = 'El campo {field} no coincide con el campo {param}.';
$lang['form_validation_differs'] = 'El campo {field} debe ser distinto al campo {param}.';
$lang['form_validation_is_unique'] = 'El campo {field} debe contener un valor único.';
$lang['form_validation_is_natural'] = 'El campo {field} solo puede contener dígitos.';
$lang['form_validation_is_natural_no_zero'] = 'El campo {field} solo puede contener dígitos y debe ser mayor que cero.';
$lang['form_validation_decimal'] = 'El campo {field} debe contener un número decimal.';
$lang['form_validation_less_than'] = 'El campo {field} debe contener un número menor que {param}.';
$lang['form_validation_less_than_equal_to'] = 'El campo {field} debe contener un número menor o igual a {param}.';
$lang['form_validation_greater_than'] = 'El campo {field} debe contener un número mayor que {param}.';
$lang['form_validation_greater_than_equal_to'] = 'El campo {field} debe contener un número mayor o igual a {param}.';
$lang['form_validation_error_message_not_set'] = 'No se ha podido acceder al mensaje de error correspondiente para el campo {field}.';
$lang['form_validation_in_list'] = 'El campo {field} debe contener uno de estos: {param}.';

查看文件

@ -0,0 +1,24 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @author Iban Eguia
* @copyright Copyright (c) 2014-2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['ftp_no_connection'] = 'No ha sido posible localizar una ID de conexión válida. Por favor, asegúrate de que estás conectado antes de realizar cualquier rutina de archivos.';
$lang['ftp_unable_to_connect'] = 'No ha sido posible conectarse al servidor FTP usando el nombre de host proporcionado.';
$lang['ftp_unable_to_login'] = 'No ha sido posible identificarse en el servidor. Por favor, comprueba el usuario y la contraseña.';
$lang['ftp_unable_to_mkdir'] = 'No ha sido posible crear el directorio especificado.';
$lang['ftp_unable_to_changedir'] = 'No ha sido posible cambiar de directorio.';
$lang['ftp_unable_to_chmod'] = 'No ha sido posible configurar los permisos de archivo. Por favor, comprueba tu ruta.';
$lang['ftp_unable_to_upload'] = 'No ha sido posible subir el archivo especificado. Por favor, comprueba tu ruta.';
$lang['ftp_unable_to_download'] = 'No ha sido posible descargar el archivo especificado. Por favor, comprueba tu ruta.';
$lang['ftp_no_source_file'] = 'No ha sido posible localizar el archivo fuente. Por favor, comprueba tu ruta.';
$lang['ftp_unable_to_rename'] = 'No ha sido posible renombrar el archivo.';
$lang['ftp_unable_to_delete'] = 'No ha sido posible borrar el archivo.';
$lang['ftp_unable_to_move'] = 'No ha sido posible mover el archivo. Por favor, asegúrate de que la carpeta de destino existe.';

查看文件

@ -0,0 +1,106 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['error_no_active_station_profile'] = 'Attention: you need to set an active station profile.';
$lang['notice_turn_the_radio_on'] = 'No has realizado ninguna QSO hoy...¡Hora de encender la radio!';
$lang['general_word_important'] = 'Importante';
$lang['general_word_info'] = 'Información';
$lang['general_word_choose_file'] = 'Elegir archivo';
$lang['general_word_date'] = 'Fecha';
$lang['general_word_time'] = 'Hora';
$lang['general_word_datetime'] = 'Fecha/Hora';
$lang['general_word_none'] = 'Ninguno';
$lang['general_word_name'] = 'Nombre';
$lang['general_word_location'] = 'Localización';
$lang['general_word_comment'] = 'Comentario';
$lang['general_word_general'] = 'General';
$lang['general_word_satellite'] = 'Satélite';
$lang['general_word_satellite_short'] = 'Sat';
$lang['general_word_notes'] = 'Notas';
$lang['general_word_country'] = 'País';
$lang['general_word_total'] = 'Total';
$lang['general_word_year'] = 'Año';
$lang['general_word_month'] = 'Mes';
$lang['general_word_worked'] = 'Realizados';
$lang['general_word_confirmed'] = 'Confirmados';
$lang['general_word_needed'] = 'Solicitadas';
$lang['general_word_no'] = 'No';
$lang['general_word_yes'] = 'Si';
$lang['general_word_method'] = 'Método';
$lang['general_word_sent'] = 'Enviado';
$lang['general_word_received'] = 'Recibido';
$lang['general_word_requested'] = 'Solicitadas';
$lang['general_word_qslcard'] = 'Tarjeta QSL';
$lang['general_word_qslcard_management'] = 'Gestión de QSL';
$lang['general_word_qslcards'] = 'Tarjetas QSL';
$lang['general_word_qslcard_direct'] = 'Directo';
$lang['general_word_qslcard_bureau'] = 'Buró';
$lang['general_word_qslcard_via'] = 'Vía';
$lang['general_edit_qso'] = 'Editar QSO';
$lang['general_mark_qsl_rx_bureau'] = 'Marcar QSL Recibida (Buró)';
$lang['general_mark_qsl_rx_direct'] = 'Marcar QSL Recibida (Directa)';
$lang['general_delete_qso'] = 'Eliminar QSO';
$lang['general_total_distance'] = 'Distancia total';
// Cloudlog Terms
$lang['cloudlog_station_profile'] = 'Perfil de estación';
// ham radio terms
$lang['gen_hamradio_qso'] = 'QSO';
$lang['gen_hamradio_station'] = 'Estación';
$lang['gen_hamradio_call'] = 'Indicativo';
$lang['gen_hamradio_callsign'] = 'Indicativo';
$lang['gen_hamradio_mode'] = 'Modo';
$lang['gen_hamradio_rst_sent'] = 'Enviado';
$lang['gen_hamradio_rst_recv'] = 'Recibido';
$lang['gen_hamradio_band'] = 'Banda';
$lang['gen_hamradio_band_rx'] = 'Banda (Recepción)';
$lang['gen_hamradio_frequency'] = 'Frecuencia';
$lang['gen_hamradio_frequency_rx'] = 'Frecuencia (Recepción)';
$lang['gen_hamradio_radio'] = 'Radio';
$lang['gen_hamradio_rsts'] = 'RST (Enviada)';
$lang['gen_hamradio_rstr'] = 'RST (Recibida)';
$lang['gen_hamradio_exchange_sent_short'] = 'Intercambio (Env)';
$lang['gen_hamradio_exchange_recv_short'] = 'Intercambio (Recib)';
$lang['gen_hamradio_qsl'] = 'QSL';
$lang['gen_hamradio_locator'] = 'Localizador';
$lang['gen_hamradio_transmit_power'] = 'Potencia de transmisión (W)';
$lang['gen_hamradio_propagation_mode'] = 'Modo de propagación';
$lang['gen_hamradio_satellite_name'] = 'Nombre del Satélite';
$lang['gen_hamradio_satellite_mode'] = 'Modo del Satélite';
$lang['gen_hamradio_logbook'] = 'Logbook';
$lang['gen_hamradio_cq_zone'] = 'Zona CQ';
$lang['gen_hamradio_dxcc'] = 'DXCC';
$lang['gen_hamradio_usa_state'] = 'Estado USA';
$lang['gen_hamradio_iota_reference'] = 'Referencia IOTA';
$lang['gen_hamradio_sota_reference'] = 'Referencia SOTA';
$lang['gen_hamradio_dok'] = 'DOK';
$lang['gen_hamradio_state'] = 'Estado';
$lang['gen_hamradio_iota'] = 'IOTA';
$lang['gen_hamradio_gridsquare'] = 'Gridsquare';
$lang['gen_hamradio_sig'] = 'Señal';
$lang['gen_hamradio_sig_info'] = 'Información de señal';
// Dashboard Words
$lang['dashboard_you_have_had'] = 'Has tenido';
$lang['dashboard_qsos_today'] = 'QSOs hoy!';
$lang['dashboard_qso_breakdown'] = 'Desglose de QSO';
$lang['dashboard_countries_breakdown'] = 'Desglose por Países';
$lang['gen_from_date'] = 'Desde la fecha:';

查看文件

@ -0,0 +1,30 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @author Iban Eguia
* @copyright Copyright (c) 2014-2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['imglib_source_image_required'] = 'Debes especificar una imagen fuente en las preferencias.';
$lang['imglib_gd_required'] = 'Se requiere la librería de imagen GD para esta característica.';
$lang['imglib_gd_required_for_props'] = 'El servidor debe soportar la librería de imagen GD para determinar las propiedades de la imagen.';
$lang['imglib_unsupported_imagecreate'] = 'El servidor no soporta la función de GD requerida para procesar este tipo de imagen.';
$lang['imglib_gif_not_supported'] = 'Las imágenes GIF no suelen estar soportadas habitualmente a causa de restricciones de licencias. Puede que debas usar imágenes JPG o PNG en su lugar.';
$lang['imglib_jpg_not_supported'] = 'Las imágenes JPG no están soportadas.';
$lang['imglib_png_not_supported'] = 'Las imágenes PNG no están soportadas.';
$lang['imglib_jpg_or_png_required'] = 'El protocolo de redimensión de imagen especificado en las preferencias solo funciona con imágenes JPEG o PNG.';
$lang['imglib_copy_error'] = 'Se ha encontrado un error al intentar reemplazar el archivo. Por favor, asegúrate de que la carpeta es escribible.';
$lang['imglib_rotate_unsupported'] = 'Parece que la rotación de imágenes no está soportada en el servidor.';
$lang['imglib_libpath_invalid'] = 'La ruta a la librería de imagen no es correcta. Por favor, configura la ruta correcta en las preferencias de imagen.';
$lang['imglib_image_process_failed'] = 'Ha fallado el tratamiento de la imagen. Por favor, verifica que el servidor soporta el protocolo elegido y que la ruta a la librería de imagen es correcta.';
$lang['imglib_rotation_angle_required'] = 'Se requiere un ángulo de rotación para rotar la imagen.';
$lang['imglib_invalid_path'] = 'La ruta a la imagen no es correcta.';
$lang['imglib_invalid_image'] = 'La imagen especificada no es válida.';
$lang['imglib_copy_failed'] = 'La rutina de copia de imagen ha fallado.';
$lang['imglib_missing_font'] = 'No se ha podido encontrar una fuente para su uso.';
$lang['imglib_save_failed'] = 'No se ha podido guardar la imagen. Por favor, asegúrate de que la imagen y la carpeta son escribibles.';

查看文件

@ -0,0 +1,11 @@
<!DOCTYPE html>
<html>
<head>
<title>403 Forbidden</title>
</head>
<body>
<p>Directory access is forbidden.</p>
</body>
</html>

查看文件

@ -0,0 +1,52 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['lotw_short'] = 'LoTW';
$lang['lotw_title'] = 'Logbook of the World';
$lang['lotw_title_available_cert'] = 'Certificados disponibles';
$lang['lotw_title_information'] = 'Información';
$lang['lotw_title_upload_p12_cert'] = 'Subir certificado LoTW .p12';
$lang['lotw_title_export_p12_file_instruction'] = 'Instrucciones para exportar archivos .p12';
$lang['lotw_title_adif_import'] = 'Importar ADIF (Formato de Intercambio de Datos Amateur)';
$lang['lotw_title_adif_import_options'] = 'Opciones de importación';
$lang['lotw_beta_warning'] = 'Por favor, tenga en cuenta que la sincronización con LoTW está en fase de pruebas. Visite la wiki del proyecto si necesita ayuda o quire saber más.';
$lang['lotw_no_certs_uploaded'] = 'Es necesario subir algunos certificatos LoTW p12 para usar este área.';
$lang['lotw_date_created'] = 'Fecha de creación';
$lang['lotw_date_expires'] = 'Fecha de caducidad';
$lang['lotw_status'] = 'Estado';
$lang['lotw_options'] = 'Opciones';
$lang['lotw_valid'] = 'Válido';
$lang['lotw_expired'] = 'Caducado';
$lang['lotw_not_synced'] = 'No sincronizado';
$lang['lotw_certificate_dxcc'] = 'Certificado DXCC';
$lang['lotw_certificate_dxcc_help_text'] = 'Entidad del certificado DXCC. Por ejemplo: Escocia';
$lang['lotw_input_a_file'] = 'Subir un archivo';
$lang['lotw_upload_exported_adif_file_from_lotw'] = 'Suba el archivo ADIF exportado en LoTW a través del área <a href="https://p1k.arrl.org/lotwuser/qsos?qsoscmd=adif" target="_blank">Download Report</a> para marcar QSOs como confirmados en LoTW.';
$lang['lotw_upload_type_must_be_adi'] = 'Los archivos de registro deben ser del tipo .adi';
$lang['lotw_pull_lotw_data_for_me'] = 'Extraer los datos LoTW por mí';
$lang['lotw_import_missing_qsos_text'] = 'Importar los QSOs faltantes en el registro. El indicativo y el <i>gridsquare</i> serán comprobados a fin de encontrar el perfil correcto para importar el QSO. Si no fueran encontrados, el QSO será omitido.';
$lang['lotw_report_download_overview_helptext'] ='Cloudlog usará el usuario y contraseña de LoTW guardado en su perfil para descargar un informe de LoTW por usted. El informe contendrá todas las confirmaciones desde la fecha elegida o desde su última confirmación LoTW hasta ahora.';
// Buttons
$lang['lotw_btn_lotw_import'] = 'Importar LoTW';
$lang['lotw_btn_upload_certificate'] = 'Subir certificado';
$lang['lotw_btn_delete'] = 'Borrar';
$lang['lotw_btn_manual_sync'] = 'Sincronización manual';
$lang['lotw_btn_upload_file'] = 'Subir archivo';
$lang['lotw_btn_import_matches'] = 'Importar coincidencias LoTW';
// P12 Export Text
$lang['lotw_p12_export_step_one'] = 'Abrir TQSL e ir a la pestaña "Callsign Certificates".';
$lang['lotw_p12_export_step_two'] = 'Clic derecho en el indicativo deseado.';
$lang['lotw_p12_export_step_three'] = 'Clic en "Save Callsign Certificate File" sin añadir la contraseña.';
$lang['lotw_p12_export_step_four'] = 'Subir aquí el archivo descargado.';
$lang['lotw_confirmed'] = 'Este QSO está confirmado en LoTW';

查看文件

@ -0,0 +1,20 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @author Iban Eguia
* @copyright Copyright (c) 2014-2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['migration_none_found'] = 'No se ha encontrado ninguna migración.';
$lang['migration_not_found'] = 'No se ha encontrado ninguna migración con el número de versión: %s.';
$lang['migration_sequence_gap'] = 'Hay un vacío en la migración, cerca del número de versión: %s.';
$lang['migration_multiple_version'] = 'Hay múltiples migraciones con el mismo número de versión: %s.';
$lang['migration_class_doesnt_exist'] = 'La clase de migración "%s" no ha podido ser encontrada.';
$lang['migration_missing_up_method'] = 'A la clase de migración "%s" le falta el método "up".';
$lang['migration_missing_down_method'] = 'A la clase de migración "%s" le falta el método "down".';
$lang['migration_invalid_filename'] = 'La migración "%s" tiene un nombre de archivo no válido.';

查看文件

@ -0,0 +1,23 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['notes_menu_notes'] = 'Notas';
$lang['notes_edit_note'] = 'Editar nota';
$lang['notes_your_notes'] = 'Sus notas';
$lang['notes_welcome'] = 'Actualmente no tiene notas, las cuales son un buen recurso para guardar datos e información general. Además, son mejores que el papel ya no las perderá con facilidad :)';
$lang['notes_create_note'] = 'Crear nota';
$lang['notes_input_title'] = 'Título';
$lang['notes_input_category'] = 'Categoría';
$lang['notes_input_notes_content'] = 'Contenido de la nota';
$lang['notes_input_btn_save_note'] = 'Guardar nota';
$lang['notes_input_btn_edit_note'] = 'Editar nota';
$lang['notes_input_btn_delete_note'] = 'Borrar nota';
$lang['notes_selection_general'] = 'General';
$lang['notes_selection_antennas'] = 'Antenas';
$lang['notes_selection_satellites'] = 'Satélites';

查看文件

@ -0,0 +1,17 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @author Iban Eguia
* @copyright Copyright (c) 2014-2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['terabyte_abbr'] = 'TB';
$lang['gigabyte_abbr'] = 'GB';
$lang['megabyte_abbr'] = 'MB';
$lang['kilobyte_abbr'] = 'KB';
$lang['bytes'] = 'Bytes';

查看文件

@ -0,0 +1,16 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @author Iban Eguia
* @copyright Copyright (c) 2014-2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['pagination_first_link'] = '&lsaquo; Primera';
$lang['pagination_next_link'] = '&gt;';
$lang['pagination_prev_link'] = '&lt;';
$lang['pagination_last_link'] = 'Última &rsaquo;';

查看文件

@ -0,0 +1,33 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @author Iban Eguia
* @copyright Copyright (c) 2014-2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['profiler_database'] = 'BASE DE DATOS';
$lang['profiler_controller_info'] = 'CLASE/MÉTODO';
$lang['profiler_benchmarks'] = 'PUNTOS DE REFERENCIA';
$lang['profiler_queries'] = 'CONSULTAS';
$lang['profiler_get_data'] = 'DATOS GET';
$lang['profiler_post_data'] = 'DATOS POST';
$lang['profiler_uri_string'] = 'CADENA URI';
$lang['profiler_memory_usage'] = 'USO DE MEMORIA';
$lang['profiler_config'] = 'VARIABLES DE CONFIGURACIÓN';
$lang['profiler_session_data'] = 'DATOS DE SESIÓN';
$lang['profiler_headers'] = 'CABECERAS HTTP';
$lang['profiler_no_db'] = 'El driver de la base de datos no está cargado actualmente';
$lang['profiler_no_queries'] = 'No hubo ninguna consulta';
$lang['profiler_no_post'] = 'No hay ningún dato POST';
$lang['profiler_no_get'] = 'No hay ningún dato GET';
$lang['profiler_no_uri'] = 'No hay ningún dato de la URI';
$lang['profiler_no_memory'] = 'Uso de memoria no disponible';
$lang['profiler_no_profiles'] = 'No hay datos del perfilador - todas las secciones han sido deshabilitadas.';
$lang['profiler_section_hide'] = 'Ocultar';
$lang['profiler_section_show'] = 'Mostrar';
$lang['profiler_seconds'] = 'segundos';

查看文件

@ -0,0 +1,18 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// Tiles
$lang['qslcard_string_your_are_using'] = 'Está usando';
$lang['qslcard_string_disk_space'] = 'de espacio en disco para almacenar recursos relacionados con las tarjetas QSL';
$lang['qslcard_info'] = 'QSL info';
$lang['qslcard_sent_bureau'] = 'La QSL se envió vía buró';
$lang['qslcard_sent_direct'] = 'La QSL se envió via directa';
$lang['qslcard_recv_bureau'] = 'La QSL se recibió via buró';
$lang['qslcard_recv_direct'] = 'La QSL se recibió vía directa';
$lang['qslcard_upload_front'] = 'Imagen delantera de la QSL subida';
$lang['qslcard_upload_back'] = 'Imagen trasera de la QSL subida';
$lang['qslcard_upload_button'] = 'Subir QSL';

查看文件

@ -0,0 +1,30 @@
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
// Tiles
$lang['qso_title_qso_map'] = 'Mapa de QSO';
$lang['qso_title_suggestions'] = 'Sugerencias';
$lang['qso_title_pervious_contacts'] = 'Contactos previos';
// Input Help Text on the /QSO Display
$lang['qso_transmit_power_helptext'] = 'Especifique el valor de potencia en Watios (W). Incluya solo números.';
$lang['qso_sota_ref_helptext'] = 'Por ejemplo: GM/NS-001.';
$lang['qso_sig_helptext'] = 'Por ejemplo: WWFF or POTA';
$lang['qso_sig_info_helptext'] = 'Por ejemplo: DLFF-0029';
$lang['qso_dok_helptext'] = 'Por ejemplo: Q03';
$lang['qso_notes_helptext'] = 'El contenido es usado solo dentro de Cloudlog y no es exportado a otros servicios.';
// Button Text on /qso Display
$lang['qso_btn_reset_qso'] = 'Resetear';
$lang['qso_btn_save_qso'] = 'Guardar QSO';
$lang['qso_btn_edit_qso'] = 'Editar QSO';
// QSO Details
$lang['qso_details'] = 'Detalles de QSO';

查看文件

@ -0,0 +1,31 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @author Iban Eguia
* @copyright Copyright (c) 2014-2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['ut_test_name'] = 'Nombre del test';
$lang['ut_test_datatype'] = 'Tipo de datos del test';
$lang['ut_res_datatype'] = 'Tipo de datos esperado';
$lang['ut_result'] = 'Resultado';
$lang['ut_undefined'] = 'Nombre del test indefinido';
$lang['ut_file'] = 'Nombre del archivo';
$lang['ut_line'] = 'Número de línea';
$lang['ut_passed'] = 'Correcto';
$lang['ut_failed'] = 'Fallido';
$lang['ut_boolean'] = 'Booleano';
$lang['ut_integer'] = 'Entero';
$lang['ut_float'] = 'Coma flotante';
$lang['ut_double'] = 'Coma flotante'; // can be the same as float
$lang['ut_string'] = 'Cadena';
$lang['ut_array'] = 'Array';
$lang['ut_object'] = 'Objeto';
$lang['ut_resource'] = 'Recurso';
$lang['ut_null'] = 'Nulo';
$lang['ut_notes'] = 'Notas';

查看文件

@ -0,0 +1,28 @@
<?php
/**
* System messages translation for CodeIgniter(tm)
*
* @author CodeIgniter community
* @author Iban Eguia
* @copyright Copyright (c) 2014-2019, British Columbia Institute of Technology (https://bcit.ca/)
* @license http://opensource.org/licenses/MIT MIT License
* @link https://codeigniter.com
*/
defined('BASEPATH') OR exit('No direct script access allowed');
$lang['upload_userfile_not_set'] = 'No ha sido posible encontrar una variable post llamada userfile.';
$lang['upload_file_exceeds_limit'] = 'El archivo subido excede el tamaño máximo permitido por tu configuración de PHP.';
$lang['upload_file_exceeds_form_limit'] = 'El archivo subido excede el tamaño máximo permitido por el formulario.';
$lang['upload_file_partial'] = 'El archivo solo se subió parcialmente.';
$lang['upload_no_temp_directory'] = 'No se encuentra el directorio temporal.';
$lang['upload_unable_to_write_file'] = 'El archivo no pudo ser escrito en el disco.';
$lang['upload_stopped_by_extension'] = 'La subida del archivo paró por extensión.';
$lang['upload_no_file_selected'] = 'No seleccionaste un archivo para subir.';
$lang['upload_invalid_filetype'] = 'El tipo de archivo que intentas subir no está permitido.';
$lang['upload_invalid_filesize'] = 'El archivo que intentas subir es más grande que el tamaño permitido.';
$lang['upload_invalid_dimensions'] = 'La imagen que intentas subir no encaja en las dimensiones permitidas.';
$lang['upload_destination_error'] = 'Se encontró un problema al intentar mover el archivo subido a su destino final.';
$lang['upload_no_filepath'] = 'La ruta de subida no parece válida.';
$lang['upload_no_file_types'] = 'No has especificado ningún tipo de archivo permitido.';
$lang['upload_bad_filename'] = 'El nombre de archivo que has proporcionado ya existe en el servidor.';
$lang['upload_not_writable'] = 'La carpeta de destino de la subida no parece escribible.';

查看文件

@ -0,0 +1,137 @@
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class AdifHelper {
public function getAdifLine($qso) {
$line = "";
$line .= $this->getAdifFieldLine("CALL", $qso->COL_CALL);
$line .= $this->getAdifFieldLine("BAND", $qso->COL_BAND);
$line .= $this->getAdifFieldLine("MODE", $qso->COL_MODE);
if ($qso->COL_SUBMODE) {
$line .= $this->getAdifFieldLine("SUBMODE", $qso->COL_SUBMODE);
}
if ($qso->COL_FREQ != 0) {
$freq_in_mhz = $qso->COL_FREQ / 1000000;
$line .= $this->getAdifFieldLine("FREQ", $freq_in_mhz);
}
if ($qso->COL_FREQ_RX != 0) {
$freq_rx_in_mhz = $qso->COL_FREQ_RX / 1000000;
$line .= $this->getAdifFieldLine("FREQ_RX", $freq_rx_in_mhz);
}
if ($qso->COL_BAND_RX) {
$line .= $this->getAdifFieldLine("BAND_RX", $qso->COL_BAND_RX);
}
$date_on = strtotime($qso->COL_TIME_ON);
$new_date = date('Ymd', $date_on);
$line .= $this->getAdifFieldLine("QSO_DATE", $new_date);
$time_on = strtotime($qso->COL_TIME_ON);
$new_on = date('His', $time_on);
$line .= $this->getAdifFieldLine("TIME_ON", $new_on);
$time_off = strtotime($qso->COL_TIME_OFF);
$new_off = date('His', $time_off);
$line .= $this->getAdifFieldLine("TIME_OFF", $new_off);
$line .= $this->getAdifFieldLine("RST_RCVD", $qso->COL_RST_RCVD);
$line .= $this->getAdifFieldLine("RST_SENT", $qso->COL_RST_SENT);
$line .= $this->getAdifFieldLine("QSL_RCVD", $qso->COL_QSL_RCVD);
$line .= $this->getAdifFieldLine("QSL_SENT", $qso->COL_QSL_SENT);
if ($qso->COL_QSL_VIA) {
$line .= $this->getAdifFieldLine("QSL_VIA", $qso->COL_QSL_VIA);
}
$line .= $this->getAdifFieldLine("COUNTRY", $qso->COL_COUNTRY);
if ($qso->COL_VUCC_GRIDS != "") {
$line .= $this->getAdifFieldLine("VUCC_GRIDS", $qso->COL_VUCC_GRIDS);
}
if ($qso->COL_VUCC_GRIDS == "" && $qso->COL_GRIDSQUARE != "") {
$line .= $this->getAdifFieldLine("GRIDSQUARE", $qso->COL_GRIDSQUARE);
}
if ($qso->COL_SAT_NAME) {
if ($qso->COL_SAT_MODE != 0 || $qso->COL_SAT_MODE !="") {
$line .= $this->getAdifFieldLine("SAT_MODE", $qso->COL_SAT_MODE);
$line .= $this->getAdifFieldLine("SAT_NAME", $qso->COL_SAT_NAME);
}
}
$line .= $this->getAdifFieldLine("PROP_MODE", $qso->COL_PROP_MODE);
$line .= $this->getAdifFieldLine("NAME", $qso->COL_NAME);
$line .= $this->getAdifFieldLine("STATE", $qso->COL_STATE);
$line .= $this->getAdifFieldLine("SOTA_REF", $qso->COL_SOTA_REF);
$line .= $this->getAdifFieldLine("OPERATOR", $qso->COL_OPERATOR);
$line .= $this->getAdifFieldLine("STATION_CALLSIGN", $qso->station_callsign);
$line .= $this->getAdifFieldLine("MY_CITY", $qso->station_city);
$line .= $this->getAdifFieldLine("MY_COUNTRY", $qso->station_country);
$line .= $this->getAdifFieldLine("MY_DXCC", $qso->station_dxcc);
if (strpos($qso->station_gridsquare, ',') !== false ) {
$line .= $this->getAdifFieldLine("MY_VUCC_GRIDS", $qso->station_gridsquare);
}
else {
$line .= $this->getAdifFieldLine("MY_GRIDSQUARE", $qso->station_gridsquare);
}
$line .= $this->getAdifFieldLine("MY_IOTA", $qso->station_iota);
$line .= $this->getAdifFieldLine("MY_SOTA_REF", $qso->station_sota);
$line .= $this->getAdifFieldLine("MY_CQ_ZONE", $qso->station_cq);
$line .= $this->getAdifFieldLine("MY_ITU_ZONE", $qso->station_itu);
$line .= $this->getAdifFieldLine("MY_CNTY", $qso->station_cnty);
$line .= $this->getAdifFieldLine("MY_STATE", $qso->COL_MY_STATE);
$line .= $this->getAdifFieldLine("STX", $qso->COL_STX);
$line .= $this->getAdifFieldLine("STX_STRING", $qso->COL_STX_STRING);
$line .= $this->getAdifFieldLine("SRX", $qso->COL_SRX);
$line .= $this->getAdifFieldLine("SRX_STRING", $qso->COL_SRX_STRING);
$line .= $this->getAdifFieldLine("TX_PWR", $qso->COL_TX_PWR);
$line .= $this->getAdifFieldLine("COMMENT", $qso->COL_COMMENT);
$line .= $this->getAdifFieldLine("MY_SIG", $qso->station_sig);
$line .= $this->getAdifFieldLine("MY_SIG_INFO", $qso->station_sig_info);
$line .= $this->getAdifFieldLine("SIG", $qso->COL_SIG);
$line .= $this->getAdifFieldLine("SIG_INFO", $qso->COL_SIG_INFO);
$line .= "<eor>\r\n";
return $line;
}
function getAdifFieldLine($adifcolumn, $dbvalue) {
if ($dbvalue != "") {
return "<" . $adifcolumn . ":" . mb_strlen($dbvalue, "UTF-8") . ">" . $dbvalue;
} else {
return "";
}
}
}

查看文件

@ -19,14 +19,15 @@ class ADIF_Parser
{
var $data; //the adif data
var $datasplit; // one entry is one QSO in the array
var $currentarray = 0; // current place in the array
var $i; //the iterator
var $current_line; //stores information about the current qso
var $headers = array();
public function initialize() //this function locates the <EOH>
{
$pos = stripos(strtoupper($this->data), "<EOH>");;
$pos = mb_stripos(mb_strtoupper($this->data, "UTF-8"), "<EOH>", 0, "UTF-8");
if($pos == false) //did we find the end of headers?
{
@ -45,11 +46,11 @@ class ADIF_Parser
while($this->i < $pos)
{
//skip comments
if($this->data[$this->i] == "#")
if(mb_substr($this->data, $this->i, 1, "UTF-8") == "#")
{
while($this->i < $pos)
{
if($this->data[$this->i] == "\n")
if(mb_substr($this->data, $this->i, 1, "UTF-8") == "\n")
{
break;
}
@ -58,13 +59,13 @@ class ADIF_Parser
}
}else{
//find the beginning of a tag
if($this->data[$this->i] == "<")
if(mb_substr($this->data, $this->i, 1, "UTF-8") == "<")
{
$this->i++;
//record the key
while($this->data[$this->i] < $pos && $this->data[$this->i] != ':')
while($this->i < $pos && mb_substr($this->data, $this->i, 1, "UTF-8") != ':')
{
$tag = $tag.$this->data[$this->i];
$tag = $tag.mb_substr($this->data, $this->i, 1, "UTF-8");
$this->i++;
}
@ -72,9 +73,9 @@ class ADIF_Parser
//find out how long the value is
while($this->data[$this->i] < $pos && $this->data[$this->i] != '>')
while($this->i < $pos && mb_substr($this->data, $this->i, 1, "UTF-8") != '>')
{
$value_length = $value_length.$this->data[$this->i];
$value_length = $value_length.mb_substr($this->data, $this->i, 1, "UTF-8");
$this->i++;
}
@ -82,14 +83,14 @@ class ADIF_Parser
$len = (int)$value_length;
//copy the value into the buffer
while($len > 0 && $this->i < $pos)
{
$value = $value.$this->data[$this->i];
$len--;
$this->i++;
};
$this->headers[strtolower(trim($tag))] = $value; //convert it to lowercase and trim it in case of \r
if ($this->i + $len > $pos) {
$len = $len - ($this->i + $len - $pos);
}
$value = mb_substr($this->data, $this->i, $len, "UTF-8");
$this->i = $this->i + $len;
$this->headers[mb_strtolower(trim($tag), "UTF-8")] = $value; //convert it to lowercase and trim it in case of \r
//clear all of our variables
$tag = "";
$value_length = "";
@ -97,23 +98,26 @@ class ADIF_Parser
}
}
$this->i++;
};
$this->i = $pos+5; //iterate past the <eoh>
if($this->i >= strlen($this->data)) //is this the end of the file?
if($this->i >= mb_strlen($this->data, "UTF-8")) //is this the end of the file?
{
echo "Error: ADIF File Does Not Contain Any QSOs";
return 0;
};
$this->datasplit = preg_split("/<eor>/i", mb_substr($this->data, $this->i, NULL, "UTF-8"));
return 1;
}
public function feed($input_data) //allows the parser to be fed a string
{
$this->data = $input_data;
$this->datasplit = preg_split("/<eor>/i", mb_substr($this->data, $this->i, NULL, "UTF-8"));
}
public function load_from_file($fname) //allows the user to accept a filename as input
@ -125,48 +129,46 @@ class ADIF_Parser
public function record_to_array($record)
{
$return = array();
for($a = 0; $a < strlen($record); $a++)
for($a = 0; $a < mb_strlen($record, "UTF-8"); $a++)
{
if($record[$a] == '<') //find the start of the tag
if(mb_substr($record, $a, 1, "UTF-8") == '<') //find the start of the tag
{
$tag_name = "";
$value = "";
$len_str = "";
$len = 0;
$a++; //go past the <
while($record[$a] != ':') //get the tag
while(mb_substr($record, $a, 1, "UTF-8") != ':') //get the tag
{
$tag_name = $tag_name.$record[$a]; //append this char to the tag name
$tag_name = $tag_name.mb_substr($record, $a, 1, "UTF-8"); //append this char to the tag name
$a++;
};
$a++; //iterate past the colon
while($record[$a] != '>' && $record[$a] != ':')
while(mb_substr($record, $a, 1, "UTF-8") != '>' && mb_substr($record, $a, 1, "UTF-8") != ':')
{
$len_str = $len_str.$record[$a];
$len_str = $len_str.mb_substr($record, $a, 1, "UTF-8");
$a++;
};
if($record[$a] == ':')
if(mb_substr($record, $a, 1, "UTF-8") == ':')
{
while($record[$a] != '>')
while(mb_substr($record, $a, 1, "UTF-8") != '>')
{
$a++;
};
};
$len = (int)$len_str;
while($len > 0)
{
$a++;
$value = $value.$record[$a];
$len--;
};
$return[strtolower($tag_name)] = $value;
$a++;
$value = mb_substr($record, $a, $len, "UTF-8");
$a = $a + $len - 1;
$return[mb_strtolower($tag_name, "UTF-8")] = $value;
};
//skip comments
if($record[$a] == "#")
if(mb_substr($record, $a, 1, "UTF-8") == "#")
{
while($a < strlen($record))
while($a < mb_strlen($record, "UTF-8"))
{
if($record[$a] == "\n")
if(mb_substr($record, $a, 1, "UTF-8") == "\n")
{
break;
}
@ -177,29 +179,28 @@ class ADIF_Parser
return $return;
}
//finds the next record in the file
public function get_record()
{
if($this->i >= strlen($this->data))
{
return array(); //return nothing
};
$end = stripos($this->data, "<eor>", $this->i);
if($end == false) //is this the end?
{
return array(); //return nothing
};
$record = substr($this->data, $this->i, $end-$this->i);
$this->i = $end+5;
return $this->record_to_array($record); //process and return output
// Are we at the end of the array containing the QSOs?
if($this->currentarray >= count($this->datasplit)) {
return array(); //return nothing
} else {
// Is this a valid QSO?
if (mb_stristr($this->datasplit[$this->currentarray], "<CALL:", false, "UTF-8")) {
return $this->record_to_array($this->datasplit[$this->currentarray++]); //process and return output
}
else {
return array();
}
}
}
public function get_header($key)
{
if(array_key_exists(strtolower($key), $this->headers))
if(array_key_exists(mb_strtolower($key, "UTF-8"), $this->headers))
{
return $this->headers[strtolower($key)];
return $this->headers[mb_strtolower($key, "UTF-8")];
}else{
return NULL;
}

查看文件

@ -41,7 +41,7 @@ class Frequency {
'10m'=>array(
'SSB'=>"28300000",
'DATA'=>"28120000",
'CW'=>"21050000"),
'CW'=>"28050000"),
'6m'=>array(
'SSB'=>"50150000",
'DATA'=>"50230000",
@ -86,7 +86,7 @@ class Frequency {
if($mode =='LSB' or $mode =='USB'){
$mode= "SSB";
}
// Use 'DATA' for any of the data modes
if($mode !='CW' and $mode !='SSB'){
$mode= "DATA";
@ -154,5 +154,11 @@ class Frequency {
}
return $Band;
}
// converts a frequency in Hz to MHz output
function hz_to_mhz($frequency)
{
return number_format (($frequency / 1000 / 1000), 3) . " MHz";
}
}
/* End of file Frequency.php */

查看文件

@ -10,7 +10,7 @@ class Hamqth {
// Return session key
public function session($username, $password) {
// URL to the XML Source
$xml_feed_url = 'https://www.hamqth.com/xml.php?u='.$username.'&p='.$password;
$xml_feed_url = 'https://www.hamqth.com/xml.php?u='.$username.'&p='.urlencode($password);
// CURL Functions
$ch = curl_init();
@ -33,7 +33,7 @@ class Hamqth {
$ci = & get_instance();
// URL to the XML Source
$xml_feed_url = 'https://www.hamqth.com/xml.php?u='.$username.'&p='.$password;
$xml_feed_url = 'https://www.hamqth.com/xml.php?u='.$username.'&p='.urlencode($password);
// CURL Functions
$ch = curl_init();

某些文件未显示,因为此 diff 中更改的文件太多 显示更多