|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 | <?php include ('common.inc.php'); function filterByFirstLetter($var) { return $var[1][0] == $_REQUEST['firstLetter']; } function navbar() { echo ' <div data-role="navbar"> <ul> <li><a href="stopList.php">Timing Points</a></li> <li><a href="stopList.php?suburbs=yes">By Suburb</a></li> <li><a href="stopList.php?nearby=yes">Nearby Stops</a></li> <li><a href="stopList.php?allstops=yes">All Stops</a></li> </ul> </div> '; } // By suburb if (isset($_REQUEST['suburbs'])) { include_header("Stops by Suburb", "stopList"); navbar(); echo ' <ul data-role="listview" data-filter="true" data-inset="true" >'; foreach ($suburbs as $suburb) { if (!isset($_REQUEST['firstLetter'])) { foreach (range('A', 'Z') as $letter) { echo "<li><a href=\"stopList.php?firstLetter=$letter&suburbs=yes\">$letter...</a></li>\n"; } } else if (startsWith($suburb, $_REQUEST['firstLetter'])) { echo '<li><a href="stopList.php?suburb=' . urlencode($suburb) . '">' . $suburb . '</a></li>'; } } echo '</ul>'; } else { // Timing Points / All stops if ($_REQUEST['allstops']) { $listType = 'allstops=yes'; $url = $APIurl . "/json/stops"; include_header("All Stops", "stopList"); navbar(); timePlaceSettings(); } else if ($_REQUEST['nearby']) { $listType = 'nearby=yes'; $url = $APIurl . "/json/neareststops?lat={$_SESSION['lat']}&lon={$_SESSION['lon']}&limit=15"; include_header("Nearby Stops", "stopList"); navbar(); timePlaceSettings(true); } else if ($_REQUEST['suburb']) { $suburb = filter_var($_REQUEST['suburb'], FILTER_SANITIZE_STRING); $listType = "suburb=$suburb"; $url = $APIurl . "/json/stopzonesearch?q=" . $suburb; include_header("Stops in " . ucwords($suburb) , "stopList"); if (isMetricsOn()) { // Create a new Instance of the tracker $owa = new owa_php($config); // 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_list_suburb'); // Set a property $event->set('stop_list_suburb', $suburb); // Track the event $owa->trackEvent($event); } navbar(); } else { $url = $APIurl . "/json/timingpoints"; include_header("Timing Points / Major Stops", "stopList"); navbar(); timePlaceSettings(); } echo ' <ul data-role="listview" data-filter="true" data-inset="true" >'; if (!isset($_REQUEST['firstLetter']) && !$_REQUEST['suburb']) { foreach (range('A', 'Z') as $letter) { echo "<li><a href=\"stopList.php?firstLetter=$letter&$listType\">$letter...</a></li>\n"; } } else { $stops = json_decode(getPage($url)); foreach ($stops as $key => $row) { $stopName[$key] = $row[1]; } // Sort the stops by name array_multisort($stopName, SORT_ASC, $stops); if (!isset($_REQUEST['suburb'])){ $stops = array_filter($stops, "filterByFirstLetter"); } $stopsGrouped = Array(); foreach ($stops as $key => $row) { if ((trim(preg_replace("/\(Platform.*/","",$stops[$key][1])) != trim(preg_replace("/\(Platform.*/","",$stops[$key + 1][1]))) || $key + 1 >= sizeof($stops)) { if (sizeof($stopsGrouped) > 0) { // print and empty grouped stops // subsequent duplicates $stopsGrouped["stop_ids"][] = $row[0]; echo '<li>'; if (!startsWith($stopsGrouped['stop_codes'][0], "Wj")) echo '<img src="css/images/time.png" alt="Timing Point" class="ui-li-icon">'; echo '<a href="stop.php?stopids=' . implode(",", $stopsGrouped['stop_ids']) . '">'; if (isset($_SESSION['lat']) && isset($_SESSION['lon'])) { echo '<span class="ui-li-count">' . floor(distance($row[2], $row[3], $_SESSION['lat'], $_SESSION['lon'])) . 'm away</span>'; } echo bracketsMeanNewLine(trim(preg_replace("/\(Platform.*/","",$row[1])) . '(' . sizeof($stopsGrouped["stop_ids"]) . ' stops)'); echo "</a></li>\n"; $stopsGrouped = Array(); } else { // just a normal stop echo '<li>'; if (!startsWith($row[5], "Wj")) echo '<img src="css/images/time.png" alt="Timing Point" class="ui-li-icon">'; echo '<a href="stop.php?stopid=' . $row[0] . (startsWith($row[5], "Wj") ? '&stopcode=' . $row[5] : "") . '">'; if (isset($_SESSION['lat']) && isset($_SESSION['lon'])) { echo '<span class="ui-li-count">' . floor(distance($row[2], $row[3], $_SESSION['lat'], $_SESSION['lon'])) . 'm away</span>'; } echo bracketsMeanNewLine($row[1]); echo "</a></li>\n"; } } else { // this is a duplicated line item if ($key - 1 <= 0 || (trim(preg_replace("/\(Platform.*/","",$stops[$key][1])) != trim(preg_replace("/\(Platform.*/","",$stops[$key - 1][1])))) { // first duplicate $stopsGrouped = Array( "name" => trim(preg_replace("/\(Platform.*/","",$row[1])), "stop_ids" => Array( $row[0] ), "stop_codes" => Array( $row[5] ) ); } else { // subsequent duplicates $stopsGrouped["stop_ids"][] = $row[0]; } } } } echo '</ul>'; var_dump ($stopsGrouped); } include_footer(); ?> |