diff --git a/application/controllers/Backup.php b/application/controllers/Backup.php index ddd78b15e..44bf3bace 100644 --- a/application/controllers/Backup.php +++ b/application/controllers/Backup.php @@ -26,13 +26,15 @@ class Backup extends CI_Controller { if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); } } + $clean_key = $this->security->xss_clean($key); + $this->load->helper('file'); // Set memory limit to unlimited to allow heavy usage ini_set('memory_limit', '-1'); $this->load->model('adif_data'); - $data['qsos'] = $this->adif_data->export_all($key); + $data['qsos'] = $this->adif_data->export_all($clean_key); $data['filename'] = 'backup/logbook'. date('_Y_m_d_H_i_s') .'.adi'; @@ -61,10 +63,12 @@ class Backup extends CI_Controller { if(!$this->user_model->authorize(99)) { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); } } + $clean_key = $this->security->xss_clean($key); + $this->load->helper('file'); $this->load->model('note'); - $data['list_note'] = $this->note->list_all($key); + $data['list_note'] = $this->note->list_all($clean_key); $data['filename'] = 'backup/notes'. date('_Y_m_d_H_i_s') .'.xml'; diff --git a/application/controllers/Lookup.php b/application/controllers/Lookup.php index cc0a9b7a4..a56437e13 100644 --- a/application/controllers/Lookup.php +++ b/application/controllers/Lookup.php @@ -65,9 +65,7 @@ class Lookup extends CI_Controller { public function scp() { session_write_close(); - if($_POST['callsign']) { - $uppercase_callsign = strtoupper($_POST['callsign']); - } + $uppercase_callsign = strtoupper($this->input->post('callsign', TRUE) ?? ''); // SCP results from logbook $this->load->model('logbook_model'); diff --git a/application/controllers/Notes.php b/application/controllers/Notes.php index 580515390..b411a3fc9 100644 --- a/application/controllers/Notes.php +++ b/application/controllers/Notes.php @@ -12,8 +12,7 @@ class Notes extends CI_Controller { /* Displays all notes in a list */ - public function index() - { + public function index() { $this->load->model('note'); $data['notes'] = $this->note->list_all(); $data['page_title'] = __("Notes"); @@ -50,9 +49,16 @@ class Notes extends CI_Controller { /* View Notes */ function view($id) { + + $clean_id = $this->security->xss_clean($id); + + if (! is_numeric($clean_id)) { + show_404(); + } + $this->load->model('note'); - $data['note'] = $this->note->view($id); + $data['note'] = $this->note->view($clean_id); // Display $data['page_title'] = __("Note"); @@ -63,10 +69,17 @@ class Notes extends CI_Controller { /* Edit Notes */ function edit($id) { + + $clean_id = $this->security->xss_clean($id); + + if (! is_numeric($clean_id)) { + show_404(); + } + $this->load->model('note'); - $data['id'] = $id; + $data['id'] = $clean_id; - $data['note'] = $this->note->view($id); + $data['note'] = $this->note->view($clean_id); $this->load->library('form_validation'); @@ -91,8 +104,15 @@ class Notes extends CI_Controller { /* Delete Note */ function delete($id) { + + $clean_id = $this->security->xss_clean($id); + + if (! is_numeric($clean_id)) { + show_404(); + } + $this->load->model('note'); - $this->note->delete($id); + $this->note->delete($clean_id); redirect('notes'); } diff --git a/application/controllers/Qso.php b/application/controllers/Qso.php index e4c8b0b9e..23821f9d3 100644 --- a/application/controllers/Qso.php +++ b/application/controllers/Qso.php @@ -21,7 +21,7 @@ class QSO extends CI_Controller { // Getting the live/post mode from GET command // 0 = live // 1 = post (manual) - $get_manual_mode = $this->security->xss_clean($this->input->get('manual')); + $get_manual_mode = $this->input->get('manual', TRUE); if ($get_manual_mode == '0' || $get_manual_mode == '1') { $data['manual_mode'] = $get_manual_mode; } else { @@ -116,29 +116,29 @@ class QSO extends CI_Controller { // $qso_data = [ // 18-Jan-2016 - make php v5.3 friendly! $qso_data = array( - 'start_date' => $this->input->post('start_date'), - 'start_time' => $this->input->post('start_time'), + 'start_date' => $this->input->post('start_date', TRUE), + 'start_time' => $this->input->post('start_time', TRUE), 'end_time' => $this->input->post('end_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'), - 'sat_name' => $this->input->post('sat_name'), - 'sat_mode' => $this->input->post('sat_mode'), - 'prop_mode' => $this->input->post('prop_mode'), - 'radio' => $this->input->post('radio'), - 'station_profile_id' => $this->input->post('station_profile'), - 'operator_callsign' => $this->input->post('operator_callsign'), - 'transmit_power' => $this->input->post('transmit_power') + 'band' => $this->input->post('band', TRUE), + 'band_rx' => $this->input->post('band_rx', TRUE), + 'freq' => $this->input->post('freq_display', TRUE), + 'freq_rx' => $this->input->post('freq_display_rx', TRUE), + 'mode' => $this->input->post('mode', TRUE), + 'sat_name' => $this->input->post('sat_name', TRUE), + 'sat_mode' => $this->input->post('sat_mode', TRUE), + 'prop_mode' => $this->input->post('prop_mode', TRUE), + 'radio' => $this->input->post('radio', TRUE), + 'station_profile_id' => $this->input->post('station_profile', TRUE), + 'operator_callsign' => $this->input->post('operator_callsign', TRUE), + 'transmit_power' => $this->input->post('transmit_power', TRUE) ); // ]; $this->session->set_userdata($qso_data); // If SAT name is set make it session set to sat - if($this->input->post('sat_name')) { + if($this->input->post('sat_name', TRUE)) { $this->session->set_userdata('prop_mode', 'SAT'); } @@ -216,20 +216,20 @@ class QSO extends CI_Controller { function cwmacrosave(){ // Get the data from the form - $function1_name = xss_clean($this->input->post('function1_name')); - $function1_macro = xss_clean($this->input->post('function1_macro')); + $function1_name = $this->input->post('function1_name', TRUE); + $function1_macro = $this->input->post('function1_macro', TRUE); - $function2_name = xss_clean($this->input->post('function2_name')); - $function2_macro = xss_clean($this->input->post('function2_macro')); + $function2_name = $this->input->post('function2_name', TRUE); + $function2_macro = $this->input->post('function2_macro', TRUE); - $function3_name = xss_clean($this->input->post('function3_name')); - $function3_macro = xss_clean($this->input->post('function3_macro')); + $function3_name = $this->input->post('function3_name', TRUE); + $function3_macro = $this->input->post('function3_macro', TRUE); - $function4_name = xss_clean($this->input->post('function4_name')); - $function4_macro = xss_clean($this->input->post('function4_macro')); + $function4_name = $this->input->post('function4_name', TRUE); + $function4_macro = $this->input->post('function4_macro', TRUE); - $function5_name = xss_clean($this->input->post('function5_name')); - $function5_macro = xss_clean($this->input->post('function5_macro')); + $function5_name = $this->input->post('function5_name', TRUE); + $function5_macro = $this->input->post('function5_macro', TRUE); $data = [ 'user_id' => $this->session->userdata('user_id'), @@ -279,7 +279,7 @@ class QSO extends CI_Controller { $this->session->set_flashdata('notice', 'You\'re not allowed to do that!'); redirect('dashboard'); } - $id = str_replace('"', "", $this->input->post("id")); + $id = str_replace('"', "", $this->input->post("id", TRUE)); $query = $this->logbook_model->qso_info($id); $data['qso'] = $query->row(); @@ -317,8 +317,8 @@ class QSO extends CI_Controller { } function qsl_rcvd_ajax() { - $id = str_replace('"', "", $this->input->post("id")); - $method = str_replace('"', "", $this->input->post("method")); + $id = str_replace('"', "", $this->input->post("id", TRUE)); + $method = str_replace('"', "", $this->input->post("method", TRUE)); $this->load->model('logbook_model'); $this->load->model('user_model'); @@ -338,8 +338,8 @@ class QSO extends CI_Controller { } function qsl_sent_ajax() { - $id = str_replace('"', "", $this->input->post("id")); - $method = str_replace('"', "", $this->input->post("method")); + $id = str_replace('"', "", $this->input->post("id", TRUE)); + $method = str_replace('"', "", $this->input->post("method", TRUE)); $this->load->model('logbook_model'); $this->load->model('user_model'); @@ -359,8 +359,8 @@ class QSO extends CI_Controller { } function qsl_requested_ajax() { - $id = str_replace('"', "", $this->input->post("id")); - $method = str_replace('"', "", $this->input->post("method")); + $id = str_replace('"', "", $this->input->post("id", TRUE)); + $method = str_replace('"', "", $this->input->post("method", TRUE)); $this->load->model('logbook_model'); $this->load->model('user_model'); @@ -380,8 +380,8 @@ class QSO extends CI_Controller { } function qsl_ignore_ajax() { - $id = str_replace('"', "", $this->input->post("id")); - $method = str_replace('"', "", $this->input->post("method")); + $id = str_replace('"', "", $this->input->post("id", TRUE)); + $method = str_replace('"', "", $this->input->post("method", TRUE)); $this->load->model('logbook_model'); $this->load->model('user_model'); @@ -420,7 +420,7 @@ class QSO extends CI_Controller { /* Delete QSO */ function delete_ajax() { - $id = str_replace('"', "", $this->input->post("id")); + $id = str_replace('"', "", $this->input->post("id", TRUE)); $this->load->model('logbook_model'); if ($this->logbook_model->check_qso_is_accessible($id)) { @@ -450,10 +450,8 @@ class QSO extends CI_Controller { $this->load->library('sota'); $json = []; - if (!empty($this->security->xss_clean($this->input->get("query")))) { - $query = $_GET['query'] ?? FALSE; - $json = $this->sota->get($query); - } + $query = $this->input->get('query', TRUE) ?? FALSE; + $json = $this->sota->get($query); header('Content-Type: application/json'); echo json_encode($json); @@ -462,32 +460,30 @@ class QSO extends CI_Controller { public function get_wwff() { $json = []; - if (!empty($this->security->xss_clean($this->input->get("query")))) { - $query = isset($_GET['query']) ? $_GET['query'] : FALSE; - $wwff = strtoupper($query); + $query = $this->input->get('query', TRUE) ?? FALSE; + $wwff = strtoupper($query); - $file = 'updates/wwff.txt'; + $file = 'updates/wwff.txt'; - if (is_readable($file)) { - $lines = file($file, FILE_IGNORE_NEW_LINES); - $input = preg_quote($wwff, '~'); - $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]; - } + if (is_readable($file)) { + $lines = file($file, FILE_IGNORE_NEW_LINES); + $input = preg_quote($wwff, '~'); + $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]; } + } + } else { + $src = 'assets/resources/wwff.txt'; + if (copy($src, $file)) { + $this->get_wwff(); } else { - $src = 'assets/resources/wwff.txt'; - if (copy($src, $file)) { - $this->get_wwff(); - } else { - log_message('error', 'Failed to copy source file ('.$src.') to new location. Check if this path has the right permission: '.$file); - } + log_message('error', 'Failed to copy source file ('.$src.') to new location. Check if this path has the right permission: '.$file); } } @@ -498,32 +494,30 @@ class QSO extends CI_Controller { public function get_pota() { $json = []; - if (!empty($this->security->xss_clean($this->input->get("query")))) { - $query = isset($_GET['query']) ? $_GET['query'] : FALSE; - $pota = strtoupper($query); + $query = $this->input->get('query', TRUE) ?? FALSE; + $pota = strtoupper($query); - $file = 'updates/pota.txt'; + $file = 'updates/pota.txt'; - if (is_readable($file)) { - $lines = file($file, FILE_IGNORE_NEW_LINES); - $input = preg_quote($pota, '~'); - $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]; - } + if (is_readable($file)) { + $lines = file($file, FILE_IGNORE_NEW_LINES); + $input = preg_quote($pota, '~'); + $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]; } + } + } else { + $src = 'assets/resources/pota.txt'; + if (copy($src, $file)) { + $this->get_pota(); } else { - $src = 'assets/resources/pota.txt'; - if (copy($src, $file)) { - $this->get_pota(); - } else { - log_message('error', 'Failed to copy source file ('.$src.') to new location. Check if this path has the right permission: '.$file); - } + log_message('error', 'Failed to copy source file ('.$src.') to new location. Check if this path has the right permission: '.$file); } } @@ -537,32 +531,30 @@ class QSO extends CI_Controller { public function get_dok() { $json = []; - if (!empty($this->security->xss_clean($this->input->get("query")))) { - $query = isset($_GET['query']) ? $_GET['query'] : FALSE; - $dok = strtoupper($query); + $query = $this->input->get('query', TRUE) ?? FALSE; + $dok = strtoupper($query); - $file = 'updates/dok.txt'; + $file = 'updates/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]; - } + 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]; } + } + } else { + $src = 'assets/resources/dok.txt'; + if (copy($src, $file)) { + $this->get_dok(); } else { - $src = 'assets/resources/dok.txt'; - if (copy($src, $file)) { - $this->get_dok(); - } else { - log_message('error', 'Failed to copy source file ('.$src.') to new location. Check if this path has the right permission: '.$file); - } + log_message('error', 'Failed to copy source file ('.$src.') to new location. Check if this path has the right permission: '.$file); } } @@ -573,7 +565,7 @@ class QSO extends CI_Controller { public function get_sota_info() { $this->load->library('sota'); - $sota = xss_clean($this->input->post('sota')); + $sota = $this->input->post('sota', TRUE); header('Content-Type: application/json'); echo $this->sota->info($sota); @@ -582,7 +574,7 @@ class QSO extends CI_Controller { public function get_wwff_info() { $this->load->library('wwff'); - $wwff = xss_clean($this->input->post('wwff')); + $wwff = $this->input->post('wwff', TRUE); header('Content-Type: application/json'); echo $this->wwff->info($wwff); @@ -591,7 +583,7 @@ class QSO extends CI_Controller { public function get_pota_info() { $this->load->library('pota'); - $pota = xss_clean($this->input->post('pota')); + $pota = $this->input->post('pota', TRUE); header('Content-Type: application/json'); echo $this->pota->info($pota); @@ -599,7 +591,7 @@ class QSO extends CI_Controller { public function get_station_power() { $this->load->model('stations'); - $stationProfile = xss_clean($this->input->post('stationProfile')); + $stationProfile = $this->input->post('stationProfile', TRUE); $data = array('station_power' => $this->stations->get_station_power($stationProfile)); header('Content-Type: application/json'); @@ -620,7 +612,7 @@ class QSO extends CI_Controller { public function get_eqsl_default_qslmsg() { // Get ONLY Default eQSL-Message with this function. This is ONLY for QSO relevant! $return_json = array(); - $option_key = $this->input->post('option_key'); + $option_key = $this->input->post('option_key', TRUE); if ($option_key > 0) { $options_object = $this->user_options_model->get_options('eqsl_default_qslmsg', array('option_name' => 'key_station_id', 'option_key' => $option_key))->result(); $return_json['eqsl_default_qslmsg'] = (isset($options_object[0]->option_value)) ? $options_object[0]->option_value : ''; @@ -634,7 +626,7 @@ class QSO extends CI_Controller { } function check_locator($grid) { - $grid = $this->input->post('locator'); + $grid = $this->input->post('locator', TRUE); // Allow empty locator if (preg_match('/^$/', $grid)) return true; // Allow 6-digit locator diff --git a/application/controllers/Search.php b/application/controllers/Search.php index be59f4df6..51c4aeef5 100644 --- a/application/controllers/Search.php +++ b/application/controllers/Search.php @@ -75,10 +75,8 @@ class Search extends CI_Controller { } function json_result() { - if(isset($_POST['search'])) { - $result = $this->fetchQueryResult($_POST['search'], false); - echo json_encode($result->result_array()); - } + $result = $this->fetchQueryResult(($this->input->post('search', TRUE) ?? ''), FALSE); + echo json_encode($result->result_array()); } function get_stored_queries() { @@ -88,17 +86,13 @@ class Search extends CI_Controller { } function search_result() { - if(isset($_POST['search'])) { - $data['results'] = $this->fetchQueryResult($_POST['search'], false); - $this->load->view('search/search_result_ajax', $data); - } + $data['results'] = $this->fetchQueryResult(($this->input->post('search', TRUE) ?? ''), FALSE); + $this->load->view('search/search_result_ajax', $data); } function export_to_adif() { - if(isset($_POST['search'])) { - $data['qsos'] = $this->fetchQueryResult($_POST['search'], false); - $this->load->view('adif/data/exportall', $data); - } + $data['qsos'] = $this->fetchQueryResult(($this->input->post('search', TRUE) ?? ''), FALSE); + $this->load->view('adif/data/exportall', $data); } function export_stored_query_to_adif() { @@ -122,20 +116,21 @@ class Search extends CI_Controller { } function save_query() { - if(isset($_POST['search'])) { - $query = $this->fetchQueryResult($_POST['search'], true); + $search_param = $this->input->post('search', TRUE); + $description = $this->input->post('description', TRUE); - $data = array( - 'userid' => xss_clean($this->session->userdata('user_id')), - 'query' => $query, - 'description' => xss_clean($_POST['description']) - ); + $query = $this->fetchQueryResult($search_param, TRUE); - $this->db->insert('queries', $data); - $last_id = $this->db->insert_id(); - header('Content-Type: application/json'); - echo json_encode(array('id' => $last_id, 'description' => xss_clean($_POST['description']))); - } + $data = array( + 'userid' => xss_clean($this->session->userdata('user_id')), + 'query' => $query, + 'description' => $description + ); + + $this->db->insert('queries', $data); + $last_id = $this->db->insert_id(); + header('Content-Type: application/json'); + echo json_encode(array('id' => $last_id, 'description' => $description)); } function delete_query() { diff --git a/application/locale/bg_BG/LC_MESSAGES/messages.po b/application/locale/bg_BG/LC_MESSAGES/messages.po index 94fb599e6..64cdaecbe 100644 --- a/application/locale/bg_BG/LC_MESSAGES/messages.po +++ b/application/locale/bg_BG/LC_MESSAGES/messages.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: translations@wavelog.org\n" -"POT-Creation-Date: 2024-08-13 19:24+0000\n" +"POT-Creation-Date: 2024-08-14 18:08+0000\n" "PO-Revision-Date: 2024-07-09 13:25+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Bulgarian \n" "Language-Team: Czech \n" "Language-Team: German \n" "Language-Team: Greek \n" "Language-Team: Spanish \n" "Language-Team: Finnish \n" "Language-Team: French \n" "Language-Team: Italian \n" "Language-Team: Dutch \n" "Language-Team: Polish \n" "Language-Team: Portuguese (Portugal) \n" "Language-Team: Russian \n" "Language-Team: Serbian \n" @@ -229,7 +229,7 @@ msgstr "VUCC" #: application/controllers/Awards.php:405 msgid "Log View - VUCC" -msgstr "" +msgstr "Pregled loga - VUCC" #: application/controllers/Awards.php:453 #: application/controllers/Timeline.php:92 @@ -239,27 +239,27 @@ msgstr "" #: application/controllers/Timeline.php:104 #: application/controllers/Timeline.php:107 msgid "Log View" -msgstr "" +msgstr "Pregled loga" #: application/controllers/Awards.php:457 msgid " and sat " -msgstr "" +msgstr " i satelit " #: application/controllers/Awards.php:460 msgid " and orbit type " -msgstr "" +msgstr " i vrsta orbite " #: application/controllers/Awards.php:464 msgid " and propagation " -msgstr "" +msgstr " . i propagacije " #: application/controllers/Awards.php:467 msgid " and mode " -msgstr "" +msgstr " i vrsta rada " #: application/controllers/Awards.php:470 msgid " and " -msgstr "" +msgstr " i " #: application/controllers/Awards.php:486 #: application/controllers/Logbook.php:1285 @@ -285,7 +285,7 @@ msgstr "" #: application/views/view_log/partial/log_ajax.php:9 #: application/views/visitor/index.php:21 msgid "SOTA" -msgstr "" +msgstr "SOTA" #: application/controllers/Awards.php:503 #: application/controllers/Logbook.php:1286 @@ -305,7 +305,7 @@ msgstr "" #: application/views/user/edit.php:324 #: application/views/view_log/partial/log_ajax.php:10 msgid "WWFF" -msgstr "" +msgstr "WWFF" #: application/controllers/Awards.php:520 #: application/controllers/Logbook.php:1287 @@ -325,91 +325,91 @@ msgstr "" #: application/views/user/edit.php:325 #: application/views/view_log/partial/log_ajax.php:11 msgid "POTA" -msgstr "" +msgstr "POTA" #: application/controllers/Awards.php:591 msgid "CQ Magazine WAZ" -msgstr "" +msgstr "CQ Magazin WAZ" #: application/controllers/Awards.php:652 #: application/views/accumulate/index.php:54 #: application/views/timeline/index.php:45 msgid "Worked All States (WAS)" -msgstr "" +msgstr "Worked All States (WAS)" #: application/controllers/Awards.php:714 application/views/bands/index.php:53 #: application/views/interface_assets/header.php:188 msgid "RAC" -msgstr "" +msgstr "RAC" #: application/controllers/Awards.php:776 application/views/bands/index.php:49 msgid "H26" -msgstr "" +msgstr "H26" #: application/controllers/Awards.php:847 msgid "IOTA (Island On The Air)" -msgstr "" +msgstr "IOTA (Island On The Air)" #: application/controllers/Awards.php:858 #: application/controllers/Awards.php:872 #: application/views/interface_assets/header.php:230 msgid "US Counties" -msgstr "" +msgstr "US Okruzi" #: application/controllers/Awards.php:887 msgid "Log View - Counties" -msgstr "" +msgstr "Pregled loga - Okruzi" #: application/controllers/Awards.php:894 msgid "Awards - " -msgstr "" +msgstr "Diplome - " #: application/controllers/Awards.php:911 #: application/controllers/Awards.php:943 msgid "Gridsquares worked" -msgstr "" +msgstr "Rađenih polja" #: application/controllers/Awards.php:912 #: application/controllers/Awards.php:944 msgid "Gridsquares confirmed on LoTW" -msgstr "" +msgstr "Polja potvrđenih preko LoTW" #: application/controllers/Awards.php:913 #: application/controllers/Awards.php:945 msgid "Gridsquares confirmed by paper QSL" -msgstr "" +msgstr "Polja potvrđenih QSL kartama" #: application/controllers/Awards.php:930 msgid "Fred Fish Memorial Award (FFMA)" -msgstr "" +msgstr "Fred Fish Memorial Award (FFMA)" #: application/controllers/Awards.php:1125 #: application/views/interface_assets/header.php:168 #: application/views/logbookadvanced/useroptions.php:138 msgid "SIG" -msgstr "" +msgstr "SIG" #: application/controllers/Awards.php:1143 msgid "Awards - SIG - " -msgstr "" +msgstr "Diplome - SIG - " #: application/controllers/Awards.php:1755 #: application/views/awards/itu/index.php:18 msgid "ITU Zones" -msgstr "" +msgstr "ITU Zone" #: application/controllers/Backup.php:15 application/views/backup/main.php:14 #: application/views/interface_assets/header.php:280 msgid "Backup" -msgstr "" +msgstr "Rezervna kopija" -#: application/controllers/Backup.php:48 +#: application/controllers/Backup.php:50 msgid "ADIF - Backup" -msgstr "" +msgstr "ADIF - Rezervna kopija" -#: application/controllers/Backup.php:80 +#: application/controllers/Backup.php:84 msgid "Notes - Backup" -msgstr "" +msgstr "Napomene - Rezervna kopija" #: application/controllers/Band.php:25 application/views/bands/index.php:28 #: application/views/bands/index.php:32 @@ -417,15 +417,15 @@ msgstr "" #: application/views/statistics/index.php:16 #: application/views/statistics/index.php:56 msgid "Bands" -msgstr "" +msgstr "Opsezi" #: application/controllers/Band.php:40 application/controllers/Mode.php:41 msgid "Create Mode" -msgstr "" +msgstr "Kreiraj vrstu rada" #: application/controllers/Band.php:59 application/views/bands/index.php:150 msgid "Edit Band" -msgstr "" +msgstr "Uredi opseg" #: application/controllers/Bandmap.php:28 #: application/controllers/Bandmap.php:69 @@ -433,105 +433,105 @@ msgstr "" #: application/controllers/Options.php:148 #: application/views/options/sidebar.php:10 msgid "DXCluster" -msgstr "" +msgstr "DX klaster" #: application/controllers/Cabrillo.php:20 msgid "Export Cabrillo" -msgstr "" +msgstr "Izvezi Cabrillo" #: application/controllers/Cfdexport.php:20 #: application/views/interface_assets/header.php:396 msgid "CFD Export" -msgstr "" +msgstr "Izvezi CFD" #: application/controllers/Clublog.php:15 application/controllers/Cron.php:12 #: application/controllers/Eqsl.php:13 application/controllers/Hrdlog.php:19 #: application/controllers/Lotw.php:28 application/controllers/Qrz.php:14 #: application/controllers/Update.php:16 msgid "Maintenance Mode is active. Try again later." -msgstr "" +msgstr "Aktivan je mod održavanja. Pokušajte ponovo kasnije." #: application/controllers/Clublog.php:44 #: application/controllers/Clublog.php:66 msgid "No user has configured Clublog." -msgstr "" +msgstr "Nema korisnika sa podešenim Clublog." #: application/controllers/Contestcalendar.php:19 #: application/views/interface_assets/header.php:247 msgid "Contest Calendar" -msgstr "" +msgstr "Takmičarski kalendar" #: application/controllers/Contesting.php:47 #: application/views/contesting/index.php:3 msgid "Contest Logging" -msgstr "" +msgstr "Takmičarski dnevnik" #: application/controllers/Contesting.php:112 #: application/views/interface_assets/header.php:274 msgid "Contests" -msgstr "" +msgstr "Takmičenja" #: application/controllers/Contesting.php:126 msgid "Update Contest" -msgstr "" +msgstr "Ažuriraj takmičenje" #: application/controllers/Continents.php:25 #: application/views/awards/dxcc/index.php:83 #: application/views/awards/iota/index.php:57 #: application/views/interface_assets/header.php:154 msgid "Continents" -msgstr "" +msgstr "Kontinenti" #: application/controllers/Cron.php:38 #: application/views/interface_assets/header.php:284 msgid "Cron Manager" -msgstr "" +msgstr "Cron menadžer" #: application/controllers/Cron.php:137 application/views/cron/edit.php:5 msgid "Edit Cronjob" -msgstr "" +msgstr "Uredi cronjob" #: application/controllers/Csv.php:20 application/views/csv/index.php:3 #: application/views/interface_assets/header.php:392 msgid "SOTA CSV Export" -msgstr "" +msgstr "Izvoz SOTA CSV" #: application/controllers/Dashboard.php:108 #: application/controllers/Visitor.php:132 msgid "Dashboard" -msgstr "" +msgstr "Kontrolna tabla" #: application/controllers/Dayswithqso.php:18 msgid "Number of days with QSOs each year" -msgstr "" +msgstr "Broj dana sa QSO-om za svaku godinu" #: application/controllers/Debug.php:93 msgid "Debug" -msgstr "" +msgstr "Debug" #: application/controllers/Debug.php:132 msgid "Migrate data now" -msgstr "" +msgstr "Migrirajte sada podatke" #: application/controllers/Debug.php:135 msgid "Migration already done. Run again?" -msgstr "" +msgstr "Migracija je već urađena. Uradite ponovo?" #: application/controllers/Debug.php:139 msgid "No data to migrate" -msgstr "" +msgstr "Nema podataka za migraciju" #: application/controllers/Debug.php:143 application/controllers/Debug.php:148 msgid "No migration possible" -msgstr "" +msgstr "Migracija nije moguća" #: application/controllers/Debug.php:213 msgid "Wavelog was updated successfully!" -msgstr "" +msgstr "Wavelog je uspešno ažuriran!" #: application/controllers/Debug.php:231 msgid "Selfupdate() not available. Check the Error Log." -msgstr "" +msgstr "Selfupdate() nije dostupan. Proverite Error log." #: application/controllers/Debug.php:275 msgid "" @@ -539,185 +539,189 @@ msgid "" "everything seems right you can delete the folders 'assets/qslcard' and " "'images/eqsl_card_images'." msgstr "" +"Migracija datoteka je bila uspešna, ali molimo vas da proverite i ručno. Ako " +"izgleda da je sve u redu možete obrisati foldere 'assets/qslcard' i 'images/" +"eqsl_card_images'." #: application/controllers/Debug.php:278 msgid "File Migration failed. Please check the Error Log." -msgstr "" +msgstr "Migracija datoteka je bila neuspešna. Molimo proverite Error log." #: application/controllers/Distances.php:17 #: application/views/distances/index.php:5 #: application/views/distances/index.php:8 #: application/views/interface_assets/header.php:144 msgid "Distances Worked" -msgstr "" +msgstr "Rađena rastojanja" #: application/controllers/Distances.php:82 #: application/views/distances/index.php:15 msgid "QSOs with" -msgstr "" +msgstr "QSOi sa" #: application/controllers/Distances.php:82 msgid "and band" -msgstr "" +msgstr "i opseg" #: application/controllers/Dxatlas.php:19 #: application/views/interface_assets/header.php:390 msgid "DX Atlas Gridsquare Export" -msgstr "" +msgstr "Izvoz polja za DX Atlas" #: application/controllers/Dxcalendar.php:10 #: application/views/interface_assets/header.php:245 msgid "DX Calendar" -msgstr "" +msgstr "DX kalendar" #: application/controllers/Eqsl.php:34 #: application/views/dashboard/index.php:309 #: application/views/eqslcard/index.php:5 #: application/views/visitor/index.php:306 msgid "eQSL Cards" -msgstr "" +msgstr "eQSL karte" #: application/controllers/Eqsl.php:124 msgid "eQSL Import" -msgstr "" +msgstr "Uvoz eQSL" #: application/controllers/Eqsl.php:134 msgid "eQSL Import Information" -msgstr "" +msgstr "Informacije o eQSL uvozu" #: application/controllers/Eqsl.php:158 msgid "eQSL QSO Upload" -msgstr "" +msgstr "eQSL učitavanje QSO" #: application/controllers/Eqsl.php:415 msgid "eQSL Tools" -msgstr "" +msgstr "eQSL alati" #: application/controllers/Eqsl.php:462 msgid " / Errors: " -msgstr "" +msgstr " / Greške: " #: application/controllers/Eqsl.php:462 msgid "Successfully downloaded: " -msgstr "" +msgstr "Uspešno preuzeto: " #: application/controllers/Eqsl.php:471 msgid "eQSL Card Image Download" -msgstr "" +msgstr "Preuzimanje slika eQSL karata" #: application/controllers/Gridmap.php:10 #: application/views/interface_assets/header.php:138 msgid "Gridsquare Map" -msgstr "" +msgstr "Mapa polja" #: application/controllers/Gridmap.php:34 #: application/controllers/Visitor.php:377 msgid "Total gridsquares worked" -msgstr "" +msgstr "Ukupno rađenih polja" #: application/controllers/Hamsat.php:59 msgid "Hamsat - Satellite Roving" -msgstr "" +msgstr "Hamsat - Satelitski Roveri" #: application/controllers/Hrdlog.php:71 #, php-format msgid "%d QSO is now uploaded to HRDlog" msgid_plural "%d QSOs are now uploaded to HRDlog" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "%d QSO je sada u učitan u HRDlog" +msgstr[1] "%d QSOa su sada učitana u HRDlog" +msgstr[2] "%d QSOova su sada učitani u HRDlog" #: application/controllers/Hrdlog.php:76 msgid "No QSOs found to upload." -msgstr "" +msgstr "Nisu pronađeni QSO za učitavanje." #: application/controllers/Kmlexport.php:24 #: application/views/interface_assets/header.php:388 #: application/views/kml/index.php:3 msgid "KML Export" -msgstr "" +msgstr "Izvoz KML" #: application/controllers/Labels.php:40 application/views/labels/index.php:30 msgid "QSL Card Labels" -msgstr "" +msgstr "Oznake na QSL karatama" #: application/controllers/Labels.php:71 msgid "Create Label Type" -msgstr "" +msgstr "Kreirajte vrstu oznake" #: application/controllers/Labels.php:78 application/controllers/Labels.php:402 #: application/views/labels/create.php:22 application/views/labels/edit.php:22 msgid "Label Name" -msgstr "" +msgstr "Naziv oznake" #: application/controllers/Labels.php:79 application/controllers/Labels.php:403 #: application/views/labels/create.php:28 application/views/labels/edit.php:28 #: application/views/labels/index.php:76 msgid "Paper Type" -msgstr "" +msgstr "Vrsta papira" #: application/controllers/Labels.php:80 application/controllers/Labels.php:404 #: application/views/labels/index.php:42 application/views/labels/index.php:77 msgid "Measurement" -msgstr "" +msgstr "Mere" #: application/controllers/Labels.php:81 application/controllers/Labels.php:405 msgid "Top Margin" -msgstr "" +msgstr "Gornja margina" #: application/controllers/Labels.php:82 application/controllers/Labels.php:406 msgid "Left Margin" -msgstr "" +msgstr "Leva margina" #: application/controllers/Labels.php:83 application/controllers/Labels.php:407 msgid "QSLs Horizontally" -msgstr "" +msgstr "Horizontalne QSL karte" #: application/controllers/Labels.php:84 application/controllers/Labels.php:408 msgid "QSLs Vertically" -msgstr "" +msgstr "Vertikalne QSL karte" #: application/controllers/Labels.php:85 application/controllers/Labels.php:409 msgid "Horizontal Space" -msgstr "" +msgstr "Horizontalni razmak" #: application/controllers/Labels.php:86 application/controllers/Labels.php:410 msgid "Vertical Space" -msgstr "" +msgstr "Vertikalni razmak" #: application/controllers/Labels.php:87 application/controllers/Labels.php:411 msgid "Label width" -msgstr "" +msgstr "Širina oznake" #: application/controllers/Labels.php:88 application/controllers/Labels.php:412 msgid "Label height" -msgstr "" +msgstr "Visina oznake" #: application/controllers/Labels.php:89 application/controllers/Labels.php:413 msgid "Size of Font" -msgstr "" +msgstr "Veličina fonta" #: application/controllers/Labels.php:90 application/controllers/Labels.php:414 msgid "Number of QSOs on label" -msgstr "" +msgstr "Broj QSO na oznaci" #: application/controllers/Labels.php:115 msgid "Create Paper Type" -msgstr "" +msgstr "Kreirajte vrstu papira" #: application/controllers/Labels.php:119 #: application/controllers/Labels.php:461 msgid "Paper Name" -msgstr "" +msgstr "Naziv papira" #: application/controllers/Labels.php:120 #: application/controllers/Labels.php:462 msgid "Paper Width" -msgstr "" +msgstr "Širina papira" #: application/controllers/Labels.php:121 #: application/controllers/Labels.php:463 msgid "Paper Height" -msgstr "" +msgstr "Visina papira" #: application/controllers/Labels.php:132 #: application/controllers/Labels.php:471 @@ -725,16 +729,19 @@ msgid "" "Your paper could not be saved. Remember that it can't have the same name as " "existing paper types." msgstr "" +"Vaš papir ne može biti sačuvan. Upamtite da ne može imati isto ime kao " +"postojeće vrste papira." #: application/controllers/Labels.php:205 #: application/controllers/Labels.php:208 msgid "You need to assign a paperType to the label before printing" -msgstr "" +msgstr "Morate doznačiti vrstu papira oznaci prije štampanja" #: application/controllers/Labels.php:215 #: application/controllers/Labels.php:218 msgid "You need to create a label and set it to be used for print." msgstr "" +"Trebate kreirati oznaku i podesiti je da bude korištena prilikom štampe." #: application/controllers/Labels.php:225 #: application/controllers/Labels.php:228 @@ -742,52 +749,56 @@ msgid "" "Something went wrong! The label could not be generated. Check label size and " "font size." msgstr "" +"Nešto je bio pogrešno! Oznaka nije mogla biti generisana. Proverite veličinu " +"oznake i veličinu fonta." #: application/controllers/Labels.php:251 msgid "0 QSOs found for print!" -msgstr "" +msgstr "0 QSO je pronađeno za štampu!" #: application/controllers/Labels.php:391 msgid "Edit Label" -msgstr "" +msgstr "Uredite oznaku" #: application/controllers/Labels.php:420 msgid "Label was saved." -msgstr "" +msgstr "Oznaka je sačuvana." #: application/controllers/Labels.php:428 msgid "Label was deleted." -msgstr "" +msgstr "Oznaka je obrisana." #: application/controllers/Labels.php:450 msgid "Edit Paper" -msgstr "" +msgstr "Uredite papir" #: application/controllers/Labels.php:475 msgid "Paper was saved." -msgstr "" +msgstr "Papir je sačuvan." #: application/controllers/Labels.php:488 msgid "Paper was deleted." -msgstr "" +msgstr "Papir je obrisan." #: application/controllers/Logbook.php:37 msgid "" "No logbooks were found. You need to define a logbook under Station Logbooks! " "Do it here:" msgstr "" +"Nisu pronađeni dnevnici. Morate definisati dnevnik pod Stanični dnevnici! " +"Uradite to ovde:" #: application/controllers/Logbook.php:37 #: application/views/stationsetup/stationsetup.php:18 msgid "Station Logbooks" -msgstr "" +msgstr "Stanični dnevnici" #: application/controllers/Logbook.php:60 #: application/views/interface_assets/header.php:97 #: application/views/logbookadvanced/useroptions.php:4 #: application/views/view_log/index.php:11 msgid "Logbook" -msgstr "" +msgstr "Dnevnik" #: application/controllers/Logbook.php:653 #: application/controllers/Logbook.php:668 @@ -813,7 +824,7 @@ msgstr "" #: application/views/timeline/index.php:56 application/views/user/edit.php:562 #: application/views/user/edit.php:649 msgid "QSL" -msgstr "" +msgstr "QSL" #: application/controllers/Logbook.php:656 #: application/views/activated_gridmap/index.php:66 @@ -843,7 +854,7 @@ msgstr "" #: application/views/timeline/index.php:60 application/views/user/edit.php:563 #: application/views/user/edit.php:659 application/views/view_log/qso.php:408 msgid "LoTW" -msgstr "" +msgstr "LoTW" #: application/controllers/Logbook.php:659 #: application/views/activated_gridmap/index.php:74 @@ -873,7 +884,7 @@ msgstr "" #: application/views/timeline/index.php:64 application/views/user/edit.php:564 #: application/views/user/edit.php:667 application/views/user/edit.php:731 msgid "eQSL" -msgstr "" +msgstr "eQSL" #: application/controllers/Logbook.php:665 #: application/views/awards/dok/index.php:71 @@ -889,7 +900,7 @@ msgstr "" #: application/views/view_log/partial/log_ajax.php:83 #: application/views/view_log/qso.php:423 msgid "Clublog" -msgstr "" +msgstr "Clublog" #: application/controllers/Logbook.php:1280 #: application/controllers/Radio.php:49 @@ -960,7 +971,7 @@ msgstr "" #: application/views/view_log/qso.php:104 application/views/visitor/index.php:6 #: application/views/widgets/qsos.php:29 msgid "Mode" -msgstr "" +msgstr "Vrsta rada" #: application/controllers/Logbook.php:1281 #: application/views/awards/pota/index.php:36 @@ -987,7 +998,7 @@ msgstr "" #: application/views/view_log/partial/log_ajax.php:5 #: application/views/view_log/qso.php:109 application/views/visitor/index.php:9 msgid "RST (S)" -msgstr "" +msgstr "RST (S)" #: application/controllers/Logbook.php:1282 #: application/views/awards/pota/index.php:37 @@ -1015,7 +1026,7 @@ msgstr "" #: application/views/view_log/qso.php:114 #: application/views/visitor/index.php:12 msgid "RST (R)" -msgstr "" +msgstr "RST (R)" #: application/controllers/Logbook.php:1283 #: application/views/dashboard/index.php:7 @@ -1039,7 +1050,7 @@ msgstr "" #: application/views/view_log/qso.php:528 #: application/views/visitor/index.php:15 msgid "Country" -msgstr "" +msgstr "Zemlja" #: application/controllers/Logbook.php:1284 #: application/views/awards/iota/index.php:169 @@ -1066,7 +1077,7 @@ msgstr "" #: application/views/view_log/partial/log_ajax.php:8 #: application/views/visitor/index.php:18 msgid "IOTA" -msgstr "" +msgstr "IOTA" #: application/controllers/Logbook.php:1288 #: application/views/awards/counties/details.php:12 @@ -1094,7 +1105,7 @@ msgstr "" #: application/views/view_log/partial/log_ajax.php:12 #: application/views/visitor/index.php:24 msgid "State" -msgstr "" +msgstr "Pokrajina" #: application/controllers/Logbook.php:1289 #: application/views/activated_gridmap/index.php:106 @@ -1135,7 +1146,7 @@ msgstr "" #: application/views/view_log/qso.php:515 #: application/views/visitor/index.php:27 msgid "Gridsquare" -msgstr "" +msgstr "Polje" #: application/controllers/Logbook.php:1290 #: application/views/activated_gridmap/index.php:108 @@ -1158,7 +1169,7 @@ msgstr "" #: application/views/view_log/partial/log_ajax.php:14 #: application/views/visitor/index.php:30 msgid "Distance" -msgstr "" +msgstr "Udaljenost" #: application/controllers/Logbook.php:1291 #: application/views/accumulate/index.php:21 @@ -1234,7 +1245,7 @@ msgstr "" #: application/views/view_log/qso.php:87 application/views/visitor/index.php:33 #: application/views/widgets/qsos.php:32 msgid "Band" -msgstr "" +msgstr "Opseg" #: application/controllers/Logbook.php:1292 #: application/controllers/Radio.php:48 application/views/bandmap/list.php:110 @@ -1254,7 +1265,7 @@ msgstr "" #: application/views/view_log/partial/log_ajax.php:16 #: application/views/view_log/qso.php:93 application/views/visitor/index.php:36 msgid "Frequency" -msgstr "" +msgstr "Frekvencija" #: application/controllers/Logbook.php:1293 #: application/views/dashboard/index.php:17 @@ -1276,7 +1287,7 @@ msgstr "" #: application/views/view_log/qso.php:535 #: application/views/visitor/index.php:39 msgid "Operator" -msgstr "" +msgstr "Operator" #: application/controllers/Logbook.php:1314 #: application/controllers/Stationsetup.php:381 @@ -1307,11 +1318,11 @@ msgstr "Izbrisana DXCC" #: application/controllers/Logbookadvanced.php:31 msgid "Advanced logbook" -msgstr "" +msgstr "Nepredni dnevnik" #: application/controllers/Lookup.php:22 msgid "Quick Lookup" -msgstr "" +msgstr "Brza pretraga" #: application/controllers/Lotw.php:54 application/controllers/Lotw.php:83 #: application/controllers/Lotw.php:125 application/views/adif/import.php:27 @@ -1321,39 +1332,39 @@ msgstr "" #: application/views/lotw_views/upload_cert.php:3 #: application/views/user/edit.php:705 application/views/visitor/index.php:324 msgid "Logbook of the World" -msgstr "" +msgstr "Loogbok of the World" #: application/controllers/Lotw.php:610 msgid "LoTW ADIF Information" -msgstr "" +msgstr "Informacija o LoTW ADIF" #: application/controllers/Lotw.php:718 msgid "LoTW ADIF Import" -msgstr "" +msgstr "Uvoz LoTW ADIF" #: application/controllers/Lotw.php:830 msgid "LoTW .TQ8 Upload" -msgstr "" +msgstr "LoTW .TQ8 učitavanje" #: application/controllers/Lotw.php:927 application/controllers/Lotw.php:932 msgid "LoTW .TQ8 Sent" -msgstr "" +msgstr "LoTW .TQ8 je poslat" #: application/controllers/Lotw.php:939 msgid "LoTW .TQ8 Not Sent" -msgstr "" +msgstr "LoTW .TQ8 nije poslat" #: application/controllers/Mode.php:25 #: application/views/interface_assets/header.php:272 #: application/views/mode/index.php:15 msgid "Modes" -msgstr "" +msgstr "Vrste rada" #: application/controllers/Mode.php:62 msgid "Edit Mode" -msgstr "" +msgstr "Uredi vrstu rada" -#: application/controllers/Notes.php:19 +#: application/controllers/Notes.php:18 #: application/views/interface_assets/header.php:128 #: application/views/notes/add.php:9 application/views/notes/edit.php:10 #: application/views/notes/main.php:5 application/views/notes/main.php:8 @@ -1363,21 +1374,21 @@ msgstr "" #: application/views/qso/index.php:541 application/views/qso/index.php:586 #: application/views/view_log/qso.php:14 application/views/view_log/qso.php:590 msgid "Notes" -msgstr "" +msgstr "Napomene" -#: application/controllers/Notes.php:38 +#: application/controllers/Notes.php:37 msgid "Add Notes" -msgstr "" +msgstr "Dodajte napomenu" -#: application/controllers/Notes.php:58 +#: application/controllers/Notes.php:64 #: application/views/oqrs/showrequests.php:88 msgid "Note" -msgstr "" +msgstr "Napomena" -#: application/controllers/Notes.php:79 application/views/notes/edit.php:7 +#: application/controllers/Notes.php:92 application/views/notes/edit.php:7 #: application/views/notes/view.php:19 msgid "Edit Note" -msgstr "" +msgstr "Uredite napomenu" #: application/controllers/Options.php:31 #: application/controllers/Options.php:41 @@ -1393,13 +1404,13 @@ msgstr "" #: application/controllers/Options.php:387 #: application/controllers/Options.php:397 msgid "Wavelog Options" -msgstr "" +msgstr "Opcije Waveloga" #: application/controllers/Options.php:42 #: application/controllers/Options.php:57 #: application/views/options/sidebar.php:4 msgid "Appearance" -msgstr "" +msgstr "Izgled" #: application/controllers/Options.php:78 #: application/controllers/Options.php:86 @@ -1409,152 +1420,152 @@ msgstr "" #: application/controllers/Options.php:118 #: application/controllers/Options.php:126 msgid "Options saved" -msgstr "" +msgstr "Opcije su sačuvane" #: application/controllers/Options.php:165 msgid "de continent changed to " -msgstr "" +msgstr "de kontinent promenjen u " #: application/controllers/Options.php:170 msgid "Maximum age of spots changed to " -msgstr "" +msgstr "Maksimalna starost spotova promenjena na " #: application/controllers/Options.php:175 msgid "DXCluster Cache URL changed to " -msgstr "" +msgstr "Keširanje URL DX klastera promenjeno na " #: application/controllers/Options.php:185 #: application/controllers/Options.php:196 msgid "Radio Settings" -msgstr "" +msgstr "Podešavanja radija" #: application/controllers/Options.php:217 msgid "Radio Timeout Warning changed to " -msgstr "" +msgstr "Upozorenje o neaktivnosti radija promenjeno na " #: application/controllers/Options.php:229 #: application/controllers/Options.php:240 #: application/views/options/sidebar.php:6 msgid "Email" -msgstr "" +msgstr "Email" #: application/controllers/Options.php:297 msgid "The settings were saved successfully." -msgstr "" +msgstr "Podešavanja su uspešno sačuvana." #: application/controllers/Options.php:299 msgid "Something went wrong with saving the settings. Try again." -msgstr "" +msgstr "Nešto nije bilo u redu sa čuvanjem podešavanja. Pokušajte ponovo." #: application/controllers/Options.php:310 #: application/controllers/Options.php:320 #: application/views/options/sidebar.php:8 msgid "OQRS Options" -msgstr "" +msgstr "Opcije OQRS" #: application/controllers/Options.php:333 msgid "OQRS options have been saved." -msgstr "" +msgstr "Opcije OQRS su sačuvane." #: application/controllers/Options.php:373 #: application/controllers/Options.php:378 msgid "Testmail failed. Something went wrong." -msgstr "" +msgstr "Testmail je bio neuspešan. Nešto nije u redu." #: application/controllers/Options.php:375 msgid "Testmail sent. Email settings seem to be correct." -msgstr "" +msgstr "Testmail je poslat. Izgleda da su email podešavanja u redu." #: application/controllers/Options.php:388 #: application/controllers/Options.php:398 msgid "Version Info Settings" -msgstr "" +msgstr "Podešavanja informacija o verziji" #: application/controllers/Options.php:404 msgid "Version Info Header changed to" -msgstr "" +msgstr "Zaglavlje informacije o verziji promenjeno u" #: application/controllers/Options.php:408 msgid "Version Info Mode changed to" -msgstr "" +msgstr "Mod informacije o verziji promenjen u" #: application/controllers/Options.php:413 msgid "Version Info Custom Text saved!" -msgstr "" +msgstr "Prilagođeni tekst informacije o verziji je sačuvan!" #: application/controllers/Options.php:424 msgid "Version Info will be shown to all users again" -msgstr "" +msgstr "Informacija o verziji će biti ponovo prikazana svim korisnicima" #: application/controllers/Options.php:432 msgid "Version Info will not be shown to any user" -msgstr "" +msgstr "Informacija o verziji neće biti prikazana nijednom korisniku" #: application/controllers/Oqrs.php:22 application/controllers/Oqrs.php:61 #: application/controllers/Oqrs.php:73 msgid "Log Search & OQRS" -msgstr "" +msgstr "Pretraga dnevnika i OQRS" #: application/controllers/Oqrs.php:104 #: application/views/interface_assets/header.php:413 msgid "OQRS Requests" -msgstr "" +msgstr "OQRS zahtevi" #: application/controllers/Qrbcalc.php:17 msgid "QRB Calculator" -msgstr "" +msgstr "QRB računar" #: application/controllers/Qrz.php:173 #: application/views/interface_assets/header.php:426 msgid "QRZ Logbook" -msgstr "" +msgstr "QRZ dnevnik" #: application/controllers/Qrz.php:253 msgid "QRZ QSL Import" -msgstr "" +msgstr "Uvoz QRZ QSL karata" #: application/controllers/Qrz.php:307 msgid "QRZ ADIF Information" -msgstr "" +msgstr "Informacija o QRZ ADIF" #: application/controllers/Qsl.php:25 application/views/dashboard/index.php:244 #: application/views/dashboard/index.php:261 #: application/views/qslcard/index.php:5 #: application/views/visitor/index.php:283 msgid "QSL Cards" -msgstr "" +msgstr "QSL karte" #: application/controllers/Qsl.php:35 msgid "Upload QSL Cards" -msgstr "" +msgstr "Učitavanje QSL karata" #: application/controllers/Qslmanagement.php:14 msgid "QSL Card Management" -msgstr "" +msgstr "Upravljanje QSL kartama" #: application/controllers/Qslprint.php:46 msgid "Print Requested QSLs" -msgstr "" +msgstr "Štampanje zahtevanih QSL karata" #: application/controllers/Qso.php:102 msgid "Add QSO" -msgstr "" +msgstr "Dodaj QSO" #: application/controllers/Radio.php:17 #: application/views/interface_assets/header.php:432 msgid "Hardware Interfaces" -msgstr "" +msgstr "Hardverski interfejs" #: application/controllers/Radio.php:47 application/views/bandmap/index.php:25 #: application/views/bandmap/list.php:60 #: application/views/contesting/index.php:92 #: application/views/qso/index.php:312 msgid "Radio" -msgstr "" +msgstr "Radio" #: application/controllers/Radio.php:50 msgid "Timestamp" -msgstr "" +msgstr "Vremenska oznaka" #: application/controllers/Radio.php:52 #: application/views/logbookadvanced/index.php:522 @@ -1565,21 +1576,21 @@ msgstr "" #: application/views/statistics/custom.php:31 #: application/views/statistics/custom_result.php:33 msgid "Options" -msgstr "" +msgstr "Opcije" #: application/controllers/Radio.php:90 #: application/views/contesting/index.php:96 #: application/views/qso/index.php:316 msgid "last updated" -msgstr "" +msgstr "posljednje ažuriranje" #: application/controllers/Radio.php:97 application/controllers/Radio.php:100 msgid "Set as default radio" -msgstr "" +msgstr "Postavite podrazumevani radio" #: application/controllers/Radio.php:102 msgid "Default (click to release)" -msgstr "" +msgstr "Podrazumevano (kliknite za objavu)" #: application/controllers/Radio.php:105 #: application/controllers/Stationsetup.php:372 @@ -1605,24 +1616,24 @@ msgstr "" #: application/views/themes/index.php:107 application/views/user/main.php:54 #: application/views/view_log/qso.php:613 msgid "Delete" -msgstr "" +msgstr "Obrišite" #: application/controllers/Radio.php:111 msgid "No CAT interfaced radios found." -msgstr "" +msgstr "Nisu pronađeni radio uređaji sa CAT interfejsom." #: application/controllers/Satellite.php:37 msgid "Create Satellite" -msgstr "" +msgstr "Kreiraj satelit" #: application/controllers/Satellite.php:60 msgid "Edit Satellite" -msgstr "" +msgstr "Uredi satelit" #: application/controllers/Sattimers.php:41 #, php-format msgid "You have no station locations. Go %s to create it!" -msgstr "" +msgstr "Nemate lokacija stanice. Idite %s da ih kreirate!" #: application/controllers/Sattimers.php:41 #: application/views/awards/counties/index.php:8 @@ -1634,12 +1645,12 @@ msgstr "" #: application/views/dashboard/index.php:82 #: application/views/simplefle/index.php:16 msgid "here" -msgstr "" +msgstr "ovde" #: application/controllers/Sattimers.php:44 #: application/views/sattimers/index.php:13 msgid "Satellite Timers" -msgstr "" +msgstr "Satelitski tajmer" #: application/controllers/Search.php:19 #: application/views/continents/index.php:49 @@ -1666,17 +1677,19 @@ msgstr "Pretraga" #: application/controllers/Search.php:28 msgid "Search & Filter Logbook" -msgstr "" +msgstr "Pretraga i filter dnevnika" #: application/controllers/Search.php:58 msgid "Incorrectly logged CQ zones" -msgstr "" +msgstr "Netačno upisane CQ zone" #: application/controllers/Search.php:70 msgid "" "QSOs unconfirmed on LoTW, but the callsign has uploaded to LoTW after QSO " "date" msgstr "" +"QSO koji nisu potvrđeni na LoTW, ali su pozivni znakovi imali učitavanje na " +"LoTW nakon datuma QSOa" #: application/controllers/Station.php:35 #: application/controllers/Station.php:78 application/views/csv/index.php:19 @@ -1692,33 +1705,33 @@ msgstr "" #: application/views/view_log/qso.php:9 application/views/webadif/export.php:75 #: application/views/webadif/export.php:115 msgid "Station Location" -msgstr "" +msgstr "Lokacija stanice" #: application/controllers/Station.php:55 #: application/controllers/Stationsetup.php:226 msgid "Create Station Location" -msgstr "" +msgstr "Kreiraj lokaciju stanice" #: application/controllers/Station.php:70 msgid "Edit Station Location: " -msgstr "" +msgstr "Uredi lokaciju stanice: " #: application/controllers/Station.php:92 msgid "Duplicate Station Location:" -msgstr "" +msgstr "Napravi duplikat lokacije stanice:" #: application/controllers/Stationsetup.php:35 #: application/views/interface_assets/header.php:377 #: application/views/interface_assets/header.php:488 msgid "Station Setup" -msgstr "" +msgstr "Podešavanje stanice" #: application/controllers/Stationsetup.php:50 #: application/controllers/Stationsetup.php:68 #: application/controllers/Stationsetup.php:395 #: application/controllers/Stationsetup.php:409 msgid "Not allowed" -msgstr "" +msgstr "Nije dozvoljeno" #: application/controllers/Stationsetup.php:72 #: application/controllers/Stationsetup.php:86 @@ -1729,28 +1742,28 @@ msgstr "" #: application/controllers/Stationsetup.php:436 #: application/views/qso/index.php:608 msgid "Error" -msgstr "" +msgstr "Greška" #: application/controllers/Stationsetup.php:159 #: application/views/stationsetup/stationsetup.php:22 msgid "Create Station Logbook" -msgstr "" +msgstr "Kreiraj stanični dnevnik" #: application/controllers/Stationsetup.php:166 msgid "Edit container name" -msgstr "" +msgstr "Uredi ime spremišta" #: application/controllers/Stationsetup.php:181 msgid "Edit linked locations" -msgstr "" +msgstr "Uredi povezane lokacije" #: application/controllers/Stationsetup.php:190 msgid "Edit visitor site" -msgstr "" +msgstr "Uredi mjesto posjetioca" #: application/controllers/Stationsetup.php:212 msgid "Error. Link is already in use!" -msgstr "" +msgstr "Greška. Veza je već u upotrebi!" #: application/controllers/Stationsetup.php:253 #: application/views/options/appearance.php:57 @@ -1765,19 +1778,19 @@ msgstr "" #: application/views/stationsetup/stationsetup.php:76 #: application/views/user/edit.php:451 application/views/user/edit.php:460 msgid "Disabled" -msgstr "" +msgstr "Onemogućeno" #: application/controllers/Stationsetup.php:261 #: application/views/stationsetup/stationsetup.php:44 msgid "Set as Active Logbook" -msgstr "" +msgstr "Postavi kao aktivni dnevnik" #: application/controllers/Stationsetup.php:263 #: application/views/interface_assets/header.php:486 #: application/views/stationsetup/stationsetup.php:46 #: application/views/view_log/index.php:4 msgid "Active Logbook" -msgstr "" +msgstr "Aktivni dnevnik" #: application/controllers/Stationsetup.php:270 #: application/views/stationsetup/stationsetup.php:55 @@ -1785,15 +1798,17 @@ msgid "" "Are you sure you want to delete the following station logbook? You must re-" "link any locations linked here to another logbook.: " msgstr "" +"Da li ste sigurni da želite obrisati sledeći stanični dnevnik? Moraćete " +"ponovo povezati bilo koju lokaciju iz ovog dnevnika u drugi dnevnik.: " #: application/controllers/Stationsetup.php:280 #: application/views/stationsetup/stationsetup.php:65 msgid "View Public Page for Logbook: " -msgstr "" +msgstr "Pogledaj javnu stranicu dnevnika: " #: application/controllers/Stationsetup.php:281 msgid "Are you sure you want to delete the public slug?" -msgstr "" +msgstr "Da li ste sigurni da želite obrisati javni žeton?" #: application/controllers/Stationsetup.php:349 #: application/views/station_profile/index.php:69 @@ -1801,18 +1816,19 @@ msgstr "" msgid "" "Are you sure you want to make the following station the active station: " msgstr "" +"Da li ste sigurni da želite označiti sledeću stanicu kao aktivnu stanicu: " #: application/controllers/Stationsetup.php:349 #: application/views/station_profile/index.php:69 #: application/views/stationsetup/stationsetup.php:154 msgid "Set Active" -msgstr "" +msgstr "Postavite aktivnom" #: application/controllers/Stationsetup.php:351 #: application/views/station_profile/index.php:71 #: application/views/stationsetup/stationsetup.php:156 msgid "Active Station" -msgstr "" +msgstr "Aktivna stanica" #: application/controllers/Stationsetup.php:354 #: application/views/interface_assets/header.php:113 @@ -1822,7 +1838,7 @@ msgstr "" #: application/views/stationsetup/stationsetup.php:161 #: application/views/user/main.php:87 application/views/user/main.php:89 msgid "QSO" -msgstr "" +msgstr "QSO" #: application/controllers/Stationsetup.php:359 #: application/views/api/help.php:57 application/views/contesting/add.php:59 @@ -1840,13 +1856,14 @@ msgstr "" #: application/views/stationsetup/stationsetup.php:165 #: application/views/themes/index.php:104 application/views/user/main.php:52 msgid "Edit" -msgstr "" +msgstr "Uredite" #: application/controllers/Stationsetup.php:363 #: application/views/station_profile/index.php:99 #: application/views/stationsetup/stationsetup.php:185 msgid "Are you sure you want to delete all QSOs within this station profile?" msgstr "" +"Da li ste sigurni da želite obrisati sve QSO unutar profila ove stanice?" #: application/controllers/Stationsetup.php:363 #: application/views/station_profile/index.php:54 @@ -1854,7 +1871,7 @@ msgstr "" #: application/views/stationsetup/stationsetup.php:136 #: application/views/stationsetup/stationsetup.php:187 msgid "Empty Log" -msgstr "" +msgstr "Ispraznite dnevnik" #: application/controllers/Stationsetup.php:367 #: application/views/station_profile/index.php:47 @@ -1862,7 +1879,7 @@ msgstr "" #: application/views/stationsetup/stationsetup.php:129 #: application/views/stationsetup/stationsetup.php:168 msgid "Copy" -msgstr "" +msgstr "Kopirajte" #: application/controllers/Stationsetup.php:372 #: application/views/station_profile/index.php:105 @@ -1872,142 +1889,146 @@ msgid "" "Are you sure you want delete station profile '%s'? This will delete all QSOs " "within this station profile." msgstr "" +"Da li ste sigurni da želite obrisati profil stanice '%s'? Ovo će obrisati " +"sve QSO unutar profila ove stanice." #: application/controllers/Stationsetup.php:379 #: application/views/qso/edit_ajax.php:221 msgid "NONE" -msgstr "" +msgstr "NIŠTA" #: application/controllers/Stationsetup.php:462 msgid "Edit Export Map options" -msgstr "" +msgstr "Uredite opcije za izvoz mape" #: application/controllers/Statistics.php:27 #: application/views/interface_assets/header.php:134 msgid "Statistics" -msgstr "" +msgstr "Statistika" #: application/controllers/Statistics.php:50 msgid "Custom Statistics" -msgstr "" +msgstr "Prilagođena statistika" #: application/controllers/Statistics.php:232 #: application/views/interface_assets/header.php:136 #: application/views/statistics/qsltable.php:5 msgid "QSL Statistics" -msgstr "" +msgstr "Statistika QSL karata" #: application/controllers/Themes.php:27 #: application/views/interface_assets/header.php:278 msgid "Themes" -msgstr "" +msgstr "Teme" #: application/controllers/Themes.php:46 msgid "Create Theme" -msgstr "" +msgstr "Kreiraj temu" #: application/controllers/Themes.php:65 msgid "Edit Theme" -msgstr "" +msgstr "Uredi temu" #: application/controllers/Timeline.php:17 #: application/views/interface_assets/header.php:148 #: application/views/timeline/index.php:2 msgid "Timeline" -msgstr "" +msgstr "Vremenska linija" #: application/controllers/Timeplotter.php:17 #: application/views/interface_assets/header.php:152 #: application/views/timeplotter/index.php:9 msgid "Timeplotter" -msgstr "" +msgstr "Crtanje vremenske linije" #: application/controllers/Update.php:26 msgid "Updates" -msgstr "" +msgstr "Ažuriranja" #: application/controllers/Update.php:78 msgid "Preparing DXCC-Entries: " -msgstr "" +msgstr "Priprema DXCC unosa: " #: application/controllers/Update.php:122 msgid "Preparing DXCC Exceptions: " -msgstr "" +msgstr "Priprema DXCC izuzetaka: " #: application/controllers/Update.php:166 msgid "Preparing DXCC Prefixes: " -msgstr "" +msgstr "Priprema DXCC prefiksa: " #: application/controllers/Update.php:230 msgid "DONE" -msgstr "" +msgstr "URAĐENO" #: application/controllers/Update.php:244 msgid "Updating..." -msgstr "" +msgstr "Ažuriram..." #: application/controllers/Update.php:247 msgid "Dxcc Entities:" -msgstr "" +msgstr "DXCC entiteta:" #: application/controllers/Update.php:248 msgid "Dxcc Exceptions:" -msgstr "" +msgstr "DXCC izuzetaka:" #: application/controllers/Update.php:249 msgid "Dxcc Prefixes:" -msgstr "" +msgstr "DXCC prefiksa:" #: application/controllers/User.php:12 #: application/views/interface_assets/header.php:268 msgid "User Accounts" -msgstr "" +msgstr "Korisnički nalozi" #: application/controllers/User.php:52 msgid "Add User" -msgstr "" +msgstr "Dodaj korisnika" #: application/controllers/User.php:166 msgid "Users" -msgstr "" +msgstr "Korisnici" #: application/controllers/User.php:240 application/controllers/User.php:673 msgid "Edit User" -msgstr "" +msgstr "Uredi korisnika" #: application/controllers/User.php:665 application/controllers/User.php:668 #: application/views/user/main.php:3 application/views/user/main.php:46 msgid "User" -msgstr "" +msgstr "Korisnik" #: application/controllers/User.php:665 application/controllers/User.php:668 msgid "edited" -msgstr "" +msgstr "uređeno" #: application/controllers/User.php:722 msgid "Profile" -msgstr "" +msgstr "Profil" #: application/controllers/User.php:779 msgid "" "Congrats! Wavelog was successfully installed. You can now login for the " "first time." msgstr "" +"Čestitamo! Wavelog je uspešno instaliran. Sada se možete prijaviti po prvi " +"put." #: application/controllers/User.php:843 application/controllers/User.php:853 msgid "Login failed. Try again." -msgstr "" +msgstr "Prijava nije uspela. Pokušajte ponovo." #: application/controllers/User.php:860 #: application/views/interface_assets/header.php:356 #: application/views/user/login.php:89 #: application/views/visitor/layout/header.php:88 msgid "Login" -msgstr "" +msgstr "Prijava" #: application/controllers/User.php:868 msgid "User logged in" -msgstr "" +msgstr "Korisnik je prijavljen" #: application/controllers/User.php:899 msgid "" @@ -2015,38 +2036,42 @@ msgid "" "appears unexpectedly or keeps showing up, please contact an administrator. " "Only administrators are currently allowed to log in." msgstr "" +"Žao nam je. Ovaj primerak je trenutno u modu održavanja. Ako se ova poruka " +"pojavila neočekivano, ili nastavi da se pojavljuje, molimo vas da " +"kontaktirate administratora. Trenutno je prijava dozvoljena samo " +"administratorima." #: application/controllers/User.php:902 msgid "Incorrect username or password!" -msgstr "" +msgstr "Neispravno korisničko ime ili lozinka!" #: application/controllers/User.php:919 #, php-format msgid "User %s logged out." -msgstr "" +msgstr "Korisnik %s se odjavio." #: application/controllers/User.php:933 msgid "Password Reset is disabled on the Demo!" -msgstr "" +msgstr "Reset lozinke je onemogućen u Demo verziji!" #: application/controllers/User.php:946 msgid "Forgot Password" -msgstr "" +msgstr "Zaboravljena lozinka" #: application/controllers/User.php:996 application/views/user/main.php:8 msgid "Email settings are incorrect." -msgstr "" +msgstr "Email podešavanja nisu ispravna." #: application/controllers/User.php:1000 application/controllers/User.php:1005 msgid "Password Reset Processed." -msgstr "" +msgstr "Reset lozinke je obrađen." #: application/controllers/User.php:1107 #: application/views/user/forgot_password.php:51 #: application/views/user/reset_password.php:8 #: application/views/user/reset_password.php:35 msgid "Reset Password" -msgstr "" +msgstr "Reset lozinke" #: application/controllers/Visitor.php:50 #: application/controllers/Visitor.php:79 @@ -2056,7 +2081,7 @@ msgstr "" #: application/controllers/Visitor.php:478 #: application/controllers/Widgets.php:40 msgid "Unknown Public Page." -msgstr "" +msgstr "Nepoznata javna stranica." #: application/controllers/Visitor.php:74 #: application/controllers/Visitor.php:165 @@ -2064,122 +2089,129 @@ msgstr "" #: application/controllers/Visitor.php:474 #: application/controllers/Widgets.php:36 msgid "Empty Logbook" -msgstr "" +msgstr "Prazan dnevnik" #: application/controllers/Visitor.php:205 msgid "Satellite Gridsquare Map" -msgstr "" +msgstr "Satelitska mapa polja" #: application/controllers/Visitor.php:411 #: application/views/stationsetup/stationsetup.php:35 msgid "Public Search" -msgstr "" +msgstr "Javna pretraga" #: application/controllers/Visitor.php:444 msgid "Export Map" -msgstr "" +msgstr "Izvoz mape" #: application/controllers/Webadif.php:90 #: application/controllers/Webadif.php:137 #: application/views/interface_assets/header.php:427 msgid "QO-100 Dx Club Upload" -msgstr "" +msgstr "Učitavanje na QO-100 DX Club" #: application/controllers/Widgets.php:21 msgid "Unknown Public Page, please make sure the public slug is correct." msgstr "" +"Nepoznata javna stranica, molimo vas da se uvjerite da je javni žeton tačan." #: application/controllers/Widgets.php:54 application/views/oqrs/index.php:69 msgid "No stations found that are using Wavelog OQRS." -msgstr "" +msgstr "Nisu pronađene stanice koje koriste Wavelog OQRS." #: application/models/Eqslmethods_model.php:281 msgid "Your eQSL username and/or password is incorrect." -msgstr "" +msgstr "Vaše eQSL korisničko ime i/ili lozinka nisu ispravni." #: application/models/Eqslmethods_model.php:287 msgid "Something went wrong with eQSL.cc!" -msgstr "" +msgstr "Nešto nije u redu sa eQSL.cc!" #: application/models/Eqslmethods_model.php:303 msgid "eQSL.cc is experiencing issues. Please try exporting QSOs later." msgstr "" +"eQSL.cc trenutno ispoljava neke probleme. Molimo pokušajte izvoz QSO kasnije." #: application/models/Eqslmethods_model.php:309 msgid "" "There was an error in one of the QSOs. You might want to manually upload " "them." msgstr "" +"Postojala je greška u jednoj od QSO. Možda želite da izvršite ručno " +"učitavanje." #: application/models/Eqslmethods_model.php:315 msgid "" "It seems that the eQSL site has changed. Please open up an issue on GitHub." msgstr "" +"Izgleda da je došlo do promene eQSL mesta. Molimo da pokrenete rešenje " +"problema na GitHubu." #: application/models/Hrdlog_model.php:22 msgid "" "HRDlog: QSOs have been uploaded to hrdlog.net for the station callsign: " -msgstr "" +msgstr "HRDlog: QSO su učitani na hrdlog.net za pozivni znak stanice: " #: application/models/Hrdlog_model.php:25 msgid "HRDlog: No QSOs found to upload for the station callsign: " -msgstr "" +msgstr "HRDLog: Nisu pronađeni QSO za učitavanje za pozivni znak stanice: " #: application/models/Hrdlog_model.php:31 msgid "HRDlog: No station profiles with HRDlog Credentials found." msgstr "" +"HRDlog: Nisu pronađeni profili stanice sa odgovarajućim HRDlog akreditivima." -#: application/models/Logbook_model.php:4129 +#: application/models/Logbook_model.php:4143 msgid "QSO could not be matched" msgstr "" -#: application/models/Logbook_model.php:4135 +#: application/models/Logbook_model.php:4149 msgid "confirmed by LoTW/Clublog/eQSL/Contest" msgstr "" -#: application/models/Logbook_model.php:4140 +#: application/models/Logbook_model.php:4154 msgid "confirmed by award manager" -msgstr "" +msgstr "potvrđeno od strane menadžera za diplome" -#: application/models/Logbook_model.php:4143 +#: application/models/Logbook_model.php:4157 msgid "confirmed by cross-check of DCL data" -msgstr "" +msgstr "potvrđeno unakrsnom proverom DCL podataka" -#: application/models/Logbook_model.php:4146 +#: application/models/Logbook_model.php:4160 msgid "confirmation pending" -msgstr "" +msgstr "čeka potvrđivanje" -#: application/models/Logbook_model.php:4149 +#: application/models/Logbook_model.php:4163 msgid "unconfirmed" -msgstr "" +msgstr "nepotvrđeno" -#: application/models/Logbook_model.php:4152 +#: application/models/Logbook_model.php:4166 msgid "unknown" -msgstr "" +msgstr "nepoznato" #: application/views/accumulate/index.php:2 msgid "Accumulated number of DXCCs worked" -msgstr "" +msgstr "Ukupan broj rađenih DXCC" #: application/views/accumulate/index.php:3 msgid "Accumulated number of States worked" -msgstr "" +msgstr "Ukupan broj rađenih pokrajina" #: application/views/accumulate/index.php:4 msgid "Accumulated number of IOTAs worked" -msgstr "" +msgstr "Ukupan broj rađenih IOTA" #: application/views/accumulate/index.php:5 msgid "Accumulated number of CQ Zones worked" -msgstr "" +msgstr "Ukupan broj rađenih CQ Zona" #: application/views/accumulate/index.php:6 msgid "Accumulated number of VUCC Grids worked" -msgstr "" +msgstr "Ukupan broj rađenih VUCC polja" #: application/views/accumulate/index.php:7 msgid "Accumulated number of WAJA worked" -msgstr "" +msgstr "Ukupan broj rađenih WAJA" #: application/views/accumulate/index.php:8 #: application/views/dashboard/index.php:222 @@ -2187,27 +2219,27 @@ msgstr "" #: application/views/statistics/index.php:18 #: application/views/visitor/index.php:246 msgid "Year" -msgstr "" +msgstr "Godina" #: application/views/accumulate/index.php:9 #: application/views/accumulate/index.php:67 msgid "Yearly" -msgstr "" +msgstr "Godišnje" #: application/views/accumulate/index.php:10 #: application/views/dashboard/index.php:227 #: application/views/visitor/index.php:251 msgid "Month" -msgstr "" +msgstr "Mesec" #: application/views/accumulate/index.php:11 #: application/views/accumulate/index.php:73 msgid "Monthly" -msgstr "" +msgstr "Mesečno" #: application/views/accumulate/index.php:12 msgid "Difference" -msgstr "" +msgstr "Razlika" #: application/views/accumulate/index.php:24 #: application/views/accumulate/index.php:34 @@ -2293,41 +2325,41 @@ msgstr "" #: application/views/user/edit.php:633 #: application/views/visitor/layout/footer.php:170 msgid "All" -msgstr "" +msgstr "Sve" #: application/views/accumulate/index.php:50 #: application/views/timeline/index.php:41 msgid "Award" -msgstr "" +msgstr "Diploma" #: application/views/accumulate/index.php:53 #: application/views/timeline/index.php:44 msgid "DX Century Club (DXCC)" -msgstr "" +msgstr "DX Century Club (DXCC)" #: application/views/accumulate/index.php:55 #: application/views/timeline/index.php:46 msgid "Islands On The Air (IOTA)" -msgstr "" +msgstr "Islands On The Air (IOTA)" #: application/views/accumulate/index.php:56 #: application/views/timeline/index.php:47 msgid "Worked All Zones (WAZ)" -msgstr "" +msgstr "Worked All Zone (WAZ)" #: application/views/accumulate/index.php:57 #: application/views/timeline/index.php:48 msgid "VHF / UHF Century Club (VUCC)" -msgstr "" +msgstr "VHF / UHF Century Club (VUCC)" #: application/views/accumulate/index.php:58 #: application/views/timeline/index.php:49 msgid "Worked All Japan (WAJA)" -msgstr "" +msgstr "Worked All Japan (WAJA)" #: application/views/accumulate/index.php:62 msgid "Period" -msgstr "" +msgstr "Period" #: application/views/accumulate/index.php:83 #: application/views/activators/index.php:50 @@ -2354,7 +2386,7 @@ msgstr "" #: application/views/timeline/index.php:270 #: application/views/timeplotter/index.php:59 msgid "Show" -msgstr "" +msgstr "Prikaži" #: application/views/activated_gridmap/index.php:20 #: application/views/awards/dxcc/index.php:131 @@ -2369,7 +2401,7 @@ msgstr "" #: application/views/sattimers/index.php:38 #: application/views/statistics/index.php:112 msgid "Satellite" -msgstr "" +msgstr "Satelit" #: application/views/activated_gridmap/index.php:30 #: application/views/awards/dxcc/index.php:147 @@ -2381,14 +2413,14 @@ msgstr "" #: application/views/satellite/edit.php:19 #: application/views/satellite/index.php:23 msgid "Orbit" -msgstr "" +msgstr "Orbita" #: application/views/activated_gridmap/index.php:50 #: application/views/awards/wab/index.php:64 #: application/views/gridmap/index.php:92 #: application/views/timeline/index.php:52 msgid "Confirmation" -msgstr "" +msgstr "Potvrda" #: application/views/activated_gridmap/index.php:82 #: application/views/awards/cq/index.php:66 @@ -2403,18 +2435,18 @@ msgstr "" #: application/views/awards/was/index.php:65 #: application/views/gridmap/index.php:125 application/views/user/edit.php:675 msgid "QRZ.com" -msgstr "" +msgstr "QRZ.com" #: application/views/activated_gridmap/index.php:86 #: application/views/gridmap/index.php:130 #: application/views/satellite/flightpath.php:42 msgid "Plot" -msgstr "" +msgstr "Nacrtaj" #: application/views/activated_gridmap/index.php:87 #: application/views/gridmap/index.php:131 msgid "Clear Markers" -msgstr "" +msgstr "Obriši markere" #: application/views/activated_gridmap/index.php:102 #: application/views/awards/ffma/index.php:30 @@ -2422,7 +2454,7 @@ msgstr "" #: application/views/gridmap/index.php:148 #: application/views/logbookadvanced/index.php:8 msgid "Latitude" -msgstr "" +msgstr "Geografska širina" #: application/views/activated_gridmap/index.php:104 #: application/views/awards/ffma/index.php:32 @@ -2430,7 +2462,7 @@ msgstr "" #: application/views/gridmap/index.php:150 #: application/views/logbookadvanced/index.php:9 msgid "Longitude" -msgstr "" +msgstr "Geografska dužina" #: application/views/activated_gridmap/index.php:110 #: application/views/awards/ffma/index.php:38 @@ -2438,16 +2470,16 @@ msgstr "" #: application/views/gridmap/index.php:156 #: application/views/logbookadvanced/index.php:12 msgid "Bearing" -msgstr "" +msgstr "Smer" #: application/views/activators/index.php:23 msgctxt "Orbiter LEO or GEO" msgid "Both" -msgstr "" +msgstr "Oboje" #: application/views/activators/index.php:30 msgid "Minimum Count" -msgstr "" +msgstr "Minimalan broj" #: application/views/activators/index.php:73 #: application/views/awards/counties/details.php:27 @@ -2471,7 +2503,7 @@ msgstr "" #: application/views/public_search/empty.php:3 #: application/views/qrz/export.php:64 application/views/timeline/index.php:102 msgid "Nothing found!" -msgstr "" +msgstr "Ništa nije pronađeno!" #: application/views/activators/index.php:95 #: application/views/adif/import.php:66 application/views/adif/import.php:172 @@ -2513,7 +2545,7 @@ msgstr "Pozivni znak" #: application/views/activators/index.php:96 msgid "Count" -msgstr "" +msgstr "Broj" #: application/views/activators/index.php:98 #: application/views/timeline/index.php:121 @@ -2523,43 +2555,43 @@ msgstr "" #: application/views/timeline/index.php:232 #: application/views/timeline/index.php:258 msgid "Show QSO's" -msgstr "" +msgstr "Prikaži QSOe" #: application/views/activators/index.php:99 msgid "Show Map" -msgstr "" +msgstr "Prikaži mapu" #: application/views/adif/dcl_success.php:12 msgid "Results of DCL DOK Update" -msgstr "" +msgstr "Rezultati DCL DOK ažuriranja" #: application/views/adif/dcl_success.php:17 msgid "DCL information for DOKs has been updated." -msgstr "" +msgstr "DCL informacije za DOKove su ažurirane." #: application/views/adif/dcl_success.php:19 msgid "No QSOs found which could be updated." -msgstr "" +msgstr "Nisu pronađeni QSO koji mogu biti ažurirani." #: application/views/adif/dcl_success.php:22 msgid "QSOs ignored" -msgstr "" +msgstr "Zanemareni QSO" #: application/views/adif/dcl_success.php:22 msgid "QSOs unmatched" -msgstr "" +msgstr "QSO koji se ne poklapaju" #: application/views/adif/dcl_success.php:22 msgid "QSOs updated" -msgstr "" +msgstr "QSO ažurirani" #: application/views/adif/dcl_success.php:25 msgid "DOK Errors" -msgstr "" +msgstr "DOK greške" #: application/views/adif/dcl_success.php:26 msgid "There is different data for DOK in your log compared to DCL" -msgstr "" +msgstr "U poređenju sa DCL, u vašem logu postoje različiti DOK podaci" #: application/views/adif/dcl_success.php:29 #: application/views/awards/pota/index.php:32 @@ -2601,7 +2633,7 @@ msgstr "" #: application/views/visitor/index.php:147 #: application/views/widgets/qsos.php:24 msgid "Date" -msgstr "" +msgstr "Datum" #: application/views/adif/dcl_success.php:30 #: application/views/awards/pota/index.php:33 @@ -2631,7 +2663,7 @@ msgstr "" #: application/views/visitor/index.php:150 #: application/views/widgets/qsos.php:26 msgid "Time" -msgstr "" +msgstr "Vreme" #: application/views/adif/dcl_success.php:31 #: application/views/awards/vucc/band.php:18 @@ -2652,23 +2684,23 @@ msgstr "" #: application/views/visitor/index.php:152 #: application/views/widgets/qsos.php:28 msgid "Call" -msgstr "" +msgstr "Pozivni znak" #: application/views/adif/dcl_success.php:34 msgid "DOK in Log" -msgstr "" +msgstr "DOK u dnevniku" #: application/views/adif/dcl_success.php:35 msgid "DOK in DCL" -msgstr "" +msgstr "DOK u DCL" #: application/views/adif/dcl_success.php:36 msgid "DCL QSL Status" -msgstr "" +msgstr "Status DCL QSL" #: application/views/adif/import.php:36 application/views/adif/import.php:242 msgid "DARC DCL" -msgstr "" +msgstr "DARC DCL" #: application/views/adif/import.php:55 #: application/views/dashboard/index.php:97 @@ -2677,15 +2709,15 @@ msgstr "" #: application/views/eqsl/import.php:45 application/views/lotw/import.php:25 #: application/views/lotw_views/index.php:4 msgid "Important" -msgstr "" +msgstr "Važno" #: application/views/adif/import.php:55 msgid "Log Files must have the file type *.adi" -msgstr "" +msgstr "Datoteke dnevnika moraju biti vrste *.adi" #: application/views/adif/import.php:56 application/views/view_log/qso.php:622 msgid "Maximum file upload size is " -msgstr "" +msgstr "Maksimalna veličina datoteke za učitavanje je " #: application/views/adif/import.php:56 application/views/adif/import.php:220 #: application/views/adif/import.php:258 application/views/debug/index.php:175 @@ -2700,27 +2732,27 @@ msgstr "" #: application/views/webadif/export.php:34 #: application/views/webadif/export.php:94 msgid "Warning" -msgstr "" +msgstr "Upozorenje" #: application/views/adif/import.php:60 application/views/adif/import.php:62 #: application/views/adif/import.php:168 application/views/adif/import.php:215 #: application/views/eqsl/import.php:36 application/views/hrdlog/export.php:69 #: application/views/qrz/export.php:89 application/views/webadif/export.php:89 msgid "Select Station Location" -msgstr "" +msgstr "Izaberite lokaciju stanice" #: application/views/adif/import.php:69 msgid "Add QSOs to Contest" -msgstr "" +msgstr "Dodajte QSO u takmičenje" #: application/views/adif/import.php:71 #: application/views/simplefle/index.php:82 msgid "No Contest" -msgstr "" +msgstr "Nema takmičenja" #: application/views/adif/import.php:77 msgid "ADIF File" -msgstr "" +msgstr "ADIF datoteka" #: application/views/adif/import.php:84 msgid "Import duplicate QSOs" diff --git a/application/locale/sv_SE/LC_MESSAGES/messages.po b/application/locale/sv_SE/LC_MESSAGES/messages.po index 042ad94c7..7d4300b64 100644 --- a/application/locale/sv_SE/LC_MESSAGES/messages.po +++ b/application/locale/sv_SE/LC_MESSAGES/messages.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: translations@wavelog.org\n" -"POT-Creation-Date: 2024-08-13 19:24+0000\n" +"POT-Creation-Date: 2024-08-14 18:08+0000\n" "PO-Revision-Date: 2024-07-09 13:26+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Swedish \n" "Language-Team: Turkish \n" "Language-Team: Chinese (Simplified) \n" @@ -402,11 +402,11 @@ msgstr "ITU 分区" msgid "Backup" msgstr "备份" -#: application/controllers/Backup.php:48 +#: application/controllers/Backup.php:50 msgid "ADIF - Backup" msgstr "ADIF - 备份" -#: application/controllers/Backup.php:80 +#: application/controllers/Backup.php:84 msgid "Notes - Backup" msgstr "笔记 - 备份" @@ -1353,7 +1353,7 @@ msgstr "模式" msgid "Edit Mode" msgstr "编辑模式" -#: application/controllers/Notes.php:19 +#: application/controllers/Notes.php:18 #: application/views/interface_assets/header.php:128 #: application/views/notes/add.php:9 application/views/notes/edit.php:10 #: application/views/notes/main.php:5 application/views/notes/main.php:8 @@ -1365,16 +1365,16 @@ msgstr "编辑模式" msgid "Notes" msgstr "笔记" -#: application/controllers/Notes.php:38 +#: application/controllers/Notes.php:37 msgid "Add Notes" msgstr "添加笔记" -#: application/controllers/Notes.php:58 +#: application/controllers/Notes.php:64 #: application/views/oqrs/showrequests.php:88 msgid "Note" msgstr "注解" -#: application/controllers/Notes.php:79 application/views/notes/edit.php:7 +#: application/controllers/Notes.php:92 application/views/notes/edit.php:7 #: application/views/notes/view.php:19 msgid "Edit Note" msgstr "编辑笔记" @@ -2131,31 +2131,31 @@ msgstr "HRDlog:无 QSO 可供上传,台站呼号为: " msgid "HRDlog: No station profiles with HRDlog Credentials found." msgstr "HRDlog:无台站配置信息。" -#: application/models/Logbook_model.php:4129 +#: application/models/Logbook_model.php:4143 msgid "QSO could not be matched" msgstr "QSO 无法匹配" -#: application/models/Logbook_model.php:4135 +#: application/models/Logbook_model.php:4149 msgid "confirmed by LoTW/Clublog/eQSL/Contest" msgstr "已经通过 LoTW/Clublog/eQSL/竞赛 确认" -#: application/models/Logbook_model.php:4140 +#: application/models/Logbook_model.php:4154 msgid "confirmed by award manager" msgstr "已经通过奖项管理员确认" -#: application/models/Logbook_model.php:4143 +#: application/models/Logbook_model.php:4157 msgid "confirmed by cross-check of DCL data" msgstr "已经通过 DCL 数据交叉检查确认" -#: application/models/Logbook_model.php:4146 +#: application/models/Logbook_model.php:4160 msgid "confirmation pending" msgstr "等待确认" -#: application/models/Logbook_model.php:4149 +#: application/models/Logbook_model.php:4163 msgid "unconfirmed" msgstr "未确认" -#: application/models/Logbook_model.php:4152 +#: application/models/Logbook_model.php:4166 msgid "unknown" msgstr "未知" @@ -2371,7 +2371,7 @@ msgstr "显示" #: application/views/sattimers/index.php:38 #: application/views/statistics/index.php:112 msgid "Satellite" -msgstr "卫星(Satellite)" +msgstr "卫星" #: application/views/activated_gridmap/index.php:30 #: application/views/awards/dxcc/index.php:147 @@ -5169,7 +5169,7 @@ msgstr "您没有日志本。单击%s执行此操作:" #, php-format msgid "You have had %d QSO today" msgid_plural "You have had %d QSOs today" -msgstr[0] "你今天有%d个QSO" +msgstr[0] "你今天有 %d 个QSO" #: application/views/dashboard/index.php:97 msgid "You have made no QSOs today; time to turn on the radio!" diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index ecb81b937..34375019e 100644 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -1707,46 +1707,49 @@ class Logbook_model extends CI_Model { } function get_qsos_for_printing($station_id2 = null) { + $binding=[]; + $this->load->model('stations'); + $station_id = $this->stations->find_active(); - $this->load->model('stations'); - $station_id = $this->stations->find_active(); + $sql = 'SELECT + STATION_CALLSIGN, + COL_PRIMARY_KEY, + COL_CALL, + COL_QSL_VIA, + COL_TIME_ON, + COL_MODE, + COL_SUBMODE, + COL_FREQ, + UPPER(COL_BAND) as COL_BAND, + COL_RST_SENT, + COL_SAT_NAME, + COL_SAT_MODE, + COL_QSL_RCVD, + COL_COMMENT, + (select adif from dxcc_prefixes where (CASE WHEN COL_QSL_VIA != \'\' THEN COL_QSL_VIA ELSE COL_CALL END) like concat(dxcc_prefixes.`call`,\'%\') order by end limit 1) as ADIF, + (select entity from dxcc_prefixes where (CASE WHEN COL_QSL_VIA != \'\' THEN COL_QSL_VIA ELSE COL_CALL END) like concat(dxcc_prefixes.`call`,\'%\') order by end limit 1) as ENTITY, + (CASE WHEN COL_QSL_VIA != \'\' THEN COL_QSL_VIA ELSE COL_CALL END) AS COL_ROUTING + FROM '.$this->config->item('table_name').' thcv + join station_profile on thcv.station_id = station_profile.station_id + WHERE + COL_QSL_SENT in (\'R\', \'Q\')'; - $sql = 'SELECT - STATION_CALLSIGN, - COL_PRIMARY_KEY, - COL_CALL, - COL_QSL_VIA, - COL_TIME_ON, - COL_MODE, - COL_SUBMODE, - COL_FREQ, - UPPER(COL_BAND) as COL_BAND, - COL_RST_SENT, - COL_SAT_NAME, - COL_SAT_MODE, - COL_QSL_RCVD, - COL_COMMENT, - (select adif from dxcc_prefixes where (CASE WHEN COL_QSL_VIA != \'\' THEN COL_QSL_VIA ELSE COL_CALL END) like concat(dxcc_prefixes.`call`,\'%\') order by end limit 1) as ADIF, - (select entity from dxcc_prefixes where (CASE WHEN COL_QSL_VIA != \'\' THEN COL_QSL_VIA ELSE COL_CALL END) like concat(dxcc_prefixes.`call`,\'%\') order by end limit 1) as ENTITY, - (CASE WHEN COL_QSL_VIA != \'\' THEN COL_QSL_VIA ELSE COL_CALL END) AS COL_ROUTING - FROM '.$this->config->item('table_name').' thcv - join station_profile on thcv.station_id = station_profile.station_id - WHERE - COL_QSL_SENT in (\'R\', \'Q\')'; + if ($station_id2 == NULL) { + $sql .= ' and thcv.station_id = ?'; + $binding[] = $station_id; + } else if ($station_id2 != 'All') { + $sql .= ' and thcv.station_id = ?'; + $binding[] = $station_id2; + } - if ($station_id2 == NULL) { - $sql .= ' and thcv.station_id = ' . $station_id; - } else if ($station_id2 != 'All') { - $sql .= ' and thcv.station_id = ' . $station_id2; - } + // always filter user. this ensures that even if the station_id is from another user no inaccesible QSOs will be returned + $sql .= ' and station_profile.user_id = ?'; + $binding[] = $this->session->userdata('user_id'); - // always filter user. this ensures that even if the station_id is from another user no inaccesible QSOs will be returned - $sql .= ' and station_profile.user_id = ' . $this->session->userdata('user_id'); + $sql .= ' ORDER BY ADIF, COL_ROUTING'; - $sql .= ' ORDER BY ADIF, COL_ROUTING'; - - $query = $this->db->query($sql); - return $query; + $query = $this->db->query($sql, $binding); + return $query; } function get_qsos($num, $offset, $StationLocationsArray = null, $band = '') { @@ -1812,24 +1815,27 @@ class Logbook_model extends CI_Model { /* * Function returns the QSOs from the logbook, which have not been either marked as uploaded to hrdlog, or has been modified with an edit */ - function get_hrdlog_qsos($station_id){ - $sql = 'select *, dxcc_entities.name as station_country from ' . $this->config->item('table_name') . ' thcv ' . - ' left join station_profile on thcv.station_id = station_profile.station_id' . - ' left outer join dxcc_entities on thcv.col_my_dxcc = dxcc_entities.adif' . - ' where thcv.station_id = ' . $station_id . - ' and (COL_HRDLOG_QSO_UPLOAD_STATUS is NULL - or COL_HRDLOG_QSO_UPLOAD_STATUS = "" - or COL_HRDLOG_QSO_UPLOAD_STATUS = "M" - or COL_HRDLOG_QSO_UPLOAD_STATUS = "N")'; + function get_hrdlog_qsos($station_id){ + $binding=[]; + $sql = 'select *, dxcc_entities.name as station_country from ' . $this->config->item('table_name') . ' thcv ' . + ' left join station_profile on thcv.station_id = station_profile.station_id' . + ' left outer join dxcc_entities on thcv.col_my_dxcc = dxcc_entities.adif' . + ' where thcv.station_id = ?'. + ' and (COL_HRDLOG_QSO_UPLOAD_STATUS is NULL + or COL_HRDLOG_QSO_UPLOAD_STATUS = "" + or COL_HRDLOG_QSO_UPLOAD_STATUS = "M" + or COL_HRDLOG_QSO_UPLOAD_STATUS = "N")'; + $binding[]=$station_id; - $query = $this->db->query($sql); - return $query; - } + $query = $this->db->query($sql, $binding); + return $query; + } /* * Function returns the QSOs from the logbook, which have not been either marked as uploaded to qrz, or has been modified with an edit */ function get_qrz_qsos($station_id, $trusted = false){ + $binding=[]; $this->load->model('stations'); if ((!$trusted) && (!$this->stations->check_station_is_accessible($station_id))) { return; @@ -1837,62 +1843,55 @@ class Logbook_model extends CI_Model { $sql = 'select *, dxcc_entities.name as station_country from ' . $this->config->item('table_name') . ' thcv ' . ' left join station_profile on thcv.station_id = station_profile.station_id' . ' left outer join dxcc_entities on thcv.col_my_dxcc = dxcc_entities.adif' . - ' where thcv.station_id = ' . $station_id . + ' where thcv.station_id = ?'. ' and (COL_QRZCOM_QSO_UPLOAD_STATUS is NULL or COL_QRZCOM_QSO_UPLOAD_STATUS = "" or COL_QRZCOM_QSO_UPLOAD_STATUS = "M" or COL_QRZCOM_QSO_UPLOAD_STATUS = "N")'; + $binding[]=$station_id; - $query = $this->db->query($sql); + $query = $this->db->query($sql, $binding); return $query; } /* * Function returns the QSOs from the logbook, which have not been either marked as uploaded to webADIF */ - function get_webadif_qsos($station_id,$from = null, $to = null,$trusted = false){ - $this->load->model('stations'); - if ((!$trusted) && (!$this->stations->check_station_is_accessible($station_id))) { - return; - } - $sql = " + function get_webadif_qsos($station_id,$from = null, $to = null,$trusted = false) { + $binding=[]; + $this->load->model('stations'); + if ((!$trusted) && (!$this->stations->check_station_is_accessible($station_id))) { + return; + } + $sql = " SELECT qsos.*, station_profile.*, dxcc_entities.name as station_country - FROM %s qsos + FROM ".$this->config->item('table_name')." qsos INNER JOIN station_profile ON qsos.station_id = station_profile.station_id LEFT JOIN dxcc_entities on qsos.col_my_dxcc = dxcc_entities.adif LEFT OUTER JOIN webadif ON qsos.COL_PRIMARY_KEY = webadif.qso_id - WHERE qsos.station_id = %d - AND qsos.COL_SAT_NAME = 'QO-100' - AND webadif.upload_date IS NULL + WHERE qsos.station_id = ? + AND qsos.COL_SAT_NAME = 'QO-100' + AND webadif.upload_date IS NULL "; - $sql = sprintf( - $sql, - $this->config->item('table_name'), - $station_id - ); - if ($from) { - $from = DateTime::createFromFormat('d/m/Y', $from); - $from = $from->format('Y-m-d'); + $binding[] = $station_id; - $sql.=" AND qsos.COL_TIME_ON >= %s"; - $sql=sprintf( - $sql, - $this->db->escape($from) - ); - } - if ($to) { - $to = DateTime::createFromFormat('d/m/Y', $to); - $to = $to->format('Y-m-d'); + if ($from) { + $from = DateTime::createFromFormat('d/m/Y', $from); + $from = $from->format('Y-m-d'); - $sql.=" AND qsos.COL_TIME_ON <= %s"; - $sql=sprintf( - $sql, - $this->db->escape($to) - ); - } + $sql.=" AND qsos.COL_TIME_ON >= ?"; + $binding[]=$from; + } + if ($to) { + $to = DateTime::createFromFormat('d/m/Y', $to); + $to = $to->format('Y-m-d'); - return $this->db->query($sql); - } + $sql.=" AND qsos.COL_TIME_ON <= ?"; + $binding[]=$to; + } + + return $this->db->query($sql, $binding); + } /* * Function returns all the station_id's with QRZ API Key's @@ -1973,36 +1972,35 @@ class Logbook_model extends CI_Model { } } - function get_last_qsos($num, $StationLocationsArray = null) { + function get_last_qsos($num, $StationLocationsArray = null) { + $binding=[]; + if($StationLocationsArray == null) { + $this->load->model('logbooks_model'); + $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); + } else { + $logbooks_locations_array = $StationLocationsArray; + } + + if ($logbooks_locations_array) { + $location_list = "'".implode("','",$logbooks_locations_array)."'"; + + $sql = "SELECT * FROM ( select * from " . $this->config->item('table_name'). " + WHERE station_id IN(". $location_list .") + order by col_time_on desc + limit ?) hrd + JOIN station_profile ON station_profile.station_id = hrd.station_id + LEFT JOIN dxcc_entities ON hrd.col_dxcc = dxcc_entities.adif + order by col_time_on desc"; + $binding[]=$num*1; + $query = $this->db->query($sql,$binding); + + return $query; + } else { + return null; + } - if($StationLocationsArray == null) { - $this->load->model('logbooks_model'); - $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); - } else { - $logbooks_locations_array = $StationLocationsArray; } - if ($logbooks_locations_array) { - $location_list = "'".implode("','",$logbooks_locations_array)."'"; - - $sql = "SELECT * FROM ( select * from " . $this->config->item('table_name'). " - WHERE station_id IN(". $location_list .") - order by col_time_on desc - limit " . $num . - ") hrd - JOIN station_profile ON station_profile.station_id = hrd.station_id - LEFT JOIN dxcc_entities ON hrd.col_dxcc = dxcc_entities.adif - order by col_time_on desc"; - - $query = $this->db->query($sql); - - return $query; - } else { - return null; - } - - } - function check_if_callsign_cnfmd_in_logbook($callsign, $StationLocationsArray = null, $band = null) { if($StationLocationsArray == null) { @@ -2219,69 +2217,72 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = } /* Get all QSOs with a valid grid for use in the KML export */ - function kml_get_all_qsos($band, $mode, $dxcc, $cqz, $propagation, $fromdate, $todate) { - $this->load->model('logbooks_model'); - $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); + function kml_get_all_qsos($band, $mode, $dxcc, $cqz, $propagation, $fromdate, $todate) { + $this->load->model('logbooks_model'); + $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); - $this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_SUBMODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME, COL_GRIDSQUARE'); - $this->db->where_in('station_id', $logbooks_locations_array); - $this->db->where("coalesce(COL_GRIDSQUARE, '') <> ''"); + $this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_SUBMODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME, COL_GRIDSQUARE'); + $this->db->where_in('station_id', $logbooks_locations_array); + $this->db->where("coalesce(COL_GRIDSQUARE, '') <> ''"); - if ($band != 'All') { - if ($band == 'SAT') { - $this->db->where('COL_PROP_MODE = \'' . $band . '\''); - } - else { - $this->db->where('COL_PROP_MODE != \'SAT\''); - $this->db->where('COL_BAND = \'' . $band .'\''); - } - } + if ($band != 'All') { + if ($band == 'SAT') { + $this->db->where('COL_PROP_MODE', $band); + } + else { + $this->db->where('COL_PROP_MODE != \'SAT\''); + $this->db->where('COL_BAND', $band); + } + } - if ($mode != 'All') { - $this->db->where('COL_MODE = \'' . $mode . '\''); - } + if ($mode != 'All') { + $this->db->where('COL_MODE', $mode); + } - if ($dxcc != 'All') { - $this->db->where('COL_DXCC = ' . $dxcc); - } + if ($dxcc != 'All') { + $this->db->where('COL_DXCC',$dxcc); + } - if ($cqz != 'All') { - $this->db->where('COL_CQZ = ' . $cqz); - } + if ($cqz != 'All') { + $this->db->where('COL_CQZ', $cqz); + } - if ($propagation != 'All') { - $this->db->where('COL_PROP_MODE = ' . $propagation); - } + if ($propagation != 'All') { + $this->db->where('COL_PROP_MODE', $propagation); + } - // If date is set, we add it to the where-statement - if ($fromdate != "") { - $this->db->where("date(".$this->config->item('table_name').".COL_TIME_ON) >= '".$fromdate."'"); - } - if ($todate != "") { - $this->db->where("date(".$this->config->item('table_name').".COL_TIME_ON) <= '".$todate."'"); - } + // If date is set, we add it to the where-statement + if ($fromdate != "") { + $this->db->where("date(".$this->config->item('table_name').".COL_TIME_ON) >=", $fromdate); + } + if ($todate != "") { + $this->db->where("date(".$this->config->item('table_name').".COL_TIME_ON) <=", $todate); + } - $query = $this->db->get($this->config->item('table_name')); - return $query; - } + $query = $this->db->get($this->config->item('table_name')); + return $query; + } function cfd_get_all_qsos($fromdate, $todate) { + $binding=[]; $this->load->model('logbooks_model'); $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); // If date is set, we add it to the where-statement if ($fromdate ?? ''!= "") { - $from=" AND date(q.COL_TIME_ON) >= '".$fromdate."'"; + $from=" AND date(q.COL_TIME_ON) >= ?"; + $binding[]=$fromdate; } else { $from=""; } if ($todate ?? '' != "") { - $till=" AND date(q.COL_TIME_ON) <= '".$todate."'"; + $till=" AND date(q.COL_TIME_ON) <= ?"; + $binding[]=$todate; } else { $till=''; } - $location_list = "'".implode("','",$logbooks_locations_array)."'"; + $location_list = "'".implode("','",$logbooks_locations_array)."'"; $sql="SELECT dx.prefix,dx.name, @@ -2292,27 +2293,27 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = ELSE mo.qrgmode END AS mode,q.col_band as band, COUNT(1) as cnfmd - FROM ".$this->config->item('table_name')." q - INNER JOIN - dxcc_entities dx ON (dx.adif = q.COL_DXCC) - INNER JOIN - adif_modes mo ON (mo.mode = q.COL_MODE) - inner join bands b on (b.band=q.COL_BAND) - WHERE - (q.COL_QSL_RCVD = 'Y' - OR q.COL_LOTW_QSL_RCVD = 'Y' - OR q.COL_EQSL_QSL_RCVD = 'Y') - AND q.station_id in (".$location_list.") - AND (b.bandgroup='hf' or b.band = '6m') ".($from ?? '')." ".($till ?? '')." - GROUP BY dx.prefix,dx.name , CASE - WHEN q.col_mode = 'CW' THEN 'C' - WHEN mo.qrgmode = 'DATA' THEN 'R' - WHEN mo.qrgmode = 'SSB' THEN 'F' - ELSE mo.qrgmode - END,q.COL_BAND order by dx.prefix asc, q.col_band desc"; + FROM ".$this->config->item('table_name')." q + INNER JOIN + dxcc_entities dx ON (dx.adif = q.COL_DXCC) + INNER JOIN + adif_modes mo ON (mo.mode = q.COL_MODE) + inner join bands b on (b.band=q.COL_BAND) + WHERE + (q.COL_QSL_RCVD = 'Y' + OR q.COL_LOTW_QSL_RCVD = 'Y' + OR q.COL_EQSL_QSL_RCVD = 'Y') + AND q.station_id in (".$location_list.") + AND (b.bandgroup='hf' or b.band = '6m') ".($from ?? '')." ".($till ?? '')." + GROUP BY dx.prefix,dx.name , CASE + WHEN q.col_mode = 'CW' THEN 'C' + WHEN mo.qrgmode = 'DATA' THEN 'R' + WHEN mo.qrgmode = 'SSB' THEN 'F' + ELSE mo.qrgmode + END,q.COL_BAND order by dx.prefix asc, q.col_band desc"; - $query = $this->db->query($sql); - return $query; + $query = $this->db->query($sql,$binding); + return $query; } @@ -2419,55 +2420,57 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = /* Return QSOs over a period of days */ function map_week_qsos($start, $end) { - $this->load->model('logbooks_model'); - $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); + $this->load->model('logbooks_model'); + $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); - $this->db->where("COL_TIME_ON BETWEEN '".$start."' AND '".$end."'"); - $this->db->where_in('station_id', $logbooks_locations_array); - $this->db->order_by("COL_TIME_ON", "ASC"); - $query = $this->db->get($this->config->item('table_name')); + $this->db->where("COL_TIME_ON >= ",$start); + $this->db->where("COL_TIME_ON <= ",$end); + $this->db->where_in('station_id', $logbooks_locations_array); + $this->db->order_by("COL_TIME_ON", "ASC"); + $query = $this->db->get($this->config->item('table_name')); - return $query; + return $query; } /* used to return custom qsos requires start, end date plus a band */ function map_custom_qsos($start, $end, $band, $mode, $propagation) { - $this->load->model('logbooks_model'); - $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); + $this->load->model('logbooks_model'); + $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); - if (!$logbooks_locations_array) { - return null; + if (!$logbooks_locations_array) { + return null; + } + + $this->db->join('dxcc_entities', $this->config->item('table_name').'.col_dxcc = dxcc_entities.adif', 'left'); + $this->db->where("COL_TIME_ON >=",$start." 00:00:00"); + $this->db->where("COL_TIME_ON <=",$end." 23:59:59'"); + $this->db->where_in("station_id", $logbooks_locations_array); + + if($band != "All" && $band != "SAT") { + $this->db->where("COL_BAND", $band); + } + + if ($band == "SAT") { + $this->db->where("COL_PROP_MODE", "SAT"); + } + + if ($mode != 'All') { + $this->db->group_start(); + $this->db->where("COL_MODE", $mode); + $this->db->or_where("COL_SUBMODE", $mode); + $this->db->group_end(); + } + + if ($propagation != 'All') { + $this->db->where("COL_PROP_MODE", $propagation); + } + + $this->db->order_by("COL_TIME_ON", "ASC"); + $query = $this->db->get($this->config->item('table_name')); + + return $query; } - $this->db->join('dxcc_entities', $this->config->item('table_name').'.col_dxcc = dxcc_entities.adif', 'left'); - $this->db->where("COL_TIME_ON BETWEEN '".$start." 00:00:00' AND '".$end." 23:59:59'"); - $this->db->where_in("station_id", $logbooks_locations_array); - - if($band != "All" && $band != "SAT") { - $this->db->where("COL_BAND", $band); - } - - if ($band == "SAT") { - $this->db->where("COL_PROP_MODE", "SAT"); - } - - if ($mode != 'All') { - $this->db->group_start(); - $this->db->where("COL_MODE", $mode); - $this->db->or_where("COL_SUBMODE", $mode); - $this->db->group_end(); - } - - if ($propagation != 'All') { - $this->db->where("COL_PROP_MODE", $propagation); - } - - $this->db->order_by("COL_TIME_ON", "ASC"); - $query = $this->db->get($this->config->item('table_name')); - - return $query; - } - /* Returns QSOs for the date sent eg 2011-09-30 */ function map_day($date) { $this->load->model('logbooks_model'); @@ -2476,7 +2479,8 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = $start = $date." 00:00:00"; $end = $date." 23:59:59"; - $this->db->where("COL_TIME_ON BETWEEN '".$start."' AND '".$end."'"); + $this->db->where("COL_TIME_ON >= ", $start); + $this->db->where("COL_TIME_ON <= ", $end); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->order_by("COL_TIME_ON", "ASC"); $query = $this->db->get($this->config->item('table_name')); @@ -3204,24 +3208,33 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = /* Used to check if the qso is already in the database */ function import_check($datetime, $callsign, $band, $mode, $station_callsign, $station_id = null) { + $binding=[]; $mode=$this->get_main_mode_from_mode($mode); - $this->db->select('COL_PRIMARY_KEY, COL_TIME_ON, COL_CALL, COL_BAND, COL_GRIDSQUARE'); - $this->db->where('COL_TIME_ON >= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL -15 MINUTE )'); - $this->db->where('COL_TIME_ON <= DATE_ADD(DATE_FORMAT("'.$datetime.'", \'%Y-%m-%d %H:%i\' ), INTERVAL 15 MINUTE )'); - $this->db->where('COL_CALL', $callsign); - $this->db->where('COL_STATION_CALLSIGN', $station_callsign); - $this->db->where('COL_BAND', $band); - $this->db->where('COL_MODE', $mode); + $sql='SELECT COL_PRIMARY_KEY, COL_TIME_ON, COL_CALL, COL_BAND, COL_GRIDSQUARE from '.$this->config->item('table_name').' + WHERE COL_TIME_ON >= DATE_ADD(DATE_FORMAT(?, \'%Y-%m-%d %H:%i\' ), INTERVAL -15 MINUTE ) + AND COL_TIME_ON <= DATE_ADD(DATE_FORMAT(?, \'%Y-%m-%d %H:%i\' ), INTERVAL 15 MINUTE ) + AND COL_CALL=? + AND COL_STATION_CALLSIGN=? + AND COL_BAND=? + AND COL_MODE=?'; + + $binding[]=$datetime; + $binding[]=$datetime; + $binding[]=$callsign; + $binding[]=$station_callsign; + $binding[]=$band; + $binding[]=$mode; + if(isset($station_id) && $station_id > 0) { - $this->db->where('station_id', $station_id); + $sql.=' AND station_id=?'; + $binding[]=$station_id; } - $query = $this->db->get($this->config->item('table_name')); + $query = $this->db->query($sql, $binding); - if ($query->num_rows() > 0) - { + if ($query->num_rows() > 0) { $ret = $query->row(); return ["Found", $ret->COL_PRIMARY_KEY, $ret->COL_GRIDSQUARE]; } else { @@ -3237,7 +3250,7 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = 'COL_CLUBLOG_QSO_DOWNLOAD_STATUS' => $qsl_status, ); - $this->db->where('date_format(COL_TIME_ON, \'%Y-%m-%d %H:%i:%s\') = "'.$datetime.'"'); + $this->db->where('date_format(COL_TIME_ON, \'%Y-%m-%d %H:%i:%s\') = ',$datetime); $this->db->where('COL_CALL', $callsign); $this->db->where("replace(replace(COL_BAND,'cm',''),'m','')", $band); // no way to achieve a real bandmatch, so fallback to match without unit. e.g.: "6" was provided by Clublog. Do they mean 6m or 6cm? $this->db->where('COL_STATION_CALLSIGN', $station_callsign); @@ -3308,15 +3321,16 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = } $this->db->group_start(); - $this->db->where('date_format(COL_LOTW_QSLRDATE, \'%Y-%m-%d %H:%i\') != "'.$qsl_date.'"'); + $this->db->where('date_format(COL_LOTW_QSLRDATE, \'%Y-%m-%d %H:%i\') != ',$qsl_date); $this->db->or_where('COL_LOTW_QSLRDATE is null'); $this->db->group_end(); - $this->db->where('date_format(COL_TIME_ON, \'%Y-%m-%d %H:%i\') = "'.$datetime.'"'); $this->db->where('COL_CALL', $callsign); $this->db->where('COL_BAND', $band); + $this->db->where('date_format(COL_TIME_ON, \'%Y-%m-%d %H:%i\') = ',$datetime); $this->db->where('COL_STATION_CALLSIGN', $station_callsign); $this->db->where('COL_PRIMARY_KEY', $qsoid); + $this->db->update($this->config->item('table_name'), $data); unset($data); @@ -3325,7 +3339,7 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = 'COL_DISTANCE' => 0 ); $this->db->select('station_profile.station_gridsquare as station_gridsquare'); - $this->db->where('date_format(COL_TIME_ON, \'%Y-%m-%d %H:%i\') = "'.$datetime.'"'); + $this->db->where('date_format(COL_TIME_ON, \'%Y-%m-%d %H:%i\') = ',$datetime); $this->db->where('COL_CALL', $callsign); $this->db->where('COL_BAND', $band); $this->db->where('COL_PRIMARY_KEY', $qsoid); @@ -3348,7 +3362,7 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = $data['COL_DISTANCE'] = $this->qra->distance($station_gridsquare, $qsl_vucc_grids, 'K'); } - $this->db->where('date_format(COL_TIME_ON, \'%Y-%m-%d %H:%i\') = "'.$datetime.'"'); + $this->db->where('date_format(COL_TIME_ON, \'%Y-%m-%d %H:%i\') = ',$datetime); $this->db->where('COL_CALL', $callsign); $this->db->where('COL_BAND', $band); $this->db->where('COL_PRIMARY_KEY', $qsoid); diff --git a/application/models/Note.php b/application/models/Note.php index 95c11d7f3..8027ab0d5 100644 --- a/application/models/Note.php +++ b/application/models/Note.php @@ -6,8 +6,7 @@ class Note extends CI_Model { if ($api_key == null) { $user_id = $this->session->userdata('user_id'); } else { - $CI =& get_instance(); - $CI->load->model('api_model'); + $this->load->model('api_model'); if (strpos($this->api_model->access($api_key), 'r') !== false) { $this->api_model->update_last_used($api_key); $user_id = $this->api_model->key_userid($api_key); @@ -20,9 +19,9 @@ class Note extends CI_Model { function add() { $data = array( - 'cat' => xss_clean($this->input->post('category')), - 'title' => xss_clean($this->input->post('title')), - 'note' => xss_clean($this->input->post('content')), + 'cat' => $this->input->post('category', TRUE), + 'title' => $this->input->post('title', TRUE), + 'note' => $this->input->post('content', TRUE), 'user_id' => $this->session->userdata('user_id') ); @@ -31,23 +30,37 @@ class Note extends CI_Model { function edit() { $data = array( - 'cat' => xss_clean($this->input->post('category')), - 'title' => xss_clean($this->input->post('title')), - 'note' => xss_clean($this->input->post('content')) + 'cat' => $this->input->post('category', TRUE), + 'title' => $this->input->post('title', TRUE), + 'note' => $this->input->post('content', TRUE) ); - $this->db->where('id', xss_clean($this->input->post('id'))); + $this->db->where('id', $this->input->post('id', TRUE)); $this->db->where('user_id', $this->session->userdata('user_id')); $this->db->update('notes', $data); } function delete($id) { - $this->db->delete('notes', array('id' => xss_clean($id), 'user_id' =>$this->session->userdata('user_id'))); + + $clean_id = $this->security->xss_clean($id); + + if (! is_numeric($clean_id)) { + show_404(); + } + + $this->db->delete('notes', array('id' => $clean_id, 'user_id' => $this->session->userdata('user_id'))); } function view($id) { + + $clean_id = $this->security->xss_clean($id); + + if (! is_numeric($clean_id)) { + show_404(); + } + // Get Note - $this->db->where('id', xss_clean($id)); + $this->db->where('id', $clean_id); $this->db->where('user_id', $this->session->userdata('user_id')); return $this->db->get('notes'); } diff --git a/application/models/Timeline_model.php b/application/models/Timeline_model.php index fb92cd1a5..c8c41326c 100644 --- a/application/models/Timeline_model.php +++ b/application/models/Timeline_model.php @@ -4,9 +4,8 @@ if (!defined('BASEPATH')) exit('No direct script access allowed'); class Timeline_model extends CI_Model { function get_timeline($band, $mode, $award, $qsl, $lotw, $eqsl) { - $CI =& get_instance(); - $CI->load->model('logbooks_model'); - $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); + $this->load->model('logbooks_model'); + $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); if (!$logbooks_locations_array) { return null; @@ -27,6 +26,7 @@ class Timeline_model extends CI_Model } public function get_timeline_dxcc($band, $mode, $location_list, $qsl, $lotw, $eqsl) { + $binding = []; $sql = "select min(date(COL_TIME_ON)) date, prefix, col_country, end, adif from " .$this->config->item('table_name'). " thcv join dxcc_entities on thcv.col_dxcc = dxcc_entities.adif @@ -34,16 +34,19 @@ class Timeline_model extends CI_Model if ($band != 'All') { if ($band == 'SAT') { - $sql .= " and col_prop_mode ='" . $band . "'"; + $sql .= " and col_prop_mode = ?"; + $binding[] = $band; } else { $sql .= " and col_prop_mode !='SAT'"; - $sql .= " and col_band ='" . $band . "'"; + $sql .= " and col_band = ?"; + $binding[] = $band; } } if ($mode != 'All') { - $sql .= " and col_mode ='" . $mode . "'"; + $sql .= " and col_mode = ?"; + $binding[] = $mode; } $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl); @@ -51,28 +54,32 @@ class Timeline_model extends CI_Model $sql .= " group by col_dxcc, col_country order by date desc"; - $query = $this->db->query($sql); + $query = $this->db->query($sql, $binding); return $query->result(); } public function get_timeline_waja($band, $mode, $location_list, $qsl, $lotw, $eqsl) { + $binding = []; $sql = "select min(date(COL_TIME_ON)) date, col_state from " .$this->config->item('table_name'). " thcv where station_id in (" . $location_list . ")"; if ($band != 'All') { if ($band == 'SAT') { - $sql .= " and col_prop_mode ='" . $band . "'"; + $sql .= " and col_prop_mode = ?"; + $binding[] = $band; } else { $sql .= " and col_prop_mode !='SAT'"; - $sql .= " and col_band ='" . $band . "'"; + $sql .= " and col_band = ?"; + $binding[] = $band; } } if ($mode != 'All') { - $sql .= " and col_mode ='" . $mode . "'"; + $sql .= " and col_mode = ?"; + $binding[] = $mode; } $sql .= " and COL_DXCC = '339' and trim(coalesce(COL_STATE,'')) != '' "; @@ -82,28 +89,32 @@ class Timeline_model extends CI_Model $sql .= " group by col_state order by date desc"; - $query = $this->db->query($sql); + $query = $this->db->query($sql, $binding); return $query->result(); } public function get_timeline_was($band, $mode, $location_list, $qsl, $lotw, $eqsl) { + $binding = []; $sql = "select min(date(COL_TIME_ON)) date, col_state from " .$this->config->item('table_name'). " thcv where station_id in (" . $location_list . ")"; if ($band != 'All') { if ($band == 'SAT') { - $sql .= " and col_prop_mode ='" . $band . "'"; + $sql .= " and col_prop_mode = ?"; + $binding[] = $band; } else { $sql .= " and col_prop_mode !='SAT'"; - $sql .= " and col_band ='" . $band . "'"; + $sql .= " and col_band = ?"; + $binding[] = $band; } } if ($mode != 'All') { - $sql .= " and col_mode ='" . $mode . "'"; + $sql .= " and col_mode = ?"; + $binding[] = $mode; } $sql .= " and COL_DXCC in ('291', '6', '110')"; @@ -114,12 +125,13 @@ class Timeline_model extends CI_Model $sql .= " group by col_state order by date desc"; - $query = $this->db->query($sql); + $query = $this->db->query($sql, $binding); return $query->result(); } public function get_timeline_iota($band, $mode, $location_list, $qsl, $lotw, $eqsl) { + $binding = []; $sql = "select min(date(COL_TIME_ON)) date, col_iota, name, prefix from " .$this->config->item('table_name'). " thcv join iota on thcv.col_iota = iota.tag @@ -127,16 +139,19 @@ class Timeline_model extends CI_Model if ($band != 'All') { if ($band == 'SAT') { - $sql .= " and col_prop_mode ='" . $band . "'"; + $sql .= " and col_prop_mode = ?"; + $binding[] = $band; } else { $sql .= " and col_prop_mode !='SAT'"; - $sql .= " and col_band ='" . $band . "'"; + $sql .= " and col_band = ?"; + $binding[] = $band; } } if ($mode != 'All') { - $sql .= " and col_mode ='" . $mode . "'"; + $sql .= " and col_mode = ?"; + $binding[] = $mode; } $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl); @@ -144,28 +159,32 @@ class Timeline_model extends CI_Model $sql .= " and col_iota <> '' group by col_iota, name, prefix order by date desc"; - $query = $this->db->query($sql); + $query = $this->db->query($sql, $binding); return $query->result(); } public function get_timeline_waz($band, $mode, $location_list, $qsl, $lotw, $eqsl) { + $binding = []; $sql = "select min(date(COL_TIME_ON)) date, col_cqz from " .$this->config->item('table_name'). " thcv where station_id in (" . $location_list . ")"; if ($band != 'All') { if ($band == 'SAT') { - $sql .= " and col_prop_mode ='" . $band . "'"; + $sql .= " and col_prop_mode = ?"; + $binding[] = $band; } else { $sql .= " and col_prop_mode !='SAT'"; - $sql .= " and col_band ='" . $band . "'"; + $sql .= " and col_band = ?"; + $binding[] = $band; } } if ($mode != 'All') { - $sql .= " and col_mode ='" . $mode . "'"; + $sql .= " and col_mode = ?"; + $binding[] = $mode; } $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl); @@ -173,12 +192,12 @@ class Timeline_model extends CI_Model $sql .= " and col_cqz <> '' group by col_cqz order by date desc"; - $query = $this->db->query($sql); + $query = $this->db->query($sql, $binding); return $query->result(); } - + // Adds confirmation to query function addQslToQuery($qsl, $lotw, $eqsl) { $sql = ''; @@ -212,41 +231,9 @@ class Timeline_model extends CI_Model return $sql; } - public function get_timeline_vucc3($band, $mode, $location_list, $qsl, $lotw, $eqsl) { - // $sql = "select min(date(COL_TIME_ON)) date, col_gridsquare from " - $sql = "select min(date(COL_TIME_ON)) date, upper(substring(col_gridsquare, 1, 4)) gridsquare from " - .$this->config->item('table_name'). " thcv - where station_id in (" . $location_list . ")"; - - if ($band != 'All') { - if ($band == 'SAT') { - $sql .= " and col_prop_mode ='" . $band . "'"; - } - else { - $sql .= " and col_prop_mode !='SAT'"; - $sql .= " and col_band ='" . $band . "'"; - } - } - - if ($mode != 'All') { - $sql .= " and col_mode ='" . $mode . "'"; - } - - $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl); - - $sql .= " and col_gridsquare <> '' group by upper(substring(col_gridsquare, 1, 4)) - order by date desc"; - - $query = $this->db->query($sql); - $this->vucc_shit($band, $mode, $location_list, $qsl, $lotw, $eqsl); - - return $query->result(); - } - public function timeline_qso_details($querystring, $band, $mode, $type){ - $CI =& get_instance(); - $CI->load->model('logbooks_model'); - $logbooks_locations_array = $CI->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); + $this->load->model('logbooks_model'); + $logbooks_locations_array = $this->logbooks_model->list_logbook_relationships($this->session->userdata('active_station_logbook')); $this->db->join('station_profile', 'station_profile.station_id = '.$this->config->item('table_name').'.station_id'); $this->db->join('dxcc_entities', 'dxcc_entities.adif = '.$this->config->item('table_name').'.COL_DXCC', 'left outer'); @@ -290,9 +277,9 @@ class Timeline_model extends CI_Model 'gridsquare' => $grid->gridsquare, 'date' => $grid->date); } - + $col_vucc_grids = $this->get_vucc_grids($band, $mode, $location_list, $qsl, $lotw, $eqsl); - + foreach ($col_vucc_grids as $gridSplit) { $grids = explode(",", $gridSplit->gridsquare); foreach($grids as $key) { @@ -312,23 +299,26 @@ class Timeline_model extends CI_Model } public function get_gridsquare($band, $mode, $location_list, $qsl, $lotw, $eqsl) { - // $sql = "select min(date(COL_TIME_ON)) date, col_gridsquare from " + $binding = []; $sql = "select min(COL_TIME_ON) date, upper(substring(col_gridsquare, 1, 4)) gridsquare from " .$this->config->item('table_name'). " thcv where station_id in (" . $location_list . ")"; if ($band != 'All') { if ($band == 'SAT') { - $sql .= " and col_prop_mode ='" . $band . "'"; + $sql .= " and col_prop_mode = ?"; + $binding[] = $band; } else { $sql .= " and col_prop_mode !='SAT'"; - $sql .= " and col_band ='" . $band . "'"; + $sql .= " and col_band = ?"; + $binding[] = $band; } } if ($mode != 'All') { - $sql .= " and col_mode ='" . $mode . "'"; + $sql .= " and col_mode = ?"; + $binding[] = $mode; } $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl); @@ -336,38 +326,41 @@ class Timeline_model extends CI_Model $sql .= " and col_gridsquare <> '' group by upper(substring(col_gridsquare, 1, 4)) order by date desc"; - $query = $this->db->query($sql); + $query = $this->db->query($sql, $binding); return $query->result(); } public function get_vucc_grids($band, $mode, $location_list, $qsl, $lotw, $eqsl) { - // $sql = "select min(date(COL_TIME_ON)) date, col_gridsquare from " + $binding = []; $sql = "select COL_TIME_ON as date, upper(col_vucc_grids) gridsquare from " .$this->config->item('table_name'). " thcv where station_id in (" . $location_list . ")"; if ($band != 'All') { if ($band == 'SAT') { - $sql .= " and col_prop_mode ='" . $band . "'"; + $sql .= " and col_prop_mode = ?"; + $binding[] = $band; } else { $sql .= " and col_prop_mode !='SAT'"; - $sql .= " and col_band ='" . $band . "'"; + $sql .= " and col_band = ?"; + $binding[] = $band; } } if ($mode != 'All') { - $sql .= " and col_mode ='" . $mode . "'"; + $sql .= " and col_mode = ?"; + $binding[] = $mode; } $sql .= $this->addQslToQuery($qsl, $lotw, $eqsl); $sql .= " and col_vucc_grids <> ''"; - $query = $this->db->query($sql); + $query = $this->db->query($sql, $binding); return $query->result(); } - + } diff --git a/assets/lang_src/messages.pot b/assets/lang_src/messages.pot index 8c0aa1bf4..c49356877 100644 --- a/assets/lang_src/messages.pot +++ b/assets/lang_src/messages.pot @@ -6,7 +6,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: translations@wavelog.org\n" -"POT-Creation-Date: 2024-08-13 19:24+0000\n" +"POT-Creation-Date: 2024-08-14 18:08+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -399,11 +399,11 @@ msgstr "" msgid "Backup" msgstr "" -#: application/controllers/Backup.php:48 +#: application/controllers/Backup.php:50 msgid "ADIF - Backup" msgstr "" -#: application/controllers/Backup.php:80 +#: application/controllers/Backup.php:84 msgid "Notes - Backup" msgstr "" @@ -1349,7 +1349,7 @@ msgstr "" msgid "Edit Mode" msgstr "" -#: application/controllers/Notes.php:19 +#: application/controllers/Notes.php:18 #: application/views/interface_assets/header.php:128 #: application/views/notes/add.php:9 application/views/notes/edit.php:10 #: application/views/notes/main.php:5 application/views/notes/main.php:8 @@ -1361,16 +1361,16 @@ msgstr "" msgid "Notes" msgstr "" -#: application/controllers/Notes.php:38 +#: application/controllers/Notes.php:37 msgid "Add Notes" msgstr "" -#: application/controllers/Notes.php:58 +#: application/controllers/Notes.php:64 #: application/views/oqrs/showrequests.php:88 msgid "Note" msgstr "" -#: application/controllers/Notes.php:79 application/views/notes/edit.php:7 +#: application/controllers/Notes.php:92 application/views/notes/edit.php:7 #: application/views/notes/view.php:19 msgid "Edit Note" msgstr "" @@ -2125,31 +2125,31 @@ msgstr "" msgid "HRDlog: No station profiles with HRDlog Credentials found." msgstr "" -#: application/models/Logbook_model.php:4129 +#: application/models/Logbook_model.php:4143 msgid "QSO could not be matched" msgstr "" -#: application/models/Logbook_model.php:4135 +#: application/models/Logbook_model.php:4149 msgid "confirmed by LoTW/Clublog/eQSL/Contest" msgstr "" -#: application/models/Logbook_model.php:4140 +#: application/models/Logbook_model.php:4154 msgid "confirmed by award manager" msgstr "" -#: application/models/Logbook_model.php:4143 +#: application/models/Logbook_model.php:4157 msgid "confirmed by cross-check of DCL data" msgstr "" -#: application/models/Logbook_model.php:4146 +#: application/models/Logbook_model.php:4160 msgid "confirmation pending" msgstr "" -#: application/models/Logbook_model.php:4149 +#: application/models/Logbook_model.php:4163 msgid "unconfirmed" msgstr "" -#: application/models/Logbook_model.php:4152 +#: application/models/Logbook_model.php:4166 msgid "unknown" msgstr "" diff --git a/install/includes/gettext/locale/sr/LC_MESSAGES/installer.mo b/install/includes/gettext/locale/sr/LC_MESSAGES/installer.mo index c4d91101c..f018fbc46 100644 Binary files a/install/includes/gettext/locale/sr/LC_MESSAGES/installer.mo and b/install/includes/gettext/locale/sr/LC_MESSAGES/installer.mo differ diff --git a/install/includes/gettext/locale/sr/LC_MESSAGES/installer.po b/install/includes/gettext/locale/sr/LC_MESSAGES/installer.po index 307119cf8..984eed4a7 100644 --- a/install/includes/gettext/locale/sr/LC_MESSAGES/installer.po +++ b/install/includes/gettext/locale/sr/LC_MESSAGES/installer.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: translations@wavelog.org\n" "POT-Creation-Date: 2024-08-12 09:45+0000\n" -"PO-Revision-Date: 2024-08-13 04:18+0000\n" +"PO-Revision-Date: 2024-08-13 19:24+0000\n" "Last-Translator: Dragan Đorđević <4o4a.dragan@gmail.com>\n" "Language-Team: Serbian \n" @@ -451,8 +451,8 @@ msgid "" "Usually 'localhost'.
Optional with '[host]:[port]'. Default port: 3306." "
In a docker compose install type 'wavelog-db'." msgstr "" -"Obično 'localhost'.
Opciono '[host]:[port]'. Podrazumevani port: " -"3306.
In a docker compose install type 'wavelog-db'." +"Obično 'localhost'.
Opciono sa '[host]:[port]'. Podrazumevani port: 3306. " +"
In a docker compose install type 'wavelog-db'." #: install/index.php:447 msgid "Database Name"