Completed
Push — master ( 36cc69...ef15cd )
by Yannick
07:23
created
require/class.Stats.php 1 patch
Indentation   +685 added lines, -685 removed lines patch added patch discarded remove patch
@@ -8,199 +8,199 @@  discard block
 block discarded – undo
8 8
 require_once(dirname(__FILE__).'/class.Common.php');
9 9
 class Stats {
10 10
 	public $db;
11
-        function __construct($dbc = null) {
11
+		function __construct($dbc = null) {
12 12
 		$Connection = new Connection($dbc);
13 13
 		$this->db = $Connection->db;
14
-        }
14
+		}
15 15
               
16 16
 	public function addLastStatsUpdate($type,$stats_date) {
17
-                $query = "DELETE FROM config WHERE name = :type;
17
+				$query = "DELETE FROM config WHERE name = :type;
18 18
             		INSERT INTO config (name,value) VALUES (:type,:stats_date);";
19
-                $query_values = array('type' => $type,':stats_date' => $stats_date);
20
-                 try {
21
-                        $sth = $this->db->prepare($query);
22
-                        $sth->execute($query_values);
23
-                } catch(PDOException $e) {
24
-                        return "error : ".$e->getMessage();
25
-                }
26
-        }
19
+				$query_values = array('type' => $type,':stats_date' => $stats_date);
20
+				 try {
21
+						$sth = $this->db->prepare($query);
22
+						$sth->execute($query_values);
23
+				} catch(PDOException $e) {
24
+						return "error : ".$e->getMessage();
25
+				}
26
+		}
27 27
 
28 28
 	public function getLastStatsUpdate($type = 'last_update_stats') {
29
-                $query = "SELECT value FROM config WHERE name = :type";
30
-                 try {
31
-                        $sth = $this->db->prepare($query);
32
-                        $sth->execute(array(':type' => $type));
33
-                } catch(PDOException $e) {
34
-                        echo "error : ".$e->getMessage();
35
-                }
36
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
37
-                return $all;
38
-        }
29
+				$query = "SELECT value FROM config WHERE name = :type";
30
+				 try {
31
+						$sth = $this->db->prepare($query);
32
+						$sth->execute(array(':type' => $type));
33
+				} catch(PDOException $e) {
34
+						echo "error : ".$e->getMessage();
35
+				}
36
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
37
+				return $all;
38
+		}
39 39
 	public function getAllAirlineNames($airline_type = '') {
40
-                $query = "SELECT * FROM stats_airline ORDER BY airline_name ASC";
41
-                 try {
42
-                        $sth = $this->db->prepare($query);
43
-                        $sth->execute();
44
-                } catch(PDOException $e) {
45
-                        echo "error : ".$e->getMessage();
46
-                }
47
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
48
-                return $all;
49
-        }
40
+				$query = "SELECT * FROM stats_airline ORDER BY airline_name ASC";
41
+				 try {
42
+						$sth = $this->db->prepare($query);
43
+						$sth->execute();
44
+				} catch(PDOException $e) {
45
+						echo "error : ".$e->getMessage();
46
+				}
47
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
48
+				return $all;
49
+		}
50 50
 	public function getAllAircraftTypes() {
51
-                $query = "SELECT * FROM stats_aircraft ORDER BY aircraft_name ASC";
52
-                 try {
53
-                        $sth = $this->db->prepare($query);
54
-                        $sth->execute();
55
-                } catch(PDOException $e) {
56
-                        echo "error : ".$e->getMessage();
57
-                }
58
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
59
-                return $all;
60
-        }
51
+				$query = "SELECT * FROM stats_aircraft ORDER BY aircraft_name ASC";
52
+				 try {
53
+						$sth = $this->db->prepare($query);
54
+						$sth->execute();
55
+				} catch(PDOException $e) {
56
+						echo "error : ".$e->getMessage();
57
+				}
58
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
59
+				return $all;
60
+		}
61 61
 	public function getAllAirportNames() {
62
-                $query = "SELECT airport_icao, airport_name,airport_city,airport_country FROM stats_airport GROUP BY airport_icao,airport_name,airport_city,airport_country ORDER BY airport_city ASC";
63
-                 try {
64
-                        $sth = $this->db->prepare($query);
65
-                        $sth->execute();
66
-                } catch(PDOException $e) {
67
-                        echo "error : ".$e->getMessage();
68
-                }
69
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
70
-                return $all;
71
-        }
62
+				$query = "SELECT airport_icao, airport_name,airport_city,airport_country FROM stats_airport GROUP BY airport_icao,airport_name,airport_city,airport_country ORDER BY airport_city ASC";
63
+				 try {
64
+						$sth = $this->db->prepare($query);
65
+						$sth->execute();
66
+				} catch(PDOException $e) {
67
+						echo "error : ".$e->getMessage();
68
+				}
69
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
70
+				return $all;
71
+		}
72 72
 
73 73
 
74 74
 	public function countAllAircraftTypes($limit = true) {
75 75
 		if ($limit) $query = "SELECT aircraft_icao, cnt AS aircraft_icao_count, aircraft_name FROM stats_aircraft WHERE aircraft_name <> '' AND aircraft_icao <> '' ORDER BY aircraft_icao_count DESC LIMIT 10 OFFSET 0";
76 76
 		else $query = "SELECT aircraft_icao, cnt AS aircraft_icao_count, aircraft_name FROM stats_aircraft WHERE aircraft_name <> '' AND aircraft_icao <> '' ORDER BY aircraft_icao_count DESC";
77
-                 try {
78
-                        $sth = $this->db->prepare($query);
79
-                        $sth->execute();
80
-                } catch(PDOException $e) {
81
-                        echo "error : ".$e->getMessage();
82
-                }
83
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
84
-                if (empty($all)) {
85
-            	    $Spotter = new Spotter($this->db);
86
-            	    $all = $Spotter->countAllAircraftTypes($limit);
87
-                }
88
-                return $all;
77
+				 try {
78
+						$sth = $this->db->prepare($query);
79
+						$sth->execute();
80
+				} catch(PDOException $e) {
81
+						echo "error : ".$e->getMessage();
82
+				}
83
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
84
+				if (empty($all)) {
85
+					$Spotter = new Spotter($this->db);
86
+					$all = $Spotter->countAllAircraftTypes($limit);
87
+				}
88
+				return $all;
89 89
 	}
90 90
 	public function countAllAirlineCountries($limit = true) {
91 91
 		if ($limit) $query = "SELECT airlines.country AS airline_country, SUM(stats_airline.cnt) as airline_country_count FROM stats_airline,airlines WHERE stats_airline.airline_icao=airlines.icao GROUP BY airline_country ORDER BY airline_country_count DESC LIMIT 10 OFFSET 0";
92 92
 		else $query = "SELECT airlines.country AS airline_country, SUM(stats_airline.cnt) as airline_country_count FROM stats_airline,airlines WHERE stats_airline.airline_icao=airlines.icao GROUP BY airline_country ORDER BY airline_country_count DESC";
93
-                 try {
94
-                        $sth = $this->db->prepare($query);
95
-                        $sth->execute();
96
-                } catch(PDOException $e) {
97
-                        echo "error : ".$e->getMessage();
98
-                }
99
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
100
-                if (empty($all)) {
101
-            		$Spotter = new Spotter($this->db);
102
-            		$all = $Spotter->countAllAirlineCountries($limit);
93
+				 try {
94
+						$sth = $this->db->prepare($query);
95
+						$sth->execute();
96
+				} catch(PDOException $e) {
97
+						echo "error : ".$e->getMessage();
98
+				}
99
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
100
+				if (empty($all)) {
101
+					$Spotter = new Spotter($this->db);
102
+					$all = $Spotter->countAllAirlineCountries($limit);
103 103
                 
104
-                }
105
-                return $all;
104
+				}
105
+				return $all;
106 106
 	}
107 107
 	public function countAllAircraftManufacturers($limit = true) {
108 108
 		if ($limit) $query = "SELECT aircraft.manufacturer AS aircraft_manufacturer, SUM(stats_aircraft.cnt) as aircraft_manufacturer_count FROM stats_aircraft,aircraft WHERE stats_aircraft.aircraft_icao=aircraft.icao GROUP BY aircraft.manufacturer ORDER BY aircraft_manufacturer_count DESC LIMIT 10 OFFSET 0";
109 109
 		else $query = "SELECT aircraft.manufacturer AS aircraft_manufacturer, SUM(stats_aircraft.cnt) as aircraft_manufacturer_count FROM stats_aircraft,aircraft WHERE stats_aircraft.aircraft_icao=aircraft.icao GROUP BY aircraft.manufacturer ORDER BY aircraft_manufacturer_count DESC";
110
-                 try {
111
-                        $sth = $this->db->prepare($query);
112
-                        $sth->execute();
113
-                } catch(PDOException $e) {
114
-                        echo "error : ".$e->getMessage();
115
-                }
116
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
117
-                if (empty($all)) {
118
-            		$Spotter = new Spotter($this->db);
110
+				 try {
111
+						$sth = $this->db->prepare($query);
112
+						$sth->execute();
113
+				} catch(PDOException $e) {
114
+						echo "error : ".$e->getMessage();
115
+				}
116
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
117
+				if (empty($all)) {
118
+					$Spotter = new Spotter($this->db);
119 119
 			$all = $Spotter->countAllAircraftManufacturers($limit);
120
-                }
121
-                return $all;
120
+				}
121
+				return $all;
122 122
 	}
123 123
 
124 124
 	public function countAllArrivalCountries($limit = true) {
125 125
 		if ($limit) $query = "SELECT airport_country AS arrival_airport_country, arrival as airport_arrival_country_count FROM stats_airport WHERE stats_type = 'yearly' LIMIT 10 OFFSET 0";
126 126
 		else $query = "SELECT airport_country AS arrival_airport_country, arrival as airport_arrival_country_count FROM stats_airport WHERE stats_type = 'yearly'";
127
-                 try {
128
-                        $sth = $this->db->prepare($query);
129
-                        $sth->execute();
130
-                } catch(PDOException $e) {
131
-                        echo "error : ".$e->getMessage();
132
-                }
133
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
134
-                if (empty($all)) {
135
-	                $Spotter = new Spotter($this->db);
136
-            		$all = $Spotter->countAllArrivalCountries($limit);
137
-                }
138
-                return $all;
127
+				 try {
128
+						$sth = $this->db->prepare($query);
129
+						$sth->execute();
130
+				} catch(PDOException $e) {
131
+						echo "error : ".$e->getMessage();
132
+				}
133
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
134
+				if (empty($all)) {
135
+					$Spotter = new Spotter($this->db);
136
+					$all = $Spotter->countAllArrivalCountries($limit);
137
+				}
138
+				return $all;
139 139
 	}
140 140
 	public function countAllDepartureCountries($limit = true) {
141 141
 		if ($limit) $query = "SELECT airport_country AS departure_airport_country, departure as airport_departure_country_count FROM stats_airport WHERE stats_type = 'yearly' LIMIT 10 OFFSET 0";
142 142
 		else $query = "SELECT airport_country AS departure_airport_country, departure as airport_departure_country_count FROM stats_airport WHERE stats_type = 'yearly'";
143
-                 try {
144
-                        $sth = $this->db->prepare($query);
145
-                        $sth->execute();
146
-                } catch(PDOException $e) {
147
-                        echo "error : ".$e->getMessage();
148
-                }
149
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
150
-                if (empty($all)) {
151
-		        $Spotter = new Spotter($this->db);
152
-    	    	        $all = $Spotter->countAllDepartureCountries($limit);
153
-                }
154
-                return $all;
143
+				 try {
144
+						$sth = $this->db->prepare($query);
145
+						$sth->execute();
146
+				} catch(PDOException $e) {
147
+						echo "error : ".$e->getMessage();
148
+				}
149
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
150
+				if (empty($all)) {
151
+				$Spotter = new Spotter($this->db);
152
+						$all = $Spotter->countAllDepartureCountries($limit);
153
+				}
154
+				return $all;
155 155
 	}
156 156
 
157 157
 	public function countAllAirlines($limit = true) {
158 158
 		if ($limit) $query = "SELECT stats_airline.airline_icao, stats_airline.cnt AS airline_count, stats_airline.airline_name, airlines.country as airline_country FROM stats_airline, airlines WHERE stats_airline.airline_name <> '' AND stats_airline.airline_icao <> '' AND airlines.icao = airline_icao ORDER BY airline_count DESC LIMIT 10 OFFSET 0";
159 159
 		else $query = "SELECT stats_airline.airline_icao, stats_airline.cnt AS airline_count, stats_airline.airline_name, airlines.country as airline_country FROM stats_airline, airlines WHERE stats_airline.airline_name <> '' AND stats_airline.airline_icao <> '' AND airlines.icao = airline_icao ORDER BY airline_count DESC";
160
-                 try {
161
-                        $sth = $this->db->prepare($query);
162
-                        $sth->execute();
163
-                } catch(PDOException $e) {
164
-                        echo "error : ".$e->getMessage();
165
-                }
166
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
167
-                if (empty($all)) {
168
-	                $Spotter = new Spotter($this->db);
169
-    		        $all = $Spotter->countAllAirlines($limit);
170
-                }
171
-                return $all;
160
+				 try {
161
+						$sth = $this->db->prepare($query);
162
+						$sth->execute();
163
+				} catch(PDOException $e) {
164
+						echo "error : ".$e->getMessage();
165
+				}
166
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
167
+				if (empty($all)) {
168
+					$Spotter = new Spotter($this->db);
169
+					$all = $Spotter->countAllAirlines($limit);
170
+				}
171
+				return $all;
172 172
 	}
173 173
 	public function countAllAircraftRegistrations($limit = true) {
174 174
 		if ($limit) $query = "SELECT s.aircraft_icao, s.cnt AS aircraft_registration_count, a.type AS aircraft_name, s.registration FROM stats_registration s, aircraft a WHERE s.registration <> '' AND a.icao = s.aircraft_icao ORDER BY aircraft_registration_count DESC LIMIT 10 OFFSET 0";
175 175
 		else $query = "SELECT s.aircraft_icao, s.cnt AS aircraft_registration_count, a.type AS aircraft_name FROM stats_registration s, aircraft a WHERE s.registration <> '' AND a.icao = s.aircraft_icao ORDER BY aircraft_registration_count DESC";
176
-                 try {
177
-                        $sth = $this->db->prepare($query);
178
-                        $sth->execute();
179
-                } catch(PDOException $e) {
180
-                        echo "error : ".$e->getMessage();
181
-                }
182
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
183
-                if (empty($all)) {
184
-	                $Spotter = new Spotter($this->db);
185
-    		        $all = $Spotter->countAllAircraftRegistrations($limit);
186
-                }
187
-                return $all;
176
+				 try {
177
+						$sth = $this->db->prepare($query);
178
+						$sth->execute();
179
+				} catch(PDOException $e) {
180
+						echo "error : ".$e->getMessage();
181
+				}
182
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
183
+				if (empty($all)) {
184
+					$Spotter = new Spotter($this->db);
185
+					$all = $Spotter->countAllAircraftRegistrations($limit);
186
+				}
187
+				return $all;
188 188
 	}
189 189
 	public function countAllCallsigns($limit = true) {
190 190
 		if ($limit) $query = "SELECT s.callsign_icao, s.cnt AS callsign_icao_count, a.name AS airline_name, a.icao as airline_icao FROM stats_callsign s, airlines a WHERE s.callsign_icao <> '' AND a.icao = s.airline_icao ORDER BY callsign_icao_count DESC LIMIT 10 OFFSET 0";
191 191
 		else $query = "SELECT s.callsign_icao, s.cnt AS callsign_icao_count, a.name AS airline_name, a.icao as airline_icao FROM stats_callsign s, airlines a WHERE s.callsign_icao <> '' AND a.icao = s.airline_icao ORDER BY callsign_icao_count DESC";
192
-                 try {
193
-                        $sth = $this->db->prepare($query);
194
-                        $sth->execute();
195
-                } catch(PDOException $e) {
196
-                        echo "error : ".$e->getMessage();
197
-                }
198
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
199
-                if (empty($all)) {
200
-	                $Spotter = new Spotter($this->db);
201
-    		        $all = $Spotter->countAllCallsigns($limit);
202
-                }
203
-                return $all;
192
+				 try {
193
+						$sth = $this->db->prepare($query);
194
+						$sth->execute();
195
+				} catch(PDOException $e) {
196
+						echo "error : ".$e->getMessage();
197
+				}
198
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
199
+				if (empty($all)) {
200
+					$Spotter = new Spotter($this->db);
201
+					$all = $Spotter->countAllCallsigns($limit);
202
+				}
203
+				return $all;
204 204
 	}
205 205
 	public function countAllFlightOverCountries($limit = true) {
206 206
 		$Connection = new Connection();
@@ -214,7 +214,7 @@  discard block
 block discarded – undo
214 214
 				echo "error : ".$e->getMessage();
215 215
 			}
216 216
 			$all = $sth->fetchAll(PDO::FETCH_ASSOC);
