--- a/busui/common.inc.php +++ b/busui/common.inc.php @@ -1,36 +1,55 @@ <?php date_default_timezone_set('Australia/ACT'); $APIurl = "http://localhost:8765"; -error_reporting(E_ALL ^ E_NOTICE); +$cloudmadeAPIkey="daa03470bb8740298d4b10e3f03d63e6"; +$googleMapsAPIkey="ABQIAAAA95XYXN0cki3Yj_Sb71CFvBTPaLd08ONybQDjcH_VdYtHHLgZvRTw2INzI_m17_IoOUqH3RNNmlTk1Q"; +$otpAPIurl = 'http://10.1.0.243:5080/opentripplanner-api-webapp/'; +if (isDebug()) error_reporting(E_ALL ^ E_NOTICE); // SELECT array_to_string(array(SELECT REPLACE(name_2006, ',', '\,') as name FROM suburbs order by name), ',') $suburbs = explode(",","Acton,Ainslie,Amaroo,Aranda,Banks,Barton,Belconnen,Bonner,Bonython,Braddon,Bruce,Calwell,Campbell,Chapman,Charnwood,Chifley,Chisholm,City,Conder,Cook,Curtin,Deakin,Dickson,Downer,Duffy,Dunlop,Evatt,Fadden,Farrer,Fisher,Florey,Flynn,Forrest,Franklin,Fraser,Fyshwick,Garran,Gilmore,Giralang,Gordon,Gowrie,Greenway,Griffith,Gungahlin,Hackett,Hall,Harrison,Hawker,Higgins,Holder,Holt,Hughes,Hume,Isaacs,Isabella Plains,Kaleen,Kambah,Kingston,Latham,Lawson,Lyneham,Lyons,Macarthur,Macgregor,Macquarie,Mawson,McKellar,Melba,Mitchell,Monash,Narrabundah,Ngunnawal,Nicholls,Oaks Estate,O'Connor,O'Malley,Oxley,Page,Palmerston,Parkes,Pearce,Phillip,Pialligo,Red Hill,Reid,Richardson,Rivett,Russell,Scullin,Spence,Stirling,Symonston,Tharwa,Theodore,Torrens,Turner,Wanniassa,Waramanga,Watson,Weetangera,Weston,Yarralumla"); // you have to open the session to be able to modify or remove it -session_start(); +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['geolocate'])) { + $contents = geocode(var_filter($_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'] = ""; + } + } +//print_r ($_SESSION); function isDebug() { return $_SERVER['SERVER_NAME'] == "10.0.1.154" || $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || !$_SERVER['SERVER_NAME']; +} + +function isMetricsOn() +{ + return true; } function debug($msg) { if (isDebug()) echo "<!-- $msg -->"; } function isFastDevice() { + $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; } -function include_header($pageTitle, $opendiv = true, $geolocate = false) { - // this starts the session - session_start(); - - // if (isDebug()) // set php error level high +function include_header($pageTitle, $pageType, $opendiv = true, $geolocate = false) { echo ' <!DOCTYPE html> <html> <head> - <title>busness time - '.$pageTitle.'</title> - '; + <title>'.$pageTitle.'</title>'; if (isDebug()) echo '<link rel="stylesheet" href="css/jquery-mobile-1.0a3.css" /> <script type="text/javascript" src="js/jquery-1.5.js"></script> <script type="text/javascript" src="js/jquery-mobile-1.0a3.js"></script>'; @@ -49,13 +68,24 @@ <script src="js/jquery.ui.datepicker.mobile.js"></script> <style type="text/css"> .ui-navbar { - padding-bottom: 18px; width: 100%; } - + .ui-btn-inner { + white-space: normal !important; + } .ui-li-heading { white-space: normal !important; } + .ui-listview-filter { + margin: 0 !important; + } + #footer { + text-size: 0.75em; + text-align: center; + } + body { + background-color: #F0F0F0; + } </style> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="black" /> @@ -64,35 +94,12 @@ if ($geolocate) { echo "<script> -function setCookie(c_name,value,expiredays) -{ -var exdate=new Date(); -exdate.setDate(exdate.getDate()+expiredays); -document.cookie=c_name+ \"=\" +escape(value)+ -((expiredays==null) ? \"\" : \";expires=\"+exdate.toUTCString()); -} - -function getCookie(c_name) -{ -if (document.cookie.length>0) - { - c_start=document.cookie.indexOf(c_name + \"=\"); - if (c_start!=-1) - { - c_start=c_start + c_name.length+1; - c_end=document.cookie.indexOf(\";\",c_start); - if (c_end==-1) c_end=document.cookie.length; - return unescape(document.cookie.substring(c_start,c_end)); - } - } -return \"\"; -} - function success(position) { $('#geolocate').val(position.coords.latitude+','+position.coords.longitude); -setCookie('geolocate',position.coords.latitude+','+position.coords.longitude,1); -} - +// setCookie('geolocate',position.coords.latitude+','+position.coords.longitude,1); +$('#here').click(function(event) { $('#geolocate').val(doAJAXrequestForGeolocSessionHere()); return false;}); +$('#here').show(); +} function error(msg) { console.log(msg); } @@ -103,19 +110,43 @@ </script> "; } -echo '</head> -<body> +echo '</head> +<body> '; -if ($opendiv) echo '<div data-role="page"> - + if (isMetricsOn()) { + require_once('owa/owa_env.php'); + require_once(OWA_DIR.'owa_php.php'); + $owa = new owa_php(); + $owa->setSiteId('bus.lambdacomplex.org'); + $owa->setPageTitle($pageTitle); + $owa->setPageType($pageType); + $owa->trackPageView(); + $owa->placeHelperPageTags(); + } + +if ($opendiv) { + echo '<div data-role="page"> + <script> +$(document).ready(function () +{ + document.title = "'.$pageTitle.'"; +}); +</script> <div data-role="header"> <h1>'.$pageTitle.'</h1> </div><!-- /header --> <div data-role="content"> '; } - +} function include_footer() { + if ($geolocate && isset($_SESSION['lat'])) { + echo "<script> + $('#here').click(function(event) { $('#geolocate').val(doAJAXrequestForGeolocSessionHere()); return false;}); +$('#here').show(); +</script>"; + } + echo '<div id="footer"><a href="about.php">About/Contact Us</a> <a href="feedback.php">Feedback/Bug Report</a></a>'; echo '</div>'; } @@ -145,7 +176,7 @@ { // from http://www.perturb.org/display/Perlfunc__Seconds_Since_Midnight.html if (isset($_SESSION['time'])) { - $time = mkdate($_SESSION['time']); + $time = strtotime($_SESSION['time']); return (date("G",$time) * 3600) + (date("i",$time) * 60) + date("s",$time); } return (date("G") * 3600) + (date("i") * 60) + date("s"); @@ -336,7 +367,8 @@ } function geocode($query, $giveOptions) { - $url = "http://geocoding.cloudmade.com/daa03470bb8740298d4b10e3f03d63e6/geocoding/v2/find.js?query=".$query."&bbox=-35.5,149.00,-35.15,149.1930&return_location=true&bbox_only=true"; + 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"; $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]; @@ -344,7 +376,8 @@ } function reverseGeocode($lat,$lng) { - $url = "http://geocoding.cloudmade.com/daa03470bb8740298d4b10e3f03d63e6/geocoding/v2/find.js?around=".$lat.",".$lng."&distance=closest&object_type=road"; + global $cloudmadeAPIkey; + $url = "http://geocoding.cloudmade.com/$cloudmadeAPIkey/geocoding/v2/find.js?around=".$lat.",".$lng."&distance=closest&object_type=road"; $contents = json_decode(getPage($url)); return $contents->features[0]->properties->name; } @@ -394,10 +427,21 @@ return implode(", ",$pointNames); } -function timePlaceSettings() { +function timePlaceSettings($geolocate = false) { global $service_periods; - echo '<div data-role="collapsible" data-collapsed="true"> + $geoerror = false; + if ($geolocate == true) { + $geoerror = !isset($_SESSION['lat']) || !isset($_SESSION['lat']) + || $_SESSION['lat'] == "" || $_SESSION['lon'] == ""; + } + if ($geoerror) { + echo '<div class="error">Sorry, but your location could not currently be detected. + Please allow location permission, wait for your location to be detected, + or enter an address/co-ordinates in the box below.</div>'; + } + echo '<div data-role="collapsible" data-collapsed="'.!$geoerror.'"> <h3>Change Time/Place...</h3> + <form action="" method="post"> <div class="ui-body"> <div data-role="fieldcontain"> <label for="geolocate"> Current Location: </label> @@ -405,7 +449,7 @@ </div> <div data-role="fieldcontain"> <label for="time"> Time: </label> - <input type="time" value="'. date("H:m").'"/> <a href="#" style="display:none" name="currentTime" id="currentTime"/>Current Time?</a> + <input type="time" name="time" id="time" value="'. ($_SESSION['time'] ? $_SESSION['time'] : date("H:m")).'"/> <a href="#" name="currentTime" id="currentTime"/>Current Time?</a> </div> <div data-role="fieldcontain"> <label for="service_period"> Service Period: </label> @@ -419,10 +463,7 @@ </div> <input type="submit" value="Update"/> + </form> </div></div>'; -echo " <script> -$('#here').click(function(event) { $('#geolocate').val(getCookie('geolocate')); return false;}); -$('#here').show(); - </script>"; } ?>