--- a/routeList.php
+++ b/routeList.php
@@ -1,124 +1,168 @@
';
}
-if ($_REQUEST['bysuburb']) {
- include_header("Routes by Suburb", "routeList");
- navbar();
- echo ' ';
- if (!isset($_REQUEST['firstLetter'])) {
- foreach (range('A', 'Z') as $letter) {
- echo "- $letter...
\n";
- }
- }
- else {
- foreach ($suburbs as $suburb) {
- if (startsWith($suburb, $_REQUEST['firstLetter'])) {
- echo '- ' . $suburb . '
';
- }
- }
- }
- echo '
';
+
+function displayRoutes($routes) {
+ global $nearby;
+ echo ' ';
+ $filteredRoutes = Array();
+ foreach ($routes as $route) {
+ foreach (getRouteHeadsigns($route['route_id']) as $headsign) {
+ $start = $headsign['stop_name'];
+ $serviceday = service_period_day($headsign['service_id']);
+ $key = $route['route_short_name'] . "." . $headsign['direction_id'];
+ if (isset($filteredRoutes[$key])) {
+ $filteredRoutes[$key]['route_ids'][] = $route['route_id'];
+ $filteredRoutes[$key]['route_ids'] = array_unique($filteredRoutes[$key]['route_ids']);
+ } else {
+ $filteredRoutes[$key]['route_short_name'] = $route['route_short_name'];
+ $filteredRoutes[$key]['route_long_name'] = "starting at " . $start;
+ $filteredRoutes[$key]['service_id'] = $serviceday;
+ $filteredRoutes[$key]['trip_headsign'] = $headsign['trip_headsign'].(strstr($headsign['trip_headsign'], "bound") ===false ?"bound":"");
+ $filteredRoutes[$key]['direction_id'] = $headsign['direction_id'];
+ if (isset($nearby)) {
+ $filteredRoutes[$key]['distance'] = $route['distance'];
+ }
+ }
+ }
+ }
+ foreach ($filteredRoutes as $key => $route) {
+ echo '-
' . $route['route_short_name'] . "
+
+ " . $route['trip_headsign'].", ". $route['route_long_name'] . " (" . ucwords($route['service_id']) . ")
";
+ if (isset($nearby)) {
+ $time = getRouteAtStop($route['route_id'], $route['stop_id']);
+ echo '' . ($time['arrival_time'] ? $time['arrival_time'] : "No more trips today") . "
" . floor($route['distance']) . 'm away';
+ }
+ echo" \n";
+ }
}
-else if ($_REQUEST['nearby'] || $_REQUEST['suburb']) {
- $routes = Array();
- if ($_REQUEST['suburb']) {
- $suburb = filter_var($_REQUEST['suburb'], FILTER_SANITIZE_STRING);
- include_header($suburb ." - ".ucwords(service_period()), "routeList");
- navbar();
- timePlaceSettings();
- trackEvent("Route Lists", "Routes By Suburb", $suburb);
- $routes = getRoutesBySuburb($suburb);
-
- }
- if ($_REQUEST['nearby']) {
- include_header("Routes Nearby", "routeList", true, true);
- trackEvent("Route Lists", "Routes Nearby", $_SESSION['lat'].",".$_SESSION['lon']);
- navbar();
- timePlaceSettings(true);
- if (!isset($_SESSION['lat']) || !isset($_SESSION['lat']) || $_SESSION['lat'] == "" || $_SESSION['lon'] == "") {
- include_footer();
- die();
- }
- $routes = getRoutesNearby($_SESSION['lat'],$_SESSION['lon']);
- }
- echo ' ';
+if (isset($bysuburbs)) {
+ include_header("Routes by Suburb", "routeList");
+ navbar();
+ echo ' ';
+ if (!isset($firstLetter)) {
+ foreach (range('A', 'Z') as $letter) {
+ echo "- $letter...
\n";
+ }
+ } else {
+ foreach ($suburbs as $suburb) {
+ if (startsWith($suburb, $firstLetter)) {
+ echo '- ' . $suburb . '
';
+ }
+ }
+ }
+ echo '
';
+} else if (isset($suburb)) {
- foreach ($routes as $route) {
- echo '' . $route['route_short_name'] . "
" . $route['route_long_name'] . " (" . ucwords($route['service_id']) . ")
";
- if ($_REQUEST['nearby']) {
- $time = getTimeInterpolatedRouteAtStop($route['route_id'], $route['stop_id']);
- echo ''.($time['arrival_time']?$time['arrival_time']:"No more trips today")."
" .floor($route['distance']) . 'm away';
- }
- echo " \n";
- }
-}
-else if ($_REQUEST['bynumber'] || $_REQUEST['numberSeries']) {
- include_header("Routes by Number", "routeList");
- navbar();
- echo ' ';
- if ($_REQUEST['bynumber']) {
- $routes = getRoutesByNumber();
- $routeSeries = Array();
- $seriesRange = Array();
- foreach ($routes as $key => $routeNumber) {
- foreach (explode(" ", $routeNumber['route_short_name']) as $routeNumber) {
- $seriesNum = substr($routeNumber, 0, -1) . "0";
- if ($seriesNum == "0") $seriesNum = $routeNumber;
- $finalDigit = substr($routeNumber, sizeof($routeNumber) - 1, 1);
- if (isset($seriesRange[$seriesNum])) {
- if ($finalDigit < $seriesRange[$seriesNum]['max']) $seriesRange[$seriesNum]['max'] = $routeNumber;
- if ($finalDigit > $seriesRange[$seriesNum]['min']) $seriesRange[$seriesNum]['min'] = $routeNumber;
- }
- else {
- $seriesRange[$seriesNum]['max'] = $routeNumber;
- $seriesRange[$seriesNum]['min'] = $routeNumber;
- }
- $routeSeries[$seriesNum][$seriesNum . "-" . $row[1] . "-" . $row[0]] = $row;
- }
- }
- ksort($routeSeries);
- ksort($seriesRange);
- foreach ($routeSeries as $series => $routes) {
- echo '- ';
- if ($series <= 9) echo $series;
- else echo "{$seriesRange[$series]['min']}-{$seriesRange[$series]['max']}";
- echo "
\n";
- }
- }
- else if ($_REQUEST['numberSeries']) {
- $routes = getRoutesByNumber($_REQUEST['numberSeries']);
- foreach ($routes as $route) {
- echo '-
' . $route['route_short_name'] . "
" . $route['route_long_name'] . " (" . ucwords($route['service_id']) . ")
\n";
- }
- }
-}
-else {
- include_header("Routes by Destination", "routeList");
- navbar();
- echo ' ';
- if ($_REQUEST['routeDestination']) {
- foreach (getRoutesByDestination(urldecode($_REQUEST['routeDestination'])) as $route) {
- echo '' . $route["route_short_name"] . '
' . $route["route_long_name"] . " (" . ucwords($route['service_id']) . ")
\n";
- }
- }
- else {
- foreach (getRoutesByDestination() as $destination) {
- echo '- ' . $destination['route_long_name'] . "...
\n";
- }
- }
+ if ($suburb) {
+ include_header($suburb . " - " . ucwords(service_period()), "routeList");
+ navbar();
+ timeSettings();
+ trackEvent("Route Lists", "Routes By Suburb", $suburb);
+ displayRoutes(getRoutesBySuburb($suburb));
+ }
+} else if (isset($nearby)) {
+ $routes = Array();
+ include_header("Routes Nearby", "routeList", true, true);
+ trackEvent("Route Lists", "Routes Nearby", $_SESSION['lat'] . "," . $_SESSION['lon']);
+ navbar();
+ placeSettings();
+ if (!isset($_SESSION['lat']) || !isset($_SESSION['lat']) || $_SESSION['lat'] == "" || $_SESSION['lon'] == "") {
+ include_footer();
+ die();
+ }
+ $routes = getRoutesNearby($_SESSION['lat'], $_SESSION['lon']);
+
+
+ if (sizeof($routes) > 0) {
+ displayRoutes($routes);
+ } else {
+ echo ' ';
+ echo "- No routes nearby.
";
+ }
+} else if (isset($bynumber) || isset($numberSeries)) {
+ include_header("Routes by Number", "routeList");
+ navbar();
+ echo ' ';
+ if (isset($bynumber)) {
+ $routes = getRoutesByNumber();
+ $routeSeries = Array();
+ $seriesRange = Array();
+ foreach ($routes as $key => $routeNumber) {
+ foreach (explode(" ", $routeNumber['route_short_name']) as $routeNumber) {
+ $seriesNum = substr($routeNumber, 0, -1) . "0";
+ if ($seriesNum == "0")
+ $seriesNum = $routeNumber;
+ $finalDigit = substr($routeNumber, sizeof($routeNumber) - 1, 1);
+ if (isset($seriesRange[$seriesNum])) {
+ if ($finalDigit < $seriesRange[$seriesNum]['max'])
+ $seriesRange[$seriesNum]['max'] = $routeNumber;
+ if ($finalDigit > $seriesRange[$seriesNum]['min'])
+ $seriesRange[$seriesNum]['min'] = $routeNumber;
+ }
+ else {
+ $seriesRange[$seriesNum]['max'] = $routeNumber;
+ $seriesRange[$seriesNum]['min'] = $routeNumber;
+ }
+ $routeSeries[$seriesNum][$seriesNum . "-" . $row[1] . "-" . $row[0]] = $row;
+ }
+ }
+ ksort($routeSeries);
+ ksort($seriesRange);
+ foreach ($routeSeries as $series => $routes) {
+ echo '- ';
+ if ($series <= 9)
+ echo $series;
+ else
+ echo "{$seriesRange[$series]['min']}-{$seriesRange[$series]['max']}";
+ echo "
\n";
+ }
+ }
+ else if ($numberSeries) {
+ displayRoutes(getRoutesByNumberSeries($numberSeries));
+ }
+} else {
+ include_header("Routes by Destination", "routeList");
+ navbar();
+ echo ' ';
+ if (isset($routeDestination)) {
+ displayRoutes(getRoutesByDestination($routeDestination));
+ } else {
+ foreach (getRoutesByDestination() as $destination) {
+ echo '- ' . $destination['route_long_name'] . "...
\n";
+ }
+ }
}
echo "
\n";
include_footer();