Merge pull request #456 from Struart88/patch-2
[FlightAirMap.git] / pilot-detailed.php
blobd5790690a51c2a634c04d0f9dc859cc8d1e5e53a
1 <?php
2 require_once('require/class.Connection.php');
3 require_once('require/class.Spotter.php');
4 require_once('require/class.Stats.php');
5 require_once('require/class.Language.php');
6 require_once('require/class.SpotterArchive.php');
8 if (!isset($_GET['pilot'])){
9 header('Location: '.$globalURL.'/');
10 } else {
11 $Spotter = new Spotter();
12 $SpotterArchive = new SpotterArchive();
13 //calculuation for the pagination
14 if(!isset($_GET['limit']))
16 $limit_start = 0;
17 $limit_end = 25;
18 $absolute_difference = 25;
19 } else {
20 $limit_explode = explode(",", $_GET['limit']);
21 $limit_start = $limit_explode[0];
22 $limit_end = $limit_explode[1];
23 if (!ctype_digit(strval($limit_start)) || !ctype_digit(strval($limit_end))) {
24 $limit_start = 0;
25 $limit_end = 25;
28 $absolute_difference = abs($limit_start - $limit_end);
29 $limit_next = $limit_end + $absolute_difference;
30 $limit_previous_1 = $limit_start - $absolute_difference;
31 $limit_previous_2 = $limit_end - $absolute_difference;
33 $page_url = $globalURL.'/pilot/'.$_GET['pilot'];
35 $pilot = filter_input(INPUT_GET,'pilot',FILTER_SANITIZE_STRING);
36 $sort = filter_input(INPUT_GET,'sort',FILTER_SANITIZE_STRING);
37 $year = filter_input(INPUT_GET,'year',FILTER_SANITIZE_NUMBER_INT);
38 $month = filter_input(INPUT_GET,'month',FILTER_SANITIZE_NUMBER_INT);
39 $filter = array();
40 if ($year != '') $filter = array_merge($filter,array('year' => $year));
41 if ($month != '') $filter = array_merge($filter,array('month' => $month));
42 if ($sort != '')
44 $spotter_array = $Spotter->getSpotterDataByPilot($pilot,$limit_start.",".$absolute_difference, $sort,$filter);
45 if (empty($spotter_array) && isset($globalArchiveResults) && $globalArchiveResults) {
46 $spotter_array = $SpotterArchive->getSpotterDataByPilot($pilot,$limit_start.",".$absolute_difference, $sort,$filter);
48 } else {
49 $spotter_array = $Spotter->getSpotterDataByPilot($pilot,$limit_start.",".$absolute_difference,'',$filter);
50 if (empty($spotter_array) && isset($globalArchiveResults) && $globalArchiveResults) {
51 $spotter_array = $SpotterArchive->getSpotterDataByPilot($pilot,$limit_start.",".$absolute_difference,'',$filter);
55 if (!empty($spotter_array))
57 $title = sprintf(_("Detailed View for %s"),$spotter_array[0]['pilot_name']);
58 $ident = $spotter_array[0]['ident'];
59 if (isset($spotter_array[0]['latitude'])) $latitude = $spotter_array[0]['latitude'];
60 if (isset($spotter_array[0]['longitude'])) $longitude = $spotter_array[0]['longitude'];
61 require_once('header.php');
63 if (isset($globalArchive) && $globalArchive) {
64 // Requirement for altitude graph
65 print '<script type="text/javascript" src="https://www.google.com/jsapi"></script>';
66 $all_data = $SpotterArchive->getAltitudeSpeedArchiveSpotterDataById($spotter_array[0]['flightaware_id']);
67 if (isset($globalTimezone)) {
68 date_default_timezone_set($globalTimezone);
69 } else date_default_timezone_set('UTC');
70 if (count($all_data) > 0) {
71 print '<div id="chart6" class="chart" width="100%"></div>
72 <script>
73 google.load("visualization", "1.1", {packages:["line","corechart"]});
74 google.setOnLoadCallback(drawChart6);
75 function drawChart6() {
76 var data = google.visualization.arrayToDataTable([
77 ["Hour","'._("Altitude").'","'._("Speed").'"], ';
78 $altitude_data = '';
79 foreach($all_data as $data)
81 $altitude_data .= '[ "'.date("G:i",strtotime($data['date']." UTC")).'",'.$data['altitude'].','.$data['ground_speed'].'],';
83 $altitude_data = substr($altitude_data, 0, -1);
84 print $altitude_data.']);
86 var options = {
87 legend: {position: "none"},
88 series: {
89 0: {axis: "Altitude"},
90 1: {axis: "Speed"}
92 axes: {
93 y: {
94 Altitude: {label: "'._("Altitude (FL)").'"},
95 Speed: {label: "'._("Speed (knots)").'"},
98 height:210
101 var chart = new google.charts.Line(document.getElementById("chart6"));
102 chart.draw(data, options);
104 $(window).resize(function(){
105 drawChart6();
107 </script>';
111 print '<div class="info column">';
112 print '<h1>'.$spotter_array[0]['pilot_name'].'</h1>';
113 if (isset($spotter_array[0]['pilot_id']) && $spotter_array[0]['pilot_id'] != '') print '<div><span class="label">'._("Pilot ID").'</span>'.$spotter_array[0]['pilot_id'].'</div>';
114 if ($year == '' && $month == '') {
115 $Stats = new Stats();
116 $flights = $Stats->getStatsPilot($pilot);
117 } else $flights = 0;
118 if ($flights == 0) $flights = $Spotter->countFlightsByPilot($pilot,$filter);
119 print '<div><span class="label">'._("Flights").'</span>'.$flights.'</div>';
120 $aircraft_type = count($Spotter->countAllAircraftTypesByPilot($pilot,$filter));
121 print '<div><span class="label">'._("Aircraft type").'</span>'.$aircraft_type.'</div>';
122 $aircraft_registration = count($Spotter->countAllAircraftRegistrationByPilot($pilot,$filter));
123 print '<div><span class="label">'._("Aircraft").'</span>'.$aircraft_registration.'</div>';
124 $aircraft_manufacturer = count($Spotter->countAllAircraftManufacturerByPilot($pilot,$filter));
125 print '<div><span class="label">'._("Manufacturers").'</span>'.$aircraft_manufacturer.'</div>';
126 $airlines = count($Spotter->countAllAirlinesByPilot($pilot,$filter));
127 print '<div><span class="label">'._("Airlines").'</span>'.$airlines.'</div>';
128 $duration = $Spotter->getFlightDurationByPilot($pilot,$filter);
129 if ($duration != '0') print '<div><span class="label">'._("Total flights spotted duration").'</span>'.$duration.'</div>';
130 print '</div>';
132 include('pilot-sub-menu.php');
133 print '<div class="table column">';
134 print '<p>'.sprintf(_("The table below shows the detailed information of all flights with the pilot <strong>%s</strong>."),$spotter_array[0]['pilot_name']).'</p>';
136 include('table-output.php');
137 print '<div class="pagination">';
138 if ($limit_previous_1 >= 0)
140 print '<a href="'.$page_url.'/'.$limit_previous_1.','.$limit_previous_2.'/'.$sort.'">&laquo;'._("Previous Page").'</a>';
142 if ($spotter_array[0]['query_number_rows'] == $absolute_difference)
144 print '<a href="'.$page_url.'/'.$limit_end.','.$limit_next.'/'.$sort.'">'._("Next Page").'&raquo;</a>';
146 print '</div>';
147 print '</div>';
148 } else {
149 $title = _("Owner");
150 require_once('header.php');
151 print '<h1>'._("Error").'</h1>';
152 print '<p>'._("Sorry, this pilot is not in the database. :(").'</p>';
155 require_once('footer.php');