Skip to content

Commit 3eb940c

Browse files
committed
Add image on empty airports
1 parent eac4f33 commit 3eb940c

File tree

4 files changed

+107
-20
lines changed

4 files changed

+107
-20
lines changed

airport-detailed.php

Lines changed: 24 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434

3535
$sort = filter_input(INPUT_GET,'sort',FILTER_SANITIZE_STRING);
3636
$airport_array = $Spotter->getAllAirportInfo($airport_icao);
37-
3837
if (!empty($airport_array))
3938
{
4039
if ($sort != '') {
@@ -96,6 +95,8 @@
9695
print '</div>';
9796
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>';
9897
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>';
99100
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>';
100101
print '</div>';
101102

@@ -190,24 +191,29 @@
190191
} else {
191192
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>';
192193
}
193-
include('airport-sub-menu.php');
194-
print '<div class="table column">';
195-
if ($airport_array[0]['iata'] != "NA")
196-
{
197-
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>';
198-
}
199-
include('table-output.php');
200-
print '<div class="pagination">';
201-
if ($limit_previous_1 >= 0)
202-
{
203-
print '<a href="'.$page_url.'/'.$limit_previous_1.','.$limit_previous_2.'/'.$sort.'">&laquo;'._("Previous Page").'</a>';
204-
}
205-
if (isset($spotter_array[0]['query_number_rows']) && $spotter_array[0]['query_number_rows'] == $absolute_difference)
206-
{
207-
print '<a href="'.$page_url.'/'.$limit_end.','.$limit_next.'/'.$sort.'">'._("Next Page").'&raquo;</a>';
194+
if (!empty($spotter_array)) {
195+
include('airport-sub-menu.php');
196+
print '<div class="table column">';
197+
if ($airport_array[0]['iata'] != "NA")
198+
{
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>';
200+
}
201+
include('table-output.php');
202+
print '<div class="pagination">';
203+
if ($limit_previous_1 >= 0)
204+
{
205+
print '<a href="'.$page_url.'/'.$limit_previous_1.','.$limit_previous_2.'/'.$sort.'">&laquo;'._("Previous Page").'</a>';
206+
}
207+
if (isset($spotter_array[0]['query_number_rows']) && $spotter_array[0]['query_number_rows'] == $absolute_difference)
208+
{
209+
print '<a href="'.$page_url.'/'.$limit_end.','.$limit_next.'/'.$sort.'">'._("Next Page").'&raquo;</a>';
210+
}
211+
print '</div>';
212+
print '</div>';
213+
} else {
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>';
208216
}
209-
print '</div>';
210-
print '</div>';
211217
} else {
212218
$title = "Airport";
213219
require_once('header.php');

install/class.update_db.php

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,6 +1027,32 @@ public static function translation_fam() {
10271027
return '';
10281028
}
10291029

1030+
public static function diagrams_fam() {
1031+
global $tmp_dir, $globalTransaction;
1032+
$header = NULL;
1033+
$delimiter = " ";
1034+
$Connection = new Connection();
1035+
if (($handle = fopen($tmp_dir.'diagramspdf', 'r')) !== FALSE)
1036+
{
1037+
$Connection->db->beginTransaction();
1038+
while (($data = fgetcsv($handle, 1000, $delimiter)) !== FALSE)
1039+
{
1040+
$query = 'UPDATE airport SET diagram_pdf = :diagrampdf, diagram_png = :diagrampng WHERE icao = :icao';
1041+
$icao = str_replace('.pdf','',$data[2]);
1042+
try {
1043+
$sth = $Connection->db->prepare($query);
1044+
$sth->execute(array(':icao' => $icao,':diagrampdf' => 'https://data.flightairmap.com/data/diagrams/'.$icao.'.pdf',':diagrampng' => 'https://data.flightairmap.com/data/diagrams/'.$icao.'.png'));
1045+
} catch(PDOException $e) {
1046+
echo "error : ".$e->getMessage();
1047+
return "error : ".$e->getMessage();
1048+
}
1049+
}
1050+
fclose($handle);
1051+
$Connection->db->commit();
1052+
}
1053+
return '';
1054+
}
1055+
10301056
/*
10311057
* This function use FAA public data.
10321058
* With the help of data from other source, Mfr id is added to manufacturer table. Then ModeS with ICAO are added based on that.
@@ -2655,6 +2681,31 @@ public static function update_satellite_fam() {
26552681
}
26562682
return '';
26572683
}
2684+
public static function update_diagrams_fam() {
2685+
global $tmp_dir, $globalDebug;
2686+
update_db::download('http://data.flightairmap.com/data/diagrams/diagramspdf.md5',$tmp_dir.'diagramspdf.md5');
2687+
if (file_exists($tmp_dir.'diagramspdf.md5')) {
2688+
$diagrams_md5_file = explode(' ',file_get_contents($tmp_dir.'diagramspdf.md5'));
2689+
$diagrams_md5 = $diagrams_md5_file[0];
2690+
if (!update_db::check_diagrams_version($diagrams_md5)) {
2691+
if ($globalDebug) echo "Airports diagrams from FlightAirMap website : Download...";
2692+
update_db::download('http://data.flightairmap.com/data/diagrams/diagramspdf',$tmp_dir.'diagramspdf');
2693+
if (file_exists($tmp_dir.'diagramspdf')) {
2694+
if (md5_file($tmp_dir.'diagramspdf') == $diagrams_md5) {
2695+
if ($globalDebug) echo "Add to DB...";
2696+
$error = update_db::diagrams_fam();
2697+
} else $error = "File ".$tmp_dir.'diagramspdf'." md5 failed. Download failed.";
2698+
} else $error = "File ".$tmp_dir.'diagramspdf'." doesn't exist. Download failed.";
2699+
if ($error != '') {
2700+
return $error;
2701+
} else {
2702+
update_db::insert_diagrams_version($diagrams_md5);
2703+
if ($globalDebug) echo "Done\n";
2704+
}
2705+
}
2706+
}
2707+
return '';
2708+
}
26582709
public static function update_banned_fam() {
26592710
global $tmp_dir, $globalDebug;
26602711
if ($globalDebug) echo "Banned airlines in Europe from FlightAirMap website : Download...";
@@ -3296,6 +3347,19 @@ public static function check_satellite_version($version) {
32963347
if ($row['nb'] > 0) return true;
32973348
else return false;
32983349
}
3350+
public static function check_diagrams_version($version) {
3351+
$query = "SELECT COUNT(*) as nb FROM config WHERE name = 'diagrams_version' AND value = :version";
3352+
try {
3353+
$Connection = new Connection();
3354+
$sth = $Connection->db->prepare($query);
3355+
$sth->execute(array(':version' => $version));
3356+
} catch(PDOException $e) {
3357+
return "error : ".$e->getMessage();
3358+
}
3359+
$row = $sth->fetch(PDO::FETCH_ASSOC);
3360+
if ($row['nb'] > 0) return true;
3361+
else return false;
3362+
}
32993363

33003364
public static function check_airlines_version($version) {
33013365
$query = "SELECT COUNT(*) as nb FROM config WHERE name = 'airlines_version' AND value = :version";
@@ -3396,6 +3460,17 @@ public static function insert_satellite_version($version) {
33963460
return "error : ".$e->getMessage();
33973461
}
33983462
}
3463+
public static function insert_diagrams_version($version) {
3464+
$query = "DELETE FROM config WHERE name = 'diagrams_version';
3465+
INSERT INTO config (name,value) VALUES ('diagrams_version',:version);";
3466+
try {
3467+
$Connection = new Connection();
3468+
$sth = $Connection->db->prepare($query);
3469+
$sth->execute(array(':version' => $version));
3470+
} catch(PDOException $e) {
3471+
return "error : ".$e->getMessage();
3472+
}
3473+
}
33993474

34003475
public static function check_last_notam_update() {
34013476
global $globalDBdriver;
@@ -3814,6 +3889,7 @@ public static function update_all() {
38143889
echo update_db::fix_icaotype();
38153890
echo update_db::update_banned_fam();
38163891
echo update_db::update_block_fam();
3892+
echo update_db::update_diagrams();
38173893
//echo update_db::update_celestrak();
38183894
//echo update_db::delete_duplicatemodes();
38193895
} else {
@@ -3829,6 +3905,7 @@ public static function update_all() {
38293905
//echo update_db::delete_duplicatemodes();
38303906
echo update_db::update_banned_fam();
38313907
echo update_db::update_block_fam();
3908+
echo update_db::update_diagrams();
38323909
}
38333910
}
38343911
}
@@ -3865,5 +3942,6 @@ public static function update_all() {
38653942
//echo update_db::update_celestrak();
38663943
//echo update_db::update_aircraft();
38673944
//echo update_db::update_block_fam();
3945+
//echo update_db::update_diagrams_fam();
38683946

38693947
?>

js/map.common.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,9 @@ function dynamicSortMultiple() {
6060
function map2dlimit(limit) {
6161
createCookie('map_2d_limit',limit,9999);
6262
}
63+
function map3dlimit(limit) {
64+
createCookie('map_3d_limit',limit,9999);
65+
}
6366

6467
function mapType(selectObj) {
6568
var idx = selectObj.selectedIndex;

require/class.Spotter.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2190,9 +2190,9 @@ public function getAllAirportInfo($airport = '')
21902190
if ($airport == 'NA') {
21912191
return array(array('name' => 'Not available','city' => 'N/A', 'country' => 'N/A','iata' => 'NA','icao' => 'NA','altitude' => NULL,'latitude' => 0,'longitude' => 0,'type' => 'NA','home_link' => '','wikipedia_link' => '','image_thumb' => '', 'image' => ''));
21922192
} elseif ($airport == '') {
2193-
$query = "SELECT airport.name, airport.city, airport.country, airport.iata, airport.icao, airport.latitude, airport.longitude, airport.altitude, airport.type, airport.home_link, airport.wikipedia_link, airport.image_thumb, airport.image FROM airport";
2193+
$query = "SELECT airport.name, airport.city, airport.country, airport.iata, airport.icao, airport.latitude, airport.longitude, airport.altitude, airport.type, airport.home_link, airport.wikipedia_link, airport.image_thumb, airport.image, airport.diagram_pdf, airport.diagram_png FROM airport";
21942194
} else {
2195-
$query = "SELECT airport.name, airport.city, airport.country, airport.iata, airport.icao, airport.latitude, airport.longitude, airport.altitude, airport.type, airport.home_link, airport.wikipedia_link, airport.image_thumb, airport.image FROM airport WHERE airport.icao = :airport LIMIT 1";
2195+
$query = "SELECT airport.name, airport.city, airport.country, airport.iata, airport.icao, airport.latitude, airport.longitude, airport.altitude, airport.type, airport.home_link, airport.wikipedia_link, airport.image_thumb, airport.image, airport.diagram_pdf, airport.diagram_png FROM airport WHERE airport.icao = :airport LIMIT 1";
21962196
$query_values = array(':airport' => $airport);
21972197
}
21982198

0 commit comments

Comments
 (0)