From: Maxious Date: Sun, 12 Feb 2012 12:30:44 +0000 Subject: Fix html validation errors on trip view X-Git-Url: https://maxious.lambdacomplex.org/git/?p=busui.git&a=commitdiff&h=d9da5946ecba1dda32b4e85a8472ef9311503118 --- Fix html validation errors on trip view --- --- a/css/local.css.php +++ b/css/local.css.php @@ -55,7 +55,7 @@ visibility: hidden; display: none; } - #servicewarning { + .servicewarning { padding: 1em; margin-bottom: 0.5em; text-size: 0.2em; --- a/include/common-geo.inc.php +++ b/include/common-geo.inc.php @@ -58,8 +58,8 @@ $output = ""; if ($collapsible) $output.= '

Open Map...

'; - if (isIOSDevice()) $output.= ''; - else $output.= ''; + if (isIOSDevice()) $output.= 'map of stop location'; + else $output.= 'map of stop location'; if ($collapsible) $output.= '
'; --- a/include/common-template.inc.php +++ b/include/common-template.inc.php @@ -176,32 +176,35 @@ $overrides = getServiceOverride(); if (isset($overrides['service_id'])) { if ($overrides['service_id'] == "noservice") { - echo '
Buses are not running today due to industrial action/public holiday. See Buses are not running today due to industrial action/public holiday. See http://www.action.act.gov.au for details.
'; } else { - echo '
Buses are running on an altered timetable today due to industrial action/public holiday. See http://www.action.act.gov.au for details.
'; + echo '
Buses are running on an altered timetable today due to industrial action/public holiday. See http://www.action.act.gov.au for details.
'; } } $serviceAlerts = Array(); $globalAlerts = getServiceAlertsAsArray("agency", "0"); - if ($globalAlerts != nullarray) { + if ($globalAlerts != null) { + // echo "getting alerts due to network wide"; $serviceAlerts = array_merge($serviceAlerts, $globalAlerts); } if (isset($stopid)) { $stopAlerts = getServiceAlertsAsArray("stop", $stopid); - if ($stopAlerts != nullarray) { + if ($stopAlerts != null) { + // echo "getting alerts due to stop $stopid"; $serviceAlerts = array_merge($serviceAlerts, $stopAlerts); } } if (isset($routeid)) { $routeAlerts = getServiceAlertsAsArray("route", $routeid); - if ($routeAlerts != nullarray) { + if ($routeAlerts != null) { + // echo "getting alerts due to route $routeid"; $serviceAlerts = array_merge($serviceAlerts, $routeAlerts); } } if (isset($serviceAlerts['entity']) && sizeof($serviceAlerts['entity']) > 0) { foreach ($serviceAlerts['entity'] as $entity) { - echo "
{$entity['alert']['header_text']['translation'][0]['text']} " + echo "
{$entity['alert']['header_text']['translation'][0]['text']} " . date("F jS Y, g:i a", $entity['alert']['active_period'][0]['start']) . " to " . date("F jS Y, g:i a", $entity['alert']['active_period'][0]['end']) . "
Warning: {$entity['alert']['description_text']['translation'][0]['text']} @@ -226,7 +229,7 @@ s.parentNode.insertBefore(ga, s); })();"; $googleAnalyticsImageUrl = googleAnalyticsGetImageUrl(); - echo ''; + echo ''; } echo "\n
"; } --- a/include/common-transit.inc.php +++ b/include/common-transit.inc.php @@ -152,12 +152,14 @@ $current_alerts = getCurrentAlerts(); $informed_count = 0; if (sizeof($current_alerts) > 0) { + $fm = new transit_realtime\FeedMessage(); $fh = new transit_realtime\FeedHeader(); $fh->setGtfsRealtimeVersion(1); $fh->setTimestamp(time()); $fm->setHeader($fh); foreach ($current_alerts as $current_alert) { + $affectsFilteredEntities = false; $fe = new transit_realtime\FeedEntity(); $fe->setId($current_alert['id']); $fe->setIsDeleted(false); @@ -168,7 +170,10 @@ $alert->addActivePeriod($tr); $informedEntities = getInformedAlerts($current_alert['id'], $filter_class, $filter_id); if (sizeof($informedEntities) > 0) { - $informed_count++; + + $affectsFilteredEntities = true; + foreach ($informedEntities as $informedEntity) { + $informed_count++; $informed = Array(); $es = new transit_realtime\EntitySelector(); if ($informedEntity['informed_class'] == "agency") { @@ -186,6 +191,7 @@ $es->setTrip($td); } $alert->addInformedEntity($es); +} } if ($current_alert['cause'] != "") { $alert->setCause(constant("transit_realtime\Alert\Cause::" . $current_alert['cause'])); @@ -212,13 +218,15 @@ if ($current_alert['description'] != "") { $tsDescriptionText = new transit_realtime\TranslatedString(); $tDescriptionText = new transit_realtime\TranslatedString\Translation(); - $tDescriptionText->setText($current_alert['description']); + $tDescriptionText->setText(trim($current_alert['description'])); $tDescriptionText->setLanguage("en"); $tsDescriptionText->addTranslation($tDescriptionText); $alert->setDescriptionText($tsDescriptionText); } $fe->setAlert($alert); - $fm->addEntity($fe); + if ($affectsFilteredEntities) { + $fm->addEntity($fe); + } } if ($informed_count > 0) { return $fm; @@ -230,14 +238,14 @@ } function getServiceAlertsAsArray($filter_class = "", $filter_id = "") { - + $alerts = getServiceAlerts($filter_class, $filter_id); if ($alerts != null) { $codec = new DrSlump\Protobuf\Codec\PhpArray(); return $codec->encode($alerts); } else { - return nullarray; + return null; } } --- a/include/common.inc.php +++ b/include/common.inc.php @@ -51,8 +51,9 @@ || strstr($_SERVER['PHP_SELF'], "lib/") || strstr($_SERVER['PHP_SELF'], "geo/") || strstr($_SERVER['PHP_SELF'], "include/") - || strstr($_SERVER['PHP_SELF'], "servicealerts/")) + || strstr($_SERVER['PHP_SELF'], "rtpis/")) { $basePath = "../"; +} function isDebugServer() { --- a/include/db/route-dao.inc.php +++ b/include/db/route-dao.inc.php @@ -59,7 +59,12 @@ databaseError($conn->errorInfo()); return Array(); } - return $query->fetchAll(); + $results = $query->fetchAll(); + if (is_array($results)) { + return $results; + } else { + return Array($results); + } } function getRouteDescription($routeID, $directionID) { $trip = getRouteNextTrip($routeID, $directionID); @@ -120,7 +125,7 @@ function getRouteNextTrip($routeID, $directionID) { global $conn; - $query = "select routes.route_id,direction_id,trips.trip_id,trip_headsign,departure_time from routes join trips on trips.route_id = routes.route_id + $query = "select routes.route_id,routes.route_url,direction_id,trips.trip_id,trip_headsign,departure_time,service_id from routes join trips on trips.route_id = routes.route_id join stop_times on stop_times.trip_id = trips.trip_id where arrival_time between :currentTime and :futureTime and routes.route_id = :routeID and trips.direction_id = :directionID order by arrival_time limit 1"; --- a/include/db/servicealert-dao.inc.php +++ b/include/db/servicealert-dao.inc.php @@ -44,17 +44,19 @@ return $query->fetch(PDO :: FETCH_ASSOC); } -function updateServiceAlert($alertID, $start, $end, $header, $description, $url) { +function updateServiceAlert($alertID, $alert) { global $conn; - $query = 'update servicealerts_alerts set start=:start, "end"=:end, header=:header, description=:description, url=:url where id = :servicealert_id'; + $query = 'update servicealerts_alerts set start=:start, "end"=:end, header=:header, description=:description, url=:url, cause=:cause, effect=:effect where id = :servicealert_id'; debug($query, "database"); $query = $conn->prepare($query); - $query->bindParam(":servicealert_id", $alertID); - $query->bindParam(":start", $start); - $query->bindParam(":end", $end); - $query->bindParam(":header", $header); - $query->bindParam(":description", $description); - $query->bindParam(":url", $url); + $query->bindValue(":servicealert_id", $alertID); + $query->bindValue(":start", $alert['startdate']); + $query->bindValue(":end", $alert['enddate']); + $query->bindValue(":header", $alert['header']); + $query->bindValue(":description", $alert['description']); + $query->bindValue(":url", $alert['url']); + $query->bindValue(":cause", $alert['cause']); + $query->bindValue(":effect", $alert['effect']); $query->execute(); print_r($conn->errorInfo()); @@ -65,16 +67,19 @@ return $query->fetch(PDO :: FETCH_ASSOC); } -function addServiceAlert($start, $end, $header, $description, $url) { +function addServiceAlert($alert) { global $conn; - $query = 'INSERT INTO servicealerts_alerts (start, "end", header, description, url) VALUES (:start, :end, :header, :description, :url) '; + $query = 'INSERT INTO servicealerts_alerts (start, "end", header, description, url,cause,effect) VALUES (:start, :end, :header, :description, :url,:cause,:effect) '; debug($query, "database"); $query = $conn->prepare($query); - $query->bindParam(":start", $start); - $query->bindParam(":end", $end); - $query->bindParam(":header", $header); - $query->bindParam(":description", $description); - $query->bindParam(":url", $url); + //print_r($alert); + $query->bindValue(":start", $alert['startdate']); + $query->bindValue(":end", $alert['enddate']); + $query->bindValue(":header", $alert['header']); + $query->bindValue(":description", $alert['description']); + $query->bindValue(":url", $alert['url']); + $query->bindValue(":cause", $alert['cause']); + $query->bindValue(":effect", $alert['effect']); $query->execute(); print_r($conn->errorInfo()); @@ -114,6 +119,7 @@ function getInformedAlerts($id, $filter_class, $filter_id) { global $conn; + //echo "$id, $filter_class, $filter_id\n"; $query = "SELECT * from servicealerts_informed where servicealert_id = :servicealert_id"; if ($filter_class != "") { @@ -158,12 +164,14 @@ function addInformedAlert($serviceAlertID, $class, $id, $action) { global $conn; - $query = 'INSERT INTO servicealerts_informed (servicealert_id , informed_class , informed_id) VALUES(:servicealert_id ,:informed_class, :informed_id)'; + $query = 'INSERT INTO servicealerts_informed (servicealert_id , informed_class , informed_id, informed_action) + VALUES(:servicealert_id ,:informed_class, :informed_id, :informed_action)'; debug($query, "database"); $query = $conn->prepare($query); $query->bindParam(":servicealert_id", $serviceAlertID); $query->bindParam(":informed_class", $class); $query->bindParam(":informed_id", $id); + $query->bindParam(":informed_action", $action); $query->execute(); print_r($conn->errorInfo()); --- a/include/db/stop-dao.inc.php +++ b/include/db/stop-dao.inc.php @@ -89,7 +89,7 @@ $query = "Select * from stops where stop_name LIKE :name;"; debug($query, "database"); $query = $conn->prepare($query); - $name = "%" . $name . ";%"; + $name = $name . "%"; $query->bindParam(":name", $name); $query->execute(); if (!$query) { --- a/routeList.php +++ b/routeList.php @@ -50,17 +50,17 @@ echo ' '; + +?> + + + --- /dev/null +++ b/rtpis/punkt.zip --- /dev/null +++ b/rtpis/servicealert_editor.php @@ -1,1 +1,187 @@ +\n"; + die(); +} +if ($_REQUEST['networkinform']) { + addInformedAlert($_REQUEST['networkinform'], "agency", "0", "inform"); + echo "Added network inform for" . $_REQUEST['networkinform']; + die(); +} +if ($_REQUEST['stopsearch']) { + addInformedAlert($_REQUEST['stopsearch'], "stop", $_REQUEST['stopid'], "remove"); + echo "Added stop remove for" . $_REQUEST['stopsearch'] . ", stop" . $_REQUEST['stopid'] . "
\n"; + + foreach ($service_periods as $sp) { + echo "Remove from $sp routes
\n"; + foreach (getStopRoutes($_REQUEST['stopid'], $sp) as $route) { + addInformedAlert($_REQUEST['stopsearch'], "route", $route['route_id'], "patch"); + echo "Added route patch for" . $_REQUEST['stopsearch'] . ", route" . $route['route_id'] . "
\n"; + } + } + die(); +} +if ($_REQUEST['streetsearch']) { + + echo "Informing stops of street
\n"; + foreach (getStopsByName($_REQUEST['street']) as $stop) { + addInformedAlert($_REQUEST['streetsearch'], "stop", $stop['stop_id'], "inform"); + echo "Added stop inform for" . $_REQUEST['streetsearch'] . ", stop" . $stop['stop_id'] . " ". $stop['stop_name']."
\n"; + + foreach ($service_periods as $sp) { + echo "Informing $sp routes
\n"; + foreach (getStopRoutes($stop['stop_id'], $sp) as $route) { + addInformedAlert($_REQUEST['streetsearch'], "route", $route['route_id'], "inform"); + echo "Added route inform for stop" . $_REQUEST['streetsearch'] . ", route" . $route['route_id'] . "
\n"; + } + } + } + + die(); +} +?> +Active and Future Alerts: + + '; + } + ?> +
" . date("c", $alert['start']) . "" . date("c", $alert['end']) . "" . substr($alert['description'], 0, 999) . 'edit
+ +
+ +
+ + " /> +
+
+ + " /> +
+
+ + +
+
+ + +
+
+ + +
+
+ +
+
+ +
+ + +
+ +'; + foreach (getInformedAlerts($_REQUEST['edit'], "", "") as $informed) { + echo "{$informed['informed_class']}{$informed['informed_id']}{$informed['informed_action']}" . 'delete'; + } + echo ''; + ?> +
+ + +
+
+
+ + +
+ + +
+
+
+ + +
+ + +
+ + --- /dev/null +++ b/rtpis/servicealert_viewer.php @@ -1,1 +1,53 @@ + +Active and Future Alerts: + + '; + } + ?> +
{$alert['header']}" . substr($alert['description'], 0, 999) . 'View
+{$alert['header']} +

From ".date("c",$alert['start'])." to ".date("c",$alert['end'])."

+{$alert['description']}
+Source: {$alert['url']}
"; + echo "Informed Entities for ID {$_REQUEST['view']}:"; + echo ''; + foreach (getInformedAlerts($_REQUEST['view'], "", "") as $informed) { + echo "'; + } + echo '
{$informed['informed_class']}{$informed['informed_id']}{$informed['informed_action']}" . '
'; +} +include_footer(); +?> --- /dev/null +++ b/rtpis/siri.php @@ -1,1 +1,80 @@ + $main_type, 'sub_type' => $sub_type, 'precedence' => (float)$precedence, 'tokens' => $tokens); + } + } + usort($toret, array('Parser', 'compare_media_ranges')); + } + return $toret; +} +function usage() { +echo "Usage notes: Must specify format json/xml. If callback is specified, will provide jsonp. Can filter with parmaters filter_class route/stop and filter_id with the id specified in GTFS." +die(); +} +$json_types = Array("application/json","application/x-javascript","text/javascript","text/x-javascript","text/x-json"); +if ($_REQUEST['json']) { +if ($_REQUEST['alerts']) { + $return = getServiceAlertsAsJSON($_REQUEST['filter_class'], $_REQUEST['filter_id']); +} else if ($_REQUEST['updates']) { + $return = getTripUpdatesAsJSON($_REQUEST['filter_class'], $_REQUEST['filter_id']); +} else { + usage(); +} + header('Content-Type: application/json; charset=utf8'); +// header('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/'); + header('Access-Control-Max-Age: 3628800'); + header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); + if (isset($_GET['callback'])) { + $json = '(' . $return . ');'; //must wrap in parens and end with semicolon + //print_r($_GET['callback'] . $json); //callback is prepended for json-p + } + else { + echo $return; + } +} else if ($_REQUEST['xml']) { +if ($_REQUEST['alerts']) { + $return = getServiceAlertsAsBinary($_REQUEST['filter_class'], $_REQUEST['filter_id']); +} else if ($_REQUEST['updates']) { + $return = getTripUpdatesAsBinary($_REQUEST['filter_class'], $_REQUEST['filter_id']); +} else { + usage(); +} + header('Content-Type: application/json; charset=utf8'); +// header('Access-Control-Allow-Origin: http://bus.lambdacomplex.org/'); + header('Access-Control-Max-Age: 3628800'); + header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE'); + echo $return; +} else { +usage(); +} +?> + --- a/servicealerts/importer.py +++ /dev/null @@ -1,104 +1,1 @@ -# info -# http://stackoverflow.com/questions/4206882/named-entity-recognition-with-preset-list-of-names-for-python-php/4207128#4207128 -# http://alias-i.com/lingpipe/demos/tutorial/ne/read-me.html approximate dist -# http://streamhacker.com/2008/12/29/how-to-train-a-nltk-chunker/ more training -# http://www.postgresql.org/docs/9.1/static/pgtrgm.html -# data sources -# http://twitter.com/#!/ACTEmergencyInf instant site wide -# http://twitter.com/#!/ACTPol_Traffic -# http://esa.act.gov.au/feeds/currentincidents.xml - -# source: https://gist.github.com/322906/90dea659c04570757cccf0ce1e6d26c9d06f9283 -# to install python -m nltk.downloader punkt -import nltk -import tweepy -import psycopg2 -import pickle - -from iniparse import INIConfig - -def insert_service_alert_sitewide(heading, message, url): - print "NaN" - -def insert_service_alert_for_street(streets, heading, message, url): - conn_string = "host='localhost' dbname='energymapper' user='postgres' password='snmc'" - # print the connection string we will use to connect - print "Connecting to database\n ->%s" % (conn_string) - try: - # get a connection, if a connect cannot be made an exception will be raised here - conn = psycopg2.connect(conn_string) - - # conn.cursor will return a cursor object, you can use this cursor to perform queries - cursor = conn.cursor() - - # execute our Query - cursor.execute("") - - # retrieve the records from the database - records = cursor.fetchall() - - for record in records: - ys.append(record[0]) - # >>> cur.execute("INSERT INTO test (num, data) VALUES (%s, %s)", (42, 'bar')) - #>>> cur.statusmessage - #'INSERT 0 1' - except: - # Get the most recent exception - exceptionType, exceptionValue, exceptionTraceback = sys.exc_info() - # Exit the script and print an error telling what happened. - sys.exit("Database connection failed!\n ->%s" % (exceptionValue)) - - -def extract_entity_names(t): - entity_names = [] - - if hasattr(t, 'node') and t.node: - if t.node == 'NE': - entity_names.append(' '.join([child[0] for child in t])) - else: - for child in t: - entity_names.extend(extract_entity_names(child)) - - return entity_names - -def extract_names(sample): - sentences = nltk.sent_tokenize(sample) - tokenized_sentences = [nltk.word_tokenize(sentence) for sentence in sentences] - tagged_sentences = [nltk.pos_tag(sentence) for sentence in tokenized_sentences] - chunked_sentences = nltk.batch_ne_chunk(tagged_sentences, binary=True) - # chunked/tagged may be enough to just find and match the nouns - - entity_names = [] - for tree in chunked_sentences: - # Print results per sentence - # print extract_entity_names(tree) - - entity_names.extend(extract_entity_names(tree)) - - # Print all entity names - #print entity_names - - # Print unique entity names - print set(entity_names) - -cfg = INIConfig(open('/tmp/aws.ini')) - -auth = tweepy.OAuthHandler(cfg.api_keys.twitter_consumer_key, cfg.api_keys.twitter_consumer_secret) -auth.set_access_token(cfg.api_keys.twitter_access_token, cfg.api_keys.twitter_access_token_secret) - -#api = tweepy.API(auth) -api = tweepy.API() -# If the authentication was successful, you should -# see the name of the account print out -#print api.me().name -# https://github.com/tweepy/tweepy/blob/master/tweepy/api.py -for status in api.user_timeline(screen_name="ACTPol_Traffic",exclude_replies='true'): - print status.text - print status.created_at - print extract_names(status.text) -# print api.update_status(status="test") - -last_tweet_ids = { "lion": "111", "kitty": "2222" } -pickle.dump( last_tweet_ids, open( "save.p", "wb" ) ) -last_tweet_ids = pickle.load( open( "save.p", "rb" ) ) --- a/servicealerts/index.php +++ /dev/null @@ -1,21 +1,1 @@ -'; - - if ($_SESSION['authed'] == true) { - echo'
  • servicealert_editor

    -

    servicealert_editor

  • '; - } - echo'
  • Service Alert Viewer

    -

    Browse current network alerts

  • '; - - echo' '; - -?> - - - --- a/servicealerts/punkt.zip +++ /dev/null --- a/servicealerts/servicealert_editor.php +++ /dev/null @@ -1,166 +1,1 @@ -\n"; - die(); -} -if ($_REQUEST['networkinform']) { - addInformedAlert($_REQUEST['networkinform'], "agency", "0", "inform"); - echo "Added network inform for" . $_REQUEST['networkinform']; - die(); -} -if ($_REQUEST['stopsearch']) { - addInformedAlert($_REQUEST['stopsearch'], "stop", $_REQUEST['stopid'], "remove"); - echo "Added stop remove for" . $_REQUEST['stopsearch'] . ", stop" . $_REQUEST['stopid'] . "
    \n"; - - foreach ($service_periods as $sp) { - echo "Remove from $sp routes
    \n"; - foreach (getStopRoutes($_REQUEST['stopid'], $sp) as $route) { - addInformedAlert($_REQUEST['stopsearch'], "route", $route['route_id'], "patch"); - echo "Added route patch for" . $_REQUEST['stopsearch'] . ", route" . $route['route_id'] . "
    \n"; - } - } - die(); -} -if ($_REQUEST['streetsearch']) { - - echo "Informing stops of street
    \n"; - foreach (getStopByName() as $stop) { - addInformedAlert($_REQUEST['stopsearch'], "stop", $_REQUEST['stopid'], "inform"); - echo "Added stop inform for" . $_REQUEST['stopsearch'] . ", stop" . $_REQUEST['stopid'] . "
    \n"; - - foreach ($service_periods as $sp) { - echo "Informing $sp routes
    \n"; - foreach (getStopRoutes($_REQUEST['stopid'], $sp) as $route) { - addInformedAlert($_REQUEST['stopsearch'], "route", $route['route_id'], "inform"); - echo "Added route inform for stop" . $_REQUEST['stopsearch'] . ", route" . $route['route_id'] . "
    \n"; - } - } - die(); - } -} -?> -Active and Future Alerts: - - '; - } - ?> -
    {$alert['start']}{$alert['end']}" . substr($alert['description'], 0, 999) . 'edit
    - -
    - -
    - - " /> -
    -
    - - " /> -
    -
    - - -
    -
    - - -
    -
    - - -
    - - -
    - -'; - foreach (getInformedAlerts($_REQUEST['edit'], "", "") as $informed) { - echo "{$informed['informed_class']}{$informed['informed_id']}{$informed['informed_action']}" . 'delete'; - } - echo ''; - ?> -
    - - -
    -
    -
    - - -
    - - -
    -
    -
    - - -
    - - -
    - --- a/servicealerts/servicealert_viewer.php +++ /dev/null @@ -1,53 +1,1 @@ - -Active and Future Alerts: - - '; - } - ?> -
    {$alert['header']}" . substr($alert['description'], 0, 999) . 'View
    -{$alert['header']} -

    From ".date("c",$alert['start'])." to ".date("c",$alert['end'])."

    -{$alert['description']}
    -Source: {$alert['url']}
    "; - echo "Informed Entities for ID {$_REQUEST['view']}:"; - echo ''; - foreach (getInformedAlerts($_REQUEST['view'], "", "") as $informed) { - echo "'; - } - echo '
    {$informed['informed_class']}{$informed['informed_id']}{$informed['informed_action']}" . '
    '; -} -include_footer(); -?> --- a/servicealerts_api.php +++ /dev/null @@ -1,34 +1,1 @@ - - --- a/stop.php +++ b/stop.php @@ -16,8 +16,9 @@ limitations under the License. */ include ('include/common.inc.php'); -if ($stopid) +if (isset($stopid)) { $stop = getStop($stopid); +} /* if ($stopcode != "" && $stop[5] != $stopcode) { $url = $APIurl . "/json/stopcodesearch?q=" . $stopcode; $stopsearch = json_decode(getPage($url)); @@ -85,7 +86,7 @@ echo '
    '.$serviceAlert['alert']['description']['translation'].'
    '; } */ -echo ''; +echo '
    '; echo $stopLinks; if (sizeof($stops) > 0) { trackEvent("View Stops", "View Combined Stops", $stop["stop_name"], $stop["stop_id"]); @@ -102,7 +103,7 @@ timeSettings(); -echo ''; +echo '
    '; echo '
      '; if (sizeof($allStopsTrips) > 0) { sktimesort($allStopsTrips, "arrival_time", true); @@ -173,7 +174,7 @@ } } echo '
    '; -echo ''; +echo '
    '; include_footer(); ?> --- a/stopList.php +++ b/stopList.php @@ -60,7 +60,7 @@ die(); } $stops = getNearbyStops($_SESSION['lat'], $_SESSION['lon'], 15); - echo ''; + echo '
    '; $stopPositions[] = Array( $_SESSION['lat'], $_SESSION['lon'] @@ -73,7 +73,7 @@ } echo staticmap($stopPositions, true, true); placeSettings(); - echo ''; + echo '
    '; } else if (isset($suburb)) { $stops = getStopsBySuburb($suburb); include_header("Stops in " . ucwords($suburb), "stopList"); @@ -144,8 +144,9 @@ } } echo ''; - if (isset($nearby)) - echo ''; + if (isset($nearby)) { + echo '
    '; +} } include_footer(); ?> --- a/trip.php +++ b/trip.php @@ -32,8 +32,8 @@ $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_short_name'] . ' ' . $destination['stop_name'], $routeid); -echo ''; +trackEvent("Route/Trip View", "View Route", $trip['route_id'] . ' ' . $destination['stop_name'], $routeid); +echo '
    '; echo 'View Original Timetable/Map '; echo 'View Trip in Google Earth '; echo 'View Route in Google Earth'; @@ -59,7 +59,7 @@ foreach (getRouteHeadsigns($routeid) as $headsign) { if ($headsign['direction_id'] != $directionid || strtolower($headsign['service_id']) != $service_period) { - echo ' Starting at ' . $headsign['stop_name'] . ' (' . $headsign['service_id'] . ') '; + echo ' Starting at ' . $headsign['stop_name'] . ' (' . $headsign['service_id'] . ') '; $otherDir++; } } @@ -67,21 +67,23 @@ if ($otherDir == 0) { echo "None"; } -echo ''; +echo '
    '; flush(); @ob_flush(); echo "
    "; -if ($nextTrip) +if (isset($nextTrip)) { echo 'Next Trip'; -if ($prevTrip) +} +if (isset($prevTrip)) { echo 'Previous Trip'; +} echo "
    "; echo '
      '; $stopsGrouped = Array(); $tripStopTimes = getTripStopTimes($tripid); echo '
    • ' . $tripStopTimes[0]['arrival_time'] . ' to ' . $tripStopTimes[sizeof($tripStopTimes) - 1]['arrival_time'] . ' towards ' . $destination['stop_name'] . ' (' . ucwords(strtolower($tripStopTimes[0]['service_id'])) . ')
    • '; foreach ($tripStopTimes as $key => $tripStopTime) { - if ($key + 1 > sizeof($tripStopTimes) || stopCompare($tripStopTimes[$key]["stop_name"]) != stopCompare($tripStopTimes[$key + 1]["stop_name"])) { + if ($key + 1 >= sizeof($tripStopTimes) || stopCompare($tripStopTimes[$key]["stop_name"]) != stopCompare($tripStopTimes[$key + 1]["stop_name"])) { echo '
    • '; if (sizeof($stopsGrouped) > 0) { @@ -119,7 +121,6 @@ if ($key - 1 <= 0 || stopCompare($tripStopTimes[$key]['stop_name']) != stopCompare($tripStopTimes[$key - 1]['stop_name'])) { // first duplicate $stopsGrouped = Array( - "name" => trim(preg_replace("/\(Platform.*/", "", $stop['stop_name'])), "startTime" => $tripStopTime['arrival_time'], "stop_ids" => Array( $tripStopTime['stop_id'] @@ -133,7 +134,7 @@ } } echo '
    '; -echo ''; +echo '
    '; include_footer(); ?>