--- a/common.inc.php +++ b/common.inc.php @@ -4,6 +4,7 @@ $cloudmadeAPIkey="daa03470bb8740298d4b10e3f03d63e6"; $googleMapsAPIkey="ABQIAAAA95XYXN0cki3Yj_Sb71CFvBTPaLd08ONybQDjcH_VdYtHHLgZvRTw2INzI_m17_IoOUqH3RNNmlTk1Q"; $otpAPIurl = 'http://localhost:8080/opentripplanner-api-webapp/'; +$owaSiteID = 'fe5b819fa8c424a99ff0764d955d23f3'; if (isDebug()) error_reporting(E_ALL ^ E_NOTICE); // SELECT array_to_string(array(SELECT REPLACE(name_2006, ',', '\,') as name FROM suburbs order by name), ',') @@ -11,20 +12,47 @@ // 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); - if (isset($_REQUEST['time'])) $_SESSION['time'] = filter_var($_REQUEST['time'],FILTER_SANITIZE_STRING); + if (isset($_REQUEST['service_period'])) { + $_SESSION['service_period'] = filter_var($_REQUEST['service_period'],FILTER_SANITIZE_STRING); + } + if (isset($_REQUEST['time'])) { + $_SESSION['time'] = filter_var($_REQUEST['time'],FILTER_SANITIZE_STRING); + } if (isset($_REQUEST['geolocate'])) { - $contents = geocode(var_filter($_REQUEST['geolocate'],FILTER_SANITIZE_URL),true); + $geocoded = false; + if (isset($_REQUEST['lat']) && isset($_REQUEST['lon'])) { + $_SESSION['lat'] = $_REQUEST['lat']; + $_SESSION['lon'] = $_REQUEST['lon']; + } else { + $contents = geocode(filter_var($_REQUEST['geolocate'],FILTER_SANITIZE_URL),true); if (isset($contents[0]->centroid)) { - $session['lat'] = $contents[0]->centroid->coordinates[0]; - $session['lon'] = $contents[0]->centroid->coordinates[1]; - } - else { - $session['lat'] = ""; - $session['lon'] = ""; + $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); } } -//print_r ($_SESSION); +debug(print_r($_SESSION,true)); function isDebug() { return $_SERVER['SERVER_NAME'] == "10.0.1.154" || $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || !$_SERVER['SERVER_NAME']; @@ -32,14 +60,16 @@ function isMetricsOn() { - return true; + return !isDebug(); } function debug($msg) { - if (isDebug()) echo "<!-- $msg -->"; + if (isDebug()) echo "\n<!-- ".date(DATE_RFC822)."\n $msg -->\n"; } function isFastDevice() { + $ua = $_SERVER['HTTP_USER_AGENT']; $fastDevices = Array("Mozilla/5.0 (X11;", "Mozilla/5.0 (Windows;", "Mozilla/5.0 (iP", "Mozilla/5.0 (Linux; U; Android", "Mozilla/4.0 (compatible; MSIE"); + $slowDevices = Array("J2ME","MIDP","Opera/","Mozilla/2.0 (compatible;","Mozilla/3.0 (compatible;"); return true; } @@ -96,7 +126,7 @@ function success(position) { $('#geolocate').val(position.coords.latitude+','+position.coords.longitude); -// setCookie('geolocate',position.coords.latitude+','+position.coords.longitude,1); +$.ajax({ url: \"common.inc.php?geolocate=yes&lat=\"+position.coords.latitude+\"&lon=\"+position.coords.longitude }); $('#here').click(function(event) { $('#geolocate').val(doAJAXrequestForGeolocSessionHere()); return false;}); $('#here').show(); } @@ -117,7 +147,8 @@ require_once('owa/owa_env.php'); require_once(OWA_DIR.'owa_php.php'); $owa = new owa_php(); - $owa->setSiteId('bus.lambdacomplex.org'); + global $owaSiteID; + $owa->setSiteId($owaSiteID); $owa->setPageTitle($pageTitle); $owa->setPageType($pageType); $owa->trackPageView(); @@ -199,7 +230,7 @@ curl_setopt( $ch, CURLOPT_HEADER, 0 ); curl_setopt($ch,CURLOPT_TIMEOUT,30); $page = curl_exec($ch); - if(curl_errno($ch)) echo "<font color=red> Database temporarily unavailable: ".curl_errno($ch)." ".curl_error($ch)."</font>"; + if(curl_errno($ch)) echo "<font color=red> Database temporarily unavailable: ".curl_errno($ch)." ".curl_error($ch)."</font><br>"; curl_close($ch); return $page; } @@ -368,7 +399,7 @@ function geocode($query, $giveOptions) { global $cloudmadeAPIkey; - $url = "http://geocoding.cloudmade.com/$cloudmadeAPIkey/geocoding/v2/find.js?query=".$query."&bbox=-35.5,149.00,-35.15,149.1930&return_location=true&bbox_only=true"; + $url = "http://geocoding.cloudmade.com/$cloudmadeAPIkey/geocoding/v2/find.js?query=".urlencode($query)."&bbox=-35.5,149.00,-35.15,149.1930&return_location=true&bbox_only=true"; $contents = json_decode(getPage($url)); if ($giveOptions) return $contents->features; elseif (isset($contents->features[0]->centroid)) return $contents->features[0]->centroid->coordinates[0].",".$contents->features[0]->centroid->coordinates[1]; @@ -445,11 +476,11 @@ <div class="ui-body"> <div data-role="fieldcontain"> <label for="geolocate"> Current Location: </label> - <input type="text" id="geolocate" name="geolocate" value="Enter co-ordinates or address here"/> <a href="#" style="display:none" name="here" id="here"/>Here?</a> + <input type="text" id="geolocate" name="geolocate" value="'. (isset($_SESSION['lat']) && isset($_SESSION['lon']) ? $_SESSION['lat'] .",". $_SESSION['lon'] :"Enter co-ordinates or address here"). '"/> <a href="#" style="display:none" name="here" id="here"/>Here?</a> </div> <div data-role="fieldcontain"> <label for="time"> Time: </label> - <input type="time" name="time" id="time" value="'. ($_SESSION['time'] ? $_SESSION['time'] : date("H:m")).'"/> <a href="#" name="currentTime" id="currentTime"/>Current Time?</a> + <input type="time" name="time" id="time" value="'. (isset($_SESSION['time']) ? $_SESSION['time'] : date("H:i")).'"/> <a href="#" name="currentTime" id="currentTime"/>Current Time?</a> </div> <div data-role="fieldcontain"> <label for="service_period"> Service Period: </label>