From 72e8ee4e0a4c333603fc73fda23ce412b01e46cd Mon Sep 17 00:00:00 2001 From: Andreas Date: Sat, 14 Nov 2020 19:50:27 +0100 Subject: [PATCH] [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); +} +