From: Maxious Date: Sun, 26 Feb 2012 04:22:21 +0000 Subject: Fix myway_timeliness_route X-Git-Url: http://maxious.lambdacomplex.org/git/?p=busui.git&a=commitdiff&h=e5c6822ca0ed5f53c851987c1ccc212f46c8def7 --- Fix myway_timeliness_route --- --- /dev/null +++ b/.gitmodules @@ -1,1 +1,4 @@ +[submodule "lib/amon-php"] + path = lib/amon-php + url = https://github.com/martinrusev/amon-php.git --- a/about.php +++ b/about.php @@ -20,8 +20,8 @@

Busness Time - An ACT bus timetable webapp
Based on the maxious-canberra-transit-feed (download, - last updated )
+ href="http://busresources.lambdacomplex.org/cbrfeed.zip">download, + last updated )
Source code for the transit feed and this --- a/aws/busuidb.sh +++ b/aws/busuidb.sh @@ -8,10 +8,12 @@ #createuser transitdata -SDRP #password transitdata #psql -d transitdata -c "GRANT SELECT ON TABLE agency,calendar,calendar_dates,routes,stop_times,stops,trips TO transitdata;" -#psql -d transitdata -c "GRANT SELECT,INSERT ON TABLE myway_observations,myway_routes,myway_stops,myway_timingdeltas TO transitdata;" -#psql -d transitdata -c "GRANT SELECT,INSERT,UPDATE ON TABLE myway_routes,myway_stops TO transitdata;" +#psql -d transitdata -c "GRANT SELECT,INSERT ON TABLE myway_observations,myway_timingdeltas,myway_routes,myway_stops TO transitdata;" +#psql -d transitdata -c "GRANT SELECT,INSERT,UPDATE ON TABLE servicealerts_alerts,servicealerts_informed TO transitdata;" +#psql -d transitdata -c "GRANT USAGE,SELECT ON SEQUENCE servicealerts_alerts_id_seq TO transitdata;" ##psql -d transitdata -c "GRANT SELECT ON ALL TABLES IN SCHEMA public TO transitdata;" ## INSERT INTO geometry_columns(f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, "type") ##SELECT '', 'public', 'shapes', 'shape_pt', ST_CoordDim(shape_pt), ST_SRID(shape_pt), GeometryType(shape_pt) ##FROM shapes LIMIT 1; php /var/www/updatedb.php + --- a/css/local.css.php +++ b/css/local.css.php @@ -55,7 +55,7 @@ visibility: hidden; display: none; } - #servicewarning { + .servicewarning { padding: 1em; margin-bottom: 0.5em; text-size: 0.2em; --- a/feedback.php +++ b/feedback.php @@ -67,7 +67,7 @@ echo "\nServer host/IP: ".php_uname("n"); echo "\nCurrent date/time: ". date("c"); echo "\nCurrent code revision: ".exec("git rev-parse --short HEAD"); - echo "\nCurrent timetables version: ".date("c",@filemtime('cbrfeed.zip')); + echo "\nCurrent timetables version: ".date("c",@filemtime('../busresources/cbrfeed.zip')); echo "\nDump of session: ".print_r($_SESSION,true); ?> --- a/geo/route.kml.php +++ b/geo/route.kml.php @@ -1,31 +1,105 @@ '; echo ' - + + + '; + + + '; $route = getRoute($routeid); echo "\n\n"; +$_REQUEST['time'] = "12:00"; +$trip = getRouteNextTrip($routeid, 0); +$link = curPageURL() . "/../trip.php?routeid=" . htmlspecialchars($route["route_id"]. "&directionid=0&tripid=".$trip['trip_id']) ; +echo "" . $route['route_short_name'] . " Direction 0 "; +echo ''; +echo '' . $route['route_short_name'] . " Direction 0]]> "; +echo "#yellowLineYellowPoly"; -$link = curPageURL() . "/../trip.php?routeid=" . htmlspecialchars($route["route_id"]); -echo "" . $route['route_short_name'] . ""; -echo ''; -echo '' . $route['route_short_name'] . " " . $route['route_long_name'] . "]]> "; -echo "#yellowLineGreenPoly"; -$trip = getRouteNextTrip($routeid); echo getTripShape($trip['trip_id']); + echo "\n"; +$stops = Array(); +foreach (getTripStops($trip['trip_id']) as $stop) { + $stop['style'] = "#ylw-pushpin"; + $stops[$stop['stop_id']] = $stop; +} -echo "\n\n"; + +echo "\n\n"; +$trip = getRouteNextTrip($routeid, 1); +$link = curPageURL() . "/../trip.php?routeid=" . htmlspecialchars($route["route_id"]. "&directionid=1&tripid=".$trip['trip_id']) ; +echo "" . $route['route_short_name'] . " Direction 1 "; +echo ''; +echo '' . $route['route_short_name'] . " Direction 1]]> "; +echo "#blueLineBluePoly"; + +echo getTripShape($trip['trip_id']); + echo "\n"; +foreach (getTripStops($trip['trip_id']) as $stop) { + if (isset($stops[$stop['stop_id']])) { + $stop['style'] = "#grn-pushpin"; + } else { + $stop['style'] = "#blue-pushpin"; + } + $stops[$stop['stop_id']] = $stop; +} +foreach ($stops as $stop) { + echo "\n\n"; + $link = curPageURL() . '/../stop.php?stopid=' . htmlspecialchars($stop['stop_id']); + echo "" . htmlspecialchars($stop['stop_name']) . ""; + echo ''; + echo '' . htmlspecialchars($stop['stop_name']) . "]]> "; + echo "" . $stop['style'] . ""; + echo $stop['positionkml']; + echo "\n"; +} + +echo "\n"; ?> --- a/geo/stops.kml.php +++ b/geo/stops.kml.php @@ -1,6 +1,8 @@ "; + $description = 'View stop page
'; // Creates a Placemark and append it to the Document. $node = $dom->createElement('Placemark'); $placeNode = $docNode->appendChild($node); --- a/geo/trip.kml.php +++ b/geo/trip.kml.php @@ -1,10 +1,37 @@ '; echo ' + + + '; echo ''; - if (isIOSDevice()){ + if (isIOSDevice()) { echo ' @@ -174,19 +173,41 @@

'; if ($GTFSREnabled) { - $overrides = getServiceOverride(); - if (isset($overrides['service_id'])) { - if ($overrides['service_id'] == "noservice") { - echo '
Buses are not running today due to industrial action/public holiday. See Buses are not running today due to industrial action/public holiday. See http://www.action.act.gov.au for details.
'; - } else { - echo '
Buses are running on an altered timetable today due to industrial action/public holiday. See http://www.action.act.gov.au for details.
'; - } - } - $serviceAlerts = getServiceAlertsAsArray("agency", "0"); + } else { + echo '
Buses are running on an altered timetable today due to industrial action/public holiday. See http://www.action.act.gov.au for details.
'; + } + } + $serviceAlerts = Array(); + $globalAlerts = getServiceAlertsAsArray("agency", "0"); + if ($globalAlerts != null) { + // echo "getting alerts due to network wide"; + $serviceAlerts = array_merge($serviceAlerts, $globalAlerts); + } + if (isset($stopid)) { + $stopAlerts = getServiceAlertsAsArray("stop", $stopid); + if ($stopAlerts != null) { + // echo "getting alerts due to stop $stopid"; + $serviceAlerts = array_merge($serviceAlerts, $stopAlerts); + } + } + if (isset($routeid)) { + $routeAlerts = getServiceAlertsAsArray("route", $routeid); + if ($routeAlerts != null) { + // echo "getting alerts due to route $routeid"; + $serviceAlerts = array_merge($serviceAlerts, $routeAlerts); + } + } if (isset($serviceAlerts['entity']) && sizeof($serviceAlerts['entity']) > 0) { foreach ($serviceAlerts['entity'] as $entity) { - echo "
" . date("F j, g:i a", strtotime($entity['alert']['active_period'][0]['start'])) . " to " . date("F j, g:i a", strtotime($entity['alert']['active_period'][0]['end'])) . "{$entity['alert']['header_text']['translation'][0]['text']}
Warning: {$entity['alert']['description_text']['translation'][0]['text']} + echo "
{$entity['alert']['header_text']['translation'][0]['text']} " + . date("F jS Y, g:i a", $entity['alert']['active_period'][0]['start']) . " to " + . date("F jS Y, g:i a", $entity['alert']['active_period'][0]['end']) . " +
Warning: {$entity['alert']['description_text']['translation'][0]['text']}
Source
"; } } @@ -208,13 +229,14 @@ s.parentNode.insertBefore(ga, s); })();"; $googleAnalyticsImageUrl = googleAnalyticsGetImageUrl(); - echo ''; + echo ''; } echo "\n
"; } + function timeSettings() { global $service_periods; -echo '
+ echo '

Change Time (' . (isset($_REQUEST['time']) ? $_REQUEST['time'] : "Current Time,") . ' ' . ucwords(service_period()) . ')...

@@ -230,10 +252,10 @@
+ foreach ($service_periods as $service_period) { + echo "'; + } + echo '
@@ -241,8 +263,9 @@
'; } + function placeSettings() { - + $geoerror = false; $geoerror = !isset($_SESSION['lat']) || !isset($_SESSION['lat']) || $_SESSION['lat'] == "" || $_SESSION['lon'] == ""; @@ -275,14 +298,15 @@ //stop list collapsing function stopCompare($stopName) { - return substr(trim(preg_replace("/\(Platform.*/", "", $stopName)),0,9); -} -function stopGroupTitle($stopName,$stopdesc) { - if (preg_match("/Dr |Cct |Cir |Av |St |Cr |Parade |Way |Bank /",$stopName)) { - $descParts = explode("
",$stopdesc); - return trim(str_replace("Street: ","",$descParts[0])); + return substr(trim(preg_replace("/\(Platform.*/", "", $stopName)), 0, 9); +} + +function stopGroupTitle($stopName, $stopdesc) { + if (preg_match("/Dr |Cct |Cir |Av |St |Cr |Parade |Way |Bank /", $stopName)) { + $descParts = explode("
", $stopdesc); + return trim(str_replace("Street: ", "", $descParts[0])); } else { - return trim(preg_replace("/\(Platform.*/", "",$stopName)); + return trim(preg_replace("/\(Platform.*/", "", $stopName)); } } @@ -304,5 +328,4 @@ return ""; } } -?> - + --- a/include/common-transit.inc.php +++ b/include/common-transit.inc.php @@ -149,69 +149,104 @@ street inform: route inform, trip inform, stop inform route patch: trip remove */ - $fm = new transit_realtime\FeedMessage(); - $fh = new transit_realtime\FeedHeader(); - $fh->setGtfsRealtimeVersion(1); - $fh->setTimestamp(time()); - $fm->setHeader($fh); - foreach (getCurrentAlerts() as $alert) { - $fe = new transit_realtime\FeedEntity(); - $fe->setId($alert['id']); - $fe->setIsDeleted(false); - $alert = new transit_realtime\Alert(); - $tr = new transit_realtime\TimeRange(); - $tr->setStart($alert['start']); - $tr->setEnd($alert['end']); - $alert->addActivePeriod($tr); - $informedEntities = getInformedAlerts($alert['id'], $_REQUEST['filter_class'], $_REQUEST['filter_id']); - if (sizeof($informedEntities) > 0) { - $informed = Array(); - $es = new transit_realtime\EntitySelector(); - if ($informedEntity['informed_class'] == "agency") { - $es->setAgencyId($informedEntity['informed_id']); - } - if ($informedEntity['informed_class'] == "stop") { - $es->setStopId($informedEntity['informed_id']); - } - if ($informedEntity['informed_class'] == "route") { - $es->setRouteId($informedEntity['informed_id']); - } - if ($informedEntity['informed_class'] == "trip") { - $td = new transit_realtime\TripDescriptor(); - $td->setTripId($informedEntity['informed_id']); - $es->setTrip($td); - } - $alert->addInformedEntity($es); - } - $alert->setCause(constant("transit_realtime\Alert\Cause::" . $alert['cause'])); - $alert->setEffect(constant("transit_realtime\Alert\Effect::" . $alert['effect'])); - $tsUrl = new transit_realtime\TranslatedString(); - $tUrl = new transit_realtime\TranslatedString\Translation(); - $tUrl->setText($alert['url']); - $tUrl->setLanguage("en"); - $tsUrl->addTranslation($tUrl); - $alert->setUrl($tsUrl); - $tsHeaderText = new transit_realtime\TranslatedString(); - $tHeaderText = new transit_realtime\TranslatedString\Translation(); - $tHeaderText->setText($alert['header']); - $tHeaderText->setLanguage("en"); - $tsHeaderText->addTranslation($tHeaderText); - $alert->setHeaderText($tsHeaderText); - $tsDescriptionText = new transit_realtime\TranslatedString(); - $tDescriptionText = new transit_realtime\TranslatedString\Translation(); - $tDescriptionText->setText($alert['description']); - $tDescriptionText->setLanguage("en"); - $tsDescriptionText->addTranslation($tDescriptionText); - $alert->setDescriptionText($tsDescriptionText); - $fe->setAlert($alert); - $fm->addEntity($fe); + $current_alerts = getCurrentAlerts(); + $informed_count = 0; + if (sizeof($current_alerts) > 0) { + + $fm = new transit_realtime\FeedMessage(); + $fh = new transit_realtime\FeedHeader(); + $fh->setGtfsRealtimeVersion(1); + $fh->setTimestamp(time()); + $fm->setHeader($fh); + foreach ($current_alerts as $current_alert) { + $affectsFilteredEntities = false; + $fe = new transit_realtime\FeedEntity(); + $fe->setId($current_alert['id']); + $fe->setIsDeleted(false); + $alert = new transit_realtime\Alert(); + $tr = new transit_realtime\TimeRange(); + $tr->setStart($current_alert['start']); + $tr->setEnd($current_alert['end']); + $alert->addActivePeriod($tr); + $informedEntities = getInformedAlerts($current_alert['id'], $filter_class, $filter_id); + if (sizeof($informedEntities) > 0) { + + $affectsFilteredEntities = true; + foreach ($informedEntities as $informedEntity) { + $informed_count++; + $informed = Array(); + $es = new transit_realtime\EntitySelector(); + if ($informedEntity['informed_class'] == "agency") { + $es->setAgencyId($informedEntity['informed_id']); + } + if ($informedEntity['informed_class'] == "stop") { + $es->setStopId($informedEntity['informed_id']); + } + if ($informedEntity['informed_class'] == "route") { + $es->setRouteId($informedEntity['informed_id']); + } + if ($informedEntity['informed_class'] == "trip") { + $td = new transit_realtime\TripDescriptor(); + $td->setTripId($informedEntity['informed_id']); + $es->setTrip($td); + } + $alert->addInformedEntity($es); +} + } + if ($current_alert['cause'] != "") { + $alert->setCause(constant("transit_realtime\Alert\Cause::" . $current_alert['cause'])); + } + if ($current_alert['effect'] != "") { + $alert->setEffect(constant("transit_realtime\Alert\Effect::" . $current_alert['effect'])); + } + if ($current_alert['url'] != "") { + $tsUrl = new transit_realtime\TranslatedString(); + $tUrl = new transit_realtime\TranslatedString\Translation(); + $tUrl->setText($current_alert['url']); + $tUrl->setLanguage("en"); + $tsUrl->addTranslation($tUrl); + $alert->setUrl($tsUrl); + } + if ($current_alert['header'] != "") { + $tsHeaderText = new transit_realtime\TranslatedString(); + $tHeaderText = new transit_realtime\TranslatedString\Translation(); + $tHeaderText->setText($current_alert['header']); + $tHeaderText->setLanguage("en"); + $tsHeaderText->addTranslation($tHeaderText); + $alert->setHeaderText($tsHeaderText); + } + if ($current_alert['description'] != "") { + $tsDescriptionText = new transit_realtime\TranslatedString(); + $tDescriptionText = new transit_realtime\TranslatedString\Translation(); + $tDescriptionText->setText(trim($current_alert['description'])); + $tDescriptionText->setLanguage("en"); + $tsDescriptionText->addTranslation($tDescriptionText); + $alert->setDescriptionText($tsDescriptionText); + } + $fe->setAlert($alert); + if ($affectsFilteredEntities) { + $fm->addEntity($fe); + } + } + if ($informed_count > 0) { + return $fm; + } else { + return null; + } + } else + return null; + } + + function getServiceAlertsAsArray($filter_class = "", $filter_id = "") { + + $alerts = getServiceAlerts($filter_class, $filter_id); + if ($alerts != null) { + $codec = new DrSlump\Protobuf\Codec\PhpArray(); + + return $codec->encode($alerts); + } else { + return null; } - return $fm; - } - - function getServiceAlertsAsArray($filter_class = "", $filter_id = "") { - $codec = new DrSlump\Protobuf\Codec\PhpArray(); - return $codec->encode(getServiceAlerts($filter_class, $filter_id)); } function getServiceAlertsAsBinary($filter_class = "", $filter_id = "") { @@ -301,5 +336,4 @@ } } -?> - + --- a/include/common.inc.php +++ b/include/common.inc.php @@ -51,13 +51,20 @@ || strstr($_SERVER['PHP_SELF'], "lib/") || strstr($_SERVER['PHP_SELF'], "geo/") || strstr($_SERVER['PHP_SELF'], "include/") - || strstr($_SERVER['PHP_SELF'], "servicealerts/")) + || strstr($_SERVER['PHP_SELF'], "rtpis/")) { $basePath = "../"; +} function isDebugServer() { return php_sapi_name() == "cli" || strstr(php_uname('n'),"actbus") || isset($_SERVER['SERVER_NAME']) && ( $_SERVER['SERVER_NAME'] == "azusa" || $_SERVER['SERVER_NAME'] == "vanille" - || $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || $_SERVER['SERVER_NAME'] == "192.168.1.8"); + || $_SERVER['SERVER_NAME'] == "localhost" || $_SERVER['SERVER_NAME'] == "127.0.0.1" || $_SERVER['SERVER_NAME'] == "192.168.1.8" || $_SERVER['SERVER_NAME'] == "192.168.178.24"); +} + +if (isset($_SERVER['SERVER_NAME']) && $_SERVER['SERVER_NAME'] == "maxious.xen.prgmr.com") { +// Set the exception handler +require $basePath."/lib/amon-php/amon.php"; +Amon::setup_exception_handler(); } include_once ("common-geo.inc.php"); @@ -201,6 +208,3 @@ return implode($glue, $retVal); } - -?> - --- a/include/db/route-dao.inc.php +++ b/include/db/route-dao.inc.php @@ -59,7 +59,12 @@ databaseError($conn->errorInfo()); return Array(); } - return $query->fetchAll(); + $results = $query->fetchAll(); + if (is_array($results)) { + return $results; + } else { + return Array($results); + } } function getRouteDescription($routeID, $directionID) { $trip = getRouteNextTrip($routeID, $directionID); @@ -97,7 +102,7 @@ function getRoutesByNumberSeries($routeNumberSeries = "") { global $conn; if (strlen($routeNumberSeries) == 1) { - return getRoutesByNumber($routeNumberSeries); + return getRoute($routeNumberSeries); } $seriesMin = substr($routeNumberSeries, 0, -1) . "0"; $seriesMax = substr($routeNumberSeries, 0, -1) . "9"; @@ -120,7 +125,7 @@ function getRouteNextTrip($routeID, $directionID) { global $conn; - $query = "select routes.route_id,direction_id,trips.trip_id,trip_headsign,departure_time from routes join trips on trips.route_id = routes.route_id + $query = "select routes.route_id,routes.route_url,direction_id,trips.trip_id,trip_headsign,departure_time,service_id from routes join trips on trips.route_id = routes.route_id join stop_times on stop_times.trip_id = trips.trip_id where arrival_time between :currentTime and :futureTime and routes.route_id = :routeID and trips.direction_id = :directionID order by arrival_time limit 1"; @@ -266,12 +271,13 @@ } function getRoutesNearby($lat, $lng, $limit = "", $distance = 500) { - if ($service_period == "") + // if ($service_period == "") $service_period = service_period(); $service_ids = service_ids($service_period); $sidA = $service_ids[0]; $sidB = $service_ids[1]; - if ($limit != "") + $limitSQL = ""; + if ($limit != "") $limitSQL = " LIMIT :limit "; global $conn; $query = "SELECT service_id,trips.route_id,trips.direction_id,route_short_name,route_long_name,min(stops.stop_id) as stop_id, @@ -299,4 +305,3 @@ return $query->fetchAll(); } -?> --- a/include/db/servicealert-dao.inc.php +++ b/include/db/servicealert-dao.inc.php @@ -44,17 +44,19 @@ return $query->fetch(PDO :: FETCH_ASSOC); } -function updateServiceAlert($alertID, $start, $end, $header, $description, $url) { +function updateServiceAlert($alertID, $alert) { global $conn; - $query = 'update servicealerts_alerts set start=:start, "end"=:end, header=:header, description=:description, url=:url where id = :servicealert_id'; + $query = 'update servicealerts_alerts set start=:start, "end"=:end, header=:header, description=:description, url=:url, cause=:cause, effect=:effect where id = :servicealert_id'; debug($query, "database"); $query = $conn->prepare($query); - $query->bindParam(":servicealert_id", $alertID); - $query->bindParam(":start", $start); - $query->bindParam(":end", $end); - $query->bindParam(":header", $header); - $query->bindParam(":description", $description); - $query->bindParam(":url", $url); + $query->bindValue(":servicealert_id", $alertID); + $query->bindValue(":start", $alert['startdate']); + $query->bindValue(":end", $alert['enddate']); + $query->bindValue(":header", $alert['header']); + $query->bindValue(":description", $alert['description']); + $query->bindValue(":url", $alert['url']); + $query->bindValue(":cause", $alert['cause']); + $query->bindValue(":effect", $alert['effect']); $query->execute(); print_r($conn->errorInfo()); @@ -65,16 +67,19 @@ return $query->fetch(PDO :: FETCH_ASSOC); } -function addServiceAlert($start, $end, $header, $description, $url) { +function addServiceAlert($alert) { global $conn; - $query = 'INSERT INTO servicealerts_alerts (start, "end", header, description, url) VALUES (:start, :end, :header, :description, :url) '; + $query = 'INSERT INTO servicealerts_alerts (start, "end", header, description, url,cause,effect) VALUES (:start, :end, :header, :description, :url,:cause,:effect) '; debug($query, "database"); $query = $conn->prepare($query); - $query->bindParam(":start", $start); - $query->bindParam(":end", $end); - $query->bindParam(":header", $header); - $query->bindParam(":description", $description); - $query->bindParam(":url", $url); + //print_r($alert); + $query->bindValue(":start", $alert['startdate']); + $query->bindValue(":end", $alert['enddate']); + $query->bindValue(":header", $alert['header']); + $query->bindValue(":description", $alert['description']); + $query->bindValue(":url", $alert['url']); + $query->bindValue(":cause", $alert['cause']); + $query->bindValue(":effect", $alert['effect']); $query->execute(); print_r($conn->errorInfo()); @@ -114,6 +119,7 @@ function getInformedAlerts($id, $filter_class, $filter_id) { global $conn; + //echo "$id, $filter_class, $filter_id\n"; $query = "SELECT * from servicealerts_informed where servicealert_id = :servicealert_id"; if ($filter_class != "") { @@ -158,12 +164,14 @@ function addInformedAlert($serviceAlertID, $class, $id, $action) { global $conn; - $query = 'INSERT INTO servicealerts_informed (servicealert_id , informed_class , informed_id) VALUES(:servicealert_id ,:informed_class, :informed_id)'; + $query = 'INSERT INTO servicealerts_informed (servicealert_id , informed_class , informed_id, informed_action) + VALUES(:servicealert_id ,:informed_class, :informed_id, :informed_action)'; debug($query, "database"); $query = $conn->prepare($query); $query->bindParam(":servicealert_id", $serviceAlertID); $query->bindParam(":informed_class", $class); $query->bindParam(":informed_id", $id); + $query->bindParam(":informed_action", $action); $query->execute(); print_r($conn->errorInfo()); @@ -174,4 +182,3 @@ return null; } -?> --- a/include/db/stop-dao.inc.php +++ b/include/db/stop-dao.inc.php @@ -89,7 +89,7 @@ $query = "Select * from stops where stop_name LIKE :name;"; debug($query, "database"); $query = $conn->prepare($query); - $name = "%" . $name . ";%"; + $name = $name . "%"; $query->bindParam(":name", $name); $query->execute(); if (!$query) { @@ -247,4 +247,3 @@ return $timedTrips; } -?> --- a/include/db/trip-dao.inc.php +++ b/include/db/trip-dao.inc.php @@ -35,7 +35,7 @@ } function getTripStops($tripID) { global $conn; - $query = "SELECT stop_id, stop_name, ST_AsKML(position) as positionkml, + $query = "SELECT stops.stop_id, stop_name, ST_AsKML(position) as positionkml, stop_sequence, trips.trip_id FROM stop_times join trips on trips.trip_id = stop_times.trip_id @@ -49,8 +49,27 @@ databaseError($conn->errorInfo()); return Array(); } - return $query->fetchColumn(0); -} + return $query->fetchAll(); +} + +function getTripHasStop($tripID, $stopID) { + global $conn; + $query = "SELECT stop_id +FROM stop_times +join trips on trips.trip_id = stop_times.trip_id +WHERE trips.trip_id = :tripID and stop_times.stop_id = :stopID"; + debug($query, "database"); + $query = $conn->prepare($query); + $query->bindParam(":tripID", $tripID); + $query->bindParam(":stopID", $stopID); + $query->execute(); + if (!$query) { + databaseError($conn->errorInfo()); + return Array(); + } + return ($query->fetchColumn() > 0); +} + function getTripShape($tripID) { // todo, use shapes table if shape_id specified global $conn; @@ -203,6 +222,3 @@ } return $query->fetchAll(); } - - -?> --- a/labs/busstopdensity.tile.php +++ b/labs/busstopdensity.tile.php @@ -1,6 +1,6 @@ "; $trips = getStopTripsWithTimes($stop['stop_id'], "", "", "", 3); --- /dev/null +++ b/lib/amon-php --- a/myway/myway_timeliness_route.json.php +++ b/myway/myway_timeliness_route.json.php @@ -21,12 +21,12 @@ header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); ?> { -"label": "", +"label": "", "data": prepare($query); -$_REQUEST['routeid'].=" "; -$query->bindParam(':route_name', $_REQUEST['routeid'], PDO::PARAM_STR); +$query->bindParam(':route_name', $routename, PDO::PARAM_STR); $query->execute(); if (!$query) { @@ -39,3 +39,4 @@ echo "[" . implode(",", $points) . "]"; ?> } + --- a/myway/myway_timeliness_route.php +++ b/myway/myway_timeliness_route.php @@ -22,7 +22,7 @@
- prepare($query); @@ -59,12 +59,12 @@ // fetch one series, adding to what we got var alreadyFetched = {}; - $("#routeid").change(function () { + $("#routename").change(function () { var select = $(this); // find the URL in the link right next to us // var dataurl = button.siblings('a').attr('href'); - var dataurl = "myway_timeliness_route.json.php?routeid=" + select.val(); + var dataurl = "myway_timeliness_route.json.php?routename=" + select.val(); // then fetch the data with jQuery function onDataReceived(series) { // extract the first coordinate pair so you can see that --- a/routeList.php +++ b/routeList.php @@ -50,17 +50,17 @@ echo ' '; + +?> + + + --- /dev/null +++ b/rtpis/punkt.zip --- /dev/null +++ b/rtpis/servicealert_editor.php @@ -1,1 +1,189 @@ +\n"; + die(); +} +if (isset($_REQUEST['networkinform'])) { + addInformedAlert($_REQUEST['networkinform'], "agency", "0", "inform"); + echo "Added network inform for" . $_REQUEST['networkinform']; + die(); +} +if (isset($_REQUEST['stopsearch'])) { + addInformedAlert($_REQUEST['stopsearch'], "stop", $_REQUEST['stopid'], "remove"); + echo "Added stop remove for" . $_REQUEST['stopsearch'] . ", stop" . $_REQUEST['stopid'] . "
\n"; + + foreach ($service_periods as $sp) { + echo "Remove from $sp routes
\n"; + foreach (getStopRoutes($_REQUEST['stopid'], $sp) as $route) { + addInformedAlert($_REQUEST['stopsearch'], "route", $route['route_id'], "patch"); + echo "Added route patch for" . $_REQUEST['stopsearch'] . ", route" . $route['route_id'] . "
\n"; + } + } + die(); +} +if (isset($_REQUEST['streetsearch'])) { + + echo "Informing stops of street
\n"; + foreach (getStopsByName($_REQUEST['street']) as $stop) { + addInformedAlert($_REQUEST['streetsearch'], "stop", $stop['stop_id'], "inform"); + echo "Added stop inform for" . $_REQUEST['streetsearch'] . ", stop" . $stop['stop_id'] . " ". $stop['stop_name']."
\n"; + + foreach ($service_periods as $sp) { + echo "Informing $sp routes
\n"; + foreach (getStopRoutes($stop['stop_id'], $sp) as $route) { + addInformedAlert($_REQUEST['streetsearch'], "route", $route['route_id'], "inform"); + echo "Added route inform for stop" . $_REQUEST['streetsearch'] . ", route" . $route['route_id'] . "
\n"; + } + } + } + + die(); +} +?> +Active and Future Alerts: + + '; + } + ?> +
" . date("c", $alert['start']) . "" . date("c", $alert['end']) . "" . substr($alert['description'], 0, 999) . 'edit
+ + + +
+ + " /> +
+
+ + " /> +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ +
+ + +
+ +'; + foreach (getInformedAlerts($_REQUEST['edit'], "", "") as $informed) { + echo "{$informed['informed_class']}{$informed['informed_id']}{$informed['informed_action']}" . 'delete'; + } + echo ''; + ?> +
+ + +
+
+
+ + +
+ + +
+
+
+ + +
+ + +
+ + --- /dev/null +++ b/rtpis/servicealert_viewer.php @@ -1,1 +1,53 @@ + +Active and Future Alerts: + + '; + } + ?> +
{$alert['header']}" . substr($alert['description'], 0, 999) . 'View
+{$alert['header']} +

From ".date("c",$alert['start'])." to ".date("c",$alert['end'])."

+{$alert['description']}
+Source: {$alert['url']}
"; + echo "Informed Entities for ID {$_REQUEST['view']}:"; + echo ''; + foreach (getInformedAlerts($_REQUEST['view'], "", "") as $informed) { + echo "'; + } + echo '
{$informed['informed_class']}{$informed['informed_id']}{$informed['informed_action']}" . '
'; +} +include_footer(); +?> --- /dev/null +++ b/rtpis/siri.php @@ -1,1 +1,80 @@ + $main_type, 'sub_type' => $sub_type, 'precedence' => (float)$precedence, 'tokens' => $tokens); + } + } + usort($toret, array('Parser', 'compare_media_ranges')); + } + return $toret; +} +function usage() { +echo "Usage notes: Must specify format json/xml. If callback is specified, will provide jsonp. Can filter with parmaters filter_class route/stop and filter_id with the id specified in GTFS." +die(); +} +$json_types = Array("application/json","application/x-javascript","text/javascript","text/x-javascript","text/x-json"); +if ($_REQUEST['json']) { +if ($_REQUEST['alerts']) { + $return = getServiceAlertsAsJSON($_REQUEST['filter_class'], $_REQUEST['filter_id']); +} else if ($_REQUEST['updates']) { + $return = getTripUpdatesAsJSON($_REQUEST['filter_