--- a/busui/common.inc.php +++ b/busui/common.inc.php @@ -1,14 +1,33 @@ 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'] == "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) { @@ -19,22 +38,40 @@ } function include_header($pageTitle, $opendiv = true, $geolocate = false) { - // if (isDebug()) // set php error level high echo ' - bus.lambdacomplex.org - '.$pageTitle.' + busness time - '.$pageTitle.' '; - if (isDebug()) echo ' - '; - else echo ' - '; + if (isDebug()) echo ' + + '; + else echo ' + + '; echo ' + + + + @@ -44,35 +81,12 @@ if ($geolocate) { echo ""; + } + echo ''; } $service_periods = Array ('sunday','saturday','weekday'); @@ -125,7 +147,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"); @@ -133,15 +155,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 " Database temporarily unavailable: ".curl_errno($ch)." ".curl_error($ch).""; curl_close($ch); return $page; } @@ -199,8 +228,11 @@ } $center = $totalLat/sizeof($mapPoints).",".$totalLon/sizeof($mapPoints); } - - return ''; + $output = ""; + $output .= '

Open Map...

'; + $output .= '
'; + $output .= '
'; + return $output; } function distance($lat1, $lng1, $lat2, $lng2) @@ -306,7 +338,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]; @@ -314,7 +347,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; } @@ -328,6 +362,79 @@ 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(")","",str_replace("(","
",$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($geolocate = false) { + global $service_periods; + $geoerror = false; + if ($geolocate == true) { + $geoerror = !isset($_SESSION['lat']) || !isset($_SESSION['lat']) + || $_SESSION['lat'] == "" || $_SESSION['lon'] == ""; + } + if ($geoerror) { + echo '
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.
'; + } + echo '
+

Change Time/Place...

+
+
+
+ + +
+
+ + Current Time? +
+
+ + + +
+ + + +
'; +} ?> - -