217
-                /*
217
+				/*
218 218
                 if (empty($all)) {
219 219
 	                $Spotter = new Spotter($this->db);
220 220
     		        $all = $Spotter->countAllFlightOverCountries($limit);
@@ -228,102 +228,102 @@  discard block
 block discarded – undo
228 228
 	public function countAllPilots($limit = true) {
229 229
 		if ($limit) $query = "SELECT pilot_id, cnt AS pilot_count, pilot_name FROM stats_pilot ORDER BY pilot_count DESC LIMIT 10 OFFSET 0";
230 230
 		else $query = "SELECT pilot_id, cnt AS pilot_count, pilot_name FROM stats_pilot ORDER BY pilot_count DESC";
231
-                 try {
232
-                        $sth = $this->db->prepare($query);
233
-                        $sth->execute();
234
-                } catch(PDOException $e) {
235
-                        echo "error : ".$e->getMessage();
236
-                }
237
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
238
-                if (empty($all)) {
239
-            		$Spotter = new Spotter($this->db);
240
-            		$all = $Spotter->countAllPilots($limit);
241
-                }
242
-                return $all;
231
+				 try {
232
+						$sth = $this->db->prepare($query);
233
+						$sth->execute();
234
+				} catch(PDOException $e) {
235
+						echo "error : ".$e->getMessage();
236
+				}
237
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
238
+				if (empty($all)) {
239
+					$Spotter = new Spotter($this->db);
240
+					$all = $Spotter->countAllPilots($limit);
241
+				}
242
+				return $all;
243 243
 	}
244 244
 	public function countAllOwners($limit = true) {
245 245
 		if ($limit) $query = "SELECT owner_name, cnt AS owner_count FROM stats_owner ORDER BY owner_count DESC LIMIT 10 OFFSET 0";
246 246
 		else $query = "SELECT owner_name, cnt AS owner_count FROM stats_owner ORDER BY owner_count DESC";
247
-                 try {
248
-                        $sth = $this->db->prepare($query);
249
-                        $sth->execute();
250
-                } catch(PDOException $e) {
251
-                        echo "error : ".$e->getMessage();
252
-                }
253
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
254
-                if (empty($all)) {
255
-            		$Spotter = new Spotter($this->db);
256
-            		$all = $Spotter->countAllOwners($limit);
257
-                }
258
-                return $all;
247
+				 try {
248
+						$sth = $this->db->prepare($query);
249
+						$sth->execute();
250
+				} catch(PDOException $e) {
251
+						echo "error : ".$e->getMessage();
252
+				}
253
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
254
+				if (empty($all)) {
255
+					$Spotter = new Spotter($this->db);
256
+					$all = $Spotter->countAllOwners($limit);
257
+				}
258
+				return $all;
259 259
 	}
260 260
 	public function countAllDepartureAirports($limit = true) {
261 261
 		if ($limit) $query = "SELECT airport_icao AS airport_departure_icao,airport_city AS airport_departure_city,airport_country AS airport_departure_country,departure AS airport_departure_icao_count FROM stats_airport WHERE stats_type = 'yearly' LIMIT 10 OFFSET 0";
262 262
 		else $query = "SELECT airport_icao AS airport_departure_icao,airport_city AS airport_departure_city,airport_country AS airport_departure_country,departure AS airport_departure_icao_count FROM stats_airport WHERE stats_type = 'yearly'";
263
-                 try {
264
-                        $sth = $this->db->prepare($query);
265
-                        $sth->execute();
266
-                } catch(PDOException $e) {
267
-                        echo "error : ".$e->getMessage();
268
-                }
269
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
270
-                if (empty($all)) {
271
-            		$Spotter = new Spotter($this->db);
272
-            		$pall = $Spotter->countAllDepartureAirports($limit);
273
-        		$dall = $Spotter->countAllDetectedDepartureAirports($limit);
274
-        		$all = array();
275
-        		foreach ($pall as $value) {
276
-        			$icao = $value['airport_departure_icao'];
277
-        			$all[$icao] = $value;
278
-        		}
263
+				 try {
264
+						$sth = $this->db->prepare($query);
265
+						$sth->execute();
266
+				} catch(PDOException $e) {
267
+						echo "error : ".$e->getMessage();
268
+				}
269
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
270
+				if (empty($all)) {
271
+					$Spotter = new Spotter($this->db);
272
+					$pall = $Spotter->countAllDepartureAirports($limit);
273
+				$dall = $Spotter->countAllDetectedDepartureAirports($limit);
274
+				$all = array();
275
+				foreach ($pall as $value) {
276
+					$icao = $value['airport_departure_icao'];
277
+					$all[$icao] = $value;
278
+				}
279 279
         		
280
-        		foreach ($dall as $value) {
281
-        			$icao = $value['airport_departure_icao'];
282
-        			if (isset($all[$icao])) {                                                           
283
-        				$all[$icao]['airport_departure_icao_count'] = $all[$icao]['airport_departure_icao_count'] + $value['airport_departure_icao_count'];
284
-        			} else $all[$icao] = $value;
285
-        		}
286
-        		$count = array();
287
-        		foreach ($all as $key => $row) {
288
-        			$count[$key] = $row['airport_departure_icao_count'];
289
-        		}
290
-        		array_multisort($count,SORT_DESC,$all);
291
-                }
292
-                return $all;
280
+				foreach ($dall as $value) {
281
+					$icao = $value['airport_departure_icao'];
282
+					if (isset($all[$icao])) {                                                           
283
+						$all[$icao]['airport_departure_icao_count'] = $all[$icao]['airport_departure_icao_count'] + $value['airport_departure_icao_count'];
284
+					} else $all[$icao] = $value;
285
+				}
286
+				$count = array();
287
+				foreach ($all as $key => $row) {
288
+					$count[$key] = $row['airport_departure_icao_count'];
289
+				}
290
+				array_multisort($count,SORT_DESC,$all);
291
+				}
292
+				return $all;
293 293
 	}
294 294
 	public function countAllArrivalAirports($limit = true) {
295 295
 		if ($limit) $query = "SELECT airport_icao AS airport_arrival_icao,airport_city AS airport_arrival_city,airport_country AS airport_arrival_country,arrival AS airport_arrival_icao_count FROM stats_airport WHERE stats_type = 'yearly' LIMIT 10 OFFSET 0";
296 296
 		else $query = "SELECT airport_icao AS airport_arrival_icao,airport_city AS airport_arrival_city,airport_country AS airport_arrival_country,arrival AS airport_arrival_icao_count FROM stats_airport WHERE stats_type = 'yearly'";
297
-                 try {
298
-                        $sth = $this->db->prepare($query);
299
-                        $sth->execute();
300
-                } catch(PDOException $e) {
301
-                        echo "error : ".$e->getMessage();
302
-                }
303
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
304
-                if (empty($all)) {
305
-            		$Spotter = new Spotter($this->db);
306
-        		$pall = $Spotter->countAllArrivalAirports($limit);
307
-        		$dall = $Spotter->countAllDetectedArrivalAirports($limit);
308
-        		$all = array();
309
-        		foreach ($pall as $value) {
310
-        			$icao = $value['airport_arrival_icao'];
311
-        			$all[$icao] = $value;
312
-        		}
297
+				 try {
298
+						$sth = $this->db->prepare($query);
299
+						$sth->execute();
300
+				} catch(PDOException $e) {
301
+						echo "error : ".$e->getMessage();
302
+				}
303
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
304
+				if (empty($all)) {
305
+					$Spotter = new Spotter($this->db);
306
+				$pall = $Spotter->countAllArrivalAirports($limit);
307
+				$dall = $Spotter->countAllDetectedArrivalAirports($limit);
308
+				$all = array();
309
+				foreach ($pall as $value) {
310
+					$icao = $value['airport_arrival_icao'];
311
+					$all[$icao] = $value;
312
+				}
313 313
         		
314
-        		foreach ($dall as $value) {
315
-        			$icao = $value['airport_arrival_icao'];
316
-        			if (isset($all[$icao])) {
317
-        				$all[$icao]['airport_arrival_icao_count'] = $all[$icao]['airport_arrival_icao_count'] + $value['airport_arrival_icao_count'];
318
-        			} else $all[$icao] = $value;
319
-        		}
320
-        		$count = array();
321
-        		foreach ($all as $key => $row) {
322
-        			$count[$key] = $row['airport_arrival_icao_count'];
323
-        		}
324
-        		array_multisort($count,SORT_DESC,$all);
325
-                }
326
-                return $all;
314
+				foreach ($dall as $value) {
315
+					$icao = $value['airport_arrival_icao'];
316
+					if (isset($all[$icao])) {
317
+						$all[$icao]['airport_arrival_icao_count'] = $all[$icao]['airport_arrival_icao_count'] + $value['airport_arrival_icao_count'];
318
+					} else $all[$icao] = $value;
319
+				}
320
+				$count = array();
321
+				foreach ($all as $key => $row) {
322
+					$count[$key] = $row['airport_arrival_icao_count'];
323
+				}
324
+				array_multisort($count,SORT_DESC,$all);
325
+				}
326
+				return $all;
327 327
 	}
328 328
 	public function countAllMonthsLastYear($limit = true) {
329 329
 		global $globalDBdriver;
@@ -335,35 +335,35 @@  discard block
 block discarded – undo
335 335
 			else $query = "SELECT EXTRACT(MONTH FROM stats_date) as month_name, EXTRACT(YEAR FROM stats_date) as year_name, cnt as date_count FROM stats WHERE stats_type = 'flights_bymonth'";
336 336
 		}
337 337
 		$query_data = array();
338
-                 try {
339
-                        $sth = $this->db->prepare($query);
340
-                        $sth->execute($query_data);
341
-                } catch(PDOException $e) {
342
-                        echo "error : ".$e->getMessage();
343
-                }
344
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
345
-                if (empty($all)) {
346
-            		$Spotter = new Spotter($this->db);
347
-            		$all = $Spotter->countAllMonthsLastYear($limit);
348
-                }
349
-                return $all;
338
+				 try {
339
+						$sth = $this->db->prepare($query);
340
+						$sth->execute($query_data);
341
+				} catch(PDOException $e) {
342
+						echo "error : ".$e->getMessage();
343
+				}
344
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
345
+				if (empty($all)) {
346
+					$Spotter = new Spotter($this->db);
347
+					$all = $Spotter->countAllMonthsLastYear($limit);
348
+				}
349
+				return $all;
350 350
 	}
351 351
 	
352 352
 	public function countAllDatesLastMonth() {
353 353
 		$query = "SELECT flight_date as date_name, cnt as date_count FROM stats_flight WHERE stats_type = 'month'";
354 354
 		$query_data = array();
355
-                 try {
356
-                        $sth = $this->db->prepare($query);
357
-                        $sth->execute($query_data);
358
-                } catch(PDOException $e) {
359
-                        echo "error : ".$e->getMessage();
360
-                }
361
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
362
-                if (empty($all)) {
363
-            		$Spotter = new Spotter($this->db);
364
-            		$all = $Spotter->countAllDatesLastMonth();
365
-                }
366
-                return $all;
355
+				 try {
356
+						$sth = $this->db->prepare($query);
357
+						$sth->execute($query_data);
358
+				} catch(PDOException $e) {
359
+						echo "error : ".$e->getMessage();
360
+				}
361
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
362
+				if (empty($all)) {
363
+					$Spotter = new Spotter($this->db);
364
+					$all = $Spotter->countAllDatesLastMonth();
365
+				}
366
+				return $all;
367 367
 	}
368 368
 	public function countAllDatesLast7Days() {
369 369
 		global $globalDBdriver;
@@ -373,64 +373,64 @@  discard block
 block discarded – undo
373 373
 			$query = "SELECT flight_date as date_name, cnt as date_count FROM stats_flight WHERE stats_type = 'month' AND flight_date::timestamp >= CURRENT_TIMESTAMP AT TIME ZONE 'UTC' - INTERVAL '7 DAYS'";
374 374
 		}
375 375
 		$query_data = array();
376
-                 try {
377
-                        $sth = $this->db->prepare($query);
378
-                        $sth->execute($query_data);
379
-                } catch(PDOException $e) {
380
-                        echo "error : ".$e->getMessage();
381
-                }
382
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
383
-                if (empty($all)) {
384
-            		$Spotter = new Spotter($this->db);
385
-            		$all = $Spotter->countAllDatesLast7Days();
386
-                }
387
-                return $all;
376
+				 try {
377
+						$sth = $this->db->prepare($query);
378
+						$sth->execute($query_data);
379
+				} catch(PDOException $e) {
380
+						echo "error : ".$e->getMessage();
381
+				}
382
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
383
+				if (empty($all)) {
384
+					$Spotter = new Spotter($this->db);
385
+					$all = $Spotter->countAllDatesLast7Days();
386
+				}
387
+				return $all;
388 388
 	}
389 389
 	public function countAllDates() {
390 390
 		$query = "SELECT flight_date as date_name, cnt as date_count FROM stats_flight WHERE stats_type = 'date'";
391 391
 		$query_data = array();
392
-                 try {
393
-                        $sth = $this->db->prepare($query);
394
-                        $sth->execute($query_data);
395
-                } catch(PDOException $e) {
396
-                        echo "error : ".$e->getMessage();
397
-                }
398
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
399
-                if (empty($all)) {
400
-            		$Spotter = new Spotter($this->db);
401
-            		$all = $Spotter->countAllDates();
402
-                }
403
-                return $all;
392
+				 try {
393
+						$sth = $this->db->prepare($query);
394
+						$sth->execute($query_data);
395
+				} catch(PDOException $e) {
396
+						echo "error : ".$e->getMessage();
397
+				}
398
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
399
+				if (empty($all)) {
400
+					$Spotter = new Spotter($this->db);
401
+					$all = $Spotter->countAllDates();
402
+				}
403
+				return $all;
404 404
 	}
405 405
 	public function countAllMonths() {
406
-	    	$query = "SELECT YEAR(stats_date) AS year_name,MONTH(stats_date) AS month_name, cnt as date_count FROM stats WHERE stats_type = 'flights_bymonth'";
407
-                 try {
408
-                        $sth = $this->db->prepare($query);
409
-                        $sth->execute();
410
-                } catch(PDOException $e) {
411
-                        echo "error : ".$e->getMessage();
412
-                }
413
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
414
-                if (empty($all)) {
415
-            		$Spotter = new Spotter($this->db);
416
-            		$all = $Spotter->countAllMonths();
417
-                }
418
-                return $all;
406
+			$query = "SELECT YEAR(stats_date) AS year_name,MONTH(stats_date) AS month_name, cnt as date_count FROM stats WHERE stats_type = 'flights_bymonth'";
407
+				 try {
408
+						$sth = $this->db->prepare($query);
409
+						$sth->execute();
410
+				} catch(PDOException $e) {
411
+						echo "error : ".$e->getMessage();
412
+				}
413
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
414
+				if (empty($all)) {
415
+					$Spotter = new Spotter($this->db);
416
+					$all = $Spotter->countAllMonths();
417
+				}
418
+				return $all;
419 419
 	}
420 420
 	public function countAllMilitaryMonths() {
421
-	    	$query = "SELECT YEAR(stats_date) AS year_name,MONTH(stats_date) AS month_name, cnt as date_count FROM stats WHERE stats_type = 'military_flights_bymonth'";
422
-                 try {
423
-                        $sth = $this->db->prepare($query);
424
-                        $sth->execute();
425
-                } catch(PDOException $e) {
426
-                        echo "error : ".$e->getMessage();
427
-                }
428
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
429
-                if (empty($all)) {
430
-            		$Spotter = new Spotter($this->db);
431
-            		$all = $Spotter->countAllMilitaryMonths();
432
-                }
433
-                return $all;
421
+			$query = "SELECT YEAR(stats_date) AS year_name,MONTH(stats_date) AS month_name, cnt as date_count FROM stats WHERE stats_type = 'military_flights_bymonth'";
422
+				 try {
423
+						$sth = $this->db->prepare($query);
424
+						$sth->execute();
425
+				} catch(PDOException $e) {
426
+						echo "error : ".$e->getMessage();
427
+				}
428
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
429
+				if (empty($all)) {
430
+					$Spotter = new Spotter($this->db);
431
+					$all = $Spotter->countAllMilitaryMonths();
432
+				}
433
+				return $all;
434 434
 	}
435 435
 	public function countAllHours($orderby = 'hour',$limit = true) {
436 436
 		global $globalTimezone;
@@ -438,18 +438,18 @@  discard block
 block discarded – undo
438 438
 		else $query = "SELECT flight_date as hour_name, cnt as hour_count FROM stats_flight WHERE stats_type = 'hour'";
439 439
 		if ($orderby == 'hour') $query .= " ORDER BY CAST(flight_date AS integer) ASC";
440 440
 		if ($orderby == 'count') $query .= " ORDER BY hour_count DESC";
441
-                 try {
442
-                        $sth = $this->db->prepare($query);
443
-                        $sth->execute();
444
-                } catch(PDOException $e) {
445
-                        echo "error : ".$e->getMessage();
446
-                }
447
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
448
-                if (empty($all)) {
449
-            		$Spotter = new Spotter($this->db);
450
-            		$all = $Spotter->countAllHours($orderby,$limit);
451
-                }
452
-                return $all;
441
+				 try {
442
+						$sth = $this->db->prepare($query);
443
+						$sth->execute();
444
+				} catch(PDOException $e) {
445
+						echo "error : ".$e->getMessage();
446
+				}
447
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
448
+				if (empty($all)) {
449
+					$Spotter = new Spotter($this->db);
450
+					$all = $Spotter->countAllHours($orderby,$limit);
451
+				}
452
+				return $all;
453 453
 	}
454 454
 	
455 455
 	public function countOverallFlights() {
@@ -512,157 +512,157 @@  discard block
 block discarded – undo
512 512
 	public function getLast7DaysAirports($airport_icao = '') {
513 513
 		$query = "SELECT * FROM stats_airport WHERE stats_type = 'daily' AND airport_icao = :airport_icao ORDER BY date";
514 514
 		$query_values = array(':airport_icao' => $airport_icao);
515
-                 try {
516
-                        $sth = $this->db->prepare($query);
517
-                        $sth->execute($query_values);
518
-                } catch(PDOException $e) {
519
-                        echo "error : ".$e->getMessage();
520
-                }
521
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
522
-                return $all;
515
+				 try {
516
+						$sth = $this->db->prepare($query);
517
+						$sth->execute($query_values);
518
+				} catch(PDOException $e) {
519
+						echo "error : ".$e->getMessage();
520
+				}
521
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
522
+				return $all;
523 523
 	}
524 524
 	public function getStats($type) {
525
-                $query = "SELECT * FROM stats WHERE stats_type = :type ORDER BY stats_date";
526
-                $query_values = array(':type' => $type);
527
-                 try {
528
-                        $sth = $this->db->prepare($query);
529
-                        $sth->execute($query_values);
530
-                } catch(PDOException $e) {
531
-                        echo "error : ".$e->getMessage();
532
-                }
533
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
534
-                return $all;
535
-        }
525
+				$query = "SELECT * FROM stats WHERE stats_type = :type ORDER BY stats_date";
526
+				$query_values = array(':type' => $type);
527
+				 try {
528
+						$sth = $this->db->prepare($query);
529
+						$sth->execute($query_values);
530
+				} catch(PDOException $e) {
531
+						echo "error : ".$e->getMessage();
532
+				}
533
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
534
+				return $all;
535
+		}
536 536
 	public function getSumStats($type,$year) {
537
-    		global $globalArchiveMonths, $globalDBdriver;
538
-    		if ($globalDBdriver == 'mysql') {
539
-	                $query = "SELECT SUM(cnt) as total FROM stats WHERE stats_type = :type AND YEAR(stats_date) = :year";
540
-	        } else {
541
-            		$query = "SELECT SUM(cnt) as total FROM stats WHERE stats_type = :type AND EXTRACT(YEAR FROM stats_date) = :year";
542
-                }
543
-                $query_values = array(':type' => $type, ':year' => $year);
544
-                 try {
545
-                        $sth = $this->db->prepare($query);
546
-                        $sth->execute($query_values);
547
-                } catch(PDOException $e) {
548
-                        echo "error : ".$e->getMessage();
549
-                }
550
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
551
-                return $all[0]['total'];
552
-        }
537
+			global $globalArchiveMonths, $globalDBdriver;
538
+			if ($globalDBdriver == 'mysql') {
539
+					$query = "SELECT SUM(cnt) as total FROM stats WHERE stats_type = :type AND YEAR(stats_date) = :year";
540
+			} else {
541
+					$query = "SELECT SUM(cnt) as total FROM stats WHERE stats_type = :type AND EXTRACT(YEAR FROM stats_date) = :year";
542
+				}
543
+				$query_values = array(':type' => $type, ':year' => $year);
544
+				 try {
545
+						$sth = $this->db->prepare($query);
546
+						$sth->execute($query_values);
547
+				} catch(PDOException $e) {
548
+						echo "error : ".$e->getMessage();
549
+				}
550
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
551
+				return $all[0]['total'];
552
+		}
553 553
 	public function getStatsTotal($type) {
554
-    		global $globalArchiveMonths, $globalDBdriver;
555
-    		if ($globalDBdriver == 'mysql') {
554
+			global $globalArchiveMonths, $globalDBdriver;
555
+			if ($globalDBdriver == 'mysql') {
556 556
 			$query = "SELECT SUM(cnt) as total FROM stats WHERE stats_type = :type AND stats_date < DATE_SUB(UTC_TIMESTAMP(), INTERVAL ".$globalArchiveMonths." MONTH)";
557 557
 		} else {
558 558
 			$query = "SELECT SUM(cnt) as total FROM stats WHERE stats_type = :type AND stats_date < CURRENT_TIMESTAMP AT TIME ZONE 'UTC' - INTERVAL '".$globalArchiveMonths." MONTHS'";
559
-                }
560
-                $query_values = array(':type' => $type);
561
-                 try {
562
-                        $sth = $this->db->prepare($query);
563
-                        $sth->execute($query_values);
564
-                } catch(PDOException $e) {
565
-                        echo "error : ".$e->getMessage();
566
-                }
567
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
568
-                return $all[0]['total'];
569
-        }
559
+				}
560
+				$query_values = array(':type' => $type);
561
+				 try {
562
+						$sth = $this->db->prepare($query);
563
+						$sth->execute($query_values);
564
+				} catch(PDOException $e) {
565
+						echo "error : ".$e->getMessage();
566
+				}
567
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
568
+				return $all[0]['total'];
569
+		}
570 570
 	public function getStatsAircraftTotal() {
571
-    		global $globalArchiveMonths, $globalDBdriver;
572
-    		if ($globalDBdriver == 'mysql') {
571
+			global $globalArchiveMonths, $globalDBdriver;
572
+			if ($globalDBdriver == 'mysql') {
573 573
 			$query = "SELECT SUM(cnt) as total FROM stats_aircraft";
574
-                } else {
574
+				} else {
575 575
 			$query = "SELECT SUM(cnt) as total FROM stats_aircraft";
576
-                }
577
-                 try {
578
-                        $sth = $this->db->prepare($query);
579
-                        $sth->execute();
580
-                } catch(PDOException $e) {
581
-                        echo "error : ".$e->getMessage();
582
-                }
583
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
584
-                return $all[0]['total'];
585
-        }
576
+				}
577
+				 try {
578
+						$sth = $this->db->prepare($query);
579
+						$sth->execute();
580
+				} catch(PDOException $e) {
581
+						echo "error : ".$e->getMessage();
582
+				}
583
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
584
+				return $all[0]['total'];
585
+		}
586 586
 	public function getStatsAirlineTotal() {
587
-    		global $globalArchiveMonths, $globalDBdriver;
588
-    		if ($globalDBdriver == 'mysql') {
587
+			global $globalArchiveMonths, $globalDBdriver;
588
+			if ($globalDBdriver == 'mysql') {
589 589
 			$query = "SELECT SUM(cnt) as total FROM stats_airline";
590
-                } else {
590
+				} else {
591 591
 			$query = "SELECT SUM(cnt) as total FROM stats_airline";
592
-                }
593
-                 try {
594
-                        $sth = $this->db->prepare($query);
595
-                        $sth->execute();
596
-                } catch(PDOException $e) {
597
-                        echo "error : ".$e->getMessage();
598
-                }
599
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
600
-                return $all[0]['total'];
601
-        }
592
+				}
593
+				 try {
594
+						$sth = $this->db->prepare($query);
595
+						$sth->execute();
596
+				} catch(PDOException $e) {
597
+						echo "error : ".$e->getMessage();
598
+				}
599
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
600
+				return $all[0]['total'];
601
+		}
602 602
 	public function getStatsOwnerTotal() {
603
-    		global $globalArchiveMonths, $globalDBdriver;
604
-    		if ($globalDBdriver == 'mysql') {
603
+			global $globalArchiveMonths, $globalDBdriver;
604
+			if ($globalDBdriver == 'mysql') {
605 605
 			$query = "SELECT SUM(cnt) as total FROM stats_owner";
606 606
 		} else {
607 607
 			$query = "SELECT SUM(cnt) as total FROM stats_owner";
608
-                }
609
-                 try {
610
-                        $sth = $this->db->prepare($query);
611
-                        $sth->execute();
612
-                } catch(PDOException $e) {
613
-                        echo "error : ".$e->getMessage();
614
-                }
615
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
616
-                return $all[0]['total'];
617
-        }
608
+				}
609
+				 try {
610
+						$sth = $this->db->prepare($query);
611
+						$sth->execute();
612
+				} catch(PDOException $e) {
613
+						echo "error : ".$e->getMessage();
614
+				}
615
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
616
+				return $all[0]['total'];
617
+		}
618 618
 	public function getStatsPilotTotal() {
619
-    		global $globalArchiveMonths, $globalDBdriver;
620
-    		if ($globalDBdriver == 'mysql') {
621
-            		$query = "SELECT SUM(cnt) as total FROM stats_pilot";
622
-            	} else {
623
-            		$query = "SELECT SUM(cnt) as total FROM stats_pilot";
624
-            	}
625
-                 try {
626
-                        $sth = $this->db->prepare($query);
627
-                        $sth->execute();
628
-                } catch(PDOException $e) {
629
-                        echo "error : ".$e->getMessage();
630
-                }
631
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
632
-                return $all[0]['total'];
633
-        }
619
+			global $globalArchiveMonths, $globalDBdriver;
620
+			if ($globalDBdriver == 'mysql') {
621
+					$query = "SELECT SUM(cnt) as total FROM stats_pilot";
622
+				} else {
623
+					$query = "SELECT SUM(cnt) as total FROM stats_pilot";
624
+				}
625
+				 try {
626
+						$sth = $this->db->prepare($query);
627
+						$sth->execute();
628
+				} catch(PDOException $e) {
629
+						echo "error : ".$e->getMessage();
630
+				}
631
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
632
+				return $all[0]['total'];
633
+		}
634 634
 
635 635
 	public function addStat($type,$cnt,$stats_date) {
636 636
 		global $globalDBdriver;
637 637
 		if ($globalDBdriver == 'mysql') {
638 638
 			$query = "INSERT INTO stats (stats_type,cnt,stats_date) VALUES (:type,:cnt,:stats_date) ON DUPLICATE KEY UPDATE cnt = :cnt";
639
-                } else {
639
+				} else {
640 640
 			$query = "UPDATE stats SET cnt = :cnt WHERE stats_type = :type AND stats_date = :stats_date; INSERT INTO stats (stats_type,cnt,stats_date) SELECT :type,:cnt,:stats_date WHERE NOT EXISTS (SELECT 1 FROM stats WHERE  stats_type = :type AND stats_date = :stats_date);"; 
641 641
 		}
642
-                $query_values = array(':type' => $type,':cnt' => $cnt,':stats_date' => $stats_date);
643
-                 try {
644
-                        $sth = $this->db->prepare($query);
645
-                        $sth->execute($query_values);
646
-                } catch(PDOException $e) {
647
-                        return "error : ".$e->getMessage();
648
-                }
649
-        }
642
+				$query_values = array(':type' => $type,':cnt' => $cnt,':stats_date' => $stats_date);
643
+				 try {
644
+						$sth = $this->db->prepare($query);
645
+						$sth->execute($query_values);
646
+				} catch(PDOException $e) {
647
+						return "error : ".$e->getMessage();
648
+				}
649
+		}
650 650
 	public function updateStat($type,$cnt,$stats_date) {
651 651
 		global $globalDBdriver;
652 652
 		if ($globalDBdriver == 'mysql') {
653 653
 			$query = "INSERT INTO stats (stats_type,cnt,stats_date) VALUES (:type,:cnt,:stats_date) ON DUPLICATE KEY UPDATE cnt = cnt+:cnt, stats_date = :date";
654 654
 		} else {
655
-            		//$query = "INSERT INTO stats (stats_type,cnt,stats_date) VALUES (:type,:cnt,:stats_date) ON DUPLICATE KEY UPDATE cnt = cnt+:cnt, stats_date = :date";
655
+					//$query = "INSERT INTO stats (stats_type,cnt,stats_date) VALUES (:type,:cnt,:stats_date) ON DUPLICATE KEY UPDATE cnt = cnt+:cnt, stats_date = :date";
656 656
 			$query = "UPDATE stats SET cnt = cnt+:cnt WHERE stats_type = :type AND stats_date = :stats_date; INSERT INTO stats (stats_type,cnt,stats_date) SELECT :type,:cnt,:stats_date WHERE NOT EXISTS (SELECT 1 FROM stats WHERE  stats_type = :type AND stats_date = :stats_date);"; 
657
-                }
658
-                $query_values = array(':type' => $type,':cnt' => $cnt,':stats_date' => $stats_date);
659
-                 try {
660
-                        $sth = $this->db->prepare($query);
661
-                        $sth->execute($query_values);
662
-                } catch(PDOException $e) {
663
-                        return "error : ".$e->getMessage();
664
-                }
665
-        }
657
+				}
658
+				$query_values = array(':type' => $type,':cnt' => $cnt,':stats_date' => $stats_date);
659
+				 try {
660
+						$sth = $this->db->prepare($query);
661
+						$sth->execute($query_values);
662
+				} catch(PDOException $e) {
663
+						return "error : ".$e->getMessage();
664
+				}
665
+		}
666 666
 	public function getStatsSource($date,$stats_type = '') {
667 667
 		if ($stats_type == '') {
668 668
 			$query = "SELECT * FROM stats_source WHERE stats_date = :date ORDER BY source_name";
@@ -671,15 +671,15 @@  discard block
 block discarded – undo
671 671
 			$query = "SELECT * FROM stats_source WHERE stats_date = :date AND stats_type = :stats_type ORDER BY source_name";
672 672
 			$query_values = array(':date' => $date,':stats_type' => $stats_type);
673 673
 		}
674
-                 try {
675
-                        $sth = $this->db->prepare($query);
676
-                        $sth->execute($query_values);
677
-                } catch(PDOException $e) {
678
-                        echo "error : ".$e->getMessage();
679
-                }
680
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
681
-                return $all;
682
-        }
674
+				 try {
675
+						$sth = $this->db->prepare($query);
676
+						$sth->execute($query_values);
677
+				} catch(PDOException $e) {
678
+						echo "error : ".$e->getMessage();
679
+				}
680
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
681
+				return $all;
682
+		}
683 683
 
684 684
 	public function addStatSource($data,$source_name,$stats_type,$date) {
685 685
 		global $globalDBdriver;
@@ -687,25 +687,25 @@  discard block
 block discarded – undo
687 687
 			$query = "INSERT INTO stats_source (source_data,source_name,stats_type,stats_date) VALUES (:data,:source_name,:stats_type,:stats_date) ON DUPLICATE KEY UPDATE source_data = :data";
688 688
 		} else {
689 689
 			$query = "UPDATE stats_source SET source_data = :data WHERE stats_date = :stats_date AND source_name = :source_name AND stats_type = :stats_type; INSERT INTO stats_source (source_data,source_name,stats_type,stats_date) SELECT :data,:source_name,:stats_type,:stats_date WHERE NOT EXISTS (SELECT 1 FROM stats_source WHERE stats_date = :stats_date AND source_name = :source_name AND stats_type = :stats_type);"; 
690
-                }
691
-                $query_values = array(':data' => $data,':stats_date' => $date,':source_name' => $source_name,':stats_type' => $stats_type);
692
-                 try {
693
-                        $sth = $this->db->prepare($query);
694
-                        $sth->execute($query_values);
695
-                } catch(PDOException $e) {
696
-                        return "error : ".$e->getMessage();
697
-                }
698
-        }
690
+				}
691
+				$query_values = array(':data' => $data,':stats_date' => $date,':source_name' => $source_name,':stats_type' => $stats_type);
692
+				 try {
693
+						$sth = $this->db->prepare($query);
694
+						$sth->execute($query_values);
695
+				} catch(PDOException $e) {
696
+						return "error : ".$e->getMessage();
697
+				}
698
+		}
699 699
 	public function addStatFlight($type,$date_name,$cnt) {
700
-                $query = "INSERT INTO stats_flight (stats_type,flight_date,cnt) VALUES (:type,:flight_date,:cnt)";
701
-                $query_values = array(':type' => $type,':flight_date' => $date_name,':cnt' => $cnt);
702
-                 try {
703
-                        $sth = $this->db->prepare($query);
704
-                        $sth->execute($query_values);
705
-                } catch(PDOException $e) {
706
-                        return "error : ".$e->getMessage();
707
-                }
708
-        }
700
+				$query = "INSERT INTO stats_flight (stats_type,flight_date,cnt) VALUES (:type,:flight_date,:cnt)";
701
+				$query_values = array(':type' => $type,':flight_date' => $date_name,':cnt' => $cnt);
702
+				 try {
703
+						$sth = $this->db->prepare($query);
704
+						$sth->execute($query_values);
705
+				} catch(PDOException $e) {
706
+						return "error : ".$e->getMessage();
707
+				}
708
+		}
709 709
 	public function addStatAircraftRegistration($registration,$cnt,$aircraft_icao = '') {
710 710
 		global $globalDBdriver;
711 711
 		if ($globalDBdriver == 'mysql') {
@@ -713,14 +713,14 @@  discard block
 block discarded – undo
713 713
 		} else {
714 714
 			$query = "UPDATE stats_registration SET cnt = cnt+:cnt WHERE registration = :registration; INSERT INTO stats_registration (aircraft_icao,registration,cnt) SELECT :aircraft_icao,:registration,:cnt WHERE NOT EXISTS (SELECT 1 FROM stats_registration WHERE registration = :registration);"; 
715 715
 		}
716
-                $query_values = array(':aircraft_icao' => $aircraft_icao,':registration' => $registration,':cnt' => $cnt);
717
-                 try {
718
-                        $sth = $this->db->prepare($query);
719
-                        $sth->execute($query_values);
720
-                } catch(PDOException $e) {
721
-                        return "error : ".$e->getMessage();
722
-                }
723
-        }
716
+				$query_values = array(':aircraft_icao' => $aircraft_icao,':registration' => $registration,':cnt' => $cnt);
717
+				 try {
718
+						$sth = $this->db->prepare($query);
719
+						$sth->execute($query_values);
720
+				} catch(PDOException $e) {
721
+						return "error : ".$e->getMessage();
722
+				}
723
+		}
724 724
 	public function addStatCallsign($callsign_icao,$cnt,$airline_icao = '') {
725 725
 		global $globalDBdriver;
726 726
 		if ($globalDBdriver == 'mysql') {
@@ -728,14 +728,14 @@  discard block
 block discarded – undo
728 728
 		} else {
729 729
 			$query = "UPDATE stats_callsign SET cnt = cnt+:cnt WHERE callsign_icao = :callsign_icao; INSERT INTO stats_callsign (callsign_icao,airline_icao,cnt) SELECT :callsign_icao,:airline_icao,:cnt WHERE NOT EXISTS (SELECT 1 FROM stats_callsign WHERE callsign_icao = :callsign_icao);"; 
730 730
 		}
731
-                $query_values = array(':callsign_icao' => $callsign_icao,':airline_icao' => $airline_icao,':cnt' => $cnt);
732
-                 try {
733
-                        $sth = $this->db->prepare($query);
734
-                        $sth->execute($query_values);
735
-                } catch(PDOException $e) {
736
-                        return "error : ".$e->getMessage();
737
-                }
738
-        }
731
+				$query_values = array(':callsign_icao' => $callsign_icao,':airline_icao' => $airline_icao,':cnt' => $cnt);
732
+				 try {
733
+						$sth = $this->db->prepare($query);
734
+						$sth->execute($query_values);
735
+				} catch(PDOException $e) {
736
+						return "error : ".$e->getMessage();
737
+				}
738
+		}
739 739
 	public function addStatCountry($iso2,$iso3,$name,$cnt) {
740 740
 		global $globalDBdriver;
741 741
 		if ($globalDBdriver == 'mysql') {
@@ -743,14 +743,14 @@  discard block
 block discarded – undo
743 743
 		} else {
744 744
 			$query = "UPDATE stats_country SET cnt = cnt+:cnt WHERE iso2 = :iso2; INSERT INTO stats_country (iso2,iso3,name,cnt) SELECT :iso2,:iso3,:name,:cnt WHERE NOT EXISTS (SELECT 1 FROM stats_country WHERE iso2 = :iso2);"; 
745 745
 		}
746
-                $query_values = array(':iso2' => $iso2,':iso3' => $iso3,':name' => $name,':cnt' => $cnt);
747
-                 try {
748
-                        $sth = $this->db->prepare($query);
749
-                        $sth->execute($query_values);
750
-                } catch(PDOException $e) {
751
-                        return "error : ".$e->getMessage();
752
-                }
753
-        }
746
+				$query_values = array(':iso2' => $iso2,':iso3' => $iso3,':name' => $name,':cnt' => $cnt);
747
+				 try {
748
+						$sth = $this->db->prepare($query);
749
+						$sth->execute($query_values);
750
+				} catch(PDOException $e) {
751
+						return "error : ".$e->getMessage();
752
+				}
753
+		}
754 754
 	public function addStatAircraft($aircraft_icao,$cnt,$aircraft_name = '') {
755 755
 		global $globalDBdriver;
756 756
 		if ($globalDBdriver == 'mysql') {
@@ -758,14 +758,14 @@  discard block
 block discarded – undo
758 758
 		} else {
759 759
 			$query = "UPDATE stats_aircraft SET cnt = cnt+:cnt WHERE aircraft_icao = :aircraft_icao; INSERT INTO stats_aircraft (aircraft_icao,aircraft_name,cnt) SELECT :aircraft_icao,:aircraft_name,:cnt WHERE NOT EXISTS (SELECT 1 FROM stats_aircraft WHERE aircraft_icao = :aircraft_icao);"; 
760 760
 		}
761
-                $query_values = array(':aircraft_icao' => $aircraft_icao,':aircraft_name' => $aircraft_name,':cnt' => $cnt);
762
-                 try {
763
-                        $sth = $this->db->prepare($query);
764
-                        $sth->execute($query_values);
765
-                } catch(PDOException $e) {
766
-                        return "error : ".$e->getMessage();
767
-                }
768
-        }
761
+				$query_values = array(':aircraft_icao' => $aircraft_icao,':aircraft_name' => $aircraft_name,':cnt' => $cnt);
762
+				 try {
763
+						$sth = $this->db->prepare($query);
764
+						$sth->execute($query_values);
765
+				} catch(PDOException $e) {
766
+						return "error : ".$e->getMessage();
767
+				}
768
+		}
769 769
 	public function addStatAirline($airline_icao,$cnt,$airline_name = '') {
770 770
 		global $globalDBdriver;
771 771
 		if ($globalDBdriver == 'mysql') {
@@ -773,14 +773,14 @@  discard block
 block discarded – undo
773 773
 		} else {
774 774
 			$query = "UPDATE stats_airline SET cnt = cnt+:cnt WHERE airline_icao = :airline_icao; INSERT INTO stats_airline (airline_icao,airline_name,cnt) SELECT :airline_icao,:airline_name,:cnt WHERE NOT EXISTS (SELECT 1 FROM stats_airline WHERE airline_icao = :airline_icao);"; 
775 775
 		}
776
-                $query_values = array(':airline_icao' => $airline_icao,':airline_name' => $airline_name,':cnt' => $cnt);
777
-                 try {
778
-                        $sth = $this->db->prepare($query);
779
-                        $sth->execute($query_values);
780
-                } catch(PDOException $e) {
781
-                        return "error : ".$e->getMessage();
782
-                }
783
-        }
776
+				$query_values = array(':airline_icao' => $airline_icao,':airline_name' => $airline_name,':cnt' => $cnt);
777
+				 try {
778
+						$sth = $this->db->prepare($query);
779
+						$sth->execute($query_values);
780
+				} catch(PDOException $e) {
781
+						return "error : ".$e->getMessage();
782
+				}
783
+		}
784 784
 	public function addStatOwner($owner_name,$cnt) {
785 785
 		global $globalDBdriver;
786 786
 		if ($globalDBdriver == 'mysql') {
@@ -788,14 +788,14 @@  discard block
 block discarded – undo
788 788
 		} else {
789 789
 			$query = "UPDATE stats_owner SET cnt = cnt+:cnt WHERE owner_name = :owner_name; INSERT INTO stats_owner (owner_name,cnt) SELECT :owner_name,:cnt WHERE NOT EXISTS (SELECT 1 FROM stats_owner WHERE owner_name = :owner_name);"; 
790 790
 		}
791
-                $query_values = array(':owner_name' => $owner_name,':cnt' => $cnt);
792
-                 try {
793
-                        $sth = $this->db->prepare($query);
794
-                        $sth->execute($query_values);
795
-                } catch(PDOException $e) {
796
-                        return "error : ".$e->getMessage();
797
-                }
798
-        }
791
+				$query_values = array(':owner_name' => $owner_name,':cnt' => $cnt);
792
+				 try {
793
+						$sth = $this->db->prepare($query);
794
+						$sth->execute($query_values);
795
+				} catch(PDOException $e) {
796
+						return "error : ".$e->getMessage();
797
+				}
798
+		}
799 799
 	public function addStatPilot($pilot_id,$cnt) {
800 800
 		global $globalDBdriver;
801 801
 		if ($globalDBdriver == 'mysql') {
@@ -803,14 +803,14 @@  discard block
 block discarded – undo
803 803
 		} else {
804 804
 			$query = "UPDATE stats_pilot SET cnt = cnt+:cnt WHERE pilot_id = :pilot_id; INSERT INTO stats_pilot (pilot_id,cnt) SELECT :pilot_id,:cnt WHERE NOT EXISTS (SELECT 1 FROM stats_pilot WHERE pilot_id = :pilot_id);"; 
805 805
 		}
806
-                $query_values = array(':pilot_id' => $pilot_id,':cnt' => $cnt);
807
-                 try {
808
-                        $sth = $this->db->prepare($query);
809
-                        $sth->execute($query_values);
810
-                } catch(PDOException $e) {
811
-                        return "error : ".$e->getMessage();
812
-                }
813
-        }
806
+				$query_values = array(':pilot_id' => $pilot_id,':cnt' => $cnt);
807
+				 try {
808
+						$sth = $this->db->prepare($query);
809
+						$sth->execute($query_values);
810
+				} catch(PDOException $e) {
811
+						return "error : ".$e->getMessage();
812
+				}
813
+		}
814 814
 	public function addStatDepartureAirports($airport_icao,$airport_name,$airport_city,$airport_country,$departure) {
815 815
 		global $globalDBdriver;
816 816
 		if ($globalDBdriver == 'mysql') {
@@ -818,14 +818,14 @@  discard block
 block discarded – undo
818 818
 		} else {
819 819
 			$query = "UPDATE stats_airport SET departure = departure+:departure WHERE airport_icao = :airport_icao AND stats_type = 'yearly'; INSERT INTO stats_airport (airport_icao,airport_name,airport_city,airport_country,departure,stats_type,date) SELECT :airport_icao,:airport_name,:airport_city,:airport_country,:departure,'yearly',:date WHERE NOT EXISTS (SELECT 1 FROM stats_airline WHERE airport_icao = :airport_icao AND stats_type = 'yearly');"; 
820 820
 		}
821
-                $query_values = array(':airport_icao' => $airport_icao,':airport_name' => $airport_name,':airport_city' => $airport_city,':airport_country' => $airport_country,':departure' => $departure,':date' => date('Y').'-01-01 00:00:00');
822
-                 try {
823
-                        $sth = $this->db->prepare($query);
824
-                        $sth->execute($query_values);
825
-                } catch(PDOException $e) {
826
-                        return "error : ".$e->getMessage();
827
-                }
828
-        }
821
+				$query_values = array(':airport_icao' => $airport_icao,':airport_name' => $airport_name,':airport_city' => $airport_city,':airport_country' => $airport_country,':departure' => $departure,':date' => date('Y').'-01-01 00:00:00');
822
+				 try {
823
+						$sth = $this->db->prepare($query);
824
+						$sth->execute($query_values);
825
+				} catch(PDOException $e) {
826
+						return "error : ".$e->getMessage();
827
+				}
828
+		}
829 829
 	public function addStatDepartureAirportsDaily($date,$airport_icao,$airport_name,$airport_city,$airport_country,$departure) {
830 830
 		global $globalDBdriver;
831 831
 		if ($globalDBdriver == 'mysql') {
@@ -833,14 +833,14 @@  discard block
 block discarded – undo
833 833
 		} else {
834 834
 			$query = "UPDATE stats_airport SET departure = departure+:departure WHERE airport_icao = :airport_icao AND stats_type = 'daily'; INSERT INTO stats_airport (airport_icao,airport_name,airport_city,airport_country,departure,stats_type,date) SELECT :airport_icao,:airport_name,:airport_city,:airport_country,:departure,'daily',:date WHERE NOT EXISTS (SELECT 1 FROM stats_airline WHERE airport_icao = :airport_icao AND stats_type = 'daily');"; 
835 835
 		}
836
-                $query_values = array(':airport_icao' => $airport_icao,':airport_name' => $airport_name,':airport_city' => $airport_city,':airport_country' => $airport_country,':departure' => $departure,':date' => $date);
837
-                 try {
838
-                        $sth = $this->db->prepare($query);
839
-                        $sth->execute($query_values);
840
-                } catch(PDOException $e) {
841
-                        return "error : ".$e->getMessage();
842
-                }
843
-        }
836
+				$query_values = array(':airport_icao' => $airport_icao,':airport_name' => $airport_name,':airport_city' => $airport_city,':airport_country' => $airport_country,':departure' => $departure,':date' => $date);
837
+				 try {
838
+						$sth = $this->db->prepare($query);
839
+						$sth->execute($query_values);
840
+				} catch(PDOException $e) {
841
+						return "error : ".$e->getMessage();
842
+				}
843
+		}
844 844
 	public function addStatArrivalAirports($airport_icao,$airport_name,$airport_city,$airport_country,$arrival) {
845 845
 		global $globalDBdriver;
846 846
 		if ($globalDBdriver == 'mysql') {
@@ -848,14 +848,14 @@  discard block
 block discarded – undo
848 848
 		} else {
849 849
 			$query = "UPDATE stats_airport SET arrival = arrival+:arrival WHERE airport_icao = :airport_icao AND stats_type = 'yearly'; INSERT INTO stats_airport (airport_icao,airport_name,airport_city,airport_country,arrival,stats_type,date) SELECT :airport_icao,:airport_name,:airport_city,:airport_country,:arrival,'yearly',:date WHERE NOT EXISTS (SELECT 1 FROM stats_airline WHERE airport_icao = :airport_icao AND stats_type = 'yearly');"; 
850 850
 		}
851
-                $query_values = array(':airport_icao' => $airport_icao,':airport_name' => $airport_name,':airport_city' => $airport_city,':airport_country' => $airport_country,':arrival' => $arrival,':date' => date('Y').'-01-01 00:00:00');
852
-                 try {
853
-                        $sth = $this->db->prepare($query);
854
-                        $sth->execute($query_values);
855
-                } catch(PDOException $e) {
856
-                        return "error : ".$e->getMessage();
857
-                }
858
-        }
851
+				$query_values = array(':airport_icao' => $airport_icao,':airport_name' => $airport_name,':airport_city' => $airport_city,':airport_country' => $airport_country,':arrival' => $arrival,':date' => date('Y').'-01-01 00:00:00');
852
+				 try {
853
+						$sth = $this->db->prepare($query);
854
+						$sth->execute($query_values);
855
+				} catch(PDOException $e) {
856
+						return "error : ".$e->getMessage();
857
+				}
858
+		}
859 859
 	public function addStatArrivalAirportsDaily($date,$airport_icao,$airport_name,$airport_city,$airport_country,$arrival) {
860 860
 		global $globalDBdriver;
861 861
 		if ($globalDBdriver == 'mysql') {
@@ -863,55 +863,55 @@  discard block
 block discarded – undo
863 863
 		} else {
864 864
 			$query = "UPDATE stats_airport SET arrival = arrival+:arrival WHERE airport_icao = :airport_icao AND stats_type = 'daily'; INSERT INTO stats_airport (airport_icao,airport_name,airport_city,airport_country,arrival,stats_type,date) SELECT :airport_icao,:airport_name,:airport_city,:airport_country,:arrival,'yearly',:date WHERE NOT EXISTS (SELECT 1 FROM stats_airline WHERE airport_icao = :airport_icao AND stats_type = 'daily');"; 
865 865
 		}
866
-                $query_values = array(':airport_icao' => $airport_icao,':airport_name' => $airport_name,':airport_city' => $airport_city,':airport_country' => $airport_country,':arrival' => $arrival, ':date' => $date);
867
-                 try {
868
-                        $sth = $this->db->prepare($query);
869
-                        $sth->execute($query_values);
870
-                } catch(PDOException $e) {
871
-                        return "error : ".$e->getMessage();
872
-                }
873
-        }
866
+				$query_values = array(':airport_icao' => $airport_icao,':airport_name' => $airport_name,':airport_city' => $airport_city,':airport_country' => $airport_country,':arrival' => $arrival, ':date' => $date);
867
+				 try {
868
+						$sth = $this->db->prepare($query);
869
+						$sth->execute($query_values);
870
+				} catch(PDOException $e) {
871
+						return "error : ".$e->getMessage();
872
+				}
873
+		}
874 874
 
875 875
 	public function deleteStat($id) {
876
-                $query = "DELETE FROM stats WHERE stats_id = :id";
877
-                $query_values = array(':id' => $id);
878
-                 try {
879
-                        $sth = $this->db->prepare($query);
880
-                        $sth->execute($query_values);
881
-                } catch(PDOException $e) {
882
-                        return "error : ".$e->getMessage();
883
-                }
884
-        }
876
+				$query = "DELETE FROM stats WHERE stats_id = :id";
877
+				$query_values = array(':id' => $id);
878
+				 try {
879
+						$sth = $this->db->prepare($query);
880
+						$sth->execute($query_values);
881
+				} catch(PDOException $e) {
882
+						return "error : ".$e->getMessage();
883
+				}
884
+		}
885 885
 	public function deleteStatFlight($type) {
886
-                $query = "DELETE FROM stats_flight WHERE stats_type = :type";
887
-                $query_values = array(':type' => $type);
888
-                 try {
889
-                        $sth = $this->db->prepare($query);
890
-                        $sth->execute($query_values);
891
-                } catch(PDOException $e) {
892
-                        return "error : ".$e->getMessage();
893
-                }
894
-        }
886
+				$query = "DELETE FROM stats_flight WHERE stats_type = :type";
887
+				$query_values = array(':type' => $type);
888
+				 try {
889
+						$sth = $this->db->prepare($query);
890
+						$sth->execute($query_values);
891
+				} catch(PDOException $e) {
892
+						return "error : ".$e->getMessage();
893
+				}
894
+		}
895 895
 	public function deleteStatAirport($type) {
896
-                $query = "DELETE FROM stats_airport WHERE stats_type = :type";
897
-                $query_values = array(':type' => $type);
898
-                 try {
899
-                        $sth = $this->db->prepare($query);
900
-                        $sth->execute($query_values);
901
-                } catch(PDOException $e) {
902
-                        return "error : ".$e->getMessage();
903
-                }
904
-        }
896
+				$query = "DELETE FROM stats_airport WHERE stats_type = :type";
897
+				$query_values = array(':type' => $type);
898
+				 try {
899
+						$sth = $this->db->prepare($query);
900
+						$sth->execute($query_values);
901
+				} catch(PDOException $e) {
902
+						return "error : ".$e->getMessage();
903
+				}
904
+		}
905 905
         
906
-        public function addOldStats() {
907
-    		global $globalArchiveMonths, $globalArchive, $globalArchiveYear, $globalDBdriver;
908
-    		$Common = new Common();
909
-    		$Connection = new Connection();
910
-    		date_default_timezone_set('UTC');
911
-    		$last_update = $this->getLastStatsUpdate('last_update_stats');
906
+		public function addOldStats() {
907
+			global $globalArchiveMonths, $globalArchive, $globalArchiveYear, $globalDBdriver;
908
+			$Common = new Common();
909
+			$Connection = new Connection();
910
+			date_default_timezone_set('UTC');
911
+			$last_update = $this->getLastStatsUpdate('last_update_stats');
912 912
 		//print_r($last_update);
913 913
 		$flightsbymonth = $this->getStats('flights_by_month');
914
-    		if (empty($last_update) && empty($flightsbymonth)) {
914
+			if (empty($last_update) && empty($flightsbymonth)) {
915 915
 			// Initial update
916 916
 			$Spotter = new Spotter($this->db);
917 917
 			$alldata = $Spotter->countAllMonths();
@@ -1052,46 +1052,46 @@  discard block
 block discarded – undo
1052 1052
 					$this->addStatPilot($number['pilot_id'],$number['pilot_count']);
1053 1053
 				}
1054 1054
 				$pall = $Spotter->countAllDepartureAirports(false,$globalArchiveMonths);
1055
-        			$dall = $Spotter->countAllDetectedDepartureAirports(false,$globalArchiveMonths);
1056
-	        		$alldata = array();
1057
-    				foreach ($pall as $value) {
1058
-	        			$icao = $value['airport_departure_icao'];
1059
-    					$alldata[$icao] = $value;
1060
-	        		}
1061
-	        		foreach ($dall as $value) {
1062
-    					$icao = $value['airport_departure_icao'];
1063
-        				if (isset($alldata[$icao])) {                                                           
1064
-        					$alldata[$icao]['airport_departure_icao_count'] = $alldata[$icao]['airport_departure_icao_count'] + $value['airport_departure_icao_count'];
1065
-	        			} else $alldata[$icao] = $value;
1066
-    				}
1067
-        			$count = array();
1068
-        			foreach ($alldata as $key => $row) {
1069
-        				$count[$key] = $row['airport_departure_icao_count'];
1070
-	        		}
1071
-    				array_multisort($count,SORT_DESC,$alldata);
1055
+					$dall = $Spotter->countAllDetectedDepartureAirports(false,$globalArchiveMonths);
1056
+					$alldata = array();
1057
+					foreach ($pall as $value) {
1058
+						$icao = $value['airport_departure_icao'];
1059
+						$alldata[$icao] = $value;
1060
+					}
1061
+					foreach ($dall as $value) {
1062
+						$icao = $value['airport_departure_icao'];
1063
+						if (isset($alldata[$icao])) {                                                           
1064
+							$alldata[$icao]['airport_departure_icao_count'] = $alldata[$icao]['airport_departure_icao_count'] + $value['airport_departure_icao_count'];
1065
+						} else $alldata[$icao] = $value;
1066
+					}
1067
+					$count = array();
1068
+					foreach ($alldata as $key => $row) {
1069
+						$count[$key] = $row['airport_departure_icao_count'];
1070
+					}
1071
+					array_multisort($count,SORT_DESC,$alldata);
1072 1072
 
1073 1073
 				//print_r($alldate);
1074 1074
 				foreach ($alldata as $number) {
1075 1075
 					$this->addStatDepartureAirports($number['airport_departure_icao'],$number['airport_departure_name'],$number['airport_departure_city'],$number['airport_departure_country'],$number['airport_departure_icao_count']);
1076 1076
 				}
1077 1077
 				$pdata = $Spotter->countAllArrivalAirports(false,$globalArchiveMonths);
1078
-        			$dall = $Spotter->countAllDetectedArrivalAirports(false,$globalArchiveMonths);
1079
-	        		$alldata = array();
1080
-    				foreach ($pdata as $value) {
1081
-	        			$icao = $value['airport_arrival_icao'];
1082
-    					$alldata[$icao] = $value;
1083
-	        		}
1084
-	        		foreach ($dall as $value) {
1085
-    					$icao = $value['airport_arrival_icao'];
1086
-        				if (isset($alldata[$icao])) {                                                           
1087
-        					$alldata[$icao]['airport_arrival_icao_count'] = $alldata[$icao]['airport_arrival_icao_count'] + $value['airport_arrival_icao_count'];
1088
-	        			} else $alldata[$icao] = $value;
1089
-    				}
1090
-        			$count = array();
1091
-        			foreach ($alldata as $key => $row) {
1092
-        				$count[$key] = $row['airport_arrival_icao_count'];
1093
-	        		}
1094
-    				array_multisort($count,SORT_DESC,$alldata);
1078
+					$dall = $Spotter->countAllDetectedArrivalAirports(false,$globalArchiveMonths);
1079
+					$alldata = array();
1080
+					foreach ($pdata as $value) {
1081
+						$icao = $value['airport_arrival_icao'];
1082
+						$alldata[$icao] = $value;
1083
+					}
1084
+					foreach ($dall as $value) {
1085
+						$icao = $value['airport_arrival_icao'];
1086
+						if (isset($alldata[$icao])) {                                                           
1087
+							$alldata[$icao]['airport_arrival_icao_count'] = $alldata[$icao]['airport_arrival_icao_count'] + $value['airport_arrival_icao_count'];
1088
+						} else $alldata[$icao] = $value;
1089
+					}
1090
+					$count = array();
1091
+					foreach ($alldata as $key => $row) {
1092
+						$count[$key] = $row['airport_arrival_icao_count'];
1093
+					}
1094
+					array_multisort($count,SORT_DESC,$alldata);
1095 1095
 				foreach ($alldata as $number) {
1096 1096
 					$this->addStatArrivalAirports($number['airport_arrival_icao'],$number['airport_arrival_name'],$number['airport_arrival_city'],$number['airport_arrival_country'],$number['airport_arrival_icao_count']);
1097 1097
 				}
@@ -1159,46 +1159,46 @@  discard block
 block discarded – undo
1159 1159
 				$this->addStatPilot($number['pilot_id'],$number['pilot_count']);
1160 1160
 			}
1161 1161
 			$pall = $Spotter->countAllDepartureAirports(false,0,$last_update_day);
1162
-        		$dall = $Spotter->countAllDetectedDepartureAirports(false,0,$last_update_day);
1163
-	        	$alldata = array();
1164
-    			foreach ($pall as $value) {
1165
-	        		$icao = $value['airport_departure_icao'];
1166
-    				$alldata[$icao] = $value;
1167
-	        	}
1168
-	        	foreach ($dall as $value) {
1169
-    				$icao = $value['airport_departure_icao'];
1170
-        			if (isset($alldata[$icao])) {                                                           
1171
-    					$alldata[$icao]['airport_departure_icao_count'] = $alldata[$icao]['airport_departure_icao_count'] + $value['airport_departure_icao_count'];
1172
-        			} else $alldata[$icao] = $value;
1162
+				$dall = $Spotter->countAllDetectedDepartureAirports(false,0,$last_update_day);
1163
+				$alldata = array();
1164
+				foreach ($pall as $value) {
1165
+					$icao = $value['airport_departure_icao'];
1166
+					$alldata[$icao] = $value;
1167
+				}
1168
+				foreach ($dall as $value) {
1169
+					$icao = $value['airport_departure_icao'];
1170
+					if (isset($alldata[$icao])) {                                                           
1171
+						$alldata[$icao]['airport_departure_icao_count'] = $alldata[$icao]['airport_departure_icao_count'] + $value['airport_departure_icao_count'];
1172
+					} else $alldata[$icao] = $value;
1173 1173
 			}
1174
-    			$count = array();
1175
-    			foreach ($alldata as $key => $row) {
1176
-    				$count[$key] = $row['airport_departure_icao_count'];
1177
-        		}
1174
+				$count = array();
1175
+				foreach ($alldata as $key => $row) {
1176
+					$count[$key] = $row['airport_departure_icao_count'];
1177
+				}
1178 1178
 			array_multisort($count,SORT_DESC,$alldata);
1179 1179
 
1180 1180
 			foreach ($alldata as $number) {
1181 1181
 				$this->addStatDepartureAirports($number['airport_departure_icao'],$number['airport_departure_name'],$number['airport_departure_city'],$number['airport_departure_country'],$number['airport_departure_icao_count']);
1182 1182
 			}
1183 1183
 			$pall = $Spotter->countAllArrivalAirports(false,0,$last_update_day);
1184
-        		$dall = $Spotter->countAllDetectedArrivalAirports(false,0,$last_update_day);
1185
-	        	$alldata = array();
1186
-    			foreach ($pall as $value) {
1187
-	        		$icao = $value['airport_arrival_icao'];
1188
-    				$alldata[$icao] = $value;
1189
-	        	}
1190
-	        	foreach ($dall as $value) {
1191
-    				$icao = $value['airport_arrival_icao'];
1192
-        			if (isset($alldata[$icao])) {                                                           
1193
-        				$alldata[$icao]['airport_arrival_icao_count'] = $alldata[$icao]['airport_arrival_icao_count'] + $value['airport_arrival_icao_count'];
1194
-	        		} else $alldata[$icao] = $value;
1195
-    			}
1196
-        		$count = array();
1197
-        		foreach ($alldata as $key => $row) {
1198
-        			$count[$key] = $row['airport_arrival_icao_count'];
1199
-	        	}
1200
-    			array_multisort($count,SORT_DESC,$alldata);
1201
-                        foreach ($alldata as $number) {
1184
+				$dall = $Spotter->countAllDetectedArrivalAirports(false,0,$last_update_day);
1185
+				$alldata = array();
1186
+				foreach ($pall as $value) {
1187
+					$icao = $value['airport_arrival_icao'];
1188
+					$alldata[$icao] = $value;
1189
+				}
1190
+				foreach ($dall as $value) {
1191
+					$icao = $value['airport_arrival_icao'];
1192
+					if (isset($alldata[$icao])) {                                                           
1193
+						$alldata[$icao]['airport_arrival_icao_count'] = $alldata[$icao]['airport_arrival_icao_count'] + $value['airport_arrival_icao_count'];
1194
+					} else $alldata[$icao] = $value;
1195
+				}
1196
+				$count = array();
1197
+				foreach ($alldata as $key => $row) {
1198
+					$count[$key] = $row['airport_arrival_icao_count'];
1199
+				}
1200
+				array_multisort($count,SORT_DESC,$alldata);
1201
+						foreach ($alldata as $number) {
1202 1202
 				$this->addStatArrivalAirports($number['airport_arrival_icao'],$number['airport_arrival_name'],$number['airport_arrival_city'],$number['airport_arrival_country'],$number['airport_arrival_icao_count']);
1203 1203
 			}
1204 1204
 			if ($Connection->tableExists('countries')) {
@@ -1248,45 +1248,45 @@  discard block
 block discarded – undo
1248 1248
 			echo '...Departure'."\n";
1249 1249
 			$this->deleteStatAirport('daily');
1250 1250
 			$pall = $Spotter->getLast7DaysAirportsDeparture();
1251
-        		$dall = $Spotter->getLast7DaysDetectedAirportsDeparture();
1252
-	        	$alldata = array();
1253
-    			foreach ($pall as $value) {
1254
-	        		$icao = $value['departure_airport_icao'];
1255
-    				$alldata[$icao] = $value;
1256
-	        	}
1257
-	        	foreach ($dall as $value) {
1258
-    				$icao = $value['departure_airport_icao'];
1259
-        			if (isset($alldata[$icao])) {                                                           
1260
-        				$alldata[$icao]['departure_airport_count'] = $alldata[$icao]['departure_airport_count'] + $value['departure_airport_count'];
1261
-	        		} else $alldata[$icao] = $value;
1262
-    			}
1263
-        		$count = array();
1264
-        		foreach ($alldata as $key => $row) {
1265
-        			$count[$key] = $row['departure_airport_count'];
1266
-	        	}
1267
-    			array_multisort($count,SORT_DESC,$alldata);
1251
+				$dall = $Spotter->getLast7DaysDetectedAirportsDeparture();
1252
+				$alldata = array();
1253
+				foreach ($pall as $value) {
1254
+					$icao = $value['departure_airport_icao'];
1255
+					$alldata[$icao] = $value;
1256
+				}
1257
+				foreach ($dall as $value) {
1258
+					$icao = $value['departure_airport_icao'];
1259
+					if (isset($alldata[$icao])) {                                                           
1260
+						$alldata[$icao]['departure_airport_count'] = $alldata[$icao]['departure_airport_count'] + $value['departure_airport_count'];
1261
+					} else $alldata[$icao] = $value;
1262
+				}
1263
+				$count = array();
1264
+				foreach ($alldata as $key => $row) {
1265
+					$count[$key] = $row['departure_airport_count'];
1266
+				}
1267
+				array_multisort($count,SORT_DESC,$alldata);
1268 1268
 			foreach ($alldata as $number) {
1269 1269
 				$this->addStatDepartureAirportsDaily($number['date'],$number['departure_airport_icao'],$number['departure_airport_name'],$number['departure_airport_city'],$number['departure_airport_country'],$number['departure_airport_count']);
1270 1270
 			}
1271 1271
 			echo '...Arrival'."\n";
1272 1272
 			$pall = $Spotter->getLast7DaysAirportsArrival();
1273
-        		$dall = $Spotter->getLast7DaysDetectedAirportsArrival();
1274
-	        	$alldata = array();
1275
-    			foreach ($pall as $value) {
1276
-	        		$icao = $value['arrival_airport_icao'];
1277
-    				$alldata[$icao] = $value;
1278
-	        	}
1279
-	        	foreach ($dall as $value) {
1280
-    				$icao = $value['arrival_airport_icao'];
1281
-        			if (isset($alldata[$icao])) {                                                           
1282
-        				$alldata[$icao]['arrival_airport_icao_count'] = $alldata[$icao]['arrival_airport_count'] + $value['arrival_airport_count'];
1283
-	        		} else $alldata[$icao] = $value;
1284
-    			}
1285
-        		$count = array();
1286
-        		foreach ($alldata as $key => $row) {
1287
-        			$count[$key] = $row['arrival_airport_count'];
1288
-	        	}
1289
-    			array_multisort($count,SORT_DESC,$alldata);
1273
+				$dall = $Spotter->getLast7DaysDetectedAirportsArrival();
1274
+				$alldata = array();
1275
+				foreach ($pall as $value) {
1276
+					$icao = $value['arrival_airport_icao'];
1277
+					$alldata[$icao] = $value;
1278
+				}
1279
+				foreach ($dall as $value) {
1280
+					$icao = $value['arrival_airport_icao'];
1281
+					if (isset($alldata[$icao])) {                                                           
1282
+						$alldata[$icao]['arrival_airport_icao_count'] = $alldata[$icao]['arrival_airport_count'] + $value['arrival_airport_count'];
1283
+					} else $alldata[$icao] = $value;
1284
+				}
1285
+				$count = array();
1286
+				foreach ($alldata as $key => $row) {
1287
+					$count[$key] = $row['arrival_airport_count'];
1288
+				}
1289
+				array_multisort($count,SORT_DESC,$alldata);
1290 1290
 
1291 1291
 			foreach ($alldata as $number) {
1292 1292
 				$this->addStatArrivalAirportsDaily($number['date'],$number['arrival_airport_icao'],$number['arrival_airport_name'],$number['arrival_airport_city'],$number['arrival_airport_country'],$number['arrival_airport_count']);
Please login to merge, or discard this patch.
require/class.METAR.php 1 patch
Indentation   +257 added lines, -257 removed lines patch added patch discarded remove patch
@@ -7,107 +7,107 @@  discard block
 block discarded – undo
7 7
 	public $db;
8 8
 	
9 9
 	protected $texts = Array(
10
-	    'MI' => 'Shallow',
11
-	    'PR' => 'Partial',
12
-	    'BC' => 'Low drifting',
13
-	    'BL' => 'Blowing',
14
-	    'SH' => 'Showers',
15
-	    'TS' => 'Thunderstorm',
16
-	    'FZ' => 'Freezing',
17
-	    'DZ' => 'Drizzle',
18
-	    'RA' => 'Rain',
19
-	    'SN' => 'Snow',
20
-	    'SG' => 'Snow Grains',
21
-	    'IC' => 'Ice crystals',
22
-	    'PL' => 'Ice pellets',
23
-	    'GR' => 'Hail',
24
-	    'GS' => 'Small hail',
25
-	    'UP' => 'Unknown',
26
-	    'BR' => 'Mist',
27
-	    'FG' => 'Fog',
28
-	    'FU' => 'Smoke',
29
-	    'VA' => 'Volcanic ash',
30
-	    'DU' => 'Widespread dust',
31
-	    'SA' => 'Sand',
32
-	    'HZ' => 'Haze',
33
-	    'PY' => 'Spray',
34
-	    'PO' => 'Well developed dust / sand whirls',
35
-	    'SQ' => 'Squalls',
36
-	    'FC' => 'Funnel clouds inc tornadoes or waterspouts',
37
-	    'SS' => 'Sandstorm',
38
-	    'DS' => 'Duststorm'
10
+		'MI' => 'Shallow',
11
+		'PR' => 'Partial',
12
+		'BC' => 'Low drifting',
13
+		'BL' => 'Blowing',
14
+		'SH' => 'Showers',
15
+		'TS' => 'Thunderstorm',
16
+		'FZ' => 'Freezing',
17
+		'DZ' => 'Drizzle',
18
+		'RA' => 'Rain',
19
+		'SN' => 'Snow',
20
+		'SG' => 'Snow Grains',
21
+		'IC' => 'Ice crystals',
22
+		'PL' => 'Ice pellets',
23
+		'GR' => 'Hail',
24
+		'GS' => 'Small hail',
25
+		'UP' => 'Unknown',
26
+		'BR' => 'Mist',
27
+		'FG' => 'Fog',
28
+		'FU' => 'Smoke',
29
+		'VA' => 'Volcanic ash',
30
+		'DU' => 'Widespread dust',
31
+		'SA' => 'Sand',
32
+		'HZ' => 'Haze',
33
+		'PY' => 'Spray',
34
+		'PO' => 'Well developed dust / sand whirls',
35
+		'SQ' => 'Squalls',
36
+		'FC' => 'Funnel clouds inc tornadoes or waterspouts',
37
+		'SS' => 'Sandstorm',
38
+		'DS' => 'Duststorm'
39 39
 	);
40 40
 	
41 41
 	function __construct($dbc = null) {
42
-                $Connection = new Connection($dbc);
43
-                $this->db = $Connection->db;
44
-        }
42
+				$Connection = new Connection($dbc);
43
+				$this->db = $Connection->db;
44
+		}
45 45
 
46
-       public static function check_last_update() {
47
-    		global $globalDBdriver;
48
-    		if ($globalDBdriver == 'mysql') {
46
+	   public static function check_last_update() {
47
+			global $globalDBdriver;
48
+			if ($globalDBdriver == 'mysql') {
49 49
 			$query = "SELECT COUNT(*) as nb FROM config WHERE name = 'last_update_metar' AND value > DATE_SUB(DATE(NOW()), INTERVAL 1 HOUR)";
50 50
 		} else {
51 51
 			$query = "SELECT COUNT(*) as nb FROM config WHERE name = 'last_update_metar' AND value::timestamp > CURRENT_TIMESTAMP - INTERVAL '1 HOURS'";
52 52
 		}
53
-                try {
54
-                        $Connection = new Connection();
55
-                        $sth = $Connection->db->prepare($query);
56
-                        $sth->execute();
57
-                } catch(PDOException $e) {
58
-                        return "error : ".$e->getMessage();
59
-                }
60
-                $row = $sth->fetch(PDO::FETCH_ASSOC);
61
-                if ($row['nb'] > 0) return false;
62
-                else return true;
63
-        }
53
+				try {
54
+						$Connection = new Connection();
55
+						$sth = $Connection->db->prepare($query);
56
+						$sth->execute();
57
+				} catch(PDOException $e) {
58
+						return "error : ".$e->getMessage();
59
+				}
60
+				$row = $sth->fetch(PDO::FETCH_ASSOC);
61
+				if ($row['nb'] > 0) return false;
62
+				else return true;
63
+		}
64 64
 
65
-        public static function insert_last_update() {
66
-                $query = "DELETE FROM config WHERE name = 'last_update_metar';
65
+		public static function insert_last_update() {
66
+				$query = "DELETE FROM config WHERE name = 'last_update_metar';
67 67
                         INSERT INTO config (name,value) VALUES ('last_update_metar',NOW());";
68
-                try {
69
-                        $Connection = new Connection();
70
-                        $sth = $Connection->db->prepare($query);
71
-                        $sth->execute();
72
-                } catch(PDOException $e) {
73
-                        return "error : ".$e->getMessage();
74
-                }
75
-        }
68
+				try {
69
+						$Connection = new Connection();
70
+						$sth = $Connection->db->prepare($query);
71
+						$sth->execute();
72
+				} catch(PDOException $e) {
73
+						return "error : ".$e->getMessage();
74
+				}
75
+		}
76 76
 
77 77
 
78 78
         
79
-        public function parse($data) {
80
-    		//$data = str_replace(array('\n','\r','\r','\n'),'',$data);
81
-    		$codes = implode('|', array_keys($this->texts));
82
-    		$regWeather = '#^(\+|\-|VC)?(' . $codes . ')(' . $codes . ')?$#';
83
-    		//$pieces = explode(' ',$data);
84
-    		$pieces = preg_split('/\s/',$data);
85
-    		$pos = 0;
86
-    		if ($pieces[0] == 'METAR') $pos++;
87
-    		elseif ($pieces[0] == 'SPECI') $pos++;
88
-    		if (strlen($pieces[$pos]) != 4) $pos++;
89
-    		$result['location'] = $pieces[$pos];
90
-    		$pos++;
91
-    		$result['dayofmonth'] = substr($pieces[$pos],0,2);
92
-    		$result['time'] = substr($pieces[$pos],2,4);
93
-    		$c = count($pieces);
94
-    		for($pos++; $pos < $c; $pos++) {
95
-    			$piece = $pieces[$pos];
96
-    			if ($piece == 'RMK') break;
97
-    			if ($piece == 'AUTO') $result['auto'] = true;
98
-    			if ($piece == 'COR') $result['correction'] = true;
99
-    			// Wind Speed
100
-    			if (preg_match('#(VRB|\d\d\d)(\d\d)(?:G(\d\d))?(KT|MPS|KPH)(?: (\d{1,3})V(\d{1,3}))?$#', $piece, $matches)) {
101
-    				$result['wind']['direction'] = (float)$matches[1];
79
+		public function parse($data) {
80
+			//$data = str_replace(array('\n','\r','\r','\n'),'',$data);
81
+			$codes = implode('|', array_keys($this->texts));
82
+			$regWeather = '#^(\+|\-|VC)?(' . $codes . ')(' . $codes . ')?$#';
83
+			//$pieces = explode(' ',$data);
84
+			$pieces = preg_split('/\s/',$data);
85
+			$pos = 0;
86
+			if ($pieces[0] == 'METAR') $pos++;
87
+			elseif ($pieces[0] == 'SPECI') $pos++;
88
+			if (strlen($pieces[$pos]) != 4) $pos++;
89
+			$result['location'] = $pieces[$pos];
90
+			$pos++;
91
+			$result['dayofmonth'] = substr($pieces[$pos],0,2);
92
+			$result['time'] = substr($pieces[$pos],2,4);
93
+			$c = count($pieces);
94
+			for($pos++; $pos < $c; $pos++) {
95
+				$piece = $pieces[$pos];
96
+				if ($piece == 'RMK') break;
97
+				if ($piece == 'AUTO') $result['auto'] = true;
98
+				if ($piece == 'COR') $result['correction'] = true;
99
+				// Wind Speed
100
+				if (preg_match('#(VRB|\d\d\d)(\d\d)(?:G(\d\d))?(KT|MPS|KPH)(?: (\d{1,3})V(\d{1,3}))?$#', $piece, $matches)) {
101
+					$result['wind']['direction'] = (float)$matches[1];
102 102
 				$result['wind']['unit'] = $matches[4];
103
-    				if ($result['wind']['unit'] == 'KT') $result['wind']['speed'] = round(((float)$matches[2])*0.51444444444,2);
104
-    				elseif ($result['wind']['unit'] == 'KPH') $result['wind']['speed'] = round(((float)$matches[2])*1000,2);
105
-    				elseif ($result['wind']['unit'] == 'MPS') $result['wind']['speed'] = round(((float)$matches[2]),2);
103
+					if ($result['wind']['unit'] == 'KT') $result['wind']['speed'] = round(((float)$matches[2])*0.51444444444,2);
104
+					elseif ($result['wind']['unit'] == 'KPH') $result['wind']['speed'] = round(((float)$matches[2])*1000,2);
105
+					elseif ($result['wind']['unit'] == 'MPS') $result['wind']['speed'] = round(((float)$matches[2]),2);
106 106
 				$result['wind']['gust'] = (float)$matches[3];
107 107
 				$result['wind']['unit'] = $matches[4];
108 108
 				$result['wind']['min_variation'] = array_key_exists(5,$matches) ? $matches[5] : 0;
109 109
 				$result['wind']['max_variation'] = array_key_exists(6,$matches) ? $matches[6] : 0;
110
-    			}
110
+				}
111 111
 
112 112
 /*    			if (preg_match('#^([0-9]{3})([0-9]{2})(G([0-9]{2}))?(KT|MPS)$#', $piece, $matches)) {
113 113
     				$result['wind_direction'] = (float)$matches[1];
@@ -124,35 +124,35 @@  discard block
 block discarded – undo
124 124
     				}
125 125
     			}
126 126
     			*/
