Fix analytics to only happen in production mode
[busui.git] / trip.php
blob:a/trip.php -> blob:b/trip.php
<?php <?php
include('common.inc.php');  
$tripid = filter_var($_REQUEST['tripid'],FILTER_SANITIZE_NUMBER_INT); /*
$stopid = filter_var($_REQUEST['stopid'],FILTER_SANITIZE_NUMBER_INT); * Copyright 2010,2011 Alexander Sadleir
if ($_REQUEST['routeid']) {  
$url = $APIurl."/json/routetrips?route_id=".filter_var($_REQUEST['routeid'],FILTER_SANITIZE_NUMBER_INT); Licensed under the Apache License, Version 2.0 (the "License");
$trips = json_decode(getPage($url)); you may not use this file except in compliance with the License.
debug(print_r($trips,true)); You may obtain a copy of the License at
foreach ($trips as $trip)  
{ http://www.apache.org/licenses/LICENSE-2.0
if ($trip[0] < midnight_seconds()) {  
$tripid = $trip[1]; Unless required by applicable law or agreed to in writing, software
break; distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
  */
  include ('include/common.inc.php');
  $routetrips = Array();
  if (isset($routeid) && !isset($tripid)) {
  $trip = getRouteNextTrip($routeid,$directionid);
   
  if (!($trip)) {
  $trip = getRouteFirstTrip($routeid,$directionid);
  }
  $tripid = $trip['trip_id'];
  } else {
  $trip = getTrip($tripid);
  $routeid = $trip['route_id'];
  }
  $directionid = $trip['direction_id'];
  $service_period = strtolower($trip["service_id"]);
  $destination = getTripDestination($trip['trip_id']);
  include_header("Route " . $trip['route_id'] . ' to ' . $destination['stop_name'], "trip");
  trackEvent("Route/Trip View", "View Route", $trip['route_id'] . ' ' . $destination['stop_name'], $routeid);
  echo '<div class="content-secondary">';
  echo '<a href="' . $trip['route_url'] . '">View Original Timetable/Map</a> ';
  echo '<a href="geo/trip.kml.php?tripid='.$tripid.'">View Trip in Google Earth</a> ';
  echo '<a href="geo/route.kml.php?routeid='.$routeid.'">View Route in Google Earth</a>';
  echo '<h2>Via:</h2> <small>' . viaPointNames($tripid) . '</small>';
  echo '<h2>Other Trips:</h2> ';
  $routeTrips = getRouteTrips($routeid, $trip['direction_id'], $service_period);
  foreach ($routeTrips as $key => $othertrip) {
  // if ($othertrip['trip_id'] != $tripid) {
  echo '<a href="trip.php?tripid=' . $othertrip['trip_id'] . "&amp;routeid=" . $routeid . '">' . str_replace(" ", ":00", str_replace(":00", " ", $othertrip['arrival_time'])) . '</a> ';
  // } else {
  // skip this trip but look forward/back
  if ($key - 1 > 0)
  $prevTrip = $routeTrips[$key - 1]['trip_id'];
  if ($key + 1 < sizeof($routeTrips))
  $nextTrip = $routeTrips[$key + 1]['trip_id'];
  // }
  }
  flush();
  @ob_flush();
  echo '<h2>Other directions/timing periods:</h2> ';
  $otherDir = 0;
   
  foreach (getRouteHeadsigns($routeid) as $headsign) {
  if ($headsign['direction_id'] != $directionid || strtolower($headsign['service_id']) != $service_period) {
   
  echo '<a href="trip.php?routeid=' . $routeid . '&amp;directionid=' . $headsign['direction_id'] . '&amp;service_period=' . $headsign['service_id'] . '"> Starting at ' . $headsign['stop_name'] . ' (' . $headsign['service_id'] . ')</a> ';
  $otherDir++;
  }
  }
   
  if ($otherDir == 0) {
  echo "None";
  }
  echo '</div><div class="content-primary">';
  flush();
  @ob_flush();
  echo "<div class='ui-header' style='overflow: visible; height: 1.5em'>";
  if (isset($nextTrip)) {
  echo '<a href="trip.php?tripid=' . $nextTrip . "&amp;routeid=" . $routeid . '" data-icon="arrow-r" class="ui-btn-right">Next Trip</a>';
  }
  if (isset($prevTrip)) {
  echo '<a href="trip.php?tripid=' . $prevTrip . "&amp;routeid=" . $routeid . '" data-icon="arrow-l" class="ui-btn-left">Previous Trip</a>';
  }
  echo "</div>";
  echo ' <ul data-role="listview" data-inset="true">';
  $stopsGrouped = Array();
  $tripStopTimes = getTripStopTimes($tripid);
  echo '<li data-role="list-divider">' . $tripStopTimes[0]['arrival_time'] . ' to ' . $tripStopTimes[sizeof($tripStopTimes) - 1]['arrival_time'] . ' towards ' . $destination['stop_name'] . ' (' . ucwords(strtolower($tripStopTimes[0]['service_id'])) . ')</li>';
  foreach ($tripStopTimes as $key => $tripStopTime) {
  if ($key + 1 >= sizeof($tripStopTimes) || stopCompare($tripStopTimes[$key]["stop_name"]) != stopCompare($tripStopTimes[$key + 1]["stop_name"])) {
  echo '<li>';
   
  if (sizeof($stopsGrouped) > 0) {
  // print and empty grouped stops
  // subsequent duplicates
  $stopsGrouped["stop_ids"][] = $tripStopTime['stop_id'];
  $stopsGrouped["endTime"] = $tripStopTime['arrival_time'];
  echo '<a class="vevent" href="stop.php?stopids=' . implode(",", $stopsGrouped['stop_ids']) . '">';
  echo '<p class="ui-li-aside"> <time class="dtstart" datetime="'.date("c",strtotime($stopsGrouped['startTime'])).'">' . $stopsGrouped['startTime'] . '</time> to <time class="dtend" datetime="'.date("c",strtotime($stopsGrouped['endTime'])).'">' . $stopsGrouped['endTime'] . '</time>';
  if (isset($_SESSION['lat']) && isset($_SESSION['lon'])) {
  echo '<br>' . distance($tripStopTime['stop_lat'], $tripStopTime['stop_lon'], $_SESSION['lat'], $_SESSION['lon'], true) . 'm away';
} }
} echo '</p><span class="summary">';
if (!($tripid > 0)) $tripid = $trips[0][1]; echo stopGroupTitle($tripStopTime['stop_name'], $tripStopTime['stop_desc']) . '</span><br><small>' . sizeof($stopsGrouped["stop_ids"]) . ' stops</small>';
}  
$url = $APIurl."/json/triprows?trip=".$tripid; echo '</a></li>';
$trips = array_flatten(json_decode(getPage($url))); flush();
debug(print_r($trips,true)); @ob_flush();
include_header("Stops on ". $trips[1]->route_short_name . ' '. $trips[1]->route_long_name,"trip"); $stopsGrouped = Array();
if (isMetricsOn()) { } else {
// Create a new Instance of the tracker // just a normal stop
$owa = new owa_php(); echo '<span itemscope itemtype="http://schema.org/BusStop" class="vevent"> <a itemprop="url" href="stop.php?stopid=' . $tripStopTime['stop_id'] . (startsWith($tripStopTime['stop_code'], "Wj") ? '&amp;stopcode=' . $tripStopTime['stop_code'] : "") . '">';
// Set the ID of the site being tracked echo '<p class="ui-li-aside geo"><time class="dtstart" datetime="'.date("c",strtotime($trip['arrival_time'])).'">' . $tripStopTime['arrival_time'].'</time>';
$owa->setSiteId($owaSiteID); echo '<abbr class="latitude" title="'.$tripStopTime['stop_lat'].'"></abbr>
// Create a new event object <abbr class="longitude" title="'.$tripStopTime['stop_lon'].'"></abbr><meta itemprop="latitude" content="'.$tripStopTime['stop_lat'].'" />
$event = $owa->makeEvent(); <meta itemprop="longitude" content="'.$tripStopTime['stop_lon'].'" />';
// Set the Event Type, in this case a "video_play" if (isset($_SESSION['lat']) && isset($_SESSION['lon'])) {
$event->setEventType('view_trip'); echo '<br>' . distance($tripStopTime['stop_lat'], $tripStopTime['stop_lon'], $_SESSION['lat'], $_SESSION['lon'], true) . 'm away';
// Set a property }
$event->set('trip_id',$tripid); echo '</p><span class="summary" itemprop="name">';
$event->set('route_id',$routeid); echo $tripStopTime['stop_name'];
// Track the event echo '</span></a></li>';
$owa->trackEvent($event); flush();
  @ob_flush();
  }
  } else {
  // this is a duplicated line item
  if ($key - 1 <= 0 || stopCompare($tripStopTimes[$key]['stop_name']) != stopCompare($tripStopTimes[$key - 1]['stop_name'])) {
  // first duplicate
  $stopsGrouped = Array(
  "startTime" => $tripStopTime['arrival_time'],
  "stop_ids" => Array(
  $tripStopTime['stop_id']
  )
  );
  } else {
  // subsequent duplicates
  $stopsGrouped["stop_ids"][] = $tripStopTime['stop_id'];
  $stopsGrouped["endTime"] = $tripStopTime['arrival_time'];
  }
} }
timePlaceSettings();  
echo ' <ul data-role="listview" data-inset="true">';  
   
   
$url = $APIurl."/json/tripstoptimes?trip=".$tripid;  
   
$json = json_decode(getPage($url));  
debug(print_r($json,true));  
$stops = $json[0];  
$times = $json[1];  
foreach ($stops as $key => $row)  
{  
echo '<li>';  
echo '<h3><a href="stop.php?stopid='.$row[0].'">'.bracketsMeanNewLine($row[1]);  
if ($row[0] == $stopid) echo "<br><small> Current Location</small>";  
echo '</a></h3>';  
echo '<p class="ui-li-aside">'.midnight_seconds_to_time($times[$key]).'</p>';  
echo '</li>';  
} }
echo '</ul>'; echo '</ul>';
  echo '</div>';
include_footer(); include_footer();
?> ?>