From ecbbcbbdb362c0e650f06571c88da7f6b916358a Mon Sep 17 00:00:00 2001 From: int2001 Date: Mon, 12 Aug 2024 13:32:38 +0000 Subject: [PATCH 01/18] Preventing SQL-Injection until L2012 LB_Model --- application/models/Logbook_model.php | 220 +++++++++++++-------------- 1 file changed, 109 insertions(+), 111 deletions(-) diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index d64701ae1..d5b90f4c5 100644 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -1726,46 +1726,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 = '') { @@ -1831,24 +1834,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; @@ -1856,62 +1862,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 @@ -1992,36 +1991,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; + $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) { From 08aaed849a5cea03dc7bc3cb7ea7b615ef4ba900 Mon Sep 17 00:00:00 2001 From: int2001 Date: Mon, 12 Aug 2024 13:38:36 +0000 Subject: [PATCH 02/18] Fix Numconversion --- application/models/Logbook_model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index d5b90f4c5..99b0c5cf2 100644 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -2010,7 +2010,7 @@ class Logbook_model extends CI_Model { 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; + $binding[]=$num*1; $query = $this->db->query($sql,$binding); return $query; From ef46d862279ea388c6f2e085a225a577aa11925d Mon Sep 17 00:00:00 2001 From: int2001 Date: Mon, 12 Aug 2024 14:16:28 +0000 Subject: [PATCH 03/18] Until L3391 --- application/models/Logbook_model.php | 182 ++++++++++++++------------- 1 file changed, 98 insertions(+), 84 deletions(-) diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 99b0c5cf2..96978dea4 100644 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -2236,69 +2236,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, @@ -2309,27 +2312,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; } @@ -2436,15 +2439,16 @@ 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 */ @@ -2493,7 +2497,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')); @@ -3221,24 +3226,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 { @@ -3254,7 +3268,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); @@ -3325,10 +3339,10 @@ 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('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_STATION_CALLSIGN', $station_callsign); @@ -3342,7 +3356,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); @@ -3365,7 +3379,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); From 6a5309621ce13b8f7a7e9efd381906a5cdc166a4 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 13 Aug 2024 11:04:36 +0200 Subject: [PATCH 04/18] xss cleaning in qso controller --- application/controllers/Qso.php | 216 +++++++++++++++----------------- 1 file changed, 104 insertions(+), 112 deletions(-) diff --git a/application/controllers/Qso.php b/application/controllers/Qso.php index e4c8b0b9e..c1df925b6 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 = xss_clean($this->input->post('function1_name', TRUE)); + $function1_macro = xss_clean($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 = xss_clean($this->input->post('function2_name', TRUE)); + $function2_macro = xss_clean($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 = xss_clean($this->input->post('function3_name', TRUE)); + $function3_macro = xss_clean($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 = xss_clean($this->input->post('function4_name', TRUE)); + $function4_macro = xss_clean($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 = xss_clean($this->input->post('function5_name', TRUE)); + $function5_macro = xss_clean($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 From eff812d0854963ddc25c3389772253c06e5c3dcc Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 13 Aug 2024 13:50:49 +0200 Subject: [PATCH 05/18] some more unprotected POST data --- application/controllers/Lookup.php | 4 +-- application/controllers/Search.php | 43 +++++++++++++----------------- 2 files changed, 20 insertions(+), 27 deletions(-) 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/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() { From 15e3e5ed6a1e436fb748d27db67bd9b9d7ff081e Mon Sep 17 00:00:00 2001 From: int2001 Date: Tue, 13 Aug 2024 16:23:52 +0000 Subject: [PATCH 06/18] Evil Bug --- application/models/Logbook_model.php | 70 ++++++++++++++-------------- 1 file changed, 36 insertions(+), 34 deletions(-) diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 96978dea4..e2102ef9c 100644 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -2453,42 +2453,43 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = /* 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'); @@ -3342,12 +3343,13 @@ function check_if_callsign_worked_in_logbook($callsign, $StationLocationsArray = $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); From 419cef2b443da0829a13ff232e816f7bf9ff2977 Mon Sep 17 00:00:00 2001 From: int2001 Date: Tue, 13 Aug 2024 16:27:44 +0000 Subject: [PATCH 07/18] CI-Fiddle --- application/models/Logbook_model.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/application/models/Logbook_model.php b/application/models/Logbook_model.php index 8eb7fa3e4..3d2f160d0 100644 --- a/application/models/Logbook_model.php +++ b/application/models/Logbook_model.php @@ -3250,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); From 64fb6b3942413e9877eafb306e4fe70f32fc2ce5 Mon Sep 17 00:00:00 2001 From: Karuru Date: Tue, 13 Aug 2024 15:12:57 +0000 Subject: [PATCH 08/18] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (1897 of 1897 strings) Translation: Wavelog/Main Translation Translate-URL: https://translate.wavelog.org/projects/wavelog/main-translation/zh_Hans/ --- application/locale/zh_CN/LC_MESSAGES/messages.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/locale/zh_CN/LC_MESSAGES/messages.po b/application/locale/zh_CN/LC_MESSAGES/messages.po index c3199dbf7..af8c52c13 100644 --- a/application/locale/zh_CN/LC_MESSAGES/messages.po +++ b/application/locale/zh_CN/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: translations@wavelog.org\n" "POT-Creation-Date: 2024-08-13 07:12+0000\n" -"PO-Revision-Date: 2024-08-12 15:29+0000\n" +"PO-Revision-Date: 2024-08-13 17:28+0000\n" "Last-Translator: Karuru \n" "Language-Team: Chinese (Simplified) \n" @@ -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!" From d35d5d9713c57c942a8d067b81e788ff785e9a24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dragan=20=C4=90or=C4=91evi=C4=87?= <4o4a.dragan@gmail.com> Date: Tue, 13 Aug 2024 18:14:19 +0000 Subject: [PATCH 09/18] Translated using Weblate (Serbian) Currently translated at 18.1% (344 of 1897 strings) Translation: Wavelog/Main Translation Translate-URL: https://translate.wavelog.org/projects/wavelog/main-translation/sr/ --- application/locale/sr/LC_MESSAGES/messages.po | 538 ++++++++++-------- 1 file changed, 285 insertions(+), 253 deletions(-) diff --git a/application/locale/sr/LC_MESSAGES/messages.po b/application/locale/sr/LC_MESSAGES/messages.po index 431b40fd8..d4e5c5f01 100644 --- a/application/locale/sr/LC_MESSAGES/messages.po +++ b/application/locale/sr/LC_MESSAGES/messages.po @@ -8,10 +8,10 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: translations@wavelog.org\n" "POT-Creation-Date: 2024-08-13 07:12+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" +"Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\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 msgid "ADIF - Backup" -msgstr "" +msgstr "ADIF - Rezervna kopija" #: application/controllers/Backup.php:80 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,37 +1332,37 @@ 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/views/interface_assets/header.php:128 @@ -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 msgid "Add Notes" -msgstr "" +msgstr "Dodajte napomenu" #: application/controllers/Notes.php:58 #: application/views/oqrs/showrequests.php:88 msgid "Note" -msgstr "" +msgstr "Napomena" #: application/controllers/Notes.php:79 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,70 +2089,77 @@ 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 msgid "QSO could not be matched" From 8d7873103557e634dfc7995ec673d99488eff089 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dragan=20=C4=90or=C4=91evi=C4=87?= <4o4a.dragan@gmail.com> Date: Tue, 13 Aug 2024 18:06:01 +0000 Subject: [PATCH 10/18] Translated using Weblate (Serbian) Currently translated at 100.0% (159 of 159 strings) Translation: Wavelog/Installer Translate-URL: https://translate.wavelog.org/projects/wavelog/installer/sr/ --- install/includes/gettext/locale/sr/LC_MESSAGES/installer.po | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) 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" From 0f1d0313edf0c031b56ddcd717801fd75b00d9bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dragan=20=C4=90or=C4=91evi=C4=87?= <4o4a.dragan@gmail.com> Date: Tue, 13 Aug 2024 19:24:49 +0000 Subject: [PATCH 11/18] Translated using Weblate (Serbian) Currently translated at 21.4% (407 of 1897 strings) Translation: Wavelog/Main Translation Translate-URL: https://translate.wavelog.org/projects/wavelog/main-translation/sr/ --- application/locale/sr/LC_MESSAGES/messages.po | 132 +++++++++--------- 1 file changed, 66 insertions(+), 66 deletions(-) diff --git a/application/locale/sr/LC_MESSAGES/messages.po b/application/locale/sr/LC_MESSAGES/messages.po index d9ed52839..72b4dc6c8 100644 --- a/application/locale/sr/LC_MESSAGES/messages.po +++ b/application/locale/sr/LC_MESSAGES/messages.po @@ -8,10 +8,10 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: translations@wavelog.org\n" "POT-Creation-Date: 2024-08-13 07:12+0000\n" -"PO-Revision-Date: 2024-08-13 19:24+0000\n" +"PO-Revision-Date: 2024-08-13 19:51+0000\n" "Last-Translator: Dragan Đorđević <4o4a.dragan@gmail.com>\n" -"Language-Team: Serbian \n" +"Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -2172,47 +2172,47 @@ msgstr "" #: application/models/Logbook_model.php:4140 msgid "confirmed by award manager" -msgstr "" +msgstr "potvrđeno od strane menadžera za diplome" #: application/models/Logbook_model.php:4143 msgid "confirmed by cross-check of DCL data" -msgstr "" +msgstr "potvrđeno unakrsnom proverom DCL podataka" #: application/models/Logbook_model.php:4146 msgid "confirmation pending" -msgstr "" +msgstr "čeka potvrđivanje" #: application/models/Logbook_model.php:4149 msgid "unconfirmed" -msgstr "" +msgstr "nepotvrđeno" #: application/models/Logbook_model.php:4152 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 @@ -2220,27 +2220,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 @@ -2326,41 +2326,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 @@ -2387,7 +2387,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 @@ -2402,7 +2402,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 @@ -2414,14 +2414,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 @@ -2436,18 +2436,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 @@ -2455,7 +2455,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 @@ -2463,7 +2463,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 @@ -2471,16 +2471,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:77 #: application/views/awards/counties/details.php:27 @@ -2505,7 +2505,7 @@ msgstr "" #: application/views/qrz/export.php:64 application/views/timeline/index.php:102 #: application/views/activators/index.php:73 msgid "Nothing found!" -msgstr "" +msgstr "Ništa nije pronađeno!" #: application/views/activators/index.php:99 #: application/views/adif/import.php:66 application/views/adif/import.php:172 @@ -2549,7 +2549,7 @@ msgstr "Pozivni znak" #: application/views/activators/index.php:100 #: application/views/activators/index.php:96 msgid "Count" -msgstr "" +msgstr "Broj" #: application/views/activators/index.php:102 #: application/views/timeline/index.php:121 @@ -2560,44 +2560,44 @@ msgstr "" #: application/views/timeline/index.php:258 #: application/views/activators/index.php:98 msgid "Show QSO's" -msgstr "" +msgstr "Prikaži QSOe" #: application/views/activators/index.php:103 #: 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 @@ -2639,7 +2639,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 @@ -2669,7 +2669,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 @@ -2690,23 +2690,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 @@ -2715,15 +2715,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 @@ -2738,27 +2738,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" From 4aef2c8008bc355ac1dfbfbbc6dbd1cb8264c110 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Tue, 13 Aug 2024 21:54:35 +0200 Subject: [PATCH 12/18] removed doubled xss clean --- application/controllers/Qso.php | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/application/controllers/Qso.php b/application/controllers/Qso.php index c1df925b6..23821f9d3 100644 --- a/application/controllers/Qso.php +++ b/application/controllers/Qso.php @@ -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', TRUE)); - $function1_macro = xss_clean($this->input->post('function1_macro', TRUE)); + $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', TRUE)); - $function2_macro = xss_clean($this->input->post('function2_macro', TRUE)); + $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', TRUE)); - $function3_macro = xss_clean($this->input->post('function3_macro', TRUE)); + $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', TRUE)); - $function4_macro = xss_clean($this->input->post('function4_macro', TRUE)); + $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', TRUE)); - $function5_macro = xss_clean($this->input->post('function5_macro', TRUE)); + $function5_name = $this->input->post('function5_name', TRUE); + $function5_macro = $this->input->post('function5_macro', TRUE); $data = [ 'user_id' => $this->session->userdata('user_id'), From 693fe142a2ca956dbf7b72e400071f2b84a35f58 Mon Sep 17 00:00:00 2001 From: Karuru Date: Wed, 14 Aug 2024 07:56:59 +0000 Subject: [PATCH 13/18] Translated using Weblate (Chinese (Simplified)) Currently translated at 100.0% (1897 of 1897 strings) Translation: Wavelog/Main Translation Translate-URL: https://translate.wavelog.org/projects/wavelog/main-translation/zh_Hans/ --- application/locale/zh_CN/LC_MESSAGES/messages.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/locale/zh_CN/LC_MESSAGES/messages.po b/application/locale/zh_CN/LC_MESSAGES/messages.po index 7035bb7e2..88569f705 100644 --- a/application/locale/zh_CN/LC_MESSAGES/messages.po +++ b/application/locale/zh_CN/LC_MESSAGES/messages.po @@ -8,7 +8,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: translations@wavelog.org\n" "POT-Creation-Date: 2024-08-13 07:12+0000\n" -"PO-Revision-Date: 2024-08-13 17:28+0000\n" +"PO-Revision-Date: 2024-08-14 08:35+0000\n" "Last-Translator: Karuru \n" "Language-Team: Chinese (Simplified) \n" @@ -2372,7 +2372,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 From 733fc97b8a9914c7b8db4aae277289a17f8c526c Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 14 Aug 2024 10:34:28 +0000 Subject: [PATCH 14/18] po/mo updates --- application/locale/bg_BG/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/bs/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/cnr/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/cs_CZ/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/de_DE/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/el_GR/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/es_ES/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/fi_FI/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/fr_FR/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/hr/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/it_IT/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/nl_NL/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/pl_PL/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/pt_PT/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/ru_RU/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/sq/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/sr/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/sv_SE/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/tr_TR/LC_MESSAGES/messages.po | 16 ++++++++-------- application/locale/zh_CN/LC_MESSAGES/messages.po | 16 ++++++++-------- assets/lang_src/messages.pot | 16 ++++++++-------- 21 files changed, 168 insertions(+), 168 deletions(-) diff --git a/application/locale/bg_BG/LC_MESSAGES/messages.po b/application/locale/bg_BG/LC_MESSAGES/messages.po index 94fb599e6..6b3c0ba55 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 10:34+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" "Language-Team: Swedish \n" "Language-Team: Turkish \n" "Language-Team: Chinese (Simplified) \n" "Language-Team: LANGUAGE \n" @@ -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 "" From 12f57fcd560c4fdc3053b1bfed3979e10db694e8 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 14 Aug 2024 10:49:45 +0000 Subject: [PATCH 15/18] po/mo updates --- application/locale/sr/LC_MESSAGES/messages.mo | Bin 4639 -> 27106 bytes application/locale/sr/LC_MESSAGES/messages.po | 28 +++++++----------- .../locale/zh_CN/LC_MESSAGES/messages.mo | Bin 160085 -> 160072 bytes .../locale/zh_CN/LC_MESSAGES/messages.po | 23 ++++---------- .../locale/sr/LC_MESSAGES/installer.mo | Bin 16330 -> 16334 bytes 5 files changed, 15 insertions(+), 36 deletions(-) diff --git a/application/locale/sr/LC_MESSAGES/messages.mo b/application/locale/sr/LC_MESSAGES/messages.mo index b50afd28367520cd2b02003f8f9f36cff8a58d25..f9d16c8e46019b9f48161a473dc8ebec1a6b2219 100644 GIT binary patch literal 27106 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 literal 4639 zcmZveUyNK;8Nd&M3M(o?Q4q8Tq@{(3 z?!8kwVq!Fk4>Tf?#0O(a^g-f-Q4>WI>jS$!kZ2?^L|!B&ATcrWqQpr2^ZV|-vt1f) z=DWXp{(a{=-}%n@=1d*f!vII>pe=f;nnZu#q<38l==YtMZrzDgYrx8gYYl# za`+GUVfZh&2VVJprEY@buml(3N8uOX4e)9BA^1ahCHy61sCog)d@n-L|1#vKUgLEY z{2P@1Z$Yu+fA9*pgGw>^MtBX}38mjyQGXBo2<7|W2>c8byFUwM{O94-&_dA@py+=L zGKD$^#lB~X@^_%<`F>IVqk=z!GX7WadiVmA^}JG)UxznRejCbquIDBCcS5n}b|`k- z3GaYYkglo*`Kb;s(btD;mHIN2{$GXSucx8(KM%#f&q1;Kc_{Y&8j5`{LYepXMf)F% z@~Z{kfVa~ACj2S9mci2hHwAwOWuBLz?DMNd{o7Fdb~#2$`wdY1dkd6#cSF&$56XHc zq1ZVE8LAfG>z65YvM5inC`?duP~vM5(xg5IWxRtjPZ!<-`%wJ*Z8#2p0wo?^gA#xL zgretaCY5nFL$PNU6hD?AKQ+xu+N%XmLTP^lejGNTtm`XK#(y1(-lw39J73g42d}04 zw5!=9dAO3yMIH8@BcuV?>b)6?=~p= zzpp6ILYc1$Mc-<{N1)hkpscG^lplp9$^-ZZ_=BSUiyU6*|1~K7`UaGHC@wF2$YQQ+-h^N4))R11qSGf*O5p8 zrJaTeGGxwlI(xibE=a2N9Tn!Vc_AqOZ26ia5!poT-;Ri z#&u9N@1iIxx)3M&xanFoA8f?v1sl59un??m^WJh(;X7Qkt@a(?x|Xj9^%uv*`3`Nh zRHHb-L-eUaS?v*4A>mPRv00M_DO96At#w>(UDC86)3WZA7pdc(pB8=dGL%As=Ai*wj$i6n!$zGkE-9DGYRPAwS|a?@M#>hdle`jj zGL2&~c-fkOqn2%0%Zfc>1)UB4RrB6&1$TcDx(*D*G5TM zKkU;$6cZIuwvn1Z_GywG3vF1lM0u{uL}$A`*s`8$+FDzmX}Vf7A0sNWBhWK}XeauE z?)VxZg;6NPjqFeeww7ogp`p62&-zr$8Hm$h_i3UQ)wvQPK5|i`td`SS&Bn1>K4Wov zQ?0nJ9WY+4cs5Yu=i(s6+6<4ET1i7&I&q zI%PvFcg4dtRW+`}Nr5^!U`BV>}}gJf)RFix1Pf5=_HHdgCb{ zHol35jVJWMNk3`I^{nCkMwe4muKDi0jLjpkv|>$nS{Ff~4>pse7f+9l4vn+rZI+Gp zf^V@8@n}&wio&Qg?2EmlaTvX*d|Jn0WU;zT&CHDJ-Mh7Xj@>ddKCbW6W18NS@12<#HXWRql+Qg`w}azj`tir}A@mvB%b0P- zOdJ?_sIhzi;mUT=mDW+`{*~DnmCeO%Zu9@}QUM)*DYF08#+;*zs zdL3?oA@dwlR8klwnY=S0&%QEh$q!sVa(WP%wmK?#rtS2eC4#CRdG5D9wnc6)_pqt6 zs-*9O3`+W;?zj{NE^4Rhfj}-4Z5vP8&1c0H@=MRxP0i`tvo7BN>eW`lsTR&MdCGaf zcetQL%PJ|^;UquY2}wC(m^yCLxW^Qcm%Jl2)hyqbsFvpKU9)kH>V=SDR@^6ka)tM} zky|FWpYw>n#rX!kJz3KBs{D2r*ZVxdv~tg7NhS*jx%;}lk#0Oegv1~7h z4{}b|6Gt28Y}*iPMIvg6x;zt^j(l&WBB>9SE2Cl5a_C9h=6O<4HXutunm~wLjZ7r7 zX4fdI8yE@ShHm3t{<{#er%fs$BYQ^{^!+*`47aL{(!{j+m&N}Ky0=mk;--OFlyBt+=m-tYEs~$El80_rxC&^$;;uG7p>S*pdV%2Ne`HOjsJA@m0;0Vr&QIQpc U@i`;YE{SaOg57vRRwc#%1H(9Pa{vGU diff --git a/application/locale/sr/LC_MESSAGES/messages.po b/application/locale/sr/LC_MESSAGES/messages.po index b22b09ef1..cac9c41ff 100644 --- a/application/locale/sr/LC_MESSAGES/messages.po +++ b/application/locale/sr/LC_MESSAGES/messages.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Report-Msgid-Bugs-To: translations@wavelog.org\n" -"POT-Creation-Date: 2024-08-13 07:12+0000\n" +"POT-Creation-Date: 2024-08-14 10:34+0000\n" "PO-Revision-Date: 2024-08-13 19:51+0000\n" "Last-Translator: Dragan Đorđević <4o4a.dragan@gmail.com>\n" "Language-Team: Serbian ?*UAIFjeA&e5zB(}tw;1PQWi7jb}y<%bwYKf(T!FV_nonmItQmWB1 zhh`jSP+P}RdRo$S&Y-1Zrlv&?wan>4$9m?>`;+^fzh3uye|KMgzvsDhz52Q9)&E>~ zVz`QP?m>gVMdMSfgVh@PIL=HqLuMwbT%N@f%wkk~OUxDKZ&Bs{fa+(LxxZl$uE;n^ zMkEi)Q4L(i+IZCpes4ar=hfo^SC8j0SOc4540c3ykcCm0kI&;TQRS9e{#sP~TjIk0 zK`9xv$T(^R&Y>Fm!s2UKllb2jKSK?)TBE={hqX}UlTkAbnf*}%9b?buSiBV5kiRKR zq7#WTn1PQ`4RvW8xUQIuskj`Ke*o3NDNMwRSREf=UHmU1LR}!8qdeW+|$|C+1~TgEuiA@1tf|=lQ^Oz+`NJ1vm^>qE_k(Hpg#J1FxD; zkso#`Bs8N`)C~GqJPOs(bo>P_L=E(JSRZ$wW_lD=|5H@?tEdUwLCv^IqMtx*Y(kuf zDxX!6A9ijO300U{k->;jGumWvsXhMyr;&ddHG^JBfoq8q%ypPRd=#}}S1<{0qgEig zi62lbDvrl!`ghHg!1kDn8K{}ALoM;!s18q{%6*O6^Lwa){s*-}(MY3?!T749vNyN4b?zrGs_C*qi#n5>R!KvI%IoLdwCv{@dj$? zqm%u$ZiH&DC8}IH4#$BO???{&ksKsrKMzizDio&#ZW1m*ZN)XzJ^u-_F{-66mycS( zLQKG=sOKg2{HEpKH|w_Y^+KqDW`;>!{28;)IY1&*eFcY;J?GU~VWGYDZG@gUTeY{MRy+s-fbYxn|jDY^*WnAnZ@ zNowGlVW+gf9mfK!!}A9112>SkbqD_~Sb(jFH)9(8yN^h;CF5t*A!^#uU$U@Zq*s5FL_TntmlErloTz4FRTG~|>@52!BUEGO@J^bPO7zYqX_w+L!f%(MqQD>