127
-    			// Temperature
128
-    			if (preg_match('#^(M?[0-9]{2,})/(M?[0-9]{2,})$#', $piece, $matches)) {
129
-    				$temp = (float)$matches[1];
127
+				// Temperature
128
+				if (preg_match('#^(M?[0-9]{2,})/(M?[0-9]{2,})$#', $piece, $matches)) {
129
+					$temp = (float)$matches[1];
130 130
 				if ($matches[1]{0} == 'M') {
131 131
 					$temp = ((float)substr($matches[1], 1)) * -1;
132 132
 				}
133
-    				$result['temperature'] = $temp;
134
-    				$dew = (float)$matches[2];
133
+					$result['temperature'] = $temp;
134
+					$dew = (float)$matches[2];
135 135
 				if ($matches[2]{0} == 'M') {
136 136
 					$dew = ((float)substr($matches[2], 1)) * -1;
137 137
 				}
138 138
 				$result['dew'] = $dew;
139
-    			}
140
-    			// QNH
141
-    			if (preg_match('#^(A|Q)([0-9]{4})$#', $piece, $matches)) {
142
-    			// #^(Q|A)(////|[0-9]{4})( )#
143
-    				if ($matches[1] == 'Q') {
144
-    					// hPa
145
-    					$result['QNH'] = $matches[2];
146
-    				} else {
147
-    					// inHg
148
-    					$result['QNH'] = round(($matches[2] / 100)*33.86389,2);
149 139
 				}
150
-    				/*
140
+				// QNH
141
+				if (preg_match('#^(A|Q)([0-9]{4})$#', $piece, $matches)) {
142
+				// #^(Q|A)(////|[0-9]{4})( )#
143
+					if ($matches[1] == 'Q') {
144
+						// hPa
145
+						$result['QNH'] = $matches[2];
146
+					} else {
147
+						// inHg
148
+						$result['QNH'] = round(($matches[2] / 100)*33.86389,2);
149
+				}
150
+					/*
151 151
     				$result['QNH'] = $matches[1] == 'Q' ? $matches[2] : ($matches[2] / 100);
152 152
     				$result['QNH_format'] = $matches[1] == 'Q' ? 'hPa' : 'inHg';
153 153
     				*/
154
-    			}
155
-                     /*
154
+				}
155
+					 /*
156 156
     			// Wind Direction
157 157
     			if (preg_match('#^([0-9]{3})V([0-9]{3})$#', $piece, $matches)) {
158 158
     				$result['wind_direction'] = $matches[1];
@@ -163,9 +163,9 @@  discard block
 block discarded – undo
163 163
     				$result['speed_variable'] = $matches[1];
164 164
     			}
165 165
     			*/
166
-    			// Visibility
167
-    			if (preg_match('#^([0-9]{4})|(([0-9]{1,4})SM)$#', $piece, $matches)) {
168
-    				if (isset($matches[3]) && strlen($matches[3]) > 0) {
166
+				// Visibility
167
+				if (preg_match('#^([0-9]{4})|(([0-9]{1,4})SM)$#', $piece, $matches)) {
168
+					if (isset($matches[3]) && strlen($matches[3]) > 0) {
169 169
 					$result['visibility'] = (float)$matches[3] * 1609.34;
170 170
 				} else {
171 171
 					if ($matches[1] == '9999') {
@@ -178,26 +178,26 @@  discard block
 block discarded – undo
178 178
 					$result['visibility'] = '> 10000';
179 179
 					$result['weather'] = "CAVOK";
180 180
 				}
181
-    			}
182
-    			// Cloud Coverage
183
-    			if (preg_match('#^(SKC|CLR|FEW|SCT|BKN|OVC|VV)([0-9]{3})(CB|TCU|CU|CI)?$#', $piece, $matches)) {
184
-    				//$this->addCloudCover($matches[1], ((float)$matches[2]) * 100, isset($matches[3]) ? $matches[3] : '');
185
-    				$type = $matches[1];
186
-    				if ($type == 'SKC') $cloud['type'] = 'No cloud/Sky clear';
187
-    				elseif ($type == 'CLR') $cloud['type'] = 'No cloud below 12,000ft (3700m)';
188
-    				elseif ($type == 'NSC') $cloud['type'] = 'No significant cloud';
189
-    				elseif ($type == 'FEW') $cloud['type'] = 'Few';
190
-    				elseif ($type == 'SCT') $cloud['type'] = 'Scattered';
191
-    				elseif ($type == 'BKN') $cloud['type'] = 'Broken';
192
-    				elseif ($type == 'OVC') $cloud['type'] = 'Overcast/Full cloud coverage';
193
-    				elseif ($type == 'VV') $cloud['type'] = 'Vertical visibility';
194
-    				$cloud['type_code'] = $type;
195
-    				$cloud['level'] = round(((float)$matches[2]) * 100 * 0.3048);
196
-    				$cloud['significant'] = isset($matches[3]) ? $matches[3] : '';
197
-    				$result['cloud'][] = $cloud;
198
-    			}
199
-    			// RVR
200
-    			 if (preg_match('#^(R.+)/([M|P])?(\d{4})(?:V(\d+)|[UDN])?(FT)?$#', $piece, $matches)) {
181
+				}
182
+				// Cloud Coverage
183
+				if (preg_match('#^(SKC|CLR|FEW|SCT|BKN|OVC|VV)([0-9]{3})(CB|TCU|CU|CI)?$#', $piece, $matches)) {
184
+					//$this->addCloudCover($matches[1], ((float)$matches[2]) * 100, isset($matches[3]) ? $matches[3] : '');
185
+					$type = $matches[1];
186
+					if ($type == 'SKC') $cloud['type'] = 'No cloud/Sky clear';
187
+					elseif ($type == 'CLR') $cloud['type'] = 'No cloud below 12,000ft (3700m)';
188
+					elseif ($type == 'NSC') $cloud['type'] = 'No significant cloud';
189
+					elseif ($type == 'FEW') $cloud['type'] = 'Few';
190
+					elseif ($type == 'SCT') $cloud['type'] = 'Scattered';
191
+					elseif ($type == 'BKN') $cloud['type'] = 'Broken';
192
+					elseif ($type == 'OVC') $cloud['type'] = 'Overcast/Full cloud coverage';
193
+					elseif ($type == 'VV') $cloud['type'] = 'Vertical visibility';
194
+					$cloud['type_code'] = $type;
195
+					$cloud['level'] = round(((float)$matches[2]) * 100 * 0.3048);
196
+					$cloud['significant'] = isset($matches[3]) ? $matches[3] : '';
197
+					$result['cloud'][] = $cloud;
198
+				}
199
+				// RVR
200
+				 if (preg_match('#^(R.+)/([M|P])?(\d{4})(?:V(\d+)|[UDN])?(FT)?$#', $piece, $matches)) {
201 201
 				$rvr['runway'] = $matches[1];
202 202
 				$rvr['assessment'] = $matches[2];
203 203
 				$rvr['rvr'] = $matches[3];
@@ -206,33 +206,33 @@  discard block
 block discarded – undo
206 206
 				$result['RVR'] = $rvr;
207 207
 			}
208 208
     			
209
-    			//if (preg_match('#^(R[A-Z0-9]{2,3})/([0-9]{4})(V([0-9]{4}))?(FT)?$#', $piece, $matches)) {
210
-    			if (preg_match('#^R(\d{2}[LRC]?)/([\d/])([\d/])([\d/]{2})([\d/]{2})$#', $piece, $matches)) {
211
-    				//print_r($matches);
212
-    				// https://github.com/davidmegginson/metar-taf/blob/master/Metar.php
213
-    				$result['RVR']['runway'] = $matches[1];
214
-        			$result['RVR']['deposits'] = $matches[2];
215
-        			$result['RVR']['extent'] = $matches[3];
216
-        			$result['RVR']['depth'] = $matches[4];
217
-        			$result['RVR']['friction'] = $matches[5];
218
-    			}
219
-    			if (preg_match('#^(R[A-Z0-9]{2,3})/([0-9]{4})(V([0-9]{4}))?(FT)?$#', $piece, $matches)) {
220
-    				//echo $piece;
221
-    				//print_r($matches);
222
-    				if (isset($matches[5])) $range = array('exact' => (float)$matches[2], 'unit' => $matches[5] ? 'FT' : 'M');
223
-    				else $range = array('exact' => (float)$matches[2], 'unit' => 'M');
209
+				//if (preg_match('#^(R[A-Z0-9]{2,3})/([0-9]{4})(V([0-9]{4}))?(FT)?$#', $piece, $matches)) {
210
+				if (preg_match('#^R(\d{2}[LRC]?)/([\d/])([\d/])([\d/]{2})([\d/]{2})$#', $piece, $matches)) {
211
+					//print_r($matches);
212
+					// https://github.com/davidmegginson/metar-taf/blob/master/Metar.php
213
+					$result['RVR']['runway'] = $matches[1];
214
+					$result['RVR']['deposits'] = $matches[2];
215
+					$result['RVR']['extent'] = $matches[3];
216
+					$result['RVR']['depth'] = $matches[4];
217
+					$result['RVR']['friction'] = $matches[5];
218
+				}
219
+				if (preg_match('#^(R[A-Z0-9]{2,3})/([0-9]{4})(V([0-9]{4}))?(FT)?$#', $piece, $matches)) {
220
+					//echo $piece;
221
+					//print_r($matches);
222
+					if (isset($matches[5])) $range = array('exact' => (float)$matches[2], 'unit' => $matches[5] ? 'FT' : 'M');
223
+					else $range = array('exact' => (float)$matches[2], 'unit' => 'M');
224 224
 				if (isset($matches[3])) {
225 225
 					$range = Array(
226
-					    'from' => (float)$matches[2],
227
-					    'to'   => (float)$matches[4],
228
-					    'unit' => $matches[5] ? 'FT' : 'M'
226
+						'from' => (float)$matches[2],
227
+						'to'   => (float)$matches[4],
228
+						'unit' => $matches[5] ? 'FT' : 'M'
229 229
 					);
230 230
 				}
231 231
 				$result['RVR'] = $matches[1];
232 232
 				$result['RVR_range'] = $range;
233
-    			}
234
-    			// Weather
235
-    			if (preg_match($regWeather, $piece, $matches)) {
233
+				}
234
+				// Weather
235
+				if (preg_match($regWeather, $piece, $matches)) {
236 236
 				$text = Array();
237 237
 				switch ($matches[1]) {
238 238
 					case '+':
@@ -255,35 +255,35 @@  discard block
 block discarded – undo
255 255
 				}
256 256
 				if (!isset($result['weather'])) $result['weather'] = implode(' ', $text);
257 257
 				else $result['weather'] = $result['weather'].' / '.implode(' ', $text);
258
-    			}
259
-    		}
260
-    		return $result;
258
+				}
259
+			}
260
+			return $result;
261 261
         
262
-        }
262
+		}
263 263
         
