More security/sanitizing fixes
[busui.git] / stop.php
blob:a/stop.php -> blob:b/stop.php
<?php <?php
include('common.inc.php'); include ('include/common.inc.php');
$stopid = filter_var($_REQUEST['stopid'],FILTER_SANITIZE_NUMBER_INT); if ($stopid) $stop = getStop($stopid);
$url = $APIurl."/json/stop?stop_id=".$stopid; /*if ($stopcode != "" && $stop[5] != $stopcode) {
$stop = json_decode(getPage($url)); $url = $APIurl . "/json/stopcodesearch?q=" . $stopcode;
  $stopsearch = json_decode(getPage($url));
  $stopid = $stopsearch[0][0];
  $url = $APIurl . "/json/stop?stop_id=" . $stopid;
  $stop = json_decode(getPage($url));
  }
  if (!startsWith($stop[5], "Wj") && strpos($stop[1], "Platform") === false) {
  // expand out to all platforms
   
  }*/
   
include_header($stop[1],"stop"); $stops = Array();
if (isMetricsOn()) { $stopPositions = Array();
// Create a new Instance of the tracker $stopNames = Array();
$owa = new owa_php(); $tripStopNumbers = Array();
// Set the ID of the site being tracked $allStopsTrips = Array();
$owa->setSiteId($owaSiteID); $fetchedTripSequences = Array();
// Create a new event object $stopLinks = "";
$event = $owa->makeEvent(); if (isset($stopids)) {
// Set the Event Type, in this case a "video_play" foreach ($stopids as $sub_stopid) {
$event->setEventType('view_stop'); $stops[] = getStop($sub_stopid);
// Set a property }
$event->set('stop_id',$stopid); $stop = $stops[0];
// Track the event $stopid = $stops[0]["stop_id"];
$owa->trackEvent($event); $stopLinks.= "Individual stop pages: ";
} foreach ($stops as $key => $sub_stop) {
  // $stopNames[$key] = $sub_stop[1] . ' Stop #' . ($key + 1);
  if (strpos($stop["stop_name"], "Station")) {
  $stopNames[$key] = 'Platform ' . ($key + 1);
  $stopLinks.= '<a href="stop.php?stopid=' . $sub_stop["stop_id"] . '&amp;stopcode=' . $sub_stop["stop_code"] . '">' . $sub_stop["stop_name"] . '</a> ';
  }
  else {
  $stopNames[$key] = '#' . ($key + 1);
  $stopLinks.= '<a href="stop.php?stopid=' . $sub_stop["stop_id"] . '&amp;stopcode=' . $sub_stop["stop_code"] . '">' . $sub_stop["stop_name"] . ' Stop #' . ($key + 1) . '</a> ';
  }
  $stopPositions[$key] = Array(
  $sub_stop["stop_lat"],
  $sub_stop["stop_lon"]
  );
  $trips = getStopTrips($sub_stop["stop_id"]);
  $tripSequence = "";
  foreach ($trips as $trip) {
  $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";
  //}
  }
  }
  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 '<div id="servicewarning">'.$serviceAlert['alert']['description']['translation'].'</div>';
  }*/
   
  echo '<span class="content-secondary">';
  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"]
  )
  )) ;
  }
timePlaceSettings(); timePlaceSettings();
echo '<div data-role="content" class="ui-content" role="main"><p>'.staticmap(Array(0 => Array($stop[2],$stop[3]))).'</p>'; echo '</span><span class="content-primary">';
echo ' <ul data-role="listview" data-inset="true">'; echo ' <ul data-role="listview" data-inset="true">';
$url = $APIurl."/json/stoptrips?stop=".$stopid."&time=".midnight_seconds()."&service_period=".service_period(); if (sizeof($allStopsTrips) > 0) {
$trips = json_decode(getPage($url)); sktimesort($allStopsTrips,"arrival_time", true);
debug(print_r($trips,true)); $trips = $allStopsTrips;
foreach ($trips as $row)  
{  
echo '<li>';  
echo '<h3><a href="trip.php?stopid='.$stopid.'&tripid='.$row[1][0].'">'.$row[1][1];  
if (isFastDevice()) {  
$viaPoints = viaPointNames($row[1][0],$stopid);  
if ($viaPoints != "") echo '<br><small>Via: '.$viaPoints.'</small> </a></h3>';  
} }
echo '<p class="ui-li-aside"><strong>'.midnight_seconds_to_time($row[0]).'</strong></p>'; else {
echo '</li>'; $trips = getStopTripsWithTimes($stopid);
} }
if (sizeof($trips) == 0) echo "<li> <center>No trips in the near future.</center> </li>"; if (sizeof($trips) == 0) {
echo '</ul></div>'; echo "<li style='text-align: center;'>No trips in the near future.</li>";
  }
  else {
  foreach ($trips as $trip) {
  echo '<li>';
  echo '<a href="trip.php?stopid=' . $stopid . '&amp;tripid=' . $trip['trip_id'] . '"><h3>' . $trip['route_short_name'] . " " . $trip['route_long_name'] . "</h3><p>";
  $viaPoints = viaPointNames($trip['trip_id'], $trip['stop_sequence']);
  if ($viaPoints != "") echo '<br><span class="viaPoints">Via: ' . $viaPoints . '</span>';
  if (sizeof($tripStopNumbers) > 0) {
  echo '<br><small>Boarding At: ';
  foreach ($tripStopNumbers[$trip['trip_id']] as $key) {
  echo $stopNames[$key] . ' ';
  }
  echo '</small>';
  }
  echo '</p>';
  echo '<p class="ui-li-aside"><strong>' . $trip['arrival_time'] . '</strong></p>';
  echo '</a></li>';
  flush();
  @ob_flush();
  }
  }
  echo '</ul>';
  echo '</span>';
include_footer(); include_footer();
?> ?>