2 require_once('require/class.Connection.php');
3 require_once('require/class.Marine.php');
4 require_once('require/class.Stats.php');
5 require_once('require/class.Language.php');
6 require_once('require/class.MarineArchive.php');
8 if (!isset($_GET['captain'])){
9 header('Location: '.$globalURL.'/');
12 $Marine = new Marine();
13 $MarineArchive = new MarineArchive();
14 //calculuation for the pagination
15 if(!isset($_GET['limit']))
19 $absolute_difference = 25;
21 $limit_explode = explode(",", $_GET['limit']);
22 $limit_start = $limit_explode[0];
23 $limit_end = $limit_explode[1];
24 if (!ctype_digit(strval($limit_start)) ||
!ctype_digit(strval($limit_end))) {
29 $absolute_difference = abs($limit_start - $limit_end);
30 $limit_next = $limit_end +
$absolute_difference;
31 $limit_previous_1 = $limit_start - $absolute_difference;
32 $limit_previous_2 = $limit_end - $absolute_difference;
34 $page_url = $globalURL.'/marine/captain/'.$_GET['captain'];
36 $captain = filter_input(INPUT_GET
,'captain',FILTER_SANITIZE_STRING
);
37 $sort = filter_input(INPUT_GET
,'sort',FILTER_SANITIZE_STRING
);
38 $year = filter_input(INPUT_GET
,'year',FILTER_SANITIZE_NUMBER_INT
);
39 $month = filter_input(INPUT_GET
,'month',FILTER_SANITIZE_NUMBER_INT
);
41 if ($year != '') $filter = array_merge($filter,array('year' => $year));
42 if ($month != '') $filter = array_merge($filter,array('month' => $month));
45 $spotter_array = $Marine->getMarineDataByCaptain($captain,$limit_start.",".$absolute_difference, $sort,$filter);
47 if (empty($spotter_array) && isset($globalArchiveResults) && $globalArchiveResults) {
48 $spotter_array = $MarineArchive->getMarineDataByCaptain($captain,$limit_start.",".$absolute_difference, $sort,$filter);
52 $spotter_array = $Marine->getMarineDataByCaptain($captain,$limit_start.",".$absolute_difference,'',$filter);
54 if (empty($spotter_array) && isset($globalArchiveResults) && $globalArchiveResults) {
55 $spotter_array = $MarineArchive->getMarineDataByCaptain($captain,$limit_start.",".$absolute_difference,'',$filter);
60 if (!empty($spotter_array))
62 $title = sprintf(_("Detailed View for %s"),$spotter_array[0]['captain_name']);
63 $ident = $spotter_array[0]['ident'];
64 if (isset($spotter_array[0]['latitude'])) $latitude = $spotter_array[0]['latitude'];
65 if (isset($spotter_array[0]['longitude'])) $longitude = $spotter_array[0]['longitude'];
66 require_once('header.php');
68 if (isset($globalArchive) && $globalArchive) {
69 // Requirement for altitude graph
70 print '<script type="text/javascript" src="https://www.google.com/jsapi"></script>';
71 $all_data = $MarineArchive->getAltitudeSpeedArchiveMarineDataById($spotter_array[0]['flightaware_id']);
72 if (isset($globalTimezone)) {
73 date_default_timezone_set($globalTimezone);
74 } else date_default_timezone_set('UTC');
75 if (count($all_data) > 0) {
76 print '<div id="chart6" class="chart" width="100%"></div>
78 google.load("visualization", "1.1", {packages:["line","corechart"]});
79 google.setOnLoadCallback(drawChart6);
80 function drawChart6() {
81 var data = google.visualization.arrayToDataTable([
82 ["Hour","'._("Altitude").'","'._("Speed").'"], ';
84 foreach($all_data as $data)
86 $altitude_data .= '[ "'.date("G:i",strtotime($data['date']." UTC")).'",'.$data['altitude'].','.$data['ground_speed'].'],';
88 $altitude_data = substr($altitude_data, 0, -1);
89 print $altitude_data.']);
92 legend: {position: "none"},
94 0: {axis: "Altitude"},
99 Altitude: {label: "'._("Altitude (FL)").'"},
100 Speed: {label: "'._("Speed (knots)").'"},
106 var chart = new google.charts.Line(document.getElementById("chart6"));
107 chart.draw(data, options);
109 $(window).resize(function(){
116 print '<div class="info column">';
117 print '<h1>'.$spotter_array[0]['captain_name'].'</h1>';
118 if (isset($spotter_array[0]['captain_id']) && $spotter_array[0]['captain_id'] != '') print '<div><span class="label">'._("Captain ID").'</span>'.$spotter_array[0]['captain_id'].'</div>';
120 if ($year == '' && $month == '') {
121 $Stats = new Stats();
122 $flights = $Stats->getStatsCaptain($captain);
126 $flights = $Marine->countRacesByCaptain($captain,$filter);
127 print '<div><span class="label">'._("Races").'</span>'.$flights.'</div>';
128 $aircraft_type = count($Marine->countAllBoatTypesByCaptain($captain,$filter));
129 print '<div><span class="label">'._("Boat type").'</span>'.$aircraft_type.'</div>';
130 //$aircraft_registration = count($Marine->countAllAircraftRegistrationByCaptain($captain,$filter));
131 //print '<div><span class="label">'._("Aircraft").'</span>'.$aircraft_registration.'</div>';
132 //$aircraft_manufacturer = count($Marine->countAllAircraftManufacturerByCaptain($captain,$filter));
133 //print '<div><span class="label">'._("Manufacturers").'</span>'.$aircraft_manufacturer.'</div>';
134 //$airlines = count($Marine->countAllAirlinesByCaptain($captain,$filter));
135 //print '<div><span class="label">'._("Airlines").'</span>'.$airlines.'</div>';
136 $duration = $Marine->getRaceDurationByCaptain($captain,$filter);
137 if ($duration != '0') print '<div><span class="label">'._("Total races spotted duration").'</span>'.$duration.'</div>';
140 //include('captain-sub-menu.php');
141 print '<div class="table column">';
142 print '<p>'.sprintf(_("The table below shows the detailed information of all races with the captain <strong>%s</strong>."),$spotter_array[0]['captain_name']).'</p>';
144 include('table-output.php');
145 print '<div class="pagination">';
146 if ($limit_previous_1 >= 0)
148 print '<a href="'.$page_url.'/'.$limit_previous_1.','.$limit_previous_2.'/'.$sort.'">«'._("Previous Page").'</a>';
150 if ($spotter_array[0]['query_number_rows'] == $absolute_difference)
152 print '<a href="'.$page_url.'/'.$limit_end.','.$limit_next.'/'.$sort.'">'._("Next Page").'»</a>';
158 require_once('header.php');
159 print '<h1>'._("Error").'</h1>';
160 print '<p>'._("Sorry, this captain is not in the database. :(").'</p>';
163 require_once('footer.php');