264 264
 	public function getMETAR($icao) {
265
-    		global $globalMETARcycle, $globalDBdriver;
266
-    		if (isset($globalMETARcycle) && $globalMETARcycle) {
267
-            		$query = "SELECT * FROM metar WHERE metar_location = :icao";
268
-                } else {
269
-            		if ($globalDBdriver == 'mysql') $query = "SELECT * FROM metar WHERE metar_location = :icao AND metar_date >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 10 HOUR) LIMIT 1";
270
-            		elseif ($globalDBdriver == 'pgsql') $query = "SELECT * FROM metar WHERE metar_location = :icao AND metar_date >= now() AT TIMEZONE 'UTC' - '10 HOUR'->INTERVAL LIMIT 0,1";
271
-                }
272
-                $query_values = array(':icao' => $icao);
273
-                 try {
274
-                        $sth = $this->db->prepare($query);
275
-                        $sth->execute($query_values);
276
-                } catch(PDOException $e) {
277
-                        return "error : ".$e->getMessage();
278
-                }
279
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
280
-                if ((!isset($globalMETARcyle) || $globalMETARcycle === false) && count($all) == 0) {
281
-            		$all = $this->downloadMETAR($icao);
282
-                }
283
-                return $all;
284
-        }
265
+			global $globalMETARcycle, $globalDBdriver;
266
+			if (isset($globalMETARcycle) && $globalMETARcycle) {
267
+					$query = "SELECT * FROM metar WHERE metar_location = :icao";
268
+				} else {
269
+					if ($globalDBdriver == 'mysql') $query = "SELECT * FROM metar WHERE metar_location = :icao AND metar_date >= DATE_SUB(UTC_TIMESTAMP(), INTERVAL 10 HOUR) LIMIT 1";
270
+					elseif ($globalDBdriver == 'pgsql') $query = "SELECT * FROM metar WHERE metar_location = :icao AND metar_date >= now() AT TIMEZONE 'UTC' - '10 HOUR'->INTERVAL LIMIT 0,1";
271
+				}
272
+				$query_values = array(':icao' => $icao);
273
+				 try {
274
+						$sth = $this->db->prepare($query);
275
+						$sth->execute($query_values);
276
+				} catch(PDOException $e) {
277
+						return "error : ".$e->getMessage();
278
+				}
279
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
280
+				if ((!isset($globalMETARcyle) || $globalMETARcycle === false) && count($all) == 0) {
281
+					$all = $this->downloadMETAR($icao);
282
+				}
283
+				return $all;
284
+		}
285 285
 
