--- a/trip.php +++ b/trip.php @@ -17,58 +17,92 @@ */ include ('include/common.inc.php'); $routetrips = Array(); -if (isset($routeid) && !isset($tripid)) { - $trip = getRouteNextTrip($routeid); +if (isset($routeids) && !isset($tripid)) { + foreach ($routeids as $routeid) { + $possibleTrip = getRouteNextTrip($routeid); + if (!isset($trip) || strtotime($possibleTrip['departure_time']) < strtotime($trip['departure_time'])) { + $trip = getRouteNextTrip($routeid); + } + } $tripid = $trip['trip_id']; } else { $trip = getTrip($tripid); - $routeid = $trip["route_id"]; + $similarRoutes = getRoutesByNumber($trip['route_short_name'], $trip['direction_id'], service_period_day($trip["service_id"])); + $routeids = Array(); + foreach ($similarRoutes as $similarRoute) { + $routeids[] = $similarRoute['route_id']; + } + $routeids = array_unique($routeids); } - - $destination = getTripDestination($trip['trip_id']); +$directionid = $trip['direction_id']; +$service_period = service_period_day($trip["service_id"]); +$destination = getTripDestination($trip['trip_id']); include_header("Stops on " . $trip['route_short_name'] . ' ' . $destination['stop_name'], "trip"); trackEvent("Route/Trip View", "View Route", $trip['route_short_name'] . ' ' . $destination['stop_name'], $routeid); echo ''; echo 'View Original Timetable/Map'; echo '

Via:

' . viaPointNames($tripid) . ''; echo '

Other Trips:

'; -$routeTrips = getRouteTrips($routeid); +echo "getRoutesTrips(".print_r($routeids,true).", {$trip['direction_id']}, $service_period) $tripid"; +$routeTrips = getRoutesTrips($routeids, $trip['direction_id'], $service_period); foreach ($routeTrips as $key => $othertrip) { - if ($othertrip['trip_id'] != $tripid) { - echo '' . str_replace(" ", ":00", str_replace(":00", " ", $othertrip['arrival_time'])) . ' '; - } else { + // if ($othertrip['trip_id'] != $tripid) { + echo '' . str_replace(" ", ":00", str_replace(":00", " ", $othertrip['arrival_time'])) . ' '; + // } else { // skip this trip but look forward/back if ($key - 1 > 0) $prevTrip = $routeTrips[$key - 1]['trip_id']; if ($key + 1 < sizeof($routeTrips)) $nextTrip = $routeTrips[$key + 1]['trip_id']; - } + // } } flush(); @ob_flush(); echo '

Other directions/timing periods:

'; $otherDir = 0; +$filteredRoutes = Array(); foreach (getRoutesByNumber($trip['route_short_name']) as $row) { - if ($row['route_id'] != $routeid) { - echo '' . $row['route_long_name'] . ' (' . ucwords($row['service_id']) . ') '; - $otherDir++; + + foreach (getRouteHeadsigns($row['route_id']) as $headsign) { + if ( $headsign['direction_id'] != $directionid || service_period_day($headsign['service_id']) != $service_period) { + echo "{$headsign['direction_id']} != $directionid || ".service_period_day($headsign['service_id'])." != $service_period
"; + $start = $headsign['stop_name']; + + $serviceday = service_period_day($headsign['service_id']); + $key = $row['route_short_name'] . "." . $headsign['direction_id']; + if (isset($filteredRoutes[$key])) { + $filteredRoutes[$key]['route_ids'][] = $row['route_id']; + $filteredRoutes[$key]['route_ids'] = array_unique($filteredRoutes[$key]['route_ids']); + } else { + $filteredRoutes[$key]['route_short_name'] = $row['route_short_name']; + $filteredRoutes[$key]['route_long_name'] = "Starting at " . $start; + $filteredRoutes[$key]['service_id'] = $serviceday; + $filteredRoutes[$key]['direction_id'] = $headsign['direction_id']; + } + } } } -if ($otherDir == 0) +foreach ($filteredRoutes as $key => $row) { + echo '' . $row['route_long_name'] . ' (' . ucwords($row['service_id']) . ') '; + $otherDir++; +} + +if ($otherDir == 0) { echo "None"; +} echo '
'; flush(); @ob_flush(); echo "
"; if ($nextTrip) - echo 'Next Trip'; + echo 'Next Trip'; if ($prevTrip) - echo 'Previous Trip'; + echo 'Previous Trip'; echo "
"; echo '