--- a/busui/common.inc.php +++ b/busui/common.inc.php @@ -2,13 +2,15 @@ date_default_timezone_set('Australia/ACT'); $APIurl = "http://localhost:8765"; 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(); function isDebug() { - return $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || !$_SERVER['SERVER_NAME']; + return $_SERVER['SERVER_NAME'] == "10.0.1.154" || $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || !$_SERVER['SERVER_NAME']; } function debug($msg) { @@ -27,17 +29,32 @@ <!DOCTYPE html> <html> <head> - <title>bus.lambdacomplex.org - '.$pageTitle.'</title> + <title>busness time - '.$pageTitle.'</title> '; - if (isDebug()) echo '<link rel="stylesheet" href="jquery-mobile-1.0a2.css" /> - <script type="text/javascript" src="jquery-mobile-1.0a2.js"></script>'; - else echo '<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a2/jquery.mobile-1.0a2.min.css" /> - <script type="text/javascript" src="http://code.jquery.com/mobile/1.0a2/jquery.mobile-1.0a2.min.js"></script>'; + 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>'; + else echo '<link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.css" /> + <script type="text/javascript" src="http://code.jquery.com/jquery-1.5.js"></script> + <script type="text/javascript" src="http://code.jquery.com/mobile/1.0a3/jquery.mobile-1.0a3.js"></script>'; echo ' +<link rel="stylesheet" href="css/jquery.ui.datepicker.mobile.css" /> + <script> + //reset type=date inputs to text + $( document ).bind( "mobileinit", function(){ + $.mobile.page.prototype.options.degradeInputs.date = true; + }); + </script> + <script src="js/jQuery.ui.datepicker.js"></script> + <script src="js/jquery.ui.datepicker.mobile.js"></script> <style type="text/css"> .ui-navbar { padding-bottom: 18px; width: 100%; + } + + .ui-li-heading { + white-space: normal !important; } </style> <meta name="apple-mobile-web-app-capable" content="yes" /> @@ -136,15 +153,22 @@ function midnight_seconds_to_time($seconds) { +if ($seconds > 0) { $midnight = mktime (0, 0, 0, date("n"), date("j"), date("Y")); return date("h:ia",$midnight+$seconds); +} else { +return ""; +} } function getPage($url) { + debug($url); $ch = curl_init($url); curl_setopt( $ch, CURLOPT_RETURNTRANSFER, 1 ); 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>"; curl_close($ch); return $page; } @@ -202,8 +226,11 @@ } $center = $totalLat/sizeof($mapPoints).",".$totalLon/sizeof($mapPoints); } - - return '<img src="staticmaplite/staticmap.php?center='.$center.'&zoom='.$zoom.'&size='.$width.'x'.$height.'&maptype=mapnik&markers='.$markers.'" width='.$width.' height='.$height.'>'; + $output = ""; + $output .= '<div data-role="collapsible" data-collapsed="true"><h3>Open Map...</h3>'; + $output .= '<center><img src="staticmaplite/staticmap.php?center='.$center.'&zoom='.$zoom.'&size='.$width.'x'.$height.'&maptype=mapnik&markers='.$markers.'" width='.$width.' height='.$height.'></center>'; + $output .= '</div>'; + return $output; } function distance($lat1, $lng1, $lat2, $lng2) @@ -331,6 +358,71 @@ if($case){return (strcmp(substr($haystack, strlen($haystack) - strlen($needle)),$needle)===0);} return (strcasecmp(substr($haystack, strlen($haystack) - strlen($needle)),$needle)===0); } +function bracketsMeanNewLine($input) { + return str_replace(")","</small>",str_replace("(","<br><small>",$input)); +} + +function viaPoints($tripid,$stopid, $timingPointsOnly = false) { + global $APIurl; + $url = $APIurl."/json/tripstoptimes?trip=".$tripid; + +$json = json_decode(getPage($url)); +debug(print_r($json,true)); +$stops = $json[0]; +$times = $json[1]; +$foundStop = false; +$viaPoints = Array(); +foreach ($stops as $key => $row) +{ + if ($foundStop) { + if (!$timingPointsOnly || !startsWith($row[5],"Wj") ) { + $viaPoints[] = Array("id" => $row[0], "name" => $row[1], "time" => $times[$key]); + } + } else { + if ($row[0] == $stopid) $foundStop = true; + } +} + return $viaPoints; +} + +function viaPointNames($tripid,$stopid) { + $points = viaPoints($tripid,$stopid,true); + $pointNames = Array(); + foreach ($points as $point) { + $pointNames[] = $point['name']; + } + return implode(", ",$pointNames); +} + +function timePlaceSettings() { + global $service_periods; + echo '<div data-role="collapsible" data-collapsed="true"> + <h3>Change Time/Place...</h3> + <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> + </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> + </div> + <div data-role="fieldcontain"> + <label for="service_period"> Service Period: </label> + <select name="service_period">'; + + foreach ($service_periods as $service_period) { + echo "<option value=\"$service_period\"".(service_period() === $service_period ? "SELECTED" : "").'>'.ucwords($service_period).'</option>'; + } + echo '</select> + <a href="#" style="display:none" name="currentPeriod" id="currentPeriod"/>Current Period?</a> + </div> + + <input type="submit" value="Update"/> + </div></div>'; +echo " <script> +$('#here').click(function(event) { $('#geolocate').val(getCookie('geolocate')); return false;}); +$('#here').show(); + </script>"; +} ?> - -