286
-       public function addMETAR($location,$metar,$date) {
286
+	   public function addMETAR($location,$metar,$date) {
287 287
 		global $globalDBdriver;
288 288
 		$date = date('Y-m-d H:i:s',strtotime($date));
289 289
 		if ($globalDBdriver == 'mysql') {
@@ -291,98 +291,98 @@  discard block
 block discarded – undo
291 291
 		} else {
292 292
 			$query = "UPDATE metar SET metar_date = :date, metar = metar WHERE metar_location = :location;INSERT INTO metar (metar_location,metar_date,metar) SELECT :location,:date,:metar WHERE NOT EXISTS (SELECT 1 FROM metar WHERE metar_location = :location);";
293 293
 		}
294
-                $query_values = array(':location' => $location,':date' => $date,':metar' => $metar);
295
-                 try {
296
-                        $sth = $this->db->prepare($query);
297
-                        $sth->execute($query_values);
298
-                } catch(PDOException $e) {
299
-                        return "error : ".$e->getMessage();
300
-                }
301
-        }
294
+				$query_values = array(':location' => $location,':date' => $date,':metar' => $metar);
295
+				 try {
296
+						$sth = $this->db->prepare($query);
297
+						$sth->execute($query_values);
298
+				} catch(PDOException $e) {
299
+						return "error : ".$e->getMessage();
300
+				}
301
+		}
302 302
 
303
-       public function deleteMETAR($id) {
304
-                $query = "DELETE FROM metar WHERE id = :id";
305
-                $query_values = array(':id' => $id);
306
-                 try {
307
-                        $sth = $this->db->prepare($query);
308
-                        $sth->execute($query_values);
309
-                } catch(PDOException $e) {
310
-                        return "error : ".$e->getMessage();
311
-                }
312
-        }
313
-       public function deleteAllMETARLocation() {
314
-                $query = "DELETE FROM metar";
315
-                 try {
316
-                        $sth = $this->db->prepare($query);
317
-                        $sth->execute();
318
-                } catch(PDOException $e) {
319
-                        return "error : ".$e->getMessage();
320
-                }
321
-        }
303
+	   public function deleteMETAR($id) {
304
+				$query = "DELETE FROM metar WHERE id = :id";
305
+				$query_values = array(':id' => $id);
306
+				 try {
307
+						$sth = $this->db->prepare($query);
308
+						$sth->execute($query_values);
309
+				} catch(PDOException $e) {
310
+						return "error : ".$e->getMessage();
311
+				}
312
+		}
313
+	   public function deleteAllMETARLocation() {
314
+				$query = "DELETE FROM metar";
315
+				 try {
316
+						$sth = $this->db->prepare($query);
317
+						$sth->execute();
318
+				} catch(PDOException $e) {
319
+						return "error : ".$e->getMessage();
320
+				}
321
+		}
322 322
         
323
-        public function addMETARCycle() {
324
-    		global $globalDebug, $globalIVAO;
325
-    		if (isset($globalDebug) && $globalDebug) echo "Downloading METAR cycle...";
326
-    		date_default_timezone_set("UTC");
327
-    		$Common = new Common();
328
-    		if (isset($globalIVAO) && $globalIVAO) {
329
-        		$cycle = $Common->getData('http://wx.ivao.aero/metar.php');
330
-    		} else {
323
+		public function addMETARCycle() {
324
+			global $globalDebug, $globalIVAO;
325
+			if (isset($globalDebug) && $globalDebug) echo "Downloading METAR cycle...";
326
+			date_default_timezone_set("UTC");
327
+			$Common = new Common();
328
+			if (isset($globalIVAO) && $globalIVAO) {
329
+				$cycle = $Common->getData('http://wx.ivao.aero/metar.php');
330
+			} else {
331 331
 			$cycle = $Common->getData('http://weather.noaa.gov/pub/data/observations/metar/cycles/'.date('H').'Z.TXT');
332
-    		}
333
-    		if (isset($globalDebug) && $globalDebug) echo "Done - Updating DB...";
334
-    		$date = '';
335
-    		foreach(explode("\n",$cycle) as $line) {
336
-    			if (preg_match('#^([0-9]{4})/([0-9]{2})/([0-9]{2}) ([0-9]{2}):([0-9]{2})$#',$line)) {
337
-    				//echo "date : ".$line."\n";
338
-    				$date = $line;
339
-    			} elseif ($line != '') {
340
-    			    //$this->parse($line);
341
-    			    //echo $line;
342
-    			    if ($date == '') $date = date('Y/m/d H:m');
343
-    			    $pos = 0;
344
-    			    $pieces = preg_split('/\s/',$line);
345
-    			    if ($pieces[0] == 'METAR') $pos++;
346
-    			    if (strlen($pieces[$pos]) != 4) $pos++;
347
-	        	    $location = $pieces[$pos];
348
-	        	    echo $this->addMETAR($location,$line,$date);
349
-    			}
350
-    			//echo $line."\n";
351
-    		}
352
-    		if (isset($globalDebug) && $globalDebug) echo "Done\n";
332
+			}
333
+			if (isset($globalDebug) && $globalDebug) echo "Done - Updating DB...";
334
+			$date = '';
335
+			foreach(explode("\n",$cycle) as $line) {
336
+				if (preg_match('#^([0-9]{4})/([0-9]{2})/([0-9]{2}) ([0-9]{2}):([0-9]{2})$#',$line)) {
337
+					//echo "date : ".$line."\n";
338
+					$date = $line;
339
+				} elseif ($line != '') {
340
+					//$this->parse($line);
341
+					//echo $line;
342
+					if ($date == '') $date = date('Y/m/d H:m');
343
+					$pos = 0;
344
+					$pieces = preg_split('/\s/',$line);
345
+					if ($pieces[0] == 'METAR') $pos++;
346
+					if (strlen($pieces[$pos]) != 4) $pos++;
347
+					$location = $pieces[$pos];
348
+					echo $this->addMETAR($location,$line,$date);
349
+				}
350
+				//echo $line."\n";
351
+			}
352
+			if (isset($globalDebug) && $globalDebug) echo "Done\n";
353 353
         
354
-        }
355
-        public function downloadMETAR($icao) {
356
-    		global $globalMETARurl;
357
-    		if ($globalMETARurl == '') return array();
358
-    		date_default_timezone_set("UTC");
359
-    		$Common = new Common();
360
-    		$url = str_replace('{icao}',$icao,$globalMETARurl);
361
-    		$cycle = $Common->getData($url);
362
-    		$date = '';
363
-    		foreach(explode("\n",$cycle) as $line) {
364
-    			if (preg_match('#^([0-9]{4})/([0-9]{2})/([0-9]{2}) ([0-9]{2}):([0-9]{2})$#',$line)) {
365
-    				echo "date : ".$line."\n";
366
-    				$date = $line;
367
-    			} elseif ($line != '') {
368
-    			    //$this->parse($line);
369
-    			    //echo $line;
370
-    			    if ($date == '') $date = date('Y/m/d H:m');
371
-    			    $pos = 0;
372
-    			    $pieces = preg_split('/\s/',$line);
373
-    			    if ($pieces[0] == 'METAR') $pos++;
374
-    			    if (strlen($pieces[$pos]) != 4) $pos++;
375
-	        	    $location = $pieces[$pos];
376
-	        	    if (strlen($location == 4)) {
377
-	        		$this->addMETAR($location,$line,$date);
378
-	        		return array('0' => array('metar_date' => $date, 'metar_location' => $location, 'metar' => $line));
379
-	        	    } else return array();
380
-    			}
381
-    			//echo $line."\n";
382
-    		}
383
-    		return array();
354
+		}
355
+		public function downloadMETAR($icao) {
356
+			global $globalMETARurl;
357
+			if ($globalMETARurl == '') return array();
358
+			date_default_timezone_set("UTC");
359
+			$Common = new Common();
360
+			$url = str_replace('{icao}',$icao,$globalMETARurl);
361
+			$cycle = $Common->getData($url);
362
+			$date = '';
363
+			foreach(explode("\n",$cycle) as $line) {
364
+				if (preg_match('#^([0-9]{4})/([0-9]{2})/([0-9]{2}) ([0-9]{2}):([0-9]{2})$#',$line)) {
365
+					echo "date : ".$line."\n";
366
+					$date = $line;
367
+				} elseif ($line != '') {
368
+					//$this->parse($line);
369
+					//echo $line;
370
+					if ($date == '') $date = date('Y/m/d H:m');
371
+					$pos = 0;
372
+					$pieces = preg_split('/\s/',$line);
373
+					if ($pieces[0] == 'METAR') $pos++;
374
+					if (strlen($pieces[$pos]) != 4) $pos++;
375
+					$location = $pieces[$pos];
376
+					if (strlen($location == 4)) {
377
+					$this->addMETAR($location,$line,$date);
378
+					return array('0' => array('metar_date' => $date, 'metar_location' => $location, 'metar' => $line));
379
+					} else return array();
380
+				}
381
+				//echo $line."\n";
382
+			}
383
+			return array();
384 384
         
385
-        }
385
+		}
386 386
 }
387 387
 /*
388 388
 $METAR = new METAR();
Please login to merge, or discard this patch.
require/class.APRS.php 1 patch
Indentation   +88 added lines, -88 removed lines patch added patch discarded remove patch
@@ -1,12 +1,12 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 class aprs {
3
-    private function urshift($n, $s) {
3
+	private function urshift($n, $s) {
4 4
 	return ($n >= 0) ? ($n >> $s) :
5
-    	    (($n & 0x7fffffff) >> $s) | 
6
-        	(0x40000000 >> ($s - 1));
7
-    }
5
+			(($n & 0x7fffffff) >> $s) | 
6
+			(0x40000000 >> ($s - 1));
7
+	}
8 8
 
9
-    public function parse($input) {
9
+	public function parse($input) {
10 10
 	$debug = false;
11 11
 	$result = array();
12 12
 	$input_len = strlen($input);
@@ -17,8 +17,8 @@  discard block
 block discarded – undo
17 17
 	
18 18
 	/* Check that end was found and body has at least one byte. */
19 19
 	if ($splitpos == 0 || $splitpos + 1 == $input_len || $splitpos === FALSE) {
20
-	    echo 'invalid';
21
-	    return false;
20
+		echo 'invalid';
21
+		return false;
22 22
 	}
23 23
 	
24 24
 	/* Save header and body. */
@@ -31,44 +31,44 @@  discard block
 block discarded – undo
31 31
 	/* Parse source, target and path. */
32 32
 	//FLRDF0A52>APRS,qAS,LSTB
33 33
 	if (preg_match('/^([A-Z0-9\\-]{1,9})>(.*)$/',$header,$matches)) {
34
-	    $ident = $matches[1];
35
-	    $all_elements = $matches[2];
36
-	    if ($debug) echo 'ident : '.$ident."\n";
37
-	    $result['ident'] = $ident;
34
+		$ident = $matches[1];
35
+		$all_elements = $matches[2];
36
+		if ($debug) echo 'ident : '.$ident."\n";
37
+		$result['ident'] = $ident;
38 38
 	} else return false;
39 39
 	$elements = explode(',',$all_elements);
40 40
 	$source = end($elements);
41 41
 	$result['source'] = $source;
42 42
 	foreach ($elements as $element) {
43
-	    if (preg_match('/^([a-zA-Z0-9-]{1,9})([*]?)$/',$element)) {
44
-	        //echo "ok";
45
-	        if ($element == 'TCPIP*') return false;
46
-	    } elseif (preg_match('/^([0-9A-F]{32})$/',$element)) {
43
+		if (preg_match('/^([a-zA-Z0-9-]{1,9})([*]?)$/',$element)) {
44
+			//echo "ok";
45
+			if ($element == 'TCPIP*') return false;
46
+		} elseif (preg_match('/^([0-9A-F]{32})$/',$element)) {
47 47
 		//echo "ok";
48
-	    } else {
49
-	        return false;
50
-	    }
48
+		} else {
49
+			return false;
50
+		}
51 51
 	}
52 52
 	// Check for Timestamp
53 53
 	$body_parse = substr($body,1);
54 54
 	if (preg_match('/^([0-9]{2})([0-9]{2})([0-9]{2})([zh\\/])/',$body_parse,$matches)) {
55
-	    $timestamp = $matches[0];
56
-	    if ($matches[4] == 'h') {
55
+		$timestamp = $matches[0];
56
+		if ($matches[4] == 'h') {
57 57
 		$timestamp = strtotime($matches[1].':'.$matches[2].':'.$matches[3]);
58 58
 		//echo 'timestamp : '.$timestamp.' - now : '.time()."\n";
59 59
 		/*
60 60
 		if (time() + 3900 < $timestamp) $timestamp -= 86400;
61 61
 		elseif (time() - 82500 > $timestamp) $timestamp += 86400;
62 62
 		*/
63
-	    } elseif ($matches[4] == 'z' || $matches[4] == '/') {
63
+		} elseif ($matches[4] == 'z' || $matches[4] == '/') {
64 64
 		// FIXME : fix this...
65 65
 		$timestamp = strtotime($matches[1].' '.$matches[2].':'.$matches[3]);
66
-	    }
67
-	    $body_parse = substr($body_parse,7);
68
-	    $result['timestamp'] = $timestamp;
66
+		}
67
+		$body_parse = substr($body_parse,7);
68
+		$result['timestamp'] = $timestamp;
69 69
 	}
