diff --git a/application/controllers/Statistics.php b/application/controllers/Statistics.php index 67098d2ed..cc7814065 100644 --- a/application/controllers/Statistics.php +++ b/application/controllers/Statistics.php @@ -20,21 +20,21 @@ class Statistics extends CI_Controller { } else { redirect('user/login'); } - } + } // Render User Interface // Set Page Title $data['page_title'] = __("Statistics"); $data['sat_active'] = array_search("SAT", $this->bands->get_user_bands(), true); - + // Load Views $this->load->view('interface_assets/header', $data); $this->load->view('statistics/index'); $this->load->view('interface_assets/footer'); } - + function custom() { - + $this->load->model('user_model'); if(!$this->user_model->authorize($this->config->item('auth_mode'))) { if($this->user_model->validate_session()) { @@ -44,12 +44,12 @@ class Statistics extends CI_Controller { redirect('user/login'); } } - + $this->load->model('logbook_model'); $data['page_title'] = __("Custom Statistics"); $data['modes'] = $this->logbook_model->get_modes(); - + $this->load->helper(array('form', 'url')); $this->load->library('form_validation'); @@ -65,16 +65,16 @@ class Statistics extends CI_Controller { } else { - + $this->load->model('stats'); - + $data['result'] = $this->stats->result(); - + $this->load->view('interface_assets/header', $data); $this->load->view('statistics/custom_result'); $this->load->view('interface_assets/footer'); } - + } public function get_year() { @@ -84,7 +84,7 @@ class Statistics extends CI_Controller { $totals_year = $this->logbook_model->totals_year(); $yearstats = array(); - + $i = 0; if ($totals_year) { foreach($totals_year->result() as $qso_numbers) { @@ -92,7 +92,7 @@ class Statistics extends CI_Controller { $yearstats[$i++]['total'] = $qso_numbers->total; } } - + header('Content-Type: application/json'); echo json_encode($yearstats); } @@ -101,7 +101,7 @@ class Statistics extends CI_Controller { $this->load->model('logbook_model'); $modestats = array(); - + $i = 0; $modestats[$i]['mode'] = 'ssb'; $modestats[$i++]['total'] = $this->logbook_model->total_ssb(); @@ -112,7 +112,7 @@ class Statistics extends CI_Controller { $modestats[$i]['mode'] = 'digi'; $modestats[$i]['total'] = $this->logbook_model->total_digi(); usort($modestats, fn($a, $b) => $b['total'] <=> $a['total']); - + header('Content-Type: application/json'); echo json_encode($modestats); @@ -124,9 +124,9 @@ class Statistics extends CI_Controller { $bandstats = array(); $total_bands = $this->logbook_model->total_bands(); - + $i = 0; - + if ($total_bands) { foreach($total_bands->result() as $qso_numbers) { $bandstats[$i]['band'] = $qso_numbers->band; @@ -145,7 +145,7 @@ class Statistics extends CI_Controller { $total_sat = $this->logbook_model->total_sat(); $i = 0; - + if ($total_sat) { foreach($total_sat->result() as $qso_numbers) { $satstats[$i]['sat'] = $qso_numbers->COL_SAT_NAME; @@ -160,6 +160,8 @@ class Statistics extends CI_Controller { public function get_unique_sat_callsigns() { $this->load->model('stats'); + $total_qsos = array(); + $result = $this->stats->unique_sat_callsigns(); $total_qsos['qsoarray'] = $result['qsoView']; $total_qsos['satunique'] = $result['satunique']; @@ -174,6 +176,8 @@ class Statistics extends CI_Controller { public function get_unique_callsigns() { $this->load->model('stats'); + $total_qsos = array(); + $result = $this->stats->unique_callsigns(); $total_qsos['qsoarray'] = $result['qsoView']; $total_qsos['bandunique'] = $result['bandunique']; @@ -187,7 +191,7 @@ class Statistics extends CI_Controller { public function get_total_sat_qsos() { $this->load->model('stats'); - $totalqsos = array(); + $total_qsos = array(); $result = $this->stats->total_sat_qsos(); $total_qsos['qsoarray'] = $result['qsoView']; @@ -202,7 +206,7 @@ class Statistics extends CI_Controller { public function get_total_qsos() { $this->load->model('stats'); - $totalqsos = array(); + $total_qsos = array(); $result = $this->stats->total_qsos(); $total_qsos['qsoarray'] = $result['qsoView']; @@ -212,4 +216,24 @@ class Statistics extends CI_Controller { $this->load->view('statistics/qsotable', $total_qsos); } + + public function qslstats() { + $this->load->model('stats'); + + $total_qsos = array(); + + $result = $this->stats->total_qsls(); + $total_qsos['qsoarray'] = $result['qsoView']; + $total_qsos['qsosatarray'] = $result['qsoSatView']; + $total_qsos['bands'] = $this->stats->get_bands(); + $total_qsos['sats'] = $this->stats->get_sats(); + + // Set Page Title + $data['page_title'] = __("QSL Statistics"); + + // Load Views + $this->load->view('interface_assets/header'); + $this->load->view('statistics/qsltable', $total_qsos); + $this->load->view('interface_assets/footer'); + } } diff --git a/application/models/Stats.php b/application/models/Stats.php index 6ead78c4d..eab3503c9 100644 --- a/application/models/Stats.php +++ b/application/models/Stats.php @@ -4,30 +4,30 @@ function result() { $this->db->select('COL_CALL, COL_BAND, COL_TIME_ON, COL_RST_RCVD, COL_RST_SENT, COL_MODE, COL_NAME, COL_COUNTRY, COL_PRIMARY_KEY, COL_SAT_NAME'); - - $this->db->where('COL_TIME_ON >=', $this->input->post('start_date')); - $this->db->where('COL_TIME_OFF <=', $this->input->post('end_date')); - + + $this->db->where('COL_TIME_ON >=', $this->input->post('start_date')); + $this->db->where('COL_TIME_OFF <=', $this->input->post('end_date')); + if($this->input->post('band_6m') == "6m") { - $this->db->where('COL_BAND', $this->input->post('band_6m')); + $this->db->where('COL_BAND', $this->input->post('band_6m')); } - + if($this->input->post('band_2m') == "2m") { - $this->db->where('COL_BAND', $this->input->post('band_2m')); + $this->db->where('COL_BAND', $this->input->post('band_2m')); } - + if($this->input->post('band_70cm') == "70cm") { - $this->db->where('COL_BAND', $this->input->post('band_70cm')); + $this->db->where('COL_BAND', $this->input->post('band_70cm')); } - + if($this->input->post('band_23cm') == "23cm") { - $this->db->where('COL_BAND', $this->input->post('band_23cm')); + $this->db->where('COL_BAND', $this->input->post('band_23cm')); } - + if($this->input->post('band_3cm') == "3cm") { - $this->db->where('COL_BAND', $this->input->post('band_3cm')); + $this->db->where('COL_BAND', $this->input->post('band_3cm')); } - + // Select Voice QSOs if($this->input->post('mode_data') == "data") { if($this->input->post('mode_ssb') != "ssb") { @@ -45,29 +45,29 @@ $this->db->where('COL_MODE !=', 'AM'); } } - + // Select Voice QSOs if($this->input->post('mode_ssb') == "ssb") { - $this->db->where('COL_MODE', $this->input->post('mode_ssb')); + $this->db->where('COL_MODE', $this->input->post('mode_ssb')); $this->db->or_where('COL_MODE', 'USB'); - $this->db->or_where('COL_MODE', 'LSB'); + $this->db->or_where('COL_MODE', 'LSB'); } - + // Select CW QSOs if($this->input->post('mode_cw') == "cw") { - $this->db->where('COL_MODE', $this->input->post('mode_ssb')); + $this->db->where('COL_MODE', $this->input->post('mode_ssb')); } - + // Select FM QSOs if($this->input->post('mode_fm') == "fm") { - $this->db->where('COL_MODE', $this->input->post('mode_ssb')); + $this->db->where('COL_MODE', $this->input->post('mode_ssb')); } - + // Select AM QSOs if($this->input->post('mode_am') == "am") { - $this->db->where('COL_MODE', $this->input->post('mode_am')); + $this->db->where('COL_MODE', $this->input->post('mode_am')); } - + return $this->db->get($this->config->item('table_name')); } @@ -79,7 +79,7 @@ $satunique = $this->getUniqueSatCallsignsSat(); $modeunique = $this->getUniqueSatCallsignsModes(); - + // Generating the band/mode table foreach ($sats as $sat) { $sattotal[$sat] = 0; @@ -133,7 +133,7 @@ $modecalls=[]; $bandcalls=[]; - + // Generating the band/mode table foreach ($bands as $band) { $bandtotal[$band] = 0; @@ -178,19 +178,19 @@ function getUniqueSatCallsignsSat() { $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; } $bands = array(); - + $this->db->select('count(distinct col_call) as calls, upper(col_sat_name) as sat', FALSE); $this->db->where('col_prop_mode', 'SAT'); $this->db->where('coalesce(col_sat_name,"") != ""'); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->group_by('upper(col_sat_name)'); - + $query = $this->db->get($this->config->item('table_name')); return $query->result(); @@ -199,59 +199,57 @@ function getUniqueSatCallsigns() { $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; } $bands = array(); - + $this->db->select('count(distinct col_call) as calls, upper(col_sat_name) as sat, col_mode, coalesce(col_submode, "") col_submode', FALSE); $this->db->where('col_prop_mode', 'SAT'); $this->db->where('coalesce(col_sat_name,"") != ""'); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->group_by('upper(col_sat_name), col_mode, coalesce(col_submode, "")'); - + $query = $this->db->get($this->config->item('table_name')); return $query->result(); } function getUniqueCallsigns() { - $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; } $bands = array(); - + $this->db->select('count(distinct col_call) as calls, lower(col_band) as band, col_mode, coalesce(col_submode, "") col_submode', FALSE); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->group_by('lower(col_band), col_mode, coalesce(col_submode, "")'); - + $query = $this->db->get($this->config->item('table_name')); return $query->result(); } function getUniqueCallsignsModes() { - $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; } $bands = array(); - + $this->db->select('count(distinct col_call) as calls, col_mode, coalesce(col_submode, "") col_submode', FALSE); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->group_by('col_mode, coalesce(col_submode, "")'); - + $query = $this->db->get($this->config->item('table_name')); return $query->result(); @@ -260,39 +258,38 @@ function getUniqueSatCallsignsModes() { $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; } $bands = array(); - + $this->db->select('count(distinct col_call) as calls, col_mode, coalesce(col_submode, "") col_submode', FALSE); $this->db->where('coalesce(col_sat_name,"") != ""'); $this->db->where('col_prop_mode', 'SAT'); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->group_by('col_mode, coalesce(col_submode, "")'); - + $query = $this->db->get($this->config->item('table_name')); return $query->result(); } function getUniqueCallsignsBands() { - $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; } $bands = array(); - + $this->db->select('count(distinct col_call) as calls, col_band as band', FALSE); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->group_by('col_band'); - + $query = $this->db->get($this->config->item('table_name')); return $query->result(); @@ -301,37 +298,36 @@ function getUniqueSatCallsignsTotal() { $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; } $bands = array(); - + $this->db->select('count(distinct col_call) as calls', FALSE); $this->db->where('coalesce(col_sat_name,"") != ""'); $this->db->where('col_prop_mode', 'SAT'); $this->db->where_in('station_id', $logbooks_locations_array); - + $query = $this->db->get($this->config->item('table_name')); return $query->row(); } function getUniqueCallsignsTotal() { - $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; } $bands = array(); - + $this->db->select('count(distinct col_call) as calls', FALSE); $this->db->where_in('station_id', $logbooks_locations_array); - + $query = $this->db->get($this->config->item('table_name')); return $query->row(); @@ -412,42 +408,167 @@ return $result; } + function total_qsls() { + $qsoView = array(); + $qsoSatView = array(); + + $bands = $this->get_bands(); + $modes = $this->get_modes(); + + $sats = $this->get_sats(); + $satmodes = $this->get_sat_modes(); + + // Generating the band/mode table + foreach ($bands as $band) { + foreach ($modes as $mode) { + $qsoView [$mode][$band]['qso'] = '0'; + $qsoView [$mode][$band]['qsl'] = '0'; + $qsoView [$mode][$band]['lotw'] = '0'; + $qsoView [$mode][$band]['qrz'] = '0'; + $qsoView [$mode][$band]['eqsl'] = '0'; + $qsoView [$mode][$band]['clublog'] = '0'; + } + } + + // Populating array with numbers + $workedQso = $this->modeBandQsl(); + foreach ($workedQso as $line) { + if ($line->col_submode == null || $line->col_submode == "") { + $qsoView [$line->col_mode] [$line->band] ['qso'] = $line->qsos; + $qsoView [$line->col_mode] [$line->band] ['qsl'] = $line->qsl; + $qsoView [$line->col_mode] [$line->band] ['lotw'] = $line->lotw; + $qsoView [$line->col_mode] [$line->band] ['qrz'] = $line->qrz; + $qsoView [$line->col_mode] [$line->band] ['eqsl'] = $line->eqsl; + $qsoView [$line->col_mode] [$line->band] ['clublog'] = $line->clublog; + } else { + $qsoView [$line->col_submode] [$line->band] ['qso'] = $line->qsos; + $qsoView [$line->col_submode] [$line->band] ['qsl'] = $line->qsl; + $qsoView [$line->col_submode] [$line->band] ['lotw'] = $line->lotw; + $qsoView [$line->col_submode] [$line->band] ['qrz'] = $line->qrz; + $qsoView [$line->col_submode] [$line->band] ['eqsl'] = $line->eqsl; + $qsoView [$line->col_submode] [$line->band] ['clublog'] = $line->clublog; + } + } + + // Generating the band/mode table + foreach ($sats as $sat) { + foreach ($satmodes as $mode) { + $qsoSatView [$mode][$sat]['qso'] = '0'; + $qsoSatView [$mode][$sat]['qsl'] = '0'; + $qsoSatView [$mode][$sat]['lotw'] = '0'; + $qsoSatView [$mode][$sat]['qrz'] = '0'; + $qsoSatView [$mode][$sat]['eqsl'] = '0'; + $qsoSatView [$mode][$sat]['clublog'] = '0'; + } + } + + // Populating array with numbers + $workedSatQso = $this->modeSatQsl(); + foreach ($workedSatQso as $line) { + if ($line->col_submode == null || $line->col_submode == "") { + $qsoSatView [$line->col_mode] [$line->sat] ['qso'] = $line->qsos; + $qsoSatView [$line->col_mode] [$line->sat] ['qsl'] = $line->qsl; + $qsoSatView [$line->col_mode] [$line->sat] ['lotw'] = $line->lotw; + $qsoSatView [$line->col_mode] [$line->sat] ['qrz'] = $line->qrz; + $qsoSatView [$line->col_mode] [$line->sat] ['eqsl'] = $line->eqsl; + $qsoSatView [$line->col_mode] [$line->sat] ['clublog'] = $line->clublog; + } else { + $qsoSatView [$line->col_submode] [$line->sat] ['qso'] = $line->qsos; + $qsoSatView [$line->col_submode] [$line->sat] ['qsl'] = $line->qsl; + $qsoSatView [$line->col_submode] [$line->sat] ['lotw'] = $line->lotw; + $qsoSatView [$line->col_submode] [$line->sat] ['qrz'] = $line->qrz; + $qsoSatView [$line->col_submode] [$line->sat] ['eqsl'] = $line->eqsl; + $qsoSatView [$line->col_submode] [$line->sat] ['clublog'] = $line->clublog; + } + } + + $result['qsoView'] = $qsoView; + $result['qsoSatView'] = $qsoSatView; + + return $result; + } + + function modeBandQsl() { + $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; + } + + $sql = "select lower(col_band) as band, col_mode, coalesce(col_submode, '') col_submode, + count(*) qsos, + count(case when COL_QSL_RCVD='Y' then 1 end) qsl, + count(case when COL_EQSL_QSL_RCVD='Y' then 1 end) eqsl, + count(case when COL_LOTW_QSL_RCVD='Y' then 1 end) lotw, + count(case when COL_QRZCOM_QSO_DOWNLOAD_STATUS='Y' then 1 end) qrz, + count(case when COL_CLUBLOG_QSO_DOWNLOAD_STATUS='Y' then 1 end) clublog + from " . $this->config->item('table_name') . " + where station_id in (". implode(',', $logbooks_locations_array) .") + and col_prop_mode <> 'SAT' + group by lower(col_band), col_mode, coalesce(col_submode, '')"; + + $result = $this->db->query($sql); + return $result->result(); + } + + function modeSatQsl() { + $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; + } + + $sql = "select upper(col_sat_name) as sat, col_mode, coalesce(col_submode, '') col_submode, + count(*) qsos, + count(case when COL_QSL_RCVD='Y' then 1 end) qsl, + count(case when COL_EQSL_QSL_RCVD='Y' then 1 end) eqsl, + count(case when COL_LOTW_QSL_RCVD='Y' then 1 end) lotw, + count(case when COL_QRZCOM_QSO_DOWNLOAD_STATUS='Y' then 1 end) qrz, + count(case when COL_CLUBLOG_QSO_DOWNLOAD_STATUS='Y' then 1 end) clublog + from " . $this->config->item('table_name') . " + where station_id in (". implode(',', $logbooks_locations_array) .") + and col_prop_mode = 'SAT' + group by upper(col_sat_name), col_mode, coalesce(col_submode, '')"; + + $result = $this->db->query($sql); + return $result->result(); + } + function modeSatQso() { $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; + return null; } $bands = array(); - + $this->db->select('count(*) as count, upper(col_sat_name) as sat, col_mode, coalesce(col_submode, "") col_submode', FALSE); $this->db->where('coalesce(col_sat_name,"") != ""'); $this->db->where('col_prop_mode', 'SAT'); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->group_by('upper(col_sat_name), col_mode, coalesce(col_submode, "")'); - + $query = $this->db->get($this->config->item('table_name')); return $query->result(); } function modeBandQso() { - $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; + return null; } - $bands = array(); - $this->db->select('count(*) as count, lower(col_band) as band, col_mode, coalesce(col_submode, "") col_submode', FALSE); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->group_by('lower(col_band), col_mode, coalesce(col_submode, "")'); - + $query = $this->db->get($this->config->item('table_name')); return $query->result(); @@ -456,62 +577,72 @@ function get_sats() { $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; + return null; } $sats = array(); - + $this->db->select('distinct col_sat_name as satsort, upper(col_sat_name) as sat', FALSE); $this->db->where('coalesce(col_sat_name,"") != ""'); $this->db->where('col_prop_mode', 'SAT'); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->order_by('satsort', 'asc'); - + $query = $this->db->get($this->config->item('table_name')); foreach($query->result() as $sat){ array_push($sats, $sat->sat); } - return $sats; } function get_bands() { - $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; + return null; } $bands = array(); - + $this->db->select('distinct col_band+0 as bandsort, lower(col_band) as band', FALSE); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->order_by('bandsort', 'desc'); - + $query = $this->db->get($this->config->item('table_name')); foreach($query->result() as $band){ array_push($bands, $band->band); } - + + usort( + $bands, + function($b, $a) { + sscanf($a, '%f%s', $ac, $ar); + sscanf($b, '%f%s', $bc, $br); + if ($ar == $br) { + return ($ac < $bc) ? -1 : 1; + } + return ($ar < $br) ? -1 : 1; + } + ); + return $bands; } function get_sat_modes() { $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; + return null; } $modes = array(); - + $this->db->select('distinct col_mode, coalesce(col_submode, "") col_submode', FALSE); $this->db->where('coalesce(col_sat_name,"") != ""'); $this->db->where('col_prop_mode', 'SAT'); @@ -519,7 +650,7 @@ $this->db->order_by('col_mode, col_submode', 'ASC'); $query = $this->db->get($this->config->item('table_name')); - + foreach($query->result() as $mode){ if ($mode->col_submode == null || $mode->col_submode == "") { array_push($modes, $mode->col_mode); @@ -530,24 +661,23 @@ return $modes; } - + function get_modes() { - $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; + return null; } $modes = array(); - + $this->db->select('distinct col_mode, coalesce(col_submode, "") col_submode', FALSE); $this->db->where_in('station_id', $logbooks_locations_array); $this->db->order_by('col_mode, col_submode', 'ASC'); $query = $this->db->get($this->config->item('table_name')); - + foreach($query->result() as $mode){ if ($mode->col_submode == null || $mode->col_submode == "") { array_push($modes, $mode->col_mode); diff --git a/application/views/interface_assets/footer.php b/application/views/interface_assets/footer.php index a2dcb1592..c38c60219 100644 --- a/application/views/interface_assets/footer.php +++ b/application/views/interface_assets/footer.php @@ -200,7 +200,7 @@ if($this->session->userdata('user_id') != null) { -uri->segment(1) == "statistics") { ?> +uri->segment(1) == "statistics" && $this->uri->segment(2) == "") { ?> diff --git a/application/views/interface_assets/header.php b/application/views/interface_assets/header.php index b4240c5c3..03917d896 100644 --- a/application/views/interface_assets/header.php +++ b/application/views/interface_assets/header.php @@ -133,6 +133,8 @@