Refactor stop time interpolation
[busui.git] / include / common-session.inc.php
blob:a/include/common-session.inc.php -> blob:b/include/common-session.inc.php
--- a/include/common-session.inc.php
+++ b/include/common-session.inc.php
@@ -1,56 +1,73 @@
 <?php
+
+/*
+ *    Copyright 2010,2011 Alexander Sadleir 
+
+  Licensed under the Apache License, Version 2.0 (the 'License');
+  you may not use this file except in compliance with the License.
+  You may obtain a copy of the License at
+
+  http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an 'AS IS' BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+ */
 // you have to open the session to be able to modify or remove it
 session_start();
-if (isset($_REQUEST['service_period'])) {
-	$_SESSION['service_period'] = filter_var($_REQUEST['service_period'], FILTER_SANITIZE_STRING);
-	sessionUpdated();
+if (isset($_REQUEST['geolocate']) && $_REQUEST['geolocate'] != 'Enter co-ordinates or address here') {
+    $geocoded = false;
+    if (isset($_REQUEST['lat']) && isset($_REQUEST['lon'])) {
+        $_SESSION['lat'] = trim(filter_var($_REQUEST['lat'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
+        $_SESSION['lon'] = trim(filter_var($_REQUEST['lon'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
+    } else {
+        if (startsWith($geolocate, '-')) {
+            $locateparts = explode(',', $geolocate);
+            $_SESSION['lat'] = $locateparts[0];
+            $_SESSION['lon'] = $locateparts[1];
+        } else if (strpos($geolocate, '(') !== false) {
+            $geoParts = explode('(', $geolocate);
+            $locateparts = explode(',', str_replace(')', '', $geoParts[1]));
+            $_SESSION['lat'] = $locateparts[0];
+            $_SESSION['lon'] = $locateparts[1];
+        } else {
+            $contents = geocode($geolocate, true);
+            print_r($contents);
+            if (isset($contents[0]->centroid)) {
+                $geocoded = true;
+                $_SESSION['lat'] = $contents[0]->centroid->coordinates[0];
+                $_SESSION['lon'] = $contents[0]->centroid->coordinates[1];
+            } else {
+                $_SESSION['lat'] = '';
+                $_SESSION['lon'] = '';
+            }
+        }
+    }
+    sessionUpdated();
 }
-if (isset($_REQUEST['time'])) {
-	$_SESSION['time'] = filter_var($_REQUEST['time'], FILTER_SANITIZE_STRING);
-	sessionUpdated();
+
+function sessionUpdated() {
+    $_SESSION['lastUpdated'] = time();
 }
-if (isset($_REQUEST['geolocate']) && $_REQUEST['geolocate'] != "Enter co-ordinates or address here") {
-	$geocoded = false;
-	if (isset($_REQUEST['lat']) && isset($_REQUEST['lon'])) {
-		$_SESSION['lat'] = trim(filter_var($_REQUEST['lat'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
-		$_SESSION['lon'] = trim(filter_var($_REQUEST['lon'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION));
-	}
-	else {
-		$geolocate = filter_var($_REQUEST['geolocate'], FILTER_SANITIZE_URL);
-		if (startsWith($geolocate, "-")) {
-			$locateparts = explode(",", $geolocate);
-			$_SESSION['lat'] = $locateparts[0];
-			$_SESSION['lon'] = $locateparts[1];
-		}
-		else {
-			$contents = geocode($geolocate, true);
-			print_r($contents);
-			if (isset($contents[0]->centroid)) {
-				$geocoded = true;
-				$_SESSION['lat'] = $contents[0]->centroid->coordinates[0];
-				$_SESSION['lon'] = $contents[0]->centroid->coordinates[1];
-			}
-			else {
-				$_SESSION['lat'] = "";
-				$_SESSION['lon'] = "";
-			}
-		}
-	}
-	if ($_SESSION['lat'] != "" && isAnalyticsOn()) {
-		trackEvent("Geolocation","Updated Location", "Geocoded - ".($geocoded ? "Yes" : "No"));
-	}
-	sessionUpdated();
+
+// timeoutSession
+$TIMEOUT_LIMIT = 60 * 5; // 5 minutes
+if (isset($_SESSION['lastUpdated']) && $_SESSION['lastUpdated'] + $TIMEOUT_LIMIT < time()) {
+    debug('Session timeout ' . ($_SESSION['lastUpdated'] + $TIMEOUT_LIMIT) . '>' . time(), 'session');
+    session_destroy();
+    session_start();
 }
-function sessionUpdated() {
-	$_SESSION['lastUpdated'] = time();
+
+//debug(print_r($_SESSION, true) , 'session');
+function current_time($time = '') {
+    if (isset($_REQUEST['time']))
+        return $_REQUEST['time'];
+    else if ($time != '')
+        date('H:i:s', $time);
+    else
+        return date('H:i:s');
 }
-// timeoutSession
-$TIMEOUT_LIMIT = 60*5; // 5 minutes
-if (isset($_SESSION['lastUpdated']) && $_SESSION['lastUpdated']+$TIMEOUT_LIMIT < time()) {
-	debug ("Session timeout ".($_SESSION['lastUpdated']+$TIMEOUT_LIMIT).">".time(),"session");
-	session_destroy();
-	session_start();
-}
-debug(print_r($_SESSION, true) , "session");
 
-?>
+