70 70
 	if (strlen($body_parse) > 19) {
71
-	    if (preg_match('/^([0-9]{2})([0-7 ][0-9 ]\\.[0-9 ]{2})([NnSs])(.)([0-9]{3})([0-7 ][0-9 ]\\.[0-9 ]{2})([EeWw])(.)/',$body_parse,$matches)) {
71
+		if (preg_match('/^([0-9]{2})([0-7 ][0-9 ]\\.[0-9 ]{2})([NnSs])(.)([0-9]{3})([0-7 ][0-9 ]\\.[0-9 ]{2})([EeWw])(.)/',$body_parse,$matches)) {
72 72
 		// 4658.70N/00707.78Ez
73 73
 		//print_r(str_split($body_parse));
74 74
 		$latlon = $matches[0];
@@ -84,7 +84,7 @@  discard block
 block discarded – undo
84 84
 		$lon = intval($lon_deg);
85 85
 		if ($lat > 89 || $lon > 179) return false;
86 86
 	    
87
-	    /*
87
+		/*
88 88
 	    $tmp_5b = str_replace('.','',$lat_min);
89 89
 	    if (preg_match('/^([0-9]{0,4})( {0,4})$/',$tmp_5b,$matches)) {
90 90
 	        print_r($matches);
@@ -96,58 +96,58 @@  discard block
 block discarded – undo
96 96
 		if ($wind == 'W') $longitude = 0-$longitude;
97 97
 		$result['latitude'] = $latitude;
98 98
 		$result['longitude'] = $longitude;
99
-	    }
100
-	    if ($body_len > 19) {
99
+		}
100
+		if ($body_len > 19) {
101 101
 		$body_split = str_split($body_parse);
102 102
 		$symbol_code = $body_split[18];
103 103
 		if ($symbol_code != '_') {
104
-		    $body_parse = substr($body_parse,19);
105
-		    $body_parse_len = strlen($body_parse);
106
-		    if ($body_parse_len >= 7) {
104
+			$body_parse = substr($body_parse,19);
105
+			$body_parse_len = strlen($body_parse);
106
+			if ($body_parse_len >= 7) {
107 107
 			
108
-		        if (preg_match('/^([0-9\\. ]{3})\\/([0-9\\. ]{3})/',$body_parse)) {
109
-		    	    $course = substr($body_parse,0,3);
110
-		    	    $tmp_s = intval($course);
111
-		    	    if ($tmp_s >= 1 && $tmp_s <= 360) $result['course'] = intval($course);
112
-		    	    $speed = substr($body_parse,4,3);
113
-		    	    $result['speed'] = round($speed*1.852);
114
-		    	    $body_parse = substr($body_parse,7);
115
-		        }
116
-		        // Check PHGR, PHG, RNG
117
-		    } else if ($body_parse_len > 0) {
108
+				if (preg_match('/^([0-9\\. ]{3})\\/([0-9\\. ]{3})/',$body_parse)) {
109
+					$course = substr($body_parse,0,3);
110
+					$tmp_s = intval($course);
111
+					if ($tmp_s >= 1 && $tmp_s <= 360) $result['course'] = intval($course);
112
+					$speed = substr($body_parse,4,3);
113
+					$result['speed'] = round($speed*1.852);
114
+					$body_parse = substr($body_parse,7);
115
+				}
116
+				// Check PHGR, PHG, RNG
117
+			} else if ($body_parse_len > 0) {
118 118
 			$rest = $body_parse;
119
-		    }
120
-		    if (strlen($body_parse) > 0) {
121
-		        if (preg_match('/\\/A=(-[0-9]{5}|[0-9]{6})/',$body_parse,$matches)) {
122
-		            $altitude = intval($matches[1]);
123
-		            $result['altitude'] = round($altitude*0.3048);
124
-		            $body_parse = substr($body_parse,strlen($matches[0])+1);
125
-		        }
126
-		    }
119
+			}
120
+			if (strlen($body_parse) > 0) {
121
+				if (preg_match('/\\/A=(-[0-9]{5}|[0-9]{6})/',$body_parse,$matches)) {
122
+					$altitude = intval($matches[1]);
123
+					$result['altitude'] = round($altitude*0.3048);
124
+					$body_parse = substr($body_parse,strlen($matches[0])+1);
125
+				}
126
+			}
127 127
 		    
128
-		    // Telemetry
129
-		    if (preg_match('/^([0-9]+),(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,([01]{0,8})/',$body_parse,$matches)) {
130
-		        // Nothing yet...
131
-		    }
132
-		    // DAO
133
-		    if (preg_match('/^!([0-9A-Z]{3})/',$body_parse,$matches)) {
134
-			    $dao = $matches[1];
135
-			    $dao_split = str_split($dao);
136
-			    if (preg_match('/^([A-Z])([0-9]{2})/',$dao)) {
137
-			        $lat_off = (($dao[1])-48.0)*0.001/60.0;
138
-			        $lon_off = (($dao[2])-48.0)*0.001/60.0;
128
+			// Telemetry
129
+			if (preg_match('/^([0-9]+),(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,(-?)([0-9]{1,6}|[0-9]+\\.[0-9]+|\\.[0-9]+)?,([01]{0,8})/',$body_parse,$matches)) {
130
+				// Nothing yet...
131
+			}
132
+			// DAO
133
+			if (preg_match('/^!([0-9A-Z]{3})/',$body_parse,$matches)) {
134
+				$dao = $matches[1];
135
+				$dao_split = str_split($dao);
136
+				if (preg_match('/^([A-Z])([0-9]{2})/',$dao)) {
137
+					$lat_off = (($dao[1])-48.0)*0.001/60.0;
138
+					$lon_off = (($dao[2])-48.0)*0.001/60.0;
139 139
 			    
140
-			    }
141
-			    if ($result['latitude'] < 0) $result['latitude'] -= $lat_off;
142
-			    else $result['latitude'] += $lat_off;
143
-			    if ($result['longitude'] < 0) $result['longitude'] -= $lon_off;
144
-			    else $result['longitude'] += $lon_off;
145
-		            $body_parse = substr($body_parse,6);
146
-		    }
140
+				}
141
+				if ($result['latitude'] < 0) $result['latitude'] -= $lat_off;
142
+				else $result['latitude'] += $lat_off;
143
+				if ($result['longitude'] < 0) $result['longitude'] -= $lon_off;
144
+				else $result['longitude'] += $lon_off;
145
+					$body_parse = substr($body_parse,6);
146
+			}
147 147
 		    
148
-		    // OGN comment
148
+			// OGN comment
149 149
 		   // echo "Before OGN : ".$body_parse."\n";
150
-		    if (preg_match('/^id([0-9A-F]{8}) ([+-])([0-9]{3,4})fpm ([+-])([0-9.]{3,4})rot (.*)$/',$body_parse,$matches)) {
150
+			if (preg_match('/^id([0-9A-F]{8}) ([+-])([0-9]{3,4})fpm ([+-])([0-9.]{3,4})rot (.*)$/',$body_parse,$matches)) {
151 151
 			$id = $matches[1];
152 152
 			$mode = substr($id,0,2);
153 153
 			$address = substr($id,2);
@@ -177,49 +177,49 @@  discard block
 block discarded – undo
177 177
 			$stealth = (intval(substr($id,0,2), 16) & 0b10000000) != 0;
178 178
 			$result['stealth'] = $stealth;
179 179
 			$result['address'] = $address;
180
-		    }
180
+			}
181 181
 		    
182
-		    //Comment
183
-		    $result['comment'] = $body_parse;
182
+			//Comment
183
+			$result['comment'] = $body_parse;
184 184
 		} else {
185
-		    // parse weather
186
-		    $body_parse = substr($body_parse,19);
187
-		    $body_parse_len = strlen($body_parse);
185
+			// parse weather
186
+			$body_parse = substr($body_parse,19);
187
+			$body_parse_len = strlen($body_parse);
188 188
 
189
-		    if (preg_match('/^_{0,1}([0-9 \\.\\-]{3})\\/([0-9 \\.]{3})g([0-9 \\.]+)t(-{0,1}[0-9 \\.]+)/',$body_parse,$matches)) {
189
+			if (preg_match('/^_{0,1}([0-9 \\.\\-]{3})\\/([0-9 \\.]{3})g([0-9 \\.]+)t(-{0,1}[0-9 \\.]+)/',$body_parse,$matches)) {
190 190
 			$result['wind_dir'] = $matches[1];
191 191
 			$result['wind_speed'] = round($matches[2]*1.60934,1);
192 192
 			$result['wind_gust'] = round($matches[3]*1.60934,1);
193 193
 			$result['temp'] = round(5/9*(($matches[4])-32),1);
194
-		        $body_parse = substr($body_parse,strlen($matches[0])+1);
195
-		    } elseif (preg_match('/^_{0,1}c([0-9 \\.\\-]{3})s([0-9 \\.]{3})g([0-9 \\.]+)t(-{0,1}[0-9 \\.]+)/',$body_parse,$matches)) {
194
+				$body_parse = substr($body_parse,strlen($matches[0])+1);
195
+			} elseif (preg_match('/^_{0,1}c([0-9 \\.\\-]{3})s([0-9 \\.]{3})g([0-9 \\.]+)t(-{0,1}[0-9 \\.]+)/',$body_parse,$matches)) {
196 196
 			$result['wind_dir'] = $matches[1];
197 197
 			$result['wind_speed'] = round($matches[2]*1.60934,1);
198 198
 			$result['wind_gust'] = round($matches[3]*1.60934,1);
199 199
 			$result['temp'] = round(5/9*(($matches[4])-32),1);
200
-		        $body_parse = substr($body_parse,strlen($matches[0])+1);
201
-		    } elseif (preg_match('/^_{0,1}([0-9 \\.\\-]{3})\\/([0-9 \\.]{3})t(-{0,1}[0-9 \\.]+)/',$body_parse,$matches)) {
200
+				$body_parse = substr($body_parse,strlen($matches[0])+1);
201
+			} elseif (preg_match('/^_{0,1}([0-9 \\.\\-]{3})\\/([0-9 \\.]{3})t(-{0,1}[0-9 \\.]+)/',$body_parse,$matches)) {
202 202
 			$result['wind_dir'] = $matches[1];
203 203
 			$result['wind_speed'] = round($matches[2]*1.60934,1);
204 204
 			$result['wind_gust'] = round($matches[3]*1.60934,1);
205
-		        $body_parse = substr($body_parse,strlen($matches[0])+1);
206
-		    } elseif (preg_match('/^_{0,1}([0-9 \\.\\-]{3})\\/([0-9 \\.]{3})g([0-9 \\.]+)/',$body_parse,$matches)) {
205
+				$body_parse = substr($body_parse,strlen($matches[0])+1);
206
+			} elseif (preg_match('/^_{0,1}([0-9 \\.\\-]{3})\\/([0-9 \\.]{3})g([0-9 \\.]+)/',$body_parse,$matches)) {
207 207
 			$result['wind_dir'] = $matches[1];
208 208
 			$result['wind_speed'] = round($matches[2]*1.60934,1);
209 209
 			$result['wind_gust'] = round($matches[3]*1.60934,1);
210
-		        $body_parse = substr($body_parse,strlen($matches[0])+1);
211
-		    }
212
-		    if (!isset($result['temp']) && strlen($body_parse) > 0 && preg_match('/^g([0-9]+)t(-?[0-9 \\.]{1,3})/',$body_parse,$matches)) {
210
+				$body_parse = substr($body_parse,strlen($matches[0])+1);
211
+			}
212
+			if (!isset($result['temp']) && strlen($body_parse) > 0 && preg_match('/^g([0-9]+)t(-?[0-9 \\.]{1,3})/',$body_parse,$matches)) {
213 213
 			$result['temp'] = round(5/9*(($matches[1])-32),1);
214
-		    }
214
+			}
215
+		}
215 216
 		}
216
-	    }
217 217
 	}
218 218
 	if (isset($result['latitude'])) $result['latitude'] = round($result['latitude'],4);
219 219
 	if (isset($result['longitude'])) $result['longitude'] = round($result['longitude'],4);
220 220
 	//print_r($result);
221 221
 	return $result;
222
-    }
222
+	}
223 223
 }
224 224
 /*
225 225
 $aprs = new aprs();
Please login to merge, or discard this patch.
require/class.Language.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -1,9 +1,9 @@  discard block
 block discarded – undo
1 1
 <?php
2 2
 
3 3
 if (!function_exists("gettext")) {
4
-        function _($text) {
5
-                return $text;
6
-        }
4
+		function _($text) {
5
+				return $text;
6
+		}
7 7
 } else {
8 8
 	if (isset($_COOKIE['language']) && $_COOKIE['language'] != 'en_GB' && (isset($globalTranslate) && $globalTranslate)) {
9 9
 		$Language = new Language();
@@ -75,9 +75,9 @@  discard block
 block discarded – undo
75 75
 			);
76 76
 
77 77
 	/**
78
-	* Returns list of available locales
79
-	*
80
-	* @return array
78
+	 * Returns list of available locales
79
+	 *
80
+	 * @return array
81 81
 	 */
82 82
 	public function listLocaleDir()
83 83
 	{
@@ -103,9 +103,9 @@  discard block
 block discarded – undo
103 103
 	}
104 104
 
105 105
 	/**
106
-	* Returns list of available languages
107
-	*
108
-	* @return array
106
+	 * Returns list of available languages
107
+	 *
108
+	 * @return array
109 109
 	 */
110 110
 	public function getLanguages()
111 111
 	{
Please login to merge, or discard this patch.
require/class.Source.php 1 patch
Indentation   +66 added lines, -66 removed lines patch added patch discarded remove patch
@@ -7,73 +7,73 @@
 block discarded – undo
7 7
 	function __construct($dbc = null) {
8 8
 		$Connection = new Connection($dbc);
9 9
 		$this->db = $Connection->db;
10
-        }
11
-       public function getAllLocationInfo() {
12
-                $query = "SELECT * FROM source_location";
13
-                $query_values = array();
14
-                 try {
15
-                        $sth = $this->db->prepare($query);
16
-                        $sth->execute($query_values);
17
-                } catch(PDOException $e) {
18
-                        return "error : ".$e->getMessage();
19
-                }
20
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
21
-                return $all;
22
-        }
23
-       public function getLocationInfobyName($name) {
24
-                $query = "SELECT * FROM source_location WHERE name = :name";
25
-                $query_values = array(':name' => $name);
26
-                 try {
27
-                        $sth = $this->db->prepare($query);
28
-                        $sth->execute($query_values);
29
-                } catch(PDOException $e) {
30
-                        return "error : ".$e->getMessage();
31
-                }
32
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
33
-                return $all;
34
-        }
35
-       public function getLocationInfobySourceName($name) {
36
-                $query = "SELECT * FROM source_location WHERE source = :name";
37
-                $query_values = array(':name' => $name);
38
-                 try {
39
-                        $sth = $this->db->prepare($query);
40
-                        $sth->execute($query_values);
41
-                } catch(PDOException $e) {
42
-                        return "error : ".$e->getMessage();
43
-                }
44
-                $all = $sth->fetchAll(PDO::FETCH_ASSOC);
45
-                return $all;
46
-        }
10
+		}
11
+	   public function getAllLocationInfo() {
12
+				$query = "SELECT * FROM source_location";
13
+				$query_values = array();
14
+				 try {
15
+						$sth = $this->db->prepare($query);
16
+						$sth->execute($query_values);
17
+				} catch(PDOException $e) {
18
+						return "error : ".$e->getMessage();
19
+				}
20
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
21
+				return $all;
22
+		}
23
+	   public function getLocationInfobyName($name) {
24
+				$query = "SELECT * FROM source_location WHERE name = :name";
25
+				$query_values = array(':name' => $name);
26
+				 try {
27
+						$sth = $this->db->prepare($query);
28
+						$sth->execute($query_values);
29
+				} catch(PDOException $e) {
30
+						return "error : ".$e->getMessage();
31
+				}
32
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
33
+				return $all;
34
+		}
35
+	   public function getLocationInfobySourceName($name) {
36
+				$query = "SELECT * FROM source_location WHERE source = :name";
37
+				$query_values = array(':name' => $name);
38
+				 try {
39
+						$sth = $this->db->prepare($query);
40
+						$sth->execute($query_values);
41
+				} catch(PDOException $e) {
42
+						return "error : ".$e->getMessage();
43
+				}
44
+				$all = $sth->fetchAll(PDO::FETCH_ASSOC);
45
+				return $all;
46
+		}
47 47
   
48
-       public function addLocation($name,$latitude,$longitude,$altitude,$city,$country,$source,$logo = 'antenna.png') {
49
-                $query = "INSERT INTO source_location (name,latitude,longitude,altitude,country,city,logo,source) VALUES (:name,:latitude,:longitude,:altitude,:country,:city,:logo,:source)";
50
-                $query_values = array(':name' => $name,':latitude' => $latitude, ':longitude' => $longitude,':altitude' => $altitude,':city' => $city,':country' => $country,':logo' => $logo,':source' => $source);
51
-                 try {
52
-                        $sth = $this->db->prepare($query);
53
-                        $sth->execute($query_values);
54
-                } catch(PDOException $e) {
55
-                        return "error : ".$e->getMessage();
56
-                }
57
-        }
48
+	   public function addLocation($name,$latitude,$longitude,$altitude,$city,$country,$source,$logo = 'antenna.png') {
49
+				$query = "INSERT INTO source_location (name,latitude,longitude,altitude,country,city,logo,source) VALUES (:name,:latitude,:longitude,:altitude,:country,:city,:logo,:source)";
50
+				$query_values = array(':name' => $name,':latitude' => $latitude, ':longitude' => $longitude,':altitude' => $altitude,':city' => $city,':country' => $country,':logo' => $logo,':source' => $source);
51
+				 try {
52
+						$sth = $this->db->prepare($query);
53
+						$sth->execute($query_values);
54
+				} catch(PDOException $e) {
55
+						return "error : ".$e->getMessage();
56
+				}
57
+		}
58 58
 
59
-       public function deleteLocation($id) {
60
-                $query = "DELETE FROM source_location WHERE id = :id";
61
-                $query_values = array(':id' => $id);
62
-                 try {
63
-                        $sth = $this->db->prepare($query);
64
-                        $sth->execute($query_values);
65
-                } catch(PDOException $e) {
66
-                        return "error : ".$e->getMessage();
67
-                }
68
-        }
69
-       public function deleteAllLocation() {
70
-                $query = "DELETE FROM source_location";
71
-                 try {
72
-                        $sth = $this->db->prepare($query);
73
-                        $sth->execute();
74
-                } catch(PDOException $e) {
75
-                        return "error : ".$e->getMessage();
76
-                }
77
-        }
59
+	   public function deleteLocation($id) {
60
+				$query = "DELETE FROM source_location WHERE id = :id";
61
+				$query_values = array(':id' => $id);
62
+				 try {
63
+						$sth = $this->db->prepare($query);
64
+						$sth->execute($query_values);
65
+				} catch(PDOException $e) {
66
+						return "error : ".$e->getMessage();
67
+				}
68
+		}
69
+	   public function deleteAllLocation() {
70
+				$query = "DELETE FROM source_location";
71
+				 try {
72
+						$sth = $this->db->prepare($query);
73
+						$sth->execute();
74
+				} catch(PDOException $e) {
75
+						return "error : ".$e->getMessage();
76
+				}
77
+		}
78 78
 }
79 79
 ?>
80 80
\ No newline at end of file
Please login to merge, or discard this patch.
require/libs/simple_html_dom.php 1 patch
Indentation   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -824,11 +824,11 @@
 block discarded – undo
824 824
 	}
825 825
 
826 826
 	/**
827
-	* Returns true if $string is valid UTF-8 and false otherwise.
828
-	*
829
-	* @param mixed $str String to be tested
830
-	* @return boolean
831
-	*/
827
+	 * Returns true if $string is valid UTF-8 and false otherwise.
828
+	 *
829
+	 * @param mixed $str String to be tested
830
+	 * @return boolean
831
+	 */
832 832
 	static function is_utf8($str)
833 833
 	{
834 834
 		$c=0; $b=0;
Please login to merge, or discard this patch.
require/libs/uagent/uagent.php 1 patch
Indentation   +342 added lines, -342 removed lines patch added patch discarded remove patch
@@ -8,347 +8,347 @@
 block discarded – undo
8 8
 
9 9
 class UAgent
10 10
 {
11
-    // General token that says the browser is Mozilla compatible, 
12
-    // and is common to almost every browser today.
13
-    const MOZILLA = 'Mozilla/5.0 ';
14
-
15
-    /**
16
-     * Processors by Arch.
17
-     */
18
-    public static $processors = array(
19
-        'lin' => array( 'i686', 'x86_64' ),
20
-        'mac' => array( 'Intel', 'PPC', 'U; Intel', 'U; PPC' ),
21
-        'win' => array( 'foo' )
22
-    );
23
-
24
-    /**
25
-     * Browsers
26
-     * 
27
-     * Weighting is based on market share to determine frequency.
28
-     */
29
-    public static $browsers = array(
30
-        34 => array(
31
-            89 => array( 'chrome', 'win' ),
32
-            9  => array( 'chrome', 'mac' ),
33
-            2  => array( 'chrome', 'lin' )
34
-        ),
35
-        32 => array(
36
-            100 => array( 'iexplorer', 'win' )
37
-        ),
38
-        25 => array(
39
-            83 => array( 'firefox', 'win' ),
40
-            16 => array( 'firefox', 'mac' ),
41
-            1  => array( 'firefox', 'lin' )
42
-        ),
43
-        7 => array(
44
-            95 => array( 'safari', 'mac' ),
45
-            4  => array( 'safari', 'win' ),
46
-            1  => array( 'safari', 'lin' )
47
-        ),
48
-        2 => array(
49
-            91 => array( 'opera', 'win' ),
50
-            6  => array( 'opera', 'lin' ),
51
-            3  => array( 'opera', 'mac' )
52
-        )
53
-    );
54
-
55
-    /**
56
-     * List of Lanuge Culture Codes (ISO 639-1)
57
-     *
58
-     * @see: http://msdn.microsoft.com/en-gb/library/ee825488(v=cs.20).aspx
59
-     */
60
-    public static $languages = array(
61
-        'af-ZA', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-LB',
62
-        'ar-LY', 'ar-MA', 'ar-OM', 'ar-QA', 'ar-SA', 'ar-SY', 'ar-TN', 'ar-YE', 'be-BY',
63
-        'bg-BG', 'ca-ES', 'cs-CZ', 'Cy-az-AZ', 'Cy-sr-SP', 'Cy-uz-UZ', 'da-DK', 'de-AT',
64
-        'de-CH', 'de-DE', 'de-LI', 'de-LU', 'div-MV', 'el-GR', 'en-AU', 'en-BZ', 'en-CA', 
65
-        'en-CB', 'en-GB', 'en-IE', 'en-JM', 'en-NZ', 'en-PH', 'en-TT', 'en-US', 'en-ZA', 
66
-        'en-ZW', 'es-AR', 'es-BO', 'es-CL', 'es-CO',  'es-CR', 'es-DO', 'es-EC', 'es-ES',
67
-        'es-GT', 'es-HN', 'es-MX', 'es-NI', 'es-PA', 'es-PE', 'es-PR', 'es-PY', 'es-SV',
68
-        'es-UY', 'es-VE', 'et-EE', 'eu-ES', 'fa-IR', 'fi-FI', 'fo-FO', 'fr-BE', 'fr-CA',
69
-        'fr-CH', 'fr-FR', 'fr-LU', 'fr-MC', 'gl-ES', 'gu-IN', 'he-IL', 'hi-IN', 'hr-HR', 
70
-        'hu-HU', 'hy-AM', 'id-ID', 'is-IS', 'it-CH', 'it-IT', 'ja-JP', 'ka-GE', 'kk-KZ',
71
-        'kn-IN', 'kok-IN', 'ko-KR', 'ky-KZ', 'Lt-az-AZ', 'lt-LT', 'Lt-sr-SP', 'Lt-uz-UZ', 
72
-        'lv-LV', 'mk-MK', 'mn-MN', 'mr-IN', 'ms-BN', 'ms-MY', 'nb-NO', 'nl-BE', 'nl-NL', 
73
-        'nn-NO', 'pa-IN', 'pl-PL', 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sa-IN', 'sk-SK', 
74
-        'sl-SI', 'sq-AL', 'sv-FI', 'sv-SE', 'sw-KE', 'syr-SY', 'ta-IN', 'te-IN', 'th-TH', 
75
-        'tr-TR', 'tt-RU', 'uk-UA', 'ur-PK', 'vi-VN', 'zh-CHS', 'zh-CHT', 'zh-CN', 'zh-HK', 
76
-        'zh-MO', 'zh-SG', 'zh-TW',   
77
-    );    
78
-
79
-    /**
80
-     * Generate Device Platform
81
-     *
82
-     * Uses a random result with a weighting related to frequencies.
83
-     */
84
-    public static function generate_platform()
85
-    {
86
-        $rand = mt_rand( 1, 100 );
87
-        $sum = 0;
88
-
89
-        foreach ( self::$browsers as $share => $freq_os )
90
-        {
91
-            $sum += $share;
92
-
93
-            if ( $rand <= $sum )
94
-            {
95
-                $rand = mt_rand( 1, 100 );
96
-                $sum = 0;
97
-
98
-                foreach ( $freq_os as $share => $choice )
99
-                {
100
-                    $sum += $share;
101
-
102
-                    if ( $rand <= $sum )
103
-                    {
104
-                        return $choice;
105
-                    }
106
-                }
107
-            }
108
-        }
109
-
110
-        throw new Exception( 'Sum of $browsers frequency is not 100.' );
111
-    }
112
-
113
-    private static function array_random( $array )
114
-    {
115
-        $i = array_rand( $array, 1 );
116
-
117
-        return $array[$i];
118
-    }
119
-
120
-    private static function get_language( $lang = array() )
121
-    {
122
-        return self::array_random( empty( $lang ) ? self::$languages : $lang );
123
-    }
124
-
125
-    private static function get_processor( $os )
126
-    {
127
-        return self::array_random( self::$processors[$os] );
128
-    }
129
-
130
-    private static function get_version_nt()
131
-    {   
132
-        // Win2k (5.0) to Win 7 (6.1).
133
-        return mt_rand( 5, 6 ) . '.' . mt_rand( 0, 1 );
134
-    }
135
-
136
-    private static function get_version_osx()
137
-    {
138
-        return '10_' . mt_rand( 5, 7 ) . '_' . mt_rand( 0, 9 );
139
-    }
140
-
141
-    private static function get_version_webkit()
142
-    {
143
-        return mt_rand( 531, 536 ) . mt_rand( 0, 2 );
144
-    }
145
-
146
-    private static function get_verison_chrome()
147
-    {
148
-        return mt_rand( 13, 15 ) . '.0.' . mt_rand( 800, 899 ) . '.0';
149
-    }
150
-
151
-    private static function get_version_gecko()
152
-    {
153
-        return mt_rand( 17, 31 ) . '.0';
154
-    }
155
-
156
-    private static function get_version_ie()
157
-    {
158
-        return mt_rand( 7, 9 ) . '.0';
159
-    }
160
-
161
-    private static function get_version_trident()
162
-    {
163
-        // IE8 (4.0) to IE11 (7.0).
164
-        return mt_rand( 4, 7 ) . '.0';
165
-    }
166
-
167
-    private static function get_version_net()
168
-    {
169
-        // generic .NET Framework common language run time (CLR) version numbers.
170
-        $frameworks = array(
171
-            '2.0.50727',
172
-            '3.0.4506',
173
-            '3.5.30729',
174
-        );
175
-
176
-        $rev = '.' . mt_rand( 26, 648 );
177
-
178
-        return self::array_random( $frameworks ) . $rev;
179
-    }
180
-
181
-    private static function get_version_safari()
182
-    {
183
-        if ( mt_rand( 0, 1 ) == 0 )
184
-        {
185
-            $ver = mt_rand( 4, 5 ) . '.' . mt_rand( 0, 1 );
186
-        }
187
-        else
188
-        {
189
-            $ver = mt_rand( 4, 5 ) . '.0.' . mt_rand( 1, 5 );
190
-        }
191
-
192
-        return $ver;
193
-    }
194
-
195
-    private static function get_version_opera()
196
-    {
197
-        return mt_rand( 15, 19 ) . '.0.' . mt_rand( 1147, 1284 ) . mt_rand( 49, 100 );
198
-    }
199
-
200
-    /**
201
-     * Opera
202
-     * 
203
-     * @see: http://dev.opera.com/blog/opera-user-agent-strings-opera-15-and-beyond/
204
-     */
205
-    public static function opera( $arch )
206
-    {
207
-        $opera = ' OPR/' . self::get_version_opera();
208
-
209
-        // WebKit Rendering Engine (WebKit = Backend, Safari = Frontend).
210
-        $engine = self::get_version_webkit();
211
-        $webkit = ' AppleWebKit/' . $engine . ' (KHTML, like Gecko)';
212
-        $chrome = ' Chrome/' . self::get_verison_chrome();
213
-        $safari = ' Safari/' . $engine;
214
-
215
-        switch ( $arch )
216
-        {
217
-            case 'lin':
218
-                return '(X11; Linux {proc}) ' . $webkit . $chrome . $safari . $opera;
219
-            case 'mac':
220
-                $osx = self::get_version_osx();
221
-                return '(Macintosh; U; {proc} Mac OS X ' . $osx . ')' . $webkit . $chrome . $safari . $opera;
222
-            case 'win':
223
-                // fall through.
224
-            default:
225
-                $nt = self::get_version_nt();
226
-                return '(Windows NT ' . $nt . '; WOW64) ' . $webkit . $chrome . $safari . $opera;
227
-        }
228
-    }    
229
-
230
-    /**
231
-     * Safari
232
-     *
233
-     */
234
-    public static function safari( $arch )
235
-    {
236
-        $version = ' Version/' . self::get_version_safari();
237
-
238
-        // WebKit Rendering Engine (WebKit = Backend, Safari = Frontend).
239
-        $engine = self::get_version_webkit();
240
-        $webkit = ' AppleWebKit/' . $engine . ' (KHTML, like Gecko)';
241
-        $safari = ' Safari/' . $engine;
242
-
243
-        switch ( $arch )
244
-        {
245
-            case 'mac':
246
-                $osx = self::get_version_osx();
247
-                return '(Macintosh; U; {proc} Mac OS X ' . $osx . '; {lang})' . $webkit . $version . $safari;
248
-            case 'win':
249
-                // fall through.
250
-            default:
251
-                $nt = self::get_version_nt();
252
-                return '(Windows; U; Windows NT ' . $nt . ')' . $webkit . $version . $safari;
253
-        }
254
-
255
-    }
256
-
257
-    /**
258
-     * Internet Explorer
259
-     * 
260
-     * @see: http://msdn.microsoft.com/en-gb/library/ms537503(v=vs.85).aspx
261
-     */
262
-    public static function iexplorer( $arch )
263
-    {
264
-        $nt = self::get_version_nt();
265
-        $ie = self::get_version_ie();
266
-        $trident = self::get_version_trident();
267
-        $net = self::get_version_net();
268
-
269
-        return '(compatible' 
270
-            . '; MSIE ' . $ie 
271
-            . '; Windows NT ' . $nt 
272
-            . '; WOW64' // A 32-bit version of Internet Explorer is running on a 64-bit processor.
273
-            . '; Trident/' . $trident 
274
-            . '; .NET CLR ' . $net
275
-            . ')';
276
-    }
277
-
278
-    /**
279
-     * Firefox User-Agent
280
-     *
281
-     * @see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Gecko_user_agent_string_reference
282
-     */
283
-    public static function firefox( $arch )
284
-    {
285
-        // The release version of Gecko. 
286
-        $gecko = self::get_version_gecko();
287
-
288
-        // On desktop, the gecko trail is fixed.
289
-        $trail = '20100101';
290
-
291
-        $release = 'rv:' . $gecko;
292
-        $version = 'Gecko/' . $trail . ' Firefox/' . $gecko;
293
-
294
-        switch ( $arch )
295
-        {
296
-            case 'lin':
297
-                return '(X11; Linux {proc}; ' . $release . ') ' . $version;
298
-            case 'mac':
299
-                $osx = self::get_version_osx();
300
-                return '(Macintosh; {proc} Mac OS X ' . $osx . '; ' . $release . ') ' . $version;
301
-            case 'win':
302
-                // fall through.
303
-            default:
304
-                $nt = self::get_version_nt();
305
-                return '(Windows NT ' . $nt . '; {lang}; ' . $release . ') ' . $version;
306
-        }
307
-    }
308
-
309
-    public static function chrome( $arch )
310
-    {
311
-        $chrome = ' Chrome/' . self::get_verison_chrome();
312
-
313
-        // WebKit Rendering Engine (WebKit = Backend, Safari = Frontend).
314
-        $engine = self::get_version_webkit();
315
-        $webkit = ' AppleWebKit/' . $engine . ' (KHTML, like Gecko)';
316
-        $safari = ' Safari/' . $engine;
317
-
318
-        switch ( $arch )
319
-        {
320
-            case 'lin':
321
-                return '(X11; Linux {proc}) ' . $webkit . $chrome . $safari;
322
-            case 'mac':
323
-                $osx = self::get_version_osx();
324
-                return '(Macintosh; U; {proc} Mac OS X ' . $osx . ')' . $webkit . $chrome . $safari;
325
-            case 'win':
326
-                // fall through.
327
-            default:
328
-                $nt = self::get_version_nt();
329
-                return '(Windows NT ' . $nt . ') ' . $webkit . $chrome . $safari;
330
-        }
331
-    }
332
-
333
-    public static function random( $lang = array( 'en-US' ) )
334
-    {
335
-        list( $browser, $os ) = self::generate_platform();
336
-
337
-        return self::generate( $browser, $os, $lang );
338
-    }
339
-
340
-    public static function generate( $browser = 'chrome', $os = 'win', $lang = array( 'en-US' ) )
341
-    {
342
-        $ua = self::MOZILLA . call_user_func( 'UAgent::' . $browser, $os );
343
-
344
-        $tags = array(
345
-            '{proc}' => self::get_processor( $os ),
346
-            '{lang}' => self::get_language( $lang ),
347
-        );
348
-
349
-        $ua = str_replace( array_keys( $tags ), array_values( $tags ), $ua );
350
-
351
-        return $ua;
352
-    }
11
+	// General token that says the browser is Mozilla compatible, 
12
+	// and is common to almost every browser today.
13
+	const MOZILLA = 'Mozilla/5.0 ';
14
+
15
+	/**
16
+	 * Processors by Arch.
17
+	 */
18
+	public static $processors = array(
19
+		'lin' => array( 'i686', 'x86_64' ),
20
+		'mac' => array( 'Intel', 'PPC', 'U; Intel', 'U; PPC' ),
21
+		'win' => array( 'foo' )
22
+	);
23
+
24
+	/**
25
+	 * Browsers
26
+	 * 
27
+	 * Weighting is based on market share to determine frequency.
28
+	 */
29
+	public static $browsers = array(
30
+		34 => array(
31
+			89 => array( 'chrome', 'win' ),
32
+			9  => array( 'chrome', 'mac' ),
33
+			2  => array( 'chrome', 'lin' )
34
+		),
35
+		32 => array(
36
+			100 => array( 'iexplorer', 'win' )
37
+		),
38
+		25 => array(
39
+			83 => array( 'firefox', 'win' ),
40
+			16 => array( 'firefox', 'mac' ),
41
+			1  => array( 'firefox', 'lin' )
42
+		),
43
+		7 => array(
44
+			95 => array( 'safari', 'mac' ),
45
+			4  => array( 'safari', 'win' ),
46
+			1  => array( 'safari', 'lin' )
47
+		),
48
+		2 => array(
49
+			91 => array( 'opera', 'win' ),
50
+			6  => array( 'opera', 'lin' ),
51
+			3  => array( 'opera', 'mac' )
52
+		)
53
+	);
54
+
55
+	/**
56
+	 * List of Lanuge Culture Codes (ISO 639-1)
57
+	 *
58
+	 * @see: http://msdn.microsoft.com/en-gb/library/ee825488(v=cs.20).aspx
59
+	 */
60
+	public static $languages = array(
61
+		'af-ZA', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-LB',
62
+		'ar-LY', 'ar-MA', 'ar-OM', 'ar-QA', 'ar-SA', 'ar-SY', 'ar-TN', 'ar-YE', 'be-BY',
63
+		'bg-BG', 'ca-ES', 'cs-CZ', 'Cy-az-AZ', 'Cy-sr-SP', 'Cy-uz-UZ', 'da-DK', 'de-AT',
64
+		'de-CH', 'de-DE', 'de-LI', 'de-LU', 'div-MV', 'el-GR', 'en-AU', 'en-BZ', 'en-CA', 
65
+		'en-CB', 'en-GB', 'en-IE', 'en-JM', 'en-NZ', 'en-PH', 'en-TT', 'en-US', 'en-ZA', 
66
+		'en-ZW', 'es-AR', 'es-BO', 'es-CL', 'es-CO',  'es-CR', 'es-DO', 'es-EC', 'es-ES',
67
+		'es-GT', 'es-HN', 'es-MX', 'es-NI', 'es-PA', 'es-PE', 'es-PR', 'es-PY', 'es-SV',
68
+		'es-UY', 'es-VE', 'et-EE', 'eu-ES', 'fa-IR', 'fi-FI', 'fo-FO', 'fr-BE', 'fr-CA',
69
+		'fr-CH', 'fr-FR', 'fr-LU', 'fr-MC', 'gl-ES', 'gu-IN', 'he-IL', 'hi-IN', 'hr-HR', 
70
+		'hu-HU', 'hy-AM', 'id-ID', 'is-IS', 'it-CH', 'it-IT', 'ja-JP', 'ka-GE', 'kk-KZ',
71
+		'kn-IN', 'kok-IN', 'ko-KR', 'ky-KZ', 'Lt-az-AZ', 'lt-LT', 'Lt-sr-SP', 'Lt-uz-UZ', 
72
+		'lv-LV', 'mk-MK', 'mn-MN', 'mr-IN', 'ms-BN', 'ms-MY', 'nb-NO', 'nl-BE', 'nl-NL', 
73
+		'nn-NO', 'pa-IN', 'pl-PL', 'pt-BR', 'pt-PT', 'ro-RO', 'ru-RU', 'sa-IN', 'sk-SK', 
74
+		'sl-SI', 'sq-AL', 'sv-FI', 'sv-SE', 'sw-KE', 'syr-SY', 'ta-IN', 'te-IN', 'th-TH', 
75
+		'tr-TR', 'tt-RU', 'uk-UA', 'ur-PK', 'vi-VN', 'zh-CHS', 'zh-CHT', 'zh-CN', 'zh-HK', 
76
+		'zh-MO', 'zh-SG', 'zh-TW',   
77
+	);    
78
+
79
+	/**
80
+	 * Generate Device Platform
81
+	 *
82
+	 * Uses a random result with a weighting related to frequencies.
83
+	 */
84
+	public static function generate_platform()
85
+	{
86
+		$rand = mt_rand( 1, 100 );
87
+		$sum = 0;
88
+
89
+		foreach ( self::$browsers as $share => $freq_os )
90
+		{
91
+			$sum += $share;
92
+
93
+			if ( $rand <= $sum )
94
+			{
95
+				$rand = mt_rand( 1, 100 );
96
+				$sum = 0;
97
+
98
+				foreach ( $freq_os as $share => $choice )
99
+				{
100
+					$sum += $share;
101
+
102
+					if ( $rand <= $sum )
103
+					{
104
+						return $choice;
105
+					}
106
+				}
107
+			}
108
+		}
109
+
110
+		throw new Exception( 'Sum of $browsers frequency is not 100.' );
111
+	}
112
+
113
+	private static function array_random( $array )
114
+	{
115
+		$i = array_rand( $array, 1 );
116
+
117
+		return $array[$i];
118
+	}
119
+
120
+	private static function get_language( $lang = array() )
121
+	{
122
+		return self::array_random( empty( $lang ) ? self::$languages : $lang );
123
+	}
124
+
125
+	private static function get_processor( $os )
126
+	{
127
+		return self::array_random( self::$processors[$os] );
128
+	}
129
+
130
+	private static function get_version_nt()
131
+	{   
132
+		// Win2k (5.0) to Win 7 (6.1).
133
+		return mt_rand( 5, 6 ) . '.' . mt_rand( 0, 1 );
134
+	}
135
+
136
+	private static function get_version_osx()
137
+	{
138
+		return '10_' . mt_rand( 5, 7 ) . '_' . mt_rand( 0, 9 );
139
+	}
140
+
141
+	private static function get_version_webkit()
142
+	{
143
+		return mt_rand( 531, 536 ) . mt_rand( 0, 2 );
144
+	}
145
+
146
+	private static function get_verison_chrome()
147
+	{
148
+		return mt_rand( 13, 15 ) . '.0.' . mt_rand( 800, 899 ) . '.0';
149
+	}
150
+
151
+	private static function get_version_gecko()
152
+	{
153
+		return mt_rand( 17, 31 ) . '.0';
154
+	}
155
+
156
+	private static function get_version_ie()
157
+	{
158
+		return mt_rand( 7, 9 ) . '.0';
159
+	}
160
+
161
+	private static function get_version_trident()
162
+	{
163
+		// IE8 (4.0) to IE11 (7.0).
164
+		return mt_rand( 4, 7 ) . '.0';
165
+	}
166
+
167
+	private static function get_version_net()
168
+	{
169
+		// generic .NET Framework common language run time (CLR) version numbers.
170
+		$frameworks = array(
171
+			'2.0.50727',
172
+			'3.0.4506',
173
+			'3.5.30729',
174
+		);
175
+
176
+		$rev = '.' . mt_rand( 26, 648 );
177
+
178
+		return self::array_random( $frameworks ) . $rev;
179
+	}
180
+
181
+	private static function get_version_safari()
182
+	{
183
+		if ( mt_rand( 0, 1 ) == 0 )
184
+		{
185
+			$ver = mt_rand( 4, 5 ) . '.' . mt_rand( 0, 1 );
186
+		}
187
+		else
188
+		{
189
+			$ver = mt_rand( 4, 5 ) . '.0.' . mt_rand( 1, 5 );
190
+		}
191
+
192
+		return $ver;
193
+	}
194
+
195
+	private static function get_version_opera()
196
+	{
197
+		return mt_rand( 15, 19 ) . '.0.' . mt_rand( 1147, 1284 ) . mt_rand( 49, 100 );
198
+	}
199
+
200
+	/**
201
+	 * Opera
202
+	 * 
203
+	 * @see: http://dev.opera.com/blog/opera-user-agent-strings-opera-15-and-beyond/
204
+	 */
205
+	public static function opera( $arch )
206
+	{
207
+		$opera = ' OPR/' . self::get_version_opera();
208
+
209
+		// WebKit Rendering Engine (WebKit = Backend, Safari = Frontend).
210
+		$engine = self::get_version_webkit();
211
+		$webkit = ' AppleWebKit/' . $engine . ' (KHTML, like Gecko)';
212
+		$chrome = ' Chrome/' . self::get_verison_chrome();
213
+		$safari = ' Safari/' . $engine;
214
+
215
+		switch ( $arch )
216
+		{
217
+			case 'lin':
218
+				return '(X11; Linux {proc}) ' . $webkit . $chrome . $safari . $opera;
219
+			case 'mac':
220
+				$osx = self::get_version_osx();
221
+				return '(Macintosh; U; {proc} Mac OS X ' . $osx . ')' . $webkit . $chrome . $safari . $opera;
222
+			case 'win':
223
+				// fall through.
224
+			default:
225
+				$nt = self::get_version_nt();
226
+				return '(Windows NT ' . $nt . '; WOW64) ' . $webkit . $chrome . $safari . $opera;
227
+		}
228
+	}    
229
+
230
+	/**
231
+	 * Safari
232
+	 *
233
+	 */
234
+	public static function safari( $arch )
235
+	{
236
+		$version = ' Version/' . self::get_version_safari();
237
+
238
+		// WebKit Rendering Engine (WebKit = Backend, Safari = Frontend).
239
+		$engine = self::get_version_webkit();
240
+		$webkit = ' AppleWebKit/' . $engine . ' (KHTML, like Gecko)';
241
+		$safari = ' Safari/' . $engine;
242
+
243
+		switch ( $arch )
244
+		{
245
+			case 'mac':
246
+				$osx = self::get_version_osx();
247
+				return '(Macintosh; U; {proc} Mac OS X ' . $osx . '; {lang})' . $webkit . $version . $safari;
248
+			case 'win':
249
+				// fall through.
250
+			default:
251
+				$nt = self::get_version_nt();
252
+				return '(Windows; U; Windows NT ' . $nt . ')' . $webkit . $version . $safari;
253
+		}
254
+
255
+	}
256
+
257
+	/**
258
+	 * Internet Explorer
259
+	 * 
260
+	 * @see: http://msdn.microsoft.com/en-gb/library/ms537503(v=vs.85).aspx
261
+	 */
262
+	public static function iexplorer( $arch )
263
+	{
264
+		$nt = self::get_version_nt();
265
+		$ie = self::get_version_ie();
266
+		$trident = self::get_version_trident();
267
+		$net = self::get_version_net();
268
+
269
+		return '(compatible' 
270
+			. '; MSIE ' . $ie 
271
+			. '; Windows NT ' . $nt 
272
+			. '; WOW64' // A 32-bit version of Internet Explorer is running on a 64-bit processor.
273
+			. '; Trident/' . $trident 
274
+			. '; .NET CLR ' . $net
275
+			. ')';
276
+	}
277
+
278
+	/**
279
+	 * Firefox User-Agent
280
+	 *
281
+	 * @see: https://developer.mozilla.org/en-US/docs/Web/HTTP/Gecko_user_agent_string_reference
282
+	 */
283
+	public static function firefox( $arch )
284
+	{
285
+		// The release version of Gecko. 
286
+		$gecko = self::get_version_gecko();
287
+
288
+		// On desktop, the gecko trail is fixed.
289
+		$trail = '20100101';
290
+
291
+		$release = 'rv:' . $gecko;
292
+		$version = 'Gecko/' . $trail . ' Firefox/' . $gecko;
293
+
294
+		switch ( $arch )
295
+		{
296
+			case 'lin':
297
+				return '(X11; Linux {proc}; ' . $release . ') ' . $version;
298
+			case 'mac':
299
+				$osx = self::get_version_osx();
300
+				return '(Macintosh; {proc} Mac OS X ' . $osx . '; ' . $release . ') ' . $version;
301
+			case 'win':
302
+				// fall through.
303
+			default:
304
+				$nt = self::get_version_nt();
305
+				return '(Windows NT ' . $nt . '; {lang}; ' . $release . ') ' . $version;
306
+		}
307
+	}
308
+
309
+	public static function chrome( $arch )
310
+	{
311
+		$chrome = ' Chrome/' . self::get_verison_chrome();
312
+
313
+		// WebKit Rendering Engine (WebKit = Backend, Safari = Frontend).
314
+		$engine = self::get_version_webkit();
315
+		$webkit = ' AppleWebKit/' . $engine . ' (KHTML, like Gecko)';
316
+		$safari = ' Safari/' . $engine;
317
+
318
+		switch ( $arch )
319
+		{
320
+			case 'lin':
321
+				return '(X11; Linux {proc}) ' . $webkit . $chrome . $safari;
322
+			case 'mac':
323
+				$osx = self::get_version_osx();
324
+				return '(Macintosh; U; {proc} Mac OS X ' . $osx . ')' . $webkit . $chrome . $safari;
325
+			case 'win':
326
+				// fall through.
327
+			default:
328
+				$nt = self::get_version_nt();
329
+				return '(Windows NT ' . $nt . ') ' . $webkit . $chrome . $safari;
330
+		}
331
+	}
332
+
333
+	public static function random( $lang = array( 'en-US' ) )
334
+	{
335
+		list( $browser, $os ) = self::generate_platform();
336
+
337
+		return self::generate( $browser, $os, $lang );
338
+	}
339
+
340
+	public static function generate( $browser = 'chrome', $os = 'win', $lang = array( 'en-US' ) )
341
+	{
342
+		$ua = self::MOZILLA . call_user_func( 'UAgent::' . $browser, $os );
343
+
344
+		$tags = array(
345
+			'{proc}' => self::get_processor( $os ),
346
+			'{lang}' => self::get_language( $lang ),
347
+		);
348
+
349
+		$ua = str_replace( array_keys( $tags ), array_values( $tags ), $ua );
350
+
351
+		return $ua;
352
+	}
353 353
 }
354 354
 ?>
Please login to merge, or discard this patch.
require/libs/geoPHP/tests/tests/methodsTest.php 1 patch
Indentation   +328 added lines, -328 removed lines patch added patch discarded remove patch
@@ -9,357 +9,357 @@
 block discarded – undo
9 9
   }
10 10
 
11 11
   function testMethods() {
12
-    foreach (scandir('./input') as $file) {
13
-      $parts = explode('.',$file);
14
-      if ($parts[0]) {
15
-        $format = $parts[1];
16
-        $value = file_get_contents('./input/'.$file);
17
-        $geometry = geoPHP::load($value, $format);
12
+	foreach (scandir('./input') as $file) {
13
+	  $parts = explode('.',$file);
14
+	  if ($parts[0]) {
15
+		$format = $parts[1];
16
+		$value = file_get_contents('./input/'.$file);
17
+		$geometry = geoPHP::load($value, $format);
18 18
 
19
-        $methods = array(
20
-          array('name' => 'area'),
21
-          array('name' => 'boundary'),
22
-          array('name' => 'getBBox'),
23
-          array('name' => 'centroid'),
24
-          array('name' => 'length'),
25
-          array('name' => 'greatCircleLength'),
26
-          array('name' => 'haversineLength'),
27
-          array('name' => 'y'),
28
-          array('name' => 'x'),
29
-          array('name' => 'numGeometries'),
30
-          array('name' => 'geometryN', 'argument' => '1'),
31
-          array('name' => 'startPoint'),
32
-          array('name' => 'endPoint'),
33
-          array('name' => 'isRing'),
34
-          array('name' => 'isClosed'),
35
-          array('name' => 'numPoints'),
36
-          array('name' => 'pointN', 'argument' => '1'),
37
-          array('name' => 'exteriorRing'),
38
-          array('name' => 'numInteriorRings'),
39
-          array('name' => 'interiorRingN', 'argument' => '1'),
40
-          array('name' => 'dimension'),
41
-          array('name' => 'geometryType'),
42
-          array('name' => 'SRID'),
43
-          array('name' => 'setSRID', 'argument' => '4326'),
44
-        );
19
+		$methods = array(
20
+		  array('name' => 'area'),
21
+		  array('name' => 'boundary'),
22
+		  array('name' => 'getBBox'),
23
+		  array('name' => 'centroid'),
24
+		  array('name' => 'length'),
25
+		  array('name' => 'greatCircleLength'),
26
+		  array('name' => 'haversineLength'),
27
+		  array('name' => 'y'),
28
+		  array('name' => 'x'),
29
+		  array('name' => 'numGeometries'),
30
+		  array('name' => 'geometryN', 'argument' => '1'),
31
+		  array('name' => 'startPoint'),
32
+		  array('name' => 'endPoint'),
33
+		  array('name' => 'isRing'),
34
+		  array('name' => 'isClosed'),
35
+		  array('name' => 'numPoints'),
36
+		  array('name' => 'pointN', 'argument' => '1'),
37
+		  array('name' => 'exteriorRing'),
38
+		  array('name' => 'numInteriorRings'),
39
+		  array('name' => 'interiorRingN', 'argument' => '1'),
40
+		  array('name' => 'dimension'),
41
+		  array('name' => 'geometryType'),
42
+		  array('name' => 'SRID'),
43
+		  array('name' => 'setSRID', 'argument' => '4326'),
44
+		);
45 45
 
46
-        foreach($methods as $method) {
47
-          $argument = NULL;
48
-          $method_name = $method['name'];
49
-          if (isset($method['argument'])) {
50
-            $argument = $method['argument'];
51
-          }
46
+		foreach($methods as $method) {
47
+		  $argument = NULL;
48
+		  $method_name = $method['name'];
49
+		  if (isset($method['argument'])) {
50
+			$argument = $method['argument'];
51
+		  }
52 52
 
53
-          $this->_methods_tester($geometry, $method_name, $argument);
54
-        }
53
+		  $this->_methods_tester($geometry, $method_name, $argument);
54
+		}
55 55
 
56
-        $this->_methods_tester_with_geos($geometry);
57
-      }
58
-    }
56
+		$this->_methods_tester_with_geos($geometry);
57
+	  }
58
+	}
59 59
   }
60 60
 
61 61
   function _methods_tester($geometry, $method_name, $argument) {
62 62
 
63
-    if (!method_exists($geometry, $method_name)) {
64
-      $this->fail("Method ".$method_name.'() doesn\'t exists.');
65
-      return;
66
-    }
63
+	if (!method_exists($geometry, $method_name)) {
64
+	  $this->fail("Method ".$method_name.'() doesn\'t exists.');
65
+	  return;
66
+	}
67 67
 
68
-    switch ($method_name) {
69
-      case 'y':
70
-      case 'x':
71
-        if ($geometry->geometryType() == 'Point') {
72
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
73
-        }
74
-        if ($geometry->geometryType() == 'LineString') {
75
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
76
-        }
77
-        if ($geometry->geometryType() == 'MultiLineString') {
78
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
79
-        }
80
-        break;
81
-      case 'geometryN':
82
-        if ($geometry->geometryType() == 'Point') {
83
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
84
-        }
85
-        if ($geometry->geometryType() == 'LineString') {
86
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
87
-        }
88
-        if ($geometry->geometryType() == 'MultiLineString') {
89
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
90
-        }
91
-        break;
92
-      case 'startPoint':
93
-        if ($geometry->geometryType() == 'Point') {
94
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
95
-        }
96
-        if ($geometry->geometryType() == 'LineString') {
97
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
98
-        }
99
-        if ($geometry->geometryType() == 'MultiLineString') {
100
-          //TODO: Add a method startPoint() to MultiLineString.
101
-          //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
102
-        }
103
-        break;
104
-      case 'endPoint':
105
-        if ($geometry->geometryType() == 'Point') {
106
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
107
-        }
108
-        if ($geometry->geometryType() == 'LineString') {
109
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
110
-        }
111
-        if ($geometry->geometryType() == 'MultiLineString') {
112
-          //TODO: Add a method endPoint() to MultiLineString.
113
-          //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
114
-        }
115
-        break;
116
-      case 'isRing':
117
-        if ($geometry->geometryType() == 'Point') {
118
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
119
-        }
120
-        if ($geometry->geometryType() == 'LineString') {
121
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
122
-        }
123
-        if ($geometry->geometryType() == 'MultiLineString') {
124
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
125
-        }
126
-        break;
127
-      case 'isClosed':
128
-        if ($geometry->geometryType() == 'Point') {
129
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
130
-        }
131
-        if ($geometry->geometryType() == 'LineString') {
132
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
133
-        }
134
-        if ($geometry->geometryType() == 'MultiLineString') {
135
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
136
-        }
137
-        break;
138
-      case 'pointN':
139
-        if ($geometry->geometryType() == 'Point') {
140
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
141
-        }
142
-        if ($geometry->geometryType() == 'LineString') {
143
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
144
-        }
145
-        if ($geometry->geometryType() == 'MultiLineString') {
146
-          //TODO: Add a method pointN() to MultiLineString.
147
-          //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
148
-        }
149
-        break;
150
-      case 'exteriorRing':
151
-        if ($geometry->geometryType() == 'Point') {
152
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
153
-        }
154
-        if ($geometry->geometryType() == 'LineString') {
155
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
156
-        }
157
-        if ($geometry->geometryType() == 'MultiLineString') {
158
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
159
-        }
160
-        break;
161
-      case 'numInteriorRings':
162
-        if ($geometry->geometryType() == 'Point') {
163
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
164
-        }
165
-        if ($geometry->geometryType() == 'LineString') {
166
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
167
-        }
168
-        if ($geometry->geometryType() == 'MultiLineString') {
169
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
170
-        }
171
-        break;
172
-      case 'interiorRingN':
173
-        if ($geometry->geometryType() == 'Point') {
174
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
175
-        }
176
-        if ($geometry->geometryType() == 'LineString') {
177
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
178
-        }
179
-        if ($geometry->geometryType() == 'MultiLineString') {
180
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
181
-        }
182
-        break;
183
-      case 'SRID':
184
-        if ($geometry->geometryType() == 'Point') {
185
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
186
-        }
187
-        if ($geometry->geometryType() == 'LineString') {
188
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
189
-        }
190
-        if ($geometry->geometryType() == 'MultiLineString') {
191
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
192
-        }
193
-        break;
194
-      case 'getBBox':
195
-        if ($geometry->geometryType() == 'Point') {
196
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
197
-        }
198
-        if ($geometry->geometryType() == 'LineString') {
199
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
200
-        }
201
-        if ($geometry->geometryType() == 'MultiLineString') {
202
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
203
-        }
204
-        break;
205
-      case 'centroid':
206
-        if ($geometry->geometryType() == 'Point') {
207
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
208
-        }
209
-        if ($geometry->geometryType() == 'LineString') {
210
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
211
-        }
212
-        if ($geometry->geometryType() == 'MultiLineString') {
213
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
214
-        }
215
-        break;
216
-      case 'length':
217
-        if ($geometry->geometryType() == 'Point') {
218
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
219
-        }
220
-        if ($geometry->geometryType() == 'LineString') {
221
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
222
-        }
223
-        if ($geometry->geometryType() == 'MultiLineString') {
224
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
225
-        }
226
-        break;
227
-      case 'numGeometries':
228
-        if ($geometry->geometryType() == 'Point') {
229
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
230
-        }
231
-        if ($geometry->geometryType() == 'LineString') {
232
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
233
-        }
234
-        if ($geometry->geometryType() == 'MultiLineString') {
235
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
236
-        }
237
-        break;
238
-      case 'numPoints':
239
-        if ($geometry->geometryType() == 'Point') {
240
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
241
-        }
242
-        if ($geometry->geometryType() == 'LineString') {
243
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
244
-        }
245
-        if ($geometry->geometryType() == 'MultiLineString') {
246
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
247
-        }
248
-        break;
249
-      case 'dimension':
250
-        if ($geometry->geometryType() == 'Point') {
251
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
252
-        }
253
-        if ($geometry->geometryType() == 'LineString') {
254
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
255
-        }
256
-        if ($geometry->geometryType() == 'MultiLineString') {
257
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
258
-        }
259
-        break;
260
-      case 'boundary':
261
-        if ($geometry->geometryType() == 'Point') {
262
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
263
-        }
264
-        if ($geometry->geometryType() == 'LineString') {
265
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
266
-        }
267
-        if ($geometry->geometryType() == 'MultiLineString') {
268
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
269
-        }
270
-        break;
271
-      case 'haversineLength':
272
-        //TODO: Check if output is a float >= 0.
273
-        //TODO: Sometimes haversineLength() returns NAN, needs to check why.
274
-        break;
275
-      case 'greatCircleLength':
276
-      case 'area':
277
-        $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
278
-        break;
279
-      case 'geometryType':
280
-        $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
281
-        break;
282
-      case 'setSRID':
283
-        //TODO: The method setSRID() should return TRUE.
284
-        break;
285
-      default:
286
-        $this->assertTrue($geometry->$method_name($argument), 'Failed on ' . $method_name);
287
-    }
68
+	switch ($method_name) {
69
+	  case 'y':
70
+	  case 'x':
71
+		if ($geometry->geometryType() == 'Point') {
72
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
73
+		}
74
+		if ($geometry->geometryType() == 'LineString') {
75
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
76
+		}
77
+		if ($geometry->geometryType() == 'MultiLineString') {
78
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
79
+		}
80
+		break;
81
+	  case 'geometryN':
82
+		if ($geometry->geometryType() == 'Point') {
83
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
84
+		}
85
+		if ($geometry->geometryType() == 'LineString') {
86
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
87
+		}
88
+		if ($geometry->geometryType() == 'MultiLineString') {
89
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
90
+		}
91
+		break;
92
+	  case 'startPoint':
93
+		if ($geometry->geometryType() == 'Point') {
94
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
95
+		}
96
+		if ($geometry->geometryType() == 'LineString') {
97
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
98
+		}
99
+		if ($geometry->geometryType() == 'MultiLineString') {
100
+		  //TODO: Add a method startPoint() to MultiLineString.
101
+		  //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
102
+		}
103
+		break;
104
+	  case 'endPoint':
105
+		if ($geometry->geometryType() == 'Point') {
106
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
107
+		}
108
+		if ($geometry->geometryType() == 'LineString') {
109
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
110
+		}
111
+		if ($geometry->geometryType() == 'MultiLineString') {
112
+		  //TODO: Add a method endPoint() to MultiLineString.
113
+		  //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
114
+		}
115
+		break;
116
+	  case 'isRing':
117
+		if ($geometry->geometryType() == 'Point') {
118
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
119
+		}
120
+		if ($geometry->geometryType() == 'LineString') {
121
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
122
+		}
123
+		if ($geometry->geometryType() == 'MultiLineString') {
124
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
125
+		}
126
+		break;
127
+	  case 'isClosed':
128
+		if ($geometry->geometryType() == 'Point') {
129
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
130
+		}
131
+		if ($geometry->geometryType() == 'LineString') {
132
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
133
+		}
134
+		if ($geometry->geometryType() == 'MultiLineString') {
135
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
136
+		}
137
+		break;
138
+	  case 'pointN':
139
+		if ($geometry->geometryType() == 'Point') {
140
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
141
+		}
142
+		if ($geometry->geometryType() == 'LineString') {
143
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
144
+		}
145
+		if ($geometry->geometryType() == 'MultiLineString') {
146
+		  //TODO: Add a method pointN() to MultiLineString.
147
+		  //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
148
+		}
149
+		break;
150
+	  case 'exteriorRing':
151
+		if ($geometry->geometryType() == 'Point') {
152
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
153
+		}
154
+		if ($geometry->geometryType() == 'LineString') {
155
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
156
+		}
157
+		if ($geometry->geometryType() == 'MultiLineString') {
158
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
159
+		}
160
+		break;
161
+	  case 'numInteriorRings':
162
+		if ($geometry->geometryType() == 'Point') {
163
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
164
+		}
165
+		if ($geometry->geometryType() == 'LineString') {
166
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
167
+		}
168
+		if ($geometry->geometryType() == 'MultiLineString') {
169
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
170
+		}
171
+		break;
172
+	  case 'interiorRingN':
173
+		if ($geometry->geometryType() == 'Point') {
174
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
175
+		}
176
+		if ($geometry->geometryType() == 'LineString') {
177
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
178
+		}
179
+		if ($geometry->geometryType() == 'MultiLineString') {
180
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
181
+		}
182
+		break;
183
+	  case 'SRID':
184
+		if ($geometry->geometryType() == 'Point') {
185
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
186
+		}
187
+		if ($geometry->geometryType() == 'LineString') {
188
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
189
+		}
190
+		if ($geometry->geometryType() == 'MultiLineString') {
191
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
192
+		}
193
+		break;
194
+	  case 'getBBox':
195
+		if ($geometry->geometryType() == 'Point') {
196
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
197
+		}
198
+		if ($geometry->geometryType() == 'LineString') {
199
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
200
+		}
201
+		if ($geometry->geometryType() == 'MultiLineString') {
202
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
203
+		}
204
+		break;
205
+	  case 'centroid':
206
+		if ($geometry->geometryType() == 'Point') {
207
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
208
+		}
209
+		if ($geometry->geometryType() == 'LineString') {
210
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
211
+		}
212
+		if ($geometry->geometryType() == 'MultiLineString') {
213
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
214
+		}
215
+		break;
216
+	  case 'length':
217
+		if ($geometry->geometryType() == 'Point') {
218
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
219
+		}
220
+		if ($geometry->geometryType() == 'LineString') {
221
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
222
+		}
223
+		if ($geometry->geometryType() == 'MultiLineString') {
224
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
225
+		}
226
+		break;
227
+	  case 'numGeometries':
228
+		if ($geometry->geometryType() == 'Point') {
229
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
230
+		}
231
+		if ($geometry->geometryType() == 'LineString') {
232
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
233
+		}
234
+		if ($geometry->geometryType() == 'MultiLineString') {
235
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
236
+		}
237
+		break;
238
+	  case 'numPoints':
239
+		if ($geometry->geometryType() == 'Point') {
240
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
241
+		}
242
+		if ($geometry->geometryType() == 'LineString') {
243
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
244
+		}
245
+		if ($geometry->geometryType() == 'MultiLineString') {
246
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
247
+		}
248
+		break;
249
+	  case 'dimension':
250
+		if ($geometry->geometryType() == 'Point') {
251
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
252
+		}
253
+		if ($geometry->geometryType() == 'LineString') {
254
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
255
+		}
256
+		if ($geometry->geometryType() == 'MultiLineString') {
257
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
258
+		}
259
+		break;
260
+	  case 'boundary':
261
+		if ($geometry->geometryType() == 'Point') {
262
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
263
+		}
264
+		if ($geometry->geometryType() == 'LineString') {
265
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
266
+		}
267
+		if ($geometry->geometryType() == 'MultiLineString') {
268
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
269
+		}
270
+		break;
271
+	  case 'haversineLength':
272
+		//TODO: Check if output is a float >= 0.
273
+		//TODO: Sometimes haversineLength() returns NAN, needs to check why.
274
+		break;
275
+	  case 'greatCircleLength':
276
+	  case 'area':
277
+		$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
278
+		break;
279
+	  case 'geometryType':
280
+		$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
281
+		break;
282
+	  case 'setSRID':
283
+		//TODO: The method setSRID() should return TRUE.
284
+		break;
285
+	  default:
286
+		$this->assertTrue($geometry->$method_name($argument), 'Failed on ' . $method_name);
287
+	}
288 288
 
289 289
   }
290 290
 
291 291
   function _methods_tester_with_geos($geometry) {
292
-    // Cannot test methods if GEOS is not intstalled
293
-    if (!geoPHP::geosInstalled()) return;
292
+	// Cannot test methods if GEOS is not intstalled
293
+	if (!geoPHP::geosInstalled()) return;
294 294
 
295
-    $methods = array(
296
-      //'boundary', //@@TODO: Uncomment this and fix errors
297
-      'envelope',   //@@TODO: Testing reveales errors in this method -- POINT vs. POLYGON
298
-      'getBBox',
299
-      'x',
300
-      'y',
301
-      'startPoint',
302
-      'endPoint',
303
-      'isRing',
304
-      'isClosed',
305
-      'numPoints',
306
-    );
295
+	$methods = array(
296
+	  //'boundary', //@@TODO: Uncomment this and fix errors
297
+	  'envelope',   //@@TODO: Testing reveales errors in this method -- POINT vs. POLYGON
298
+	  'getBBox',
299
+	  'x',
300
+	  'y',
301
+	  'startPoint',
302
+	  'endPoint',
303
+	  'isRing',
304
+	  'isClosed',
305
+	  'numPoints',
306
+	);
307 307
 
308
-    foreach ($methods as $method) {
309
-      // Turn GEOS on
310
-      geoPHP::geosInstalled(TRUE);
311
-      $geos_result = $geometry->$method();
308
+	foreach ($methods as $method) {
309
+	  // Turn GEOS on
310
+	  geoPHP::geosInstalled(TRUE);
311
+	  $geos_result = $geometry->$method();
312 312
 
313
-      // Turn GEOS off
314
-      geoPHP::geosInstalled(FALSE);
315
-      $norm_result = $geometry->$method();
313
+	  // Turn GEOS off
314
+	  geoPHP::geosInstalled(FALSE);
315
+	  $norm_result = $geometry->$method();
316 316
 
317
-      // Turn GEOS back On
318
-      geoPHP::geosInstalled(TRUE);
317
+	  // Turn GEOS back On
318
+	  geoPHP::geosInstalled(TRUE);
319 319
 
320
-      $geos_type = gettype($geos_result);
321
-      $norm_type = gettype($norm_result);
320
+	  $geos_type = gettype($geos_result);
321
+	  $norm_type = gettype($norm_result);
322 322
 
323
-      if ($geos_type != $norm_type) {
324
-        $this->fail('Type mismatch on '.$method);
325
-        $this->dump($geos_type);
326
-        $this->dump($norm_type);
327
-        continue;
328
-      }
323
+	  if ($geos_type != $norm_type) {
324
+		$this->fail('Type mismatch on '.$method);
325
+		$this->dump($geos_type);
326
+		$this->dump($norm_type);
327
+		continue;
328
+	  }
329 329
 
330
-      // Now check base on type
331
-      if ($geos_type == 'object') {
332
-        $haus_dist = $geos_result->hausdorffDistance(geoPHP::load($norm_result->out('wkt'),'wkt'));
330
+	  // Now check base on type
331
+	  if ($geos_type == 'object') {
332
+		$haus_dist = $geos_result->hausdorffDistance(geoPHP::load($norm_result->out('wkt'),'wkt'));
333 333
 
334
-        // Get the length of the diagonal of the bbox - this is used to scale the haustorff distance
335
-        // Using Pythagorean theorem
336
-        $bb = $geos_result->getBBox();
337
-        $scale = sqrt((($bb['maxy'] - $bb['miny'])^2) + (($bb['maxx'] - $bb['minx'])^2));
334
+		// Get the length of the diagonal of the bbox - this is used to scale the haustorff distance
335
+		// Using Pythagorean theorem
336
+		$bb = $geos_result->getBBox();
337
+		$scale = sqrt((($bb['maxy'] - $bb['miny'])^2) + (($bb['maxx'] - $bb['minx'])^2));
338 338
 
339
-        // The difference in the output of GEOS and native-PHP methods should be less than 0.5 scaled haustorff units
340
-        if ($haus_dist / $scale > 0.5) {
341
-          $this->fail('Output mismatch on '.$method);
342
-          $this->dump('GEOS : ');
343
-          $this->dump($geos_result->out('wkt'));
344
-          $this->dump('NORM : ');
345
-          $this->dump($norm_result->out('wkt'));
346
-          continue;
347
-        }
348
-      }
339
+		// The difference in the output of GEOS and native-PHP methods should be less than 0.5 scaled haustorff units
340
+		if ($haus_dist / $scale > 0.5) {
341
+		  $this->fail('Output mismatch on '.$method);
342
+		  $this->dump('GEOS : ');
343
+		  $this->dump($geos_result->out('wkt'));
344
+		  $this->dump('NORM : ');
345
+		  $this->dump($norm_result->out('wkt'));
346
+		  continue;
347
+		}
348
+	  }
349 349
 
350
-      if ($geos_type == 'boolean' || $geos_type == 'string') {
351
-        if ($geos_result !== $norm_result) {
352
-          $this->fail('Output mismatch on '.$method);
353
-          $this->dump('GEOS : ');
354
-          $this->dump((string) $geos_result);
355
-          $this->dump('NORM : ');
356
-          $this->dump((string) $norm_result);
357
-          continue;
358
-        }
359
-      }
350
+	  if ($geos_type == 'boolean' || $geos_type == 'string') {
351
+		if ($geos_result !== $norm_result) {
352
+		  $this->fail('Output mismatch on '.$method);
353
+		  $this->dump('GEOS : ');
354
+		  $this->dump((string) $geos_result);
355
+		  $this->dump('NORM : ');
356
+		  $this->dump((string) $norm_result);
357
+		  continue;
358
+		}
359
+	  }
360 360
 
361
-      //@@TODO: Run tests for output of types arrays and float
362
-      //@@TODO: centroid function is non-compliant for collections and strings
363
-    }
361
+	  //@@TODO: Run tests for output of types arrays and float
362
+	  //@@TODO: centroid function is non-compliant for collections and strings
363
+	}
364 364
   }
365 365
 }
