--- a/common.inc.php +++ b/common.inc.php @@ -4,12 +4,12 @@ $cloudmadeAPIkey = "daa03470bb8740298d4b10e3f03d63e6"; $googleMapsAPIkey = "ABQIAAAA95XYXN0cki3Yj_Sb71CFvBTPaLd08ONybQDjcH_VdYtHHLgZvRTw2INzI_m17_IoOUqH3RNNmlTk1Q"; $otpAPIurl = 'http://localhost:8080/opentripplanner-api-webapp/'; -$owaSiteID = 'fe5b819fa8c424a99ff0764d955d23f3'; //$debugOkay = Array("session","json","phperror","other"); $debugOkay = Array( "session", "json", - "phperror" + "phperror", + "other" ); if (isDebug("phperror")) error_reporting(E_ALL ^ E_NOTICE); include_once ("common-geo.inc.php"); @@ -27,36 +27,30 @@ if (isset($_REQUEST['geolocate'])) { $geocoded = false; if (isset($_REQUEST['lat']) && isset($_REQUEST['lon'])) { - $_SESSION['lat'] = filter_var($_REQUEST['lat'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); - $_SESSION['lon'] = filter_var($_REQUEST['lon'], FILTER_SANITIZE_NUMBER_FLOAT, FILTER_FLAG_ALLOW_FRACTION); + $_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 { - $contents = geocode(filter_var($_REQUEST['geolocate'], FILTER_SANITIZE_URL) , true); - if (isset($contents[0]->centroid)) { - $geocoded = true; - $_SESSION['lat'] = $contents[0]->centroid->coordinates[0]; - $_SESSION['lon'] = $contents[0]->centroid->coordinates[1]; + $geolocate = filter_var($_REQUEST['geolocate'], FILTER_SANITIZE_URL); + echo $_REQUEST['geolocate']; + if (startsWith($geolocate, "-")) { + $locateparts = explode(",", $geolocate); + $_SESSION['lat'] = $locateparts[0]; + $_SESSION['lon'] = $locateparts[1]; } else { - $_SESSION['lat'] = ""; - $_SESSION['lon'] = ""; + $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'] != "" && isMetricsOn()) { - // Create a new Instance of the tracker - $owa = new owa_php($config); - // Set the ID of the site being tracked - $owa->setSiteId($owaSiteID); - // Create a new event object - $event = $owa->makeEvent(); - // Set the Event Type, in this case a "video_play" - $event->setEventType('geolocate'); - // Set a property - $event->set('lat', $_SESSION['lat']); - $event->set('lon', $_SESSION['lon']); - $event->set('geocoded', $geocoded); - // Track the event - $owa->trackEvent($event); } } debug(print_r($_SESSION, true) , "session"); @@ -69,13 +63,34 @@ global $debugOkay; return in_array($debugReason, $debugOkay, false) && isDebugServer(); } -function isMetricsOn() -{ - return !isDebugServer(); -} function debug($msg, $debugReason = "other") { if (isDebug($debugReason)) echo "\n<!-- " . date(DATE_RFC822) . "\n $msg -->\n"; +} +function isJQueryMobileDevice() +{ + // http://forum.jquery.com/topic/what-is-the-best-way-to-detect-all-useragents-which-can-handle-jquery-mobile#14737000002087897 + $user_agent = $_SERVER['HTTP_USER_AGENT']; + return preg_match('/iphone/i', $user_agent) + || preg_match('/android/i', $user_agent) + || preg_match('/webos/i', $user_agent) + || preg_match('/ios/i', $user_agent) + || preg_match('/bada/i', $user_agent) + || preg_match('/maemo/i', $user_agent) + || preg_match('/meego/i', $user_agent) + || preg_match('/fennec/i', $user_agent) + || (preg_match('/symbian/i', $user_agent) + && preg_match('/s60/i', $user_agent) + && $browser['majorver'] >= 5) + || (preg_match('/symbian/i', $user_agent) + && preg_match('/platform/i', $user_agent) + && $browser['majorver'] >= 3) + || (preg_match('/blackberry/i', $user_agent) + && $browser['majorver'] >= 5) + || (preg_match('/opera mobile/i', $user_agent) + && $browser['majorver'] >= 10) + || (preg_match('/opera mini/i', $user_agent) + && $browser['majorver'] >= 5); } function isFastDevice() { @@ -139,5 +154,27 @@ { return str_replace(")", "</small>", str_replace("(", "<br><small>", $input)); } +function sksort(&$array, $subkey = "id", $sort_ascending = false) +{ + if (count($array)) $temp_array[key($array) ] = array_shift($array); + foreach ($array as $key => $val) { + $offset = 0; + $found = false; + foreach ($temp_array as $tmp_key => $tmp_val) { + if (!$found and strtolower($val[$subkey]) > strtolower($tmp_val[$subkey])) { + $temp_array = array_merge((array)array_slice($temp_array, 0, $offset) , array( + $key => $val + ) , array_slice($temp_array, $offset)); + $found = true; + } + $offset++; + } + if (!$found) $temp_array = array_merge($temp_array, array( + $key => $val + )); + } + if ($sort_ascending) $array = array_reverse($temp_array); + else $array = $temp_array; +} ?>