{P@-mc!UYCQ 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\n" "Language-Team: Chinese (Simplified) zvjFJ_Kw1+>KLyfEK$_p4fuRsc3jt{{Al(9_m4WnZAk7D)_XBB0APoY6K%5RVQk(0n j6sw`7m66HjzbbDen2Hl8zp&M2RG7@6Y_{3cu8|P{F<2dQ delta 164 zcmX?Cf2w}N8qWF}1_p+cwhRpHK-$fYfq?@^`vGYmARP{*xq$Q%Ak7P;*8^!eAiWnz zvjFKkKw1+>KLpZDK$_d0fuRsc^8slwAl(3@m4WnhAk7D)cLQlgAPoY6K%CCNuvwey ftQ4z(iIt(n=D#X$BqqPH)tbzqY_{3gu8|P{kkuSW From 0d37235ec383020432572ab91df0a64c2f033ce0 Mon Sep 17 00:00:00 2001 From: HB9HIL Date: Wed, 14 Aug 2024 13:29:07 +0200 Subject: [PATCH 16/18] notes xss cleaning --- application/controllers/Backup.php | 8 +++++-- application/controllers/Notes.php | 32 ++++++++++++++++++++++----- application/models/Note.php | 35 ++++++++++++++++++++---------- 3 files changed, 56 insertions(+), 19 deletions(-) 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/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/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'); } From 7787ebb1f27ab92fd2e405a9bb37f31fcb68c865 Mon Sep 17 00:00:00 2001 From: Andreas Kristiansen <6977712+AndreasK79@users.noreply.github.com> Date: Wed, 14 Aug 2024 13:41:17 +0200 Subject: [PATCH 17/18] Added binding to queries --- application/models/Timeline_model.php | 135 ++++++++++++-------------- 1 file changed, 64 insertions(+), 71 deletions(-) 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(); } - + } From ff8c1a30d41e7479b48531c4d1ad1257e2bff037 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 14 Aug 2024 18:08:56 +0000 Subject: [PATCH 18/18] po/mo updates --- application/locale/bg_BG/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/bs/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/cnr/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/cs_CZ/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/de_DE/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/el_GR/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/es_ES/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/fi_FI/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/fr_FR/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/hr/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/it_IT/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/nl_NL/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/pl_PL/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/pt_PT/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/ru_RU/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/sq/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/sr/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/sv_SE/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/tr_TR/LC_MESSAGES/messages.po | 14 +++++++------- application/locale/zh_CN/LC_MESSAGES/messages.po | 14 +++++++------- assets/lang_src/messages.pot | 14 +++++++------- 21 files changed, 147 insertions(+), 147 deletions(-) diff --git a/application/locale/bg_BG/LC_MESSAGES/messages.po b/application/locale/bg_BG/LC_MESSAGES/messages.po index 6b3c0ba55..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-14 10:34+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" "Language-Team: Swedish \n" "Language-Team: Turkish \n" "Language-Team: Chinese (Simplified) \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 ""