Please login to merge, or discard this patch.
require/libs/geoPHP/tests/tests/20120702Test.php 1 patch
Indentation   +268 added lines, -268 removed lines patch added patch discarded remove patch
@@ -9,281 +9,281 @@
 block discarded – undo
9 9
   }
10 10
 
11 11
   function testMethods() {
12
-    $format = 'gpx';
13
-    $value = file_get_contents('./input/20120702.gpx');
14
-    $geometry = geoPHP::load($value, $format);
12
+	$format = 'gpx';
13
+	$value = file_get_contents('./input/20120702.gpx');
14
+	$geometry = geoPHP::load($value, $format);
15 15
 
16
-    $methods = array(
17
-      array('name' => 'area'),
18
-      array('name' => 'boundary'),
19
-      array('name' => 'getBBox'),
20
-      array('name' => 'centroid'),
21
-      array('name' => 'length'),
22
-      array('name' => 'greatCircleLength', 'argument' => 6378137),
23
-      array('name' => 'haversineLength'),
24
-      array('name' => 'y'),
25
-      array('name' => 'x'),
26
-      array('name' => 'numGeometries'),
27
-      array('name' => 'geometryN', 'argument' => '1'),
28
-      array('name' => 'startPoint'),
29
-      array('name' => 'endPoint'),
30
-      array('name' => 'isRing'),
31
-      array('name' => 'isClosed'),
32
-      array('name' => 'numPoints'),
33
-      array('name' => 'pointN', 'argument' => '1'),
34
-      array('name' => 'exteriorRing'),
35
-      array('name' => 'numInteriorRings'),
36
-      array('name' => 'interiorRingN', 'argument' => '1'),
37
-      array('name' => 'dimension'),
38
-      array('name' => 'geometryType'),
39
-      array('name' => 'SRID'),
40
-      array('name' => 'setSRID', 'argument' => '4326'),
41
-    );
16
+	$methods = array(
17
+	  array('name' => 'area'),
18
+	  array('name' => 'boundary'),
19
+	  array('name' => 'getBBox'),
20
+	  array('name' => 'centroid'),
21
+	  array('name' => 'length'),
22
+	  array('name' => 'greatCircleLength', 'argument' => 6378137),
23
+	  array('name' => 'haversineLength'),
24
+	  array('name' => 'y'),
25
+	  array('name' => 'x'),
26
+	  array('name' => 'numGeometries'),
27
+	  array('name' => 'geometryN', 'argument' => '1'),
28
+	  array('name' => 'startPoint'),
29
+	  array('name' => 'endPoint'),
30
+	  array('name' => 'isRing'),
31
+	  array('name' => 'isClosed'),
32
+	  array('name' => 'numPoints'),
33
+	  array('name' => 'pointN', 'argument' => '1'),
34
+	  array('name' => 'exteriorRing'),
35
+	  array('name' => 'numInteriorRings'),
36
+	  array('name' => 'interiorRingN', 'argument' => '1'),
37
+	  array('name' => 'dimension'),
38
+	  array('name' => 'geometryType'),
39
+	  array('name' => 'SRID'),
40
+	  array('name' => 'setSRID', 'argument' => '4326'),
41
+	);
42 42
 
43
-    foreach($methods as $method) {
44
-      $argument = NULL;
45
-      $method_name = $method['name'];
46
-      if (isset($method['argument'])) {
47
-        $argument = $method['argument'];
48
-      }
49
-      $this->_methods_tester($geometry, $method_name, $argument);
50
-    }
43
+	foreach($methods as $method) {
44
+	  $argument = NULL;
45
+	  $method_name = $method['name'];
46
+	  if (isset($method['argument'])) {
47
+		$argument = $method['argument'];
48
+	  }
49
+	  $this->_methods_tester($geometry, $method_name, $argument);
50
+	}
51 51
   }
