2023-04-12 11:58:47 +02:00
< ? php
if ( ! defined ( 'BASEPATH' )) exit ( 'No direct script access allowed' );
/*
This controller contains features for Cabrillo
*/
class Cabrillo extends CI_Controller {
2023-04-12 14:24:03 +02:00
function __construct () {
2023-04-12 11:58:47 +02:00
parent :: __construct ();
$this -> load -> model ( 'user_model' );
2025-01-02 10:22:23 +01:00
if ( ! $this -> user_model -> authorize ( 2 ) || ! clubaccess_check ( 9 )) { $this -> session -> set_flashdata ( 'error' , __ ( " You're not allowed to do that! " )); redirect ( 'dashboard' ); }
2023-04-12 11:58:47 +02:00
}
2023-07-30 17:31:54 +00:00
public function index () {
2024-06-08 11:01:59 +02:00
$data [ 'page_title' ] = __ ( " Export Cabrillo " );
2023-04-12 11:58:47 +02:00
2023-07-30 17:31:54 +00:00
$this -> load -> model ( 'Contesting_model' );
$this -> load -> model ( 'stations' );
2023-04-12 11:58:47 +02:00
2023-07-30 17:31:54 +00:00
$data [ 'station_profile' ] = $this -> stations -> all_of_user ();
$active_station_id = $this -> stations -> find_active ();
$station_profile = $this -> stations -> profile ( $active_station_id );
2023-04-12 14:24:03 +02:00
$data [ 'active_station_info' ] = $station_profile -> row ();
2023-04-12 11:58:47 +02:00
$footerData = [];
$footerData [ 'scripts' ] = [
'assets/js/sections/cabrillo.js'
];
2023-07-30 17:31:54 +00:00
$this -> load -> view ( 'interface_assets/header' , $data );
2023-04-12 11:58:47 +02:00
$this -> load -> view ( 'cabrillo/index' );
$this -> load -> view ( 'interface_assets/footer' , $footerData );
2023-07-30 17:31:54 +00:00
}
2023-04-12 11:58:47 +02:00
2023-07-30 17:31:54 +00:00
public function getContests () {
2023-04-12 11:58:47 +02:00
$this -> load -> model ( 'Contesting_model' );
2023-04-12 14:24:03 +02:00
2023-07-30 17:31:54 +00:00
$station_id = $this -> security -> xss_clean ( $this -> input -> post ( 'station_id' ));
$this -> load -> model ( 'stations' );
if ( $this -> stations -> check_station_is_accessible ( $station_id )) {
$year = $this -> security -> xss_clean ( $this -> input -> post ( 'year' ));
$result = $this -> Contesting_model -> get_logged_contests ( $station_id , $year );
header ( 'Content-Type: application/json' );
echo json_encode ( $result );
} else {
2024-08-16 10:08:44 +02:00
$this -> session -> set_flashdata ( 'error' , __ ( " You're not allowed to do that! " )); redirect ( 'dashboard' );
2023-07-30 17:31:54 +00:00
}
}
2023-04-12 14:24:03 +02:00
2023-07-30 17:31:54 +00:00
public function getYears () {
2023-04-12 14:24:03 +02:00
$this -> load -> model ( 'Contesting_model' );
2023-07-30 17:31:54 +00:00
$station_id = $this -> security -> xss_clean ( $this -> input -> post ( 'station_id' ));
2023-04-12 14:24:03 +02:00
$result = $this -> Contesting_model -> get_logged_years ( $station_id );
2023-04-12 11:58:47 +02:00
header ( 'Content-Type: application/json' );
echo json_encode ( $result );
2023-07-30 17:31:54 +00:00
}
public function getContestDates () {
$this -> load -> model ( 'Contesting_model' );
$station_id = $this -> security -> xss_clean ( $this -> input -> post ( 'station_id' ));
$this -> load -> model ( 'stations' );
if ( $this -> stations -> check_station_is_accessible ( $station_id )) {
$year = $this -> security -> xss_clean ( $this -> input -> post ( 'year' ));
$contestid = $this -> security -> xss_clean ( $this -> input -> post ( 'contestid' ));
$result = $this -> Contesting_model -> get_contest_dates ( $station_id , $year , $contestid );
header ( 'Content-Type: application/json' );
echo json_encode ( $result );
} else {
2024-08-16 10:08:44 +02:00
$this -> session -> set_flashdata ( 'error' , __ ( " You're not allowed to do that! " )); redirect ( 'dashboard' );
2023-07-30 17:31:54 +00:00
}
}
2023-04-12 11:58:47 +02:00
2023-07-30 17:31:54 +00:00
public function export () {
// Set memory limit to unlimited to allow heavy usage
ini_set ( 'memory_limit' , '-1' );
$this -> load -> model ( 'Contesting_model' );
2023-04-12 14:24:03 +02:00
2023-07-30 17:31:54 +00:00
$this -> load -> model ( 'stations' );
2023-04-12 11:58:47 +02:00
2023-07-30 17:31:54 +00:00
$this -> load -> model ( 'user_model' );
2023-04-12 11:58:47 +02:00
2023-07-30 17:31:54 +00:00
$station_id = $this -> security -> xss_clean ( $this -> input -> post ( 'station_id' ));
if ( $this -> stations -> check_station_is_accessible ( $station_id )) {
$contest_id = $this -> security -> xss_clean ( $this -> input -> post ( 'contestid' ));
$from = $this -> security -> xss_clean ( $this -> input -> post ( 'contestdatesfrom' ));
$to = $this -> security -> xss_clean ( $this -> input -> post ( 'contestdatesto' ));
$station = $this -> stations -> profile ( $station_id );
$station = $station -> row ();
$userinfo = $this -> user_model -> get_by_id ( $this -> session -> userdata ( 'user_id' ));
$userinfo = $userinfo -> row ();
$data [ 'qsos' ] = $this -> Contesting_model -> export_custom ( $from , $to , $contest_id , $station_id );
$data [ 'contest_id' ] = $contest_id ;
$data [ 'callsign' ] = $station -> station_callsign ;
$data [ 'claimed_score' ] = '' ;
$data [ 'categoryoperator' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'categoryoperator' ));
$data [ 'categoryassisted' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'categoryassisted' ));
$data [ 'categoryband' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'categoryband' ));
$data [ 'categorymode' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'categorymode' ));
$data [ 'categorypower' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'categorypower' ));
$data [ 'categorystation' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'categorystation' ));
$data [ 'categorytransmitter' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'categorytransmitter' ));
2024-10-04 21:14:11 +00:00
$data [ 'categorytime' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'categorytime' ));
2023-07-30 17:31:54 +00:00
$data [ 'categoryoverlay' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'categoryoverlay' ));
$data [ 'operators' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'operators' ));
$data [ 'club' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'club' ));
2024-10-04 20:47:36 +00:00
$data [ 'location' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'location' ));
2023-07-30 17:31:54 +00:00
$data [ 'name' ] = $userinfo -> user_firstname . ' ' . $userinfo -> user_lastname ;
$data [ 'email' ] = $userinfo -> user_email ;
$data [ 'address' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'address' ));
$data [ 'addresscity' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'addresscity' ));
$data [ 'addressstateprovince' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'addressstateprovince' ));
$data [ 'addresspostalcode' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'addresspostalcode' ));
$data [ 'addresscountry' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'addresscountry' ));
$data [ 'soapbox' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'soapbox' ));
$data [ 'gridlocator' ] = $station -> station_gridsquare ;
2024-10-04 21:28:19 +00:00
$data [ 'certificate' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'certificate' ));
2024-11-13 00:06:32 +01:00
$data [ 'grid_export' ] = $this -> security -> xss_clean ( $this -> input -> post ( 'grid_export' )) == '1' ? true : false ;
2023-07-30 17:31:54 +00:00
$this -> load -> view ( 'cabrillo/export' , $data );
} else {
2024-08-16 10:08:44 +02:00
$this -> session -> set_flashdata ( 'error' , __ ( " You're not allowed to do that! " )); redirect ( 'dashboard' );
2023-07-30 17:31:54 +00:00
}
}
}