From 72e8ee4e0a4c333603fc73fda23ce412b01e46cd Mon Sep 17 00:00:00 2001 From: Andreas Date: Sat, 14 Nov 2020 19:50:27 +0100 Subject: [PATCH 1/2] [Adif export] Refactor the view and added a library to make the adif-line. Also a bug fixed in MY_STATE. It was exporting COL_STATE, not COL_MY_STATE --- application/libraries/AdifHelper.php | 125 ++++++++++++++++++++++ application/views/adif/data/exportall.php | 12 ++- 2 files changed, 133 insertions(+), 4 deletions(-) create mode 100644 application/libraries/AdifHelper.php diff --git a/application/libraries/AdifHelper.php b/application/libraries/AdifHelper.php new file mode 100644 index 00000000..be9ee192 --- /dev/null +++ b/application/libraries/AdifHelper.php @@ -0,0 +1,125 @@ +getAdifFieldLine("call", $qso->COL_CALL); + $line .= $this->getAdifFieldLine("band", $qso->COL_BAND); + $line .= $this->getAdifFieldLine("mode", $qso->COL_MODE); + + if ($qso->COL_SUBMODE) { + $line .= $this->getAdifFieldLine("submode", $qso->COL_SUBMODE); + } + + if ($qso->COL_FREQ != 0) { + $freq_in_mhz = $qso->COL_FREQ / 1000000; + $line .= $this->getAdifFieldLine("freq", $freq_in_mhz); + } + + if ($qso->COL_FREQ_RX != 0) { + $freq_rx_in_mhz = $qso->COL_FREQ_RX / 1000000; + $line .= $this->getAdifFieldLine("freq_rx", $freq_rx_in_mhz); + } + + if ($qso->COL_BAND_RX) { + $line .= $this->getAdifFieldLine("band_rx", $qso->COL_BAND_RX); + } + + $date_on = strtotime($qso->COL_TIME_ON); + $new_date = date('Ymd', $date_on); + $line .= $this->getAdifFieldLine("qso_date", $new_date); + + $time_on = strtotime($qso->COL_TIME_ON); + $new_on = date('His', $time_on); + $line .= $this->getAdifFieldLine("time_on", $new_on); + + $time_off = strtotime($qso->COL_TIME_OFF); + $new_off = date('His', $time_off); + $line .= $this->getAdifFieldLine("time_off", $new_off); + + $line .= $this->getAdifFieldLine("rst_rcvd", $qso->COL_RST_RCVD); + + $line .= $this->getAdifFieldLine("rst_sent", $qso->COL_RST_SENT); + + $line .= $this->getAdifFieldLine("qsl_rcvd", $qso->COL_QSL_RCVD); + + $line .= $this->getAdifFieldLine("qsl_sent", $qso->COL_QSL_SENT); + + $line .= $this->getAdifFieldLine("country", $qso->COL_COUNTRY); + + if ($qso->COL_VUCC_GRIDS != "") { + $line .= $this->getAdifFieldLine("vucc_grids", $qso->COL_VUCC_GRIDS); + } + if ($qso->COL_VUCC_GRIDS == "" && $qso->COL_GRIDSQUARE != "") { + $line .= $this->getAdifFieldLine("gridsquare", $qso->COL_GRIDSQUARE); + } + if ($qso->COL_SAT_NAME) { + if ($qso->COL_SAT_MODE != 0 || $qso->COL_SAT_MODE !="") { + $line .= $this->getAdifFieldLine("sat_mode", $qso->COL_SAT_MODE); + $line .= $this->getAdifFieldLine("sat_name", $qso->COL_SAT_NAME); + } + } + + $line .= $this->getAdifFieldLine("prop_mode", $qso->COL_PROP_MODE); + + $line .= $this->getAdifFieldLine("name", $qso->COL_NAME); + + $line .= $this->getAdifFieldLine("state", $qso->COL_STATE); + + $line .= $this->getAdifFieldLine("sota_ref", $qso->COL_SOTA_REF); + + $line .= $this->getAdifFieldLine("operator", $qso->COL_OPERATOR); + + $line .= $this->getAdifFieldLine("STATION_CALLSIGN", $qso->station_callsign); + + $line .= $this->getAdifFieldLine("MY_CITY", $qso->station_city); + + $line .= $this->getAdifFieldLine("MY_COUNTRY", $qso->station_country); + + $line .= $this->getAdifFieldLine("MY_DXCC", $qso->station_dxcc); + + if (strpos($qso->station_gridsquare, ',') !== false ) { + $line .= $this->getAdifFieldLine("MY_VUCC_GRIDS", $qso->station_gridsquare); + } + else { + $line .= $this->getAdifFieldLine("MY_GRIDSQUARE", $qso->station_gridsquare); + } + + $line .= $this->getAdifFieldLine("MY_IOTA", $qso->station_iota); + + $line .= $this->getAdifFieldLine("MY_SOTA_REF", $qso->station_sota); + + $line .= $this->getAdifFieldLine("MY_CQ_ZONE", $qso->station_cq); + + $line .= $this->getAdifFieldLine("MY_ITU_ZONE", $qso->station_itu); + + $line .= $this->getAdifFieldLine("MY_CNTY", $qso->station_cnty); + + $line .= $this->getAdifFieldLine("MY_STATE", $qso->COL_MY_STATE); + + $line .= $this->getAdifFieldLine("stx", $qso->COL_STX); + + $line .= $this->getAdifFieldLine("stx_string", $qso->COL_STX_STRING); + + $line .= $this->getAdifFieldLine("srx", $qso->COL_SRX); + + $line .= $this->getAdifFieldLine("srx_string", $qso->COL_SRX_STRING); + + $line .= $this->getAdifFieldLine("TX_PWR", $qso->COL_TX_PWR); + + $line .= $this->getAdifFieldLine("COMMENT", $qso->COL_COMMENT); + + $line .= "\r\n"; + + return $line; + } + + function getAdifFieldLine($adifcolumn, $dbvalue) { + if ($dbvalue != "") { + return "<" . $adifcolumn . ":" . strlen($dbvalue) . ">" . $dbvalue; + } else { + return ""; + } + } +} \ No newline at end of file diff --git a/application/views/adif/data/exportall.php b/application/views/adif/data/exportall.php index 734bb347..9b29121d 100644 --- a/application/views/adif/data/exportall.php +++ b/application/views/adif/data/exportall.php @@ -7,7 +7,11 @@ config->item('app_version')); ?>>Version config->item('app_version')."\n"; ?> -result() as $qso) { ?> - - COL_CALL); ?>>COL_CALL; ?>COL_BAND); ?>>COL_BAND; ?>COL_MODE); ?>>COL_MODE; ?>COL_SUBMODE) { ?>COL_SUBMODE); ?>>COL_SUBMODE; ?>COL_FREQ != "0") { ?>COL_FREQ / 1000000; ?>>COL_FREQ_RX != "0") { ?>COL_FREQ_RX / 1000000; ?>>COL_BAND_RX) { ?>COL_BAND_RX); ?>>COL_BAND_RX; ?>COL_TIME_ON); $new_date = date('Ymd', $date_on); ?>>COL_TIME_ON); $new_on = date('His', $time_on); ?>>COL_TIME_OFF); $new_off = date('His', $time_off); ?>>COL_RST_RCVD); ?>>COL_RST_RCVD; ?>COL_RST_SENT); ?>>COL_RST_SENT; ?>COL_QSL_RCVD); ?>>COL_QSL_RCVD; ?>COL_QSL_SENT); ?>>COL_QSL_SENT; ?>COL_COUNTRY); ?>>COL_COUNTRY; ?>COL_VUCC_GRIDS != "") { ?>COL_VUCC_GRIDS); ?>>COL_VUCC_GRIDS; ?>COL_VUCC_GRIDS == "" && $qso->COL_GRIDSQUARE != "") { ?>COL_GRIDSQUARE); ?>>COL_GRIDSQUARE; ?>COL_SAT_NAME) { ?>COL_SAT_MODE != 0 || $qso->COL_SAT_MODE !="") {?>COL_SAT_MODE); ?>>COL_SAT_MODE; ?>COL_SAT_NAME); ?>>COL_SAT_NAME; ?>COL_PROP_MODE) { ?>COL_PROP_MODE); ?>>COL_PROP_MODE; ?>COL_NAME) { ?>COL_NAME); ?>>COL_NAME; ?>COL_STATE) { ?>COL_STATE); ?>>COL_STATE; ?>COL_SOTA_REF) { ?>COL_SOTA_REF); ?>>COL_SOTA_REF; ?>COL_OPERATOR) { ?>COL_OPERATOR); ?>>COL_OPERATOR; ?>station_callsign) { ?>station_callsign); ?>>station_callsign; ?>station_city) { ?>station_city); ?>>station_city; ?>station_country) { ?>station_country); ?>>station_country; ?>station_dxcc) { ?>station_dxcc); ?>>station_dxcc; ?>station_gridsquare, ',') !== false ) { ?>station_gridsquare); ?>>station_gridsquare; ?>station_gridsquare); ?>>station_gridsquare; ?>station_iota) { ?>station_iota); ?>>station_iota; ?>station_sota) { ?>station_sota); ?>>station_sota; ?>station_cq) { ?>station_cq); ?>>station_cq; ?>station_itu) { ?>station_itu); ?>>station_itu; ?>station_cnty) { ?>station_cnty); ?>>station_cnty; ?>state) { ?>state); ?>>state; ?>COL_STX !="") { ?>COL_STX);?>>COL_STX; ?>COL_STX_STRING !="") { ?>COL_STX_STRING);?>>COL_STX_STRING; ?>COL_SRX !="") { ?>COL_SRX);?>>COL_SRX; ?>COL_SRX_STRING !="") { ?>COL_SRX_STRING);?>>COL_SRX_STRING; ?>COL_TX_PWR !="") { ?>COL_TX_PWR);?>>COL_TX_PWR; ?>COL_COMMENT !="") { ?>COL_COMMENT);?>>COL_COMMENT; ?> - +load->library('adifhelper'); + +foreach ($qsos->result() as $qso) { + echo $CI->adifhelper->getAdifLine($qso); +} + From 2754e05dbe85d50002f0a5fb8479fa20f7dc4f67 Mon Sep 17 00:00:00 2001 From: Andreas Date: Mon, 16 Nov 2020 19:23:59 +0100 Subject: [PATCH 2/2] Uppercased every tag. Added MY_SIG and MY_SIG_INFO. This was not included, as this was in a PR at the time. --- application/libraries/AdifHelper.php | 60 +++++++++++++++------------- 1 file changed, 32 insertions(+), 28 deletions(-) diff --git a/application/libraries/AdifHelper.php b/application/libraries/AdifHelper.php index be9ee192..aa8dd45e 100644 --- a/application/libraries/AdifHelper.php +++ b/application/libraries/AdifHelper.php @@ -4,72 +4,72 @@ class AdifHelper { public function getAdifLine($qso) { $line = ""; - $line .= $this->getAdifFieldLine("call", $qso->COL_CALL); - $line .= $this->getAdifFieldLine("band", $qso->COL_BAND); - $line .= $this->getAdifFieldLine("mode", $qso->COL_MODE); + $line .= $this->getAdifFieldLine("CALL", $qso->COL_CALL); + $line .= $this->getAdifFieldLine("BAND", $qso->COL_BAND); + $line .= $this->getAdifFieldLine("MODE", $qso->COL_MODE); if ($qso->COL_SUBMODE) { - $line .= $this->getAdifFieldLine("submode", $qso->COL_SUBMODE); + $line .= $this->getAdifFieldLine("SUBMODE", $qso->COL_SUBMODE); } if ($qso->COL_FREQ != 0) { $freq_in_mhz = $qso->COL_FREQ / 1000000; - $line .= $this->getAdifFieldLine("freq", $freq_in_mhz); + $line .= $this->getAdifFieldLine("FREQ", $freq_in_mhz); } if ($qso->COL_FREQ_RX != 0) { $freq_rx_in_mhz = $qso->COL_FREQ_RX / 1000000; - $line .= $this->getAdifFieldLine("freq_rx", $freq_rx_in_mhz); + $line .= $this->getAdifFieldLine("FREQ_RX", $freq_rx_in_mhz); } if ($qso->COL_BAND_RX) { - $line .= $this->getAdifFieldLine("band_rx", $qso->COL_BAND_RX); + $line .= $this->getAdifFieldLine("BAND_RX", $qso->COL_BAND_RX); } $date_on = strtotime($qso->COL_TIME_ON); $new_date = date('Ymd', $date_on); - $line .= $this->getAdifFieldLine("qso_date", $new_date); + $line .= $this->getAdifFieldLine("QSO_DATE", $new_date); $time_on = strtotime($qso->COL_TIME_ON); $new_on = date('His', $time_on); - $line .= $this->getAdifFieldLine("time_on", $new_on); + $line .= $this->getAdifFieldLine("TIME_ON", $new_on); $time_off = strtotime($qso->COL_TIME_OFF); $new_off = date('His', $time_off); - $line .= $this->getAdifFieldLine("time_off", $new_off); + $line .= $this->getAdifFieldLine("TIME_OFF", $new_off); - $line .= $this->getAdifFieldLine("rst_rcvd", $qso->COL_RST_RCVD); + $line .= $this->getAdifFieldLine("RST_RCVD", $qso->COL_RST_RCVD); - $line .= $this->getAdifFieldLine("rst_sent", $qso->COL_RST_SENT); + $line .= $this->getAdifFieldLine("RST_SENT", $qso->COL_RST_SENT); - $line .= $this->getAdifFieldLine("qsl_rcvd", $qso->COL_QSL_RCVD); + $line .= $this->getAdifFieldLine("QSL_RCVD", $qso->COL_QSL_RCVD); - $line .= $this->getAdifFieldLine("qsl_sent", $qso->COL_QSL_SENT); + $line .= $this->getAdifFieldLine("QSL_SENT", $qso->COL_QSL_SENT); - $line .= $this->getAdifFieldLine("country", $qso->COL_COUNTRY); + $line .= $this->getAdifFieldLine("COUNTRY", $qso->COL_COUNTRY); if ($qso->COL_VUCC_GRIDS != "") { - $line .= $this->getAdifFieldLine("vucc_grids", $qso->COL_VUCC_GRIDS); + $line .= $this->getAdifFieldLine("VUCC_GRIDS", $qso->COL_VUCC_GRIDS); } if ($qso->COL_VUCC_GRIDS == "" && $qso->COL_GRIDSQUARE != "") { - $line .= $this->getAdifFieldLine("gridsquare", $qso->COL_GRIDSQUARE); + $line .= $this->getAdifFieldLine("GRIDSQUARE", $qso->COL_GRIDSQUARE); } if ($qso->COL_SAT_NAME) { if ($qso->COL_SAT_MODE != 0 || $qso->COL_SAT_MODE !="") { - $line .= $this->getAdifFieldLine("sat_mode", $qso->COL_SAT_MODE); - $line .= $this->getAdifFieldLine("sat_name", $qso->COL_SAT_NAME); + $line .= $this->getAdifFieldLine("SAT_MODE", $qso->COL_SAT_MODE); + $line .= $this->getAdifFieldLine("SAT_NAME", $qso->COL_SAT_NAME); } } - $line .= $this->getAdifFieldLine("prop_mode", $qso->COL_PROP_MODE); + $line .= $this->getAdifFieldLine("PROP_MODE", $qso->COL_PROP_MODE); - $line .= $this->getAdifFieldLine("name", $qso->COL_NAME); + $line .= $this->getAdifFieldLine("NAME", $qso->COL_NAME); - $line .= $this->getAdifFieldLine("state", $qso->COL_STATE); + $line .= $this->getAdifFieldLine("STATE", $qso->COL_STATE); - $line .= $this->getAdifFieldLine("sota_ref", $qso->COL_SOTA_REF); + $line .= $this->getAdifFieldLine("SOTA_REF", $qso->COL_SOTA_REF); - $line .= $this->getAdifFieldLine("operator", $qso->COL_OPERATOR); + $line .= $this->getAdifFieldLine("OPERATOR", $qso->COL_OPERATOR); $line .= $this->getAdifFieldLine("STATION_CALLSIGN", $qso->station_callsign); @@ -98,18 +98,22 @@ class AdifHelper { $line .= $this->getAdifFieldLine("MY_STATE", $qso->COL_MY_STATE); - $line .= $this->getAdifFieldLine("stx", $qso->COL_STX); + $line .= $this->getAdifFieldLine("STX", $qso->COL_STX); - $line .= $this->getAdifFieldLine("stx_string", $qso->COL_STX_STRING); + $line .= $this->getAdifFieldLine("STX_STRING", $qso->COL_STX_STRING); - $line .= $this->getAdifFieldLine("srx", $qso->COL_SRX); + $line .= $this->getAdifFieldLine("SRX", $qso->COL_SRX); - $line .= $this->getAdifFieldLine("srx_string", $qso->COL_SRX_STRING); + $line .= $this->getAdifFieldLine("SRX_STRING", $qso->COL_SRX_STRING); $line .= $this->getAdifFieldLine("TX_PWR", $qso->COL_TX_PWR); $line .= $this->getAdifFieldLine("COMMENT", $qso->COL_COMMENT); + $line .= $this->getAdifFieldLine("MY_SIG", $qso->station_sig); + + $line .= $this->getAdifFieldLine("MY_SIG_INFO", $qso->station_sig_info); + $line .= "\r\n"; return $line;