52 52
 
53 53
   function _methods_tester($geometry, $method_name, $argument) {
54 54
 
55
-    if (!method_exists($geometry, $method_name)) {
56
-      $this->fail("Method ".$method_name.'() doesn\'t exists.');
57
-      return;
58
-    }
55
+	if (!method_exists($geometry, $method_name)) {
56
+	  $this->fail("Method ".$method_name.'() doesn\'t exists.');
57
+	  return;
58
+	}
59 59
 
60
-    switch ($method_name) {
61
-      case 'y':
62
-      case 'x':
63
-        if ($geometry->geometryType() == 'Point') {
64
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
65
-        }
66
-        if ($geometry->geometryType() == 'LineString') {
67
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
68
-        }
69
-        if ($geometry->geometryType() == 'MultiLineString') {
70
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
71
-        }
72
-        break;
73
-      case 'geometryN':
74
-        if ($geometry->geometryType() == 'Point') {
75
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
76
-        }
77
-        if ($geometry->geometryType() == 'LineString') {
78
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
79
-        }
80
-        if ($geometry->geometryType() == 'MultiLineString') {
81
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
82
-        }
83
-        break;
84
-      case 'startPoint':
85
-        if ($geometry->geometryType() == 'Point') {
86
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
87
-        }
88
-        if ($geometry->geometryType() == 'LineString') {
89
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
90
-        }
91
-        if ($geometry->geometryType() == 'MultiLineString') {
92
-          //TODO: Add a method startPoint() to MultiLineString.
93
-          //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
94
-        }
95
-        break;
96
-      case 'endPoint':
97
-        if ($geometry->geometryType() == 'Point') {
98
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
99
-        }
100
-        if ($geometry->geometryType() == 'LineString') {
101
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
102
-        }
103
-        if ($geometry->geometryType() == 'MultiLineString') {
104
-          //TODO: Add a method endPoint() to MultiLineString.
105
-          //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
106
-        }
107
-        break;
108
-      case 'isRing':
109
-        if ($geometry->geometryType() == 'Point') {
110
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
111
-        }
112
-        if ($geometry->geometryType() == 'LineString') {
113
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
114
-        }
115
-        if ($geometry->geometryType() == 'MultiLineString') {
116
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
117
-        }
118
-        break;
119
-      case 'isClosed':
120
-        if ($geometry->geometryType() == 'Point') {
121
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
122
-        }
123
-        if ($geometry->geometryType() == 'LineString') {
124
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
125
-        }
126
-        if ($geometry->geometryType() == 'MultiLineString') {
127
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
128
-        }
129
-        break;
130
-      case 'pointN':
131
-        if ($geometry->geometryType() == 'Point') {
132
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
133
-        }
134
-        if ($geometry->geometryType() == 'LineString') {
135
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
136
-        }
137
-        if ($geometry->geometryType() == 'MultiLineString') {
138
-          //TODO: Add a method pointN() to MultiLineString.
139
-          //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
140
-        }
141
-        break;
142
-      case 'exteriorRing':
143
-        if ($geometry->geometryType() == 'Point') {
144
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
145
-        }
146
-        if ($geometry->geometryType() == 'LineString') {
147
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
148
-        }
149
-        if ($geometry->geometryType() == 'MultiLineString') {
150
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
151
-        }
152
-        break;
153
-      case 'numInteriorRings':
154
-        if ($geometry->geometryType() == 'Point') {
155
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
156
-        }
157
-        if ($geometry->geometryType() == 'LineString') {
158
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
159
-        }
160
-        if ($geometry->geometryType() == 'MultiLineString') {
161
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
162
-        }
163
-        break;
164
-      case 'interiorRingN':
165
-        if ($geometry->geometryType() == 'Point') {
166
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
167
-        }
168
-        if ($geometry->geometryType() == 'LineString') {
169
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
170
-        }
171
-        if ($geometry->geometryType() == 'MultiLineString') {
172
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
173
-        }
174
-        break;
175
-      case 'setSRID':
176
-        //TODO: The method setSRID() should return TRUE.
177
-        break;
178
-      case 'SRID':
179
-        if ($geometry->geometryType() == 'Point') {
180
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
181
-        }
182
-        if ($geometry->geometryType() == 'LineString') {
183
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
184
-        }
185
-        if ($geometry->geometryType() == 'MultiLineString') {
186
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
187
-        }
188
-        break;
189
-      case 'getBBox':
190
-        if ($geometry->geometryType() == 'Point') {
191
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
192
-        }
193
-        if ($geometry->geometryType() == 'LineString') {
194
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
195
-        }
196
-        if ($geometry->geometryType() == 'MultiLineString') {
197
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
198
-        }
199
-        break;
200
-      case 'centroid':
201
-        if ($geometry->geometryType() == 'Point') {
202
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
203
-        }
204
-        if ($geometry->geometryType() == 'LineString') {
205
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
206
-        }
207
-        if ($geometry->geometryType() == 'MultiLineString') {
208
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
209
-        }
210
-        break;
211
-      case 'length':
212
-        if ($geometry->geometryType() == 'Point') {
213
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
214
-        }
215
-        if ($geometry->geometryType() == 'LineString') {
216
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
217
-        }
218
-        if ($geometry->geometryType() == 'MultiLineString') {
219
-          $this->assertEquals($geometry->$method_name($argument), (float) '0.11624637315233', 'Failed on ' . $method_name);
220
-        }
221
-        break;
222
-      case 'numGeometries':
223
-        if ($geometry->geometryType() == 'Point') {
224
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
225
-        }
226
-        if ($geometry->geometryType() == 'LineString') {
227
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
228
-        }
229
-        if ($geometry->geometryType() == 'MultiLineString') {
230
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
231
-        }
232
-        break;
233
-      case 'numPoints':
234
-        if ($geometry->geometryType() == 'Point') {
235
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
236
-        }
237
-        if ($geometry->geometryType() == 'LineString') {
238
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
239
-        }
240
-        if ($geometry->geometryType() == 'MultiLineString') {
241
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
242
-        }
243
-        break;
244
-      case 'dimension':
245
-        if ($geometry->geometryType() == 'Point') {
246
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
247
-        }
248
-        if ($geometry->geometryType() == 'LineString') {
249
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
250
-        }
251
-        if ($geometry->geometryType() == 'MultiLineString') {
252
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
253
-        }
254
-        break;
255
-      case 'boundary':
256
-        if ($geometry->geometryType() == 'Point') {
257
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
258
-        }
259
-        if ($geometry->geometryType() == 'LineString') {
260
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
261
-        }
262
-        if ($geometry->geometryType() == 'MultiLineString') {
263
-          $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
264
-        }
265
-        break;
266
-      case 'greatCircleLength':
267
-        if ($geometry->geometryType() == 'Point') {
268
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
269
-        }
270
-        if ($geometry->geometryType() == 'LineString') {
271
-          $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
272
-        }
273
-        if ($geometry->geometryType() == 'MultiLineString') {
274
-          $this->assertNotEquals($geometry->$method_name($argument), '9500.9359867418', 'Failed on ' . $method_name);
275
-        }
276
-        break;
277
-      case 'haversineLength':
278
-      case 'area':
279
-        $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
280
-        break;
281
-      case 'geometryType':
282
-        $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
283
-        break;
284
-      default:
285
-        $this->assertTrue($geometry->$method_name($argument), 'Failed on ' . $method_name);
286
-    }
60
+	switch ($method_name) {
61
+	  case 'y':
62
+	  case 'x':
63
+		if ($geometry->geometryType() == 'Point') {
64
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
65
+		}
66
+		if ($geometry->geometryType() == 'LineString') {
67
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
68
+		}
69
+		if ($geometry->geometryType() == 'MultiLineString') {
70
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
71
+		}
72
+		break;
73
+	  case 'geometryN':
74
+		if ($geometry->geometryType() == 'Point') {
75
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
76
+		}
77
+		if ($geometry->geometryType() == 'LineString') {
78
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
79
+		}
80
+		if ($geometry->geometryType() == 'MultiLineString') {
81
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
82
+		}
83
+		break;
84
+	  case 'startPoint':
85
+		if ($geometry->geometryType() == 'Point') {
86
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
87
+		}
88
+		if ($geometry->geometryType() == 'LineString') {
89
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
90
+		}
91
+		if ($geometry->geometryType() == 'MultiLineString') {
92
+		  //TODO: Add a method startPoint() to MultiLineString.
93
+		  //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
94
+		}
95
+		break;
96
+	  case 'endPoint':
97
+		if ($geometry->geometryType() == 'Point') {
98
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
99
+		}
100
+		if ($geometry->geometryType() == 'LineString') {
101
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
102
+		}
103
+		if ($geometry->geometryType() == 'MultiLineString') {
104
+		  //TODO: Add a method endPoint() to MultiLineString.
105
+		  //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
106
+		}
107
+		break;
108
+	  case 'isRing':
109
+		if ($geometry->geometryType() == 'Point') {
110
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
111
+		}
112
+		if ($geometry->geometryType() == 'LineString') {
113
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
114
+		}
115
+		if ($geometry->geometryType() == 'MultiLineString') {
116
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
117
+		}
118
+		break;
119
+	  case 'isClosed':
120
+		if ($geometry->geometryType() == 'Point') {
121
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
122
+		}
123
+		if ($geometry->geometryType() == 'LineString') {
124
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
125
+		}
126
+		if ($geometry->geometryType() == 'MultiLineString') {
127
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
128
+		}
129
+		break;
130
+	  case 'pointN':
131
+		if ($geometry->geometryType() == 'Point') {
132
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
133
+		}
134
+		if ($geometry->geometryType() == 'LineString') {
135
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
136
+		}
137
+		if ($geometry->geometryType() == 'MultiLineString') {
138
+		  //TODO: Add a method pointN() to MultiLineString.
139
+		  //$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
140
+		}
141
+		break;
142
+	  case 'exteriorRing':
143
+		if ($geometry->geometryType() == 'Point') {
144
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
145
+		}
146
+		if ($geometry->geometryType() == 'LineString') {
147
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
148
+		}
149
+		if ($geometry->geometryType() == 'MultiLineString') {
150
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
151
+		}
152
+		break;
153
+	  case 'numInteriorRings':
154
+		if ($geometry->geometryType() == 'Point') {
155
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
156
+		}
157
+		if ($geometry->geometryType() == 'LineString') {
158
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
159
+		}
160
+		if ($geometry->geometryType() == 'MultiLineString') {
161
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
162
+		}
163
+		break;
164
+	  case 'interiorRingN':
165
+		if ($geometry->geometryType() == 'Point') {
166
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
167
+		}
168
+		if ($geometry->geometryType() == 'LineString') {
169
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
170
+		}
171
+		if ($geometry->geometryType() == 'MultiLineString') {
172
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
173
+		}
174
+		break;
175
+	  case 'setSRID':
176
+		//TODO: The method setSRID() should return TRUE.
177
+		break;
178
+	  case 'SRID':
179
+		if ($geometry->geometryType() == 'Point') {
180
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
181
+		}
182
+		if ($geometry->geometryType() == 'LineString') {
183
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
184
+		}
185
+		if ($geometry->geometryType() == 'MultiLineString') {
186
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
187
+		}
188
+		break;
189
+	  case 'getBBox':
190
+		if ($geometry->geometryType() == 'Point') {
191
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
192
+		}
193
+		if ($geometry->geometryType() == 'LineString') {
194
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
195
+		}
196
+		if ($geometry->geometryType() == 'MultiLineString') {
197
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
198
+		}
199
+		break;
200
+	  case 'centroid':
201
+		if ($geometry->geometryType() == 'Point') {
202
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
203
+		}
204
+		if ($geometry->geometryType() == 'LineString') {
205
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
206
+		}
207
+		if ($geometry->geometryType() == 'MultiLineString') {
208
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
209
+		}
210
+		break;
211
+	  case 'length':
212
+		if ($geometry->geometryType() == 'Point') {
213
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
214
+		}
215
+		if ($geometry->geometryType() == 'LineString') {
216
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
217
+		}
218
+		if ($geometry->geometryType() == 'MultiLineString') {
219
+		  $this->assertEquals($geometry->$method_name($argument), (float) '0.11624637315233', 'Failed on ' . $method_name);
220
+		}
221
+		break;
222
+	  case 'numGeometries':
223
+		if ($geometry->geometryType() == 'Point') {
224
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
225
+		}
226
+		if ($geometry->geometryType() == 'LineString') {
227
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
228
+		}
229
+		if ($geometry->geometryType() == 'MultiLineString') {
230
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
231
+		}
232
+		break;
233
+	  case 'numPoints':
234
+		if ($geometry->geometryType() == 'Point') {
235
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
236
+		}
237
+		if ($geometry->geometryType() == 'LineString') {
238
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
239
+		}
240
+		if ($geometry->geometryType() == 'MultiLineString') {
241
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
242
+		}
243
+		break;
244
+	  case 'dimension':
245
+		if ($geometry->geometryType() == 'Point') {
246
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
247
+		}
248
+		if ($geometry->geometryType() == 'LineString') {
249
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
250
+		}
251
+		if ($geometry->geometryType() == 'MultiLineString') {
252
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
253
+		}
254
+		break;
255
+	  case 'boundary':
256
+		if ($geometry->geometryType() == 'Point') {
257
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
258
+		}
259
+		if ($geometry->geometryType() == 'LineString') {
260
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
261
+		}
262
+		if ($geometry->geometryType() == 'MultiLineString') {
263
+		  $this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
264
+		}
265
+		break;
266
+	  case 'greatCircleLength':
267
+		if ($geometry->geometryType() == 'Point') {
268
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
269
+		}
270
+		if ($geometry->geometryType() == 'LineString') {
271
+		  $this->assertNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
272
+		}
273
+		if ($geometry->geometryType() == 'MultiLineString') {
274
+		  $this->assertNotEquals($geometry->$method_name($argument), '9500.9359867418', 'Failed on ' . $method_name);
275
+		}
276
+		break;
277
+	  case 'haversineLength':
278
+	  case 'area':
279
+		$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
280
+		break;
281
+	  case 'geometryType':
282
+		$this->assertNotNull($geometry->$method_name($argument), 'Failed on ' . $method_name);
283
+		break;
284
+	  default:
285
+		$this->assertTrue($geometry->$method_name($argument), 'Failed on ' . $method_name);
286
+	}
287 287
   }
288 288
 }
289 289
 
Please login to merge, or discard this patch.