2 require_once('require/class.Connection.php');
3 require_once('require/class.Spotter.php');
4 require_once('require/class.Language.php');
5 require_once('require/class.Stats.php');
6 require_once('require/class.METAR.php');
8 if (!isset($_GET['airport'])){
9 header('Location: '.$globalURL.'/airport');
11 $Spotter = new Spotter();
12 //calculation for the pagination
13 if(!isset($_GET['limit']))
17 $absolute_difference = 25;
19 $limit_explode = explode(",", $_GET['limit']);
20 $limit_start = $limit_explode[0];
21 $limit_end = $limit_explode[1];
22 if (!ctype_digit(strval($limit_start)) ||
!ctype_digit(strval($limit_end))) {
27 $absolute_difference = abs($limit_start - $limit_end);
28 $limit_next = $limit_end +
$absolute_difference;
29 $limit_previous_1 = $limit_start - $absolute_difference;
30 $limit_previous_2 = $limit_end - $absolute_difference;
31 $airport_icao = filter_input(INPUT_GET
,'airport',FILTER_SANITIZE_STRING
);
32 $airport = $airport_icao;
33 $page_url = $globalURL.'/airport/'.$airport_icao;
35 $sort = filter_input(INPUT_GET
,'sort',FILTER_SANITIZE_STRING
);
36 $airport_array = $Spotter->getAllAirportInfo($airport_icao);
37 if (!empty($airport_array))
40 $spotter_array = $Spotter->getSpotterDataByAirport($airport_icao,$limit_start.",".$absolute_difference, $sort);
42 $spotter_array = $Spotter->getSpotterDataByAirport($airport_icao,$limit_start.",".$absolute_difference, '');
45 if (isset($globalMETAR) && $globalMETAR) {
47 $metar_info = $METAR->getMETAR($airport_icao);
48 //print_r($metar_info);
49 if (isset($metar_info[0]['metar'])) $metar_parse = $METAR->parse($metar_info[0]['metar']);
50 //print_r($metar_parse);
53 $title = sprintf(_("Detailed View for %s, %s (%s)"),$airport_array[0]['city'],$airport_array[0]['name'],$airport_array[0]['icao']);
55 require_once('header.php');
57 print '<div class="select-item">';
58 print '<form action="'.$globalURL.'/airport" method="post">';
59 print '<select name="airport" class="selectpicker" data-live-search="true">';
60 print '<option></option>';
62 $airport_names = $Stats->getAllAirportNames();
63 if (empty($airport_names)) $airport_names = $Spotter->getAllAirportNames();
64 ksort($airport_names);
65 foreach($airport_names as $airport_name)
67 if($airport_icao == $airport_name['airport_icao'])
69 print '<option value="'.$airport_name['airport_icao'].'" selected="selected">'.$airport_name['airport_city'].', '.$airport_name['airport_name'].', '.$airport_name['airport_country'].' ('.$airport_name['airport_icao'].')</option>';
71 print '<option value="'.$airport_name['airport_icao'].'">'.$airport_name['airport_city'].', '.$airport_name['airport_name'].', '.$airport_name['airport_country'].' ('.$airport_name['airport_icao'].')</option>';
75 print '<button type="submit"><i class="fa fa-angle-double-right"></i></button>';
80 if ($airport_icao != "NA")
82 print '<div class="info column">';
83 print '<h1>'.$airport_array[0]['city'].', '.$airport_array[0]['name'].' ('.$airport_array[0]['icao'].')</h1>';
84 print '<div><span class="label">'._("Name").'</span>'.$airport_array[0]['name'].'</div>';
85 print '<div><span class="label">'._("City").'</span>'.$airport_array[0]['city'].'</div>';
86 print '<div><span class="label">'._("Country").'</span>'.$airport_array[0]['country'].'</div>';
87 print '<div><span class="label">'._("ICAO").'</span>'.$airport_array[0]['icao'].'</div>';
88 print '<div><span class="label">'._("IATA").'</span>'.$airport_array[0]['iata'].'</div>';
89 print '<div><span class="label">'._("Altitude").'</span>';
90 if ((!isset($_COOKIE['unitaltitude']) && isset($globalUnitAltitude) && $globalUnitAltitude == 'feet') ||
(isset($_COOKIE['unitaltitude']) && $_COOKIE['unitaltitude'] == 'feet')) {
91 print $airport_array[0]['altitude'].' feet';
93 print round($airport_array[0]['altitude']*0.3048).' m';
96 print '<div><span class="label">'._("Coordinates").'</span><a href="http://maps.google.com/maps?z=10&t=k&q='.$airport_array[0]['latitude'].','.$airport_array[0]['longitude'].'" target="_blank">Google Map<i class="fa fa-angle-double-right"></i></a></div>';
97 print '<div><span class="label">'._("Live Air Traffic").'</span><a href="http://www.liveatc.net/search/?icao='.$airport_array[0]['icao'].'" target="_blank">LiveATC.net<i class="fa fa-angle-double-right"></i></a></div>';
98 if (isset($airport_array[0]['home_link']) && $airport_array[0]['home_link'] != '') print '<div><a href="'.$airport_array[0]['home_link'].'"><i class="fa fa-home"></i></a></div>';
99 if (isset($airport_array[0]['wikipedia_link']) && $airport_array[0]['wikipedia_link'] != '') print '<div><a href="'.$airport_array[0]['wikipedia_link'].'"><i class="fa fa-wikipedia-w"></i></a></div>';
100 if (isset($airport_array[0]['diagram_pdf']) && $airport_array[0]['diagram_pdf'] != '') print '<div><span class="label">'._("Diagram").'</span><a href="'.$airport_array[0]['diagram_pdf'].'" target="_blank">'.$airport_array[0]['icao'].'<i class="fa fa-angle-double-right"></i></a></div>';
103 $Stats = new Stats();
104 $all_data = $Stats->getLast7DaysAirports($airport_icao);
106 if (isset($globalTimezone)) {
107 date_default_timezone_set($globalTimezone);
108 } else date_default_timezone_set('UTC');
109 if (count($all_data) > 0) {
110 print '<link href="'.$globalURL.'/css/c3.min.css" rel="stylesheet" type="text/css">';
111 print '<script type="text/javascript" src="'.$globalURL.'/js/d3.min.js"></script>';
112 print '<script type="text/javascript" src="'.$globalURL.'/js/c3.min.js"></script>';
113 print '<div id="chart" class="chart" width="100%"></div><script>';
115 $departure_data = '';
117 foreach($all_data as $data)
119 $date_data .= '"'.$data['date'].'",';
120 $departure_data .= $data['departure'].',';
121 $arrival_data .= $data['arrival'].',';
123 $date_data = "['x',".substr($date_data,0,-1)."]";
124 $departure_data = "['departure',".substr($departure_data,0,-1)."]";
125 $arrival_data = "['arrival',".substr($arrival_data,0,-1)."]";
135 columns: ['.$date_data.','.$departure_data.','.$arrival_data.'],
137 departure: "#1a3151",
143 type: "timeseries", tick: { format: "%Y-%m-%d"}
146 label: "# of Flights",tick: { format: d3.format("d") }
149 legend: { show: false }});';
152 print '<div class="info column">';
153 if (isset($metar_parse)) {
154 print '<div><span class="label">METAR</span>';
155 print $metar_info[0]['metar'].'<br />';
156 print '<b>'.$metar_info[0]['metar_date'].'</b> ';
157 if (isset($metar_parse['wind'])) {
158 print _("Wind:").' ';
159 if (isset($metar_parse['wind']['direction'])) {
160 $direction = $Spotter->parseDirection($metar_parse['wind']['direction']);
161 print $direction[0]['direction_fullname'];
162 print ' ('.$metar_parse['wind']['direction'].'°) ';
164 if (isset($metar_parse['wind']['speed'])) {
165 print $metar_parse['wind']['speed'].' m/s';
169 if (isset($metar_parse['visibility'])) {
170 print _("Visibility:").' '.$metar_parse['visibility'].' m'." - ";
172 if (isset($metar_parse['weather'])) {
173 print _("Weather:").' '.$metar_parse['weather']." - ";
175 if (isset($metar_parse['temperature'])) {
176 print _("Temperature:").' '.$metar_parse['temperature'].' °C'." - ";
178 if (isset($metar_parse['dew'])) {
179 print _("Dew point:").' '.$metar_parse['dew'].' °C'." - ";
181 if (isset($metar_parse['temperature']) && isset($metar_parse['dew'])) {
182 $humidity = round(100 * pow((112 - (0.1 * $metar_parse['temperature']) +
$metar_parse['dew']) / (112 +
(0.9 * $metar_parse['temperature'])), 8),1);
183 print _("Humidity:").' '.$humidity.'%'." - ";
185 if (isset($metar_parse['QNH'])) {
186 print _("Pressure:").' '.$metar_parse['QNH'].' hPa';
192 print '<div class="alert alert-warning">'._("This special airport profile shows all flights that do <u>not</u> have a departure and/or arrival airport associated with them.").'</div>';
194 if (!empty($spotter_array)) {
195 include('airport-sub-menu.php');
196 print '<div class="table column">';
197 if ($airport_array[0]['iata'] != "NA")
199 print '<p>'.sprintf(_("The table below shows the detailed information of all flights to/from <strong>%s, %s (%s)</strong>."),$airport_array[0]['city'],$airport_array[0]['name'],$airport_array[0]['icao']).'</p>';
201 include('table-output.php');
202 print '<div class="pagination">';
203 if ($limit_previous_1 >= 0)
205 print '<a href="'.$page_url.'/'.$limit_previous_1.','.$limit_previous_2.'/'.$sort.'">«'._("Previous Page").'</a>';
207 if (isset($spotter_array[0]['query_number_rows']) && $spotter_array[0]['query_number_rows'] == $absolute_difference)
209 print '<a href="'.$page_url.'/'.$limit_end.','.$limit_next.'/'.$sort.'">'._("Next Page").'»</a>';
214 if (isset($airport_array[0]['image']) && $airport_array[0]['image'] != '') print '<center><img src="'.$airport_array[0]['image'].'" /></center>';
215 print '<p>'._("Sorry, no flights used the airport in this database.").'</p>';
219 require_once('header.php');
220 print '<h1>'._("Error").'</h1>';
221 print '<p>'._("Sorry, the airport does not exist in this database. :(").'</p>';
224 require_once('footer.php');