Grouping of identical stops on trip view
[busui.git] / routeList.php
blob:a/routeList.php -> blob:b/routeList.php
<?php <?php
include ('common.inc.php'); include ('common.inc.php');
include_header("Routes", "routeList"); include_header("Routes", "routeList");
echo ' echo '
<div data-role="navbar"> <div data-role="navbar">
<ul> <ul>
<li><a href="routeList.php">By Final Destination...</a></li> <li><a href="routeList.php">By Final Destination...</a></li>
<li><a href="routeList.php?bynumber=yes">By Number... </a></li> <li><a href="routeList.php?bynumber=yes">By Number... </a></li>
<li><a href="routeList.php?bysuburb=yes">By Suburb... </a></li> <li><a href="routeList.php?bysuburb=yes">By Suburb... </a></li>
<li><a href="routeList.php?nearby=yes">Nearby... </a></li> <li><a href="routeList.php?nearby=yes">Nearby... </a></li>
</ul> </ul>
</div> </div>
'; ';
echo ' <ul data-role="listview" data-inset="true">'; echo ' <ul data-role="listview" data-inset="true">';
$url = $APIurl . "/json/routes"; $url = $APIurl . "/json/routes";
$contents = json_decode(getPage($url)); $contents = json_decode(getPage($url));
debug(print_r($contents, true));  
function printRoutes($routes) function printRoutes($routes)
{ {
foreach ($routes as $row) { foreach ($routes as $row) {
echo '<li>' . $row[1] . ' <a href="trip.php?routeid=' . $row[0] . '">' . $row[2] . " (" . ucwords($row[3]) . ")</a></li>\n"; echo '<li>' . $row[1] . ' <a href="trip.php?routeid=' . $row[0] . '">' . $row[2] . " (" . ucwords($row[3]) . ")</a></li>\n";
} }
} }
if ($_REQUEST['bynumber']) { if ($_REQUEST['bynumber']) {
$routeSeries = Array(); $routeSeries = Array();
$seriesRange = Array(); $seriesRange = Array();
foreach ($contents as $key => $row) { foreach ($contents as $key => $row) {
foreach (explode(" ", $row[1]) as $routeNumber) { foreach (explode(" ", $row[1]) as $routeNumber) {
$seriesNum = substr($routeNumber, 0, -1) . "0"; $seriesNum = substr($routeNumber, 0, -1) . "0";
if ($seriesNum == "0") $seriesNum = $routeNumber; if ($seriesNum == "0") $seriesNum = $routeNumber;
$finalDigit = substr($routeNumber, sizeof($routeNumber) - 1, 1); $finalDigit = substr($routeNumber, sizeof($routeNumber) - 1, 1);
if (isset($seriesRange[$seriesNum])) { if (isset($seriesRange[$seriesNum])) {
if ($finalDigit < $seriesRange[$seriesNum]['max']) $seriesRange[$seriesNum]['max'] = $routeNumber; if ($finalDigit < $seriesRange[$seriesNum]['max']) $seriesRange[$seriesNum]['max'] = $routeNumber;
if ($finalDigit > $seriesRange[$seriesNum]['min']) $seriesRange[$seriesNum]['min'] = $routeNumber; if ($finalDigit > $seriesRange[$seriesNum]['min']) $seriesRange[$seriesNum]['min'] = $routeNumber;
} }
else { else {
$seriesRange[$seriesNum]['max'] = $routeNumber; $seriesRange[$seriesNum]['max'] = $routeNumber;
$seriesRange[$seriesNum]['min'] = $routeNumber; $seriesRange[$seriesNum]['min'] = $routeNumber;
} }
$routeSeries[$seriesNum][$seriesNum . "-" . $row[1] . "-" . $row[0]] = $row; $routeSeries[$seriesNum][$seriesNum . "-" . $row[1] . "-" . $row[0]] = $row;
} }
} }
ksort($routeSeries); ksort($routeSeries);
ksort($seriesRange); ksort($seriesRange);
echo '<div class="noscriptnav"> Go to route numbers: '; echo '<div class="noscriptnav"> Go to route numbers: ';
foreach ($seriesRange as $series => $range) { foreach ($seriesRange as $series => $range) {
if ($range['min'] == $range['max']) echo "<a href=\"#$series\">$series</a>&nbsp;"; if ($range['min'] == $range['max']) echo "<a href=\"#$series\">$series</a>&nbsp;";
else echo "<a href=\"#$series\">{$range['min']}-{$range['max']}</a>&nbsp;"; else echo "<a href=\"#$series\">{$range['min']}-{$range['max']}</a>&nbsp;";
} }
echo "</div> echo "</div>
<script> <script>
$('.noscriptnav').hide(); $('.noscriptnav').hide();
</script>"; </script>";
foreach ($routeSeries as $series => $routes) { foreach ($routeSeries as $series => $routes) {
echo '<a name="' . $series . '"></a>'; echo '<a name="' . $series . '"></a>';
if ($series <= 9) echo '<li>' . $series . "<ul>\n"; if ($series <= 9) echo '<li>' . $series . "<ul>\n";
else echo "<li>{$seriesRange[$series]['min']}-{$seriesRange[$series]['max']}<ul>\n"; else echo "<li>{$seriesRange[$series]['min']}-{$seriesRange[$series]['max']}<ul>\n";
printRoutes($routes); printRoutes($routes);
echo "</ul></li>\n"; echo "</ul></li>\n";
} }
} }
else { else {
foreach ($contents as $key => $row) { foreach ($contents as $key => $row) {
$routeDestinations[$row[2]][] = $row; $routeDestinations[$row[2]][] = $row;
} }
echo '<div class="noscriptnav"> Go to Destination: '; echo '<div class="noscriptnav"> Go to Destination: ';
foreach (ksort($routeDestinations) as $destination => $routes) { foreach (ksort($routeDestinations) as $destination => $routes) {
echo "<a href=\"#$destination\">$destination</a>&nbsp;"; echo "<a href=\"#$destination\">$destination</a>&nbsp;";
} }
echo "</div> echo "</div>
<script> <script>
$('.noscriptnav').hide(); $('.noscriptnav').hide();
</script>"; </script>";
foreach ($routeDestinations as $destination => $routes) { foreach ($routeDestinations as $destination => $routes) {
echo '<a name="' . $destination . '"></a>'; echo '<a name="' . $destination . '"></a>';
echo '<li>' . $destination . "... <ul>\n"; echo '<li>' . $destination . "... <ul>\n";
printRoutes($routes); printRoutes($routes);
echo "</ul></li>\n"; echo "</ul></li>\n";
} }
} }
echo "</ul>\n"; echo "</ul>\n";
include_footer(); include_footer();
?> ?>