--- a/stop.php
+++ b/stop.php
@@ -1,90 +1,180 @@
";
foreach ($stops as $key => $sub_stop) {
- $stopLinks .= ''.$sub_stop[1].' Stop #'.($key+1).' ';
- $stopPositions[$key] = Array($sub_stop[2],$sub_stop[3]);
- $url = $APIurl . "/json/stoptrips?stop=" . $sub_stop[0] . "&time=" . midnight_seconds() . "&service_period=" . service_period();
- $trips = json_decode(getPage($url));
+
+ $stopNames[$key] = $sub_stop["stop_name"];
+ $stopLinks.= '' . $sub_stop["stop_name"] . ' ';
+
+ $stopPositions[$key] = Array(
+ $sub_stop["stop_lat"],
+ $sub_stop["stop_lon"]
+ );
+ $trips = getStopTrips($sub_stop["stop_id"]);
+ $tripSequence = "";
foreach ($trips as $trip) {
- if (!isset($allStopTrips[$row[1][0]])) $allStopTrips[$row[1][0]] = $trip;
- $tripStopNumbers[$row[1][0]][] = $key;
+ $tripSequence.= "{$trip['trip_id']},";
+ $tripStopNumbers[$trip['trip_id']][] = $key;
+ }
+ if (!in_array($tripSequence, $fetchedTripSequences)) {
+ // only fetch new trip sequences
+ $fetchedTripSequences[] = $tripSequence;
+ $trips = getStopTripsWithTimes($sub_stop["stop_id"]);
+ foreach ($trips as $trip) {
+ if (!isset($allStopsTrips[$trip["trip_id"]]))
+ $allStopsTrips[$trip["trip_id"]] = $trip;
+ }
+ }
+ //else {
+ // echo "skipped sequence $tripSequence";
+ //}
+ }
+}
+if (sizeof($stops) > 0) {
+ $stopDescParts = explode("
", $stop['stop_desc']);
+ include_header(trim(str_replace("Street: ", "", $stopDescParts[0])), "stop");
+} else {
+ include_header($stop['stop_name'], "stop");
+}
+/* $serviceAlerts = json_decode(getPage(curPageURL() . "/servicealerts_api.php?filter_class=stop&filter_id=".$stopid) , true);
+
+ foreach($serviceAlerts['entities'] as $serviceAlert) {
+ echo '
'.$serviceAlert['alert']['description']['translation'].'
';
+ } */
+
+echo '';
+echo $stopLinks;
+if (sizeof($stops) > 0) {
+ trackEvent("View Stops", "View Combined Stops", $stop["stop_name"], $stop["stop_id"]);
+ echo staticmap($stopPositions);
+} else {
+ trackEvent("View Stops", "View Single Stop", $stop["stop_name"], $stop["stop_id"]);
+ echo staticmap(Array(
+ 0 => Array(
+ $stop["stop_lat"],
+ $stop["stop_lon"]
+ )
+ ));
+}
+
+timeSettings();
+
+echo '
';
+echo '
';
+if (sizeof($allStopsTrips) > 0) {
+ sktimesort($allStopsTrips, "arrival_time", true);
+ $trips = $allStopsTrips;
+} else {
+ $trips = getStopTripsWithTimes($stopid, "", "", "", (isset($filterIncludeRoutes) || isset($filterHasStop) ? "75" : ""));
+}
+
+echo "";
+if (sizeof($trips) == 0) {
+ echo "- No trips in the near future.
";
+} else {
+ foreach ($trips as $trip) {
+ if (
+ isset($filterHasStop) && (getTripHasStop($trip['trip_id'], $filterHasStop) == 1)
+ || (isset($filterIncludeRoutes) && in_array($trip["route_short_name"], $filterIncludeRoutes))
+ || (!isset($filterIncludeRoutes) && !isset($filterHasStop))
+ ) {
+ echo '- ';
+
+ $destination = getTripDestination($trip['trip_id']);
+ echo '
' . $trip['route_short_name'] . " towards " . $destination['stop_name'] . "
";
+ $viaPoints = viaPointNames($trip['trip_id'], $trip['stop_sequence']);
+ if ($viaPoints != "")
+ echo '
Via: ' . $viaPoints . '';
+ if (sizeof($tripStopNumbers) > 0) {
+ echo '
Boarding At: ';
+ if (sizeof($tripStopNumbers[$trip['trip_id']]) == sizeof($stopids)) {
+ echo "All Stops";
+ } else {
+ foreach ($tripStopNumbers[$trip['trip_id']] as $key) {
+ echo $stopNames[$key] . ', ';
+ }
+ }
+ echo '';
+ }
+ echo '
';
+ echo '' . $trip['arrival_time'] . '
';
+ echo ' ';
+ flush();
+ @ob_flush();
}
}
}
-
-include_header($stop[1], "stop");
-
-if (isMetricsOn()) {
- // Create a new Instance of the tracker
- $owa = new owa_php();
- // Set the ID of the site being tracked
- $owa->setSiteId($owaSiteID);
- // Create a new event object
- $event = $owa->makeEvent();
- // Set the Event Type, in this case a "video_play"
- $event->setEventType('view_stop');
- // Set a property
- $event->set('stop_id', $stopid);
- // Track the event
- $owa->trackEvent($event);
-}
-timePlaceSettings();
-echo '';
-echo $stopLinks;
-if (sizeof($stops) > 0) {
- echo '
' . staticmap($stopPositions) . '
';
-} else {
- echo '
' . staticmap(Array(
- 0 => Array(
- $stop[2],
- $stop[3]
- )
-)) . '
';
-}
-echo '
';
+echo '
';
+echo '
';
include_footer();
?>