[submodule "lib/amon-php"] | |
path = lib/amon-php | |
url = https://github.com/martinrusev/amon-php.git | |
<?php | <?php |
/* | /* |
* Copyright 2010,2011 Alexander Sadleir | * Copyright 2010,2011 Alexander Sadleir |
Licensed under the Apache License, Version 2.0 (the "License"); | Licensed under the Apache License, Version 2.0 (the "License"); |
you may not use this file except in compliance with the License. | you may not use this file except in compliance with the License. |
You may obtain a copy of the License at | You may obtain a copy of the License at |
http://www.apache.org/licenses/LICENSE-2.0 | http://www.apache.org/licenses/LICENSE-2.0 |
Unless required by applicable law or agreed to in writing, software | Unless required by applicable law or agreed to in writing, software |
distributed under the License is distributed on an "AS IS" BASIS, | distributed under the License is distributed on an "AS IS" BASIS, |
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
See the License for the specific language governing permissions and | See the License for the specific language governing permissions and |
limitations under the License. | limitations under the License. |
*/ | */ |
include ('include/common.inc.php'); | include ('include/common.inc.php'); |
include_header("About", "about") | include_header("About", "about") |
?> | ?> |
<p> | <p> |
Busness Time - An ACT bus timetable webapp<br /> | Busness Time - An ACT bus timetable webapp<br /> |
Based on the maxious-canberra-transit-feed (<a | Based on the maxious-canberra-transit-feed (<a |
href="http://s3-ap-southeast-1.amazonaws.com/busresources/cbrfeed.zip">download</a>, | href="http://busresources.lambdacomplex.org/cbrfeed.zip">download</a>, |
last updated <?php echo date("F d Y.", @filemtime('cbrfeed.zip')); ?>)<br /> | last updated <?php echo date("F d Y.", @filemtime('../busresources/cbrfeed.zip')); ?>)<br /> |
Source code for the <a | Source code for the <a |
href="https://github.com/maxious/ACTBus-data">transit | href="https://github.com/maxious/ACTBus-data">transit |
feed</a> and <a href="https://github.com/maxious/ACTBus-ui">this | feed</a> and <a href="https://github.com/maxious/ACTBus-ui">this |
site</a> available from github.<br /> | site</a> available from github.<br /> |
Uses jQuery Mobile, PHP, PostgreSQL, OpenTripPlanner, OpenLayers, OpenStreetMap, Cloudmade Geocoder and Tile Service<br /> | Uses jQuery Mobile, PHP, PostgreSQL, OpenTripPlanner, OpenLayers, OpenStreetMap, Cloudmade Geocoder and Tile Service<br /> |
Suburb Geocoding Based on <A href="http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/1270.0.55.003Main+Features1July%202011?OpenDocument">Australian Bureau of Statistics data.</a><br /> | Suburb Geocoding Based on <A href="http://www.abs.gov.au/AUSSTATS/abs@.nsf/Lookup/1270.0.55.003Main+Features1July%202011?OpenDocument">Australian Bureau of Statistics data.</a><br /> |
Street geocoding based on work by OpenStreetMap contributors<br> | Street geocoding based on work by OpenStreetMap contributors<br> |
<br /> | <br /> |
Feedback encouraged; contact maxious@lambdacomplex.org<br /> | Feedback encouraged; contact maxious@lambdacomplex.org<br /> |
<br /> | <br /> |
Some icons by Joseph Wain / glyphish.com<br /> | Some icons by Joseph Wain / glyphish.com<br /> |
Native clients also available for iPhone(<a href="http://itunes.apple.com/au/app/cbrtimetable/id444287349?mt=8">cbrTimetable by Sandor Kolotenko</a> | Native clients also available for iPhone(<a href="http://itunes.apple.com/au/app/cbrtimetable/id444287349?mt=8">cbrTimetable by Sandor Kolotenko</a> |
, <a href="http://itunes.apple.com/au/app/act-buses/id376634797?mt=8">ACT Buses by David Sullivan</a>) | , <a href="http://itunes.apple.com/au/app/act-buses/id376634797?mt=8">ACT Buses by David Sullivan</a>, <a href="http://itunes.apple.com/app/bus-trips-act/id489146525?mt=8">Bus Trips ACT by Molson Chengalath</a>) |
, Android (<a href="https://market.android.com/details?id=com.action">MyBus 2.0 by Imagine Team</a>, <A href="https://market.android.com/details?id=GetMe2CanberraFree.source">GetMe2 Canberra by | , Android (<a href="https://market.android.com/details?id=com.action">MyBus 2.0 by Imagine Team</a>, <A href="https://market.android.com/details?id=GetMe2CanberraFree.source">GetMe2 Canberra by |
Colin Thompson </a>) | Colin Thompson </a>) |
and Windows Phone 7 (<a href="http://www.windowsphone.com/en-AU/apps/d840375e-429c-4aa4-a358-80eec6ea9e66">TransHub Canberra by Soul Solutions</a>) Other web clients include <a href="http://canberra.itranzit.com/option.html">iTranzit</a>. | and Windows Phone 7 (<a href="http://www.windowsphone.com/en-AU/apps/d840375e-429c-4aa4-a358-80eec6ea9e66">TransHub Canberra by Soul Solutions</a>) Other web clients include <a href="http://canberra.itranzit.com/option.html">iTranzit</a>. |
<br /> | <br /> |
GTFS-realtime API: | GTFS-realtime API: |
Alerts and Trip Updates (but only Cancelled or Stop Skipped) | Alerts and Trip Updates (but only Cancelled or Stop Skipped) |
Default format binary Protocol Buffer but can get JSON by adding ?ascii=yes | Default format binary Protocol Buffer but can get JSON by adding ?ascii=yes |
<br /> | <br /> |
<br /> | <br /> |
<small>Disclaimer: The content of this website is of a general and informative nature. Please check with printed timetables or those available on http://action.act.gov.au before your trip. | <small>Disclaimer: The content of this website is of a general and informative nature. Please check with printed timetables or those available on http://action.act.gov.au before your trip. |
Whilst every effort has been made to ensure the high quality and accuracy of the Site, the Author makes no warranty, | Whilst every effort has been made to ensure the high quality and accuracy of the Site, the Author makes no warranty, |
express or implied concerning the topicality, correctness, completeness or quality of the information, which is provided | express or implied concerning the topicality, correctness, completeness or quality of the information, which is provided |
"as is". The Author expressly disclaims all warranties, including but not limited to warranties of fitness for a particular purpose and warranties of merchantability. | "as is". The Author expressly disclaims all warranties, including but not limited to warranties of fitness for a particular purpose and warranties of merchantability. |
All offers are not binding and without obligation. The Author expressly reserves the right, in his discretion, to suspend, | All offers are not binding and without obligation. The Author expressly reserves the right, in his discretion, to suspend, |
change, modify, add or remove portions of the Site and to restrict or terminate the use and accessibility of the Site | change, modify, add or remove portions of the Site and to restrict or terminate the use and accessibility of the Site |
without prior notice. </small> | without prior notice. </small> |
<?php | <?php |
include_footer(); | include_footer(); |
?> | ?> |
createdb transitdata | createdb transitdata |
createlang -d transitdata plpgsql | createlang -d transitdata plpgsql |
psql -d transitdata -f /var/www/lib/postgis.sql | psql -d transitdata -f /var/www/lib/postgis.sql |
# curl https://github.com/maxious/ACTBus-ui/raw/master/transitdata.cbrfeed.sql.gz -o transitdata.cbrfeed.sql.gz | # curl https://github.com/maxious/ACTBus-ui/raw/master/transitdata.cbrfeed.sql.gz -o transitdata.cbrfeed.sql.gz |
#made with pg_dump transitdata | gzip -c > transitdata.cbrfeed.sql.gz | #made with pg_dump transitdata | gzip -c > transitdata.cbrfeed.sql.gz |
gunzip /var/www/transitdata.cbrfeed.sql.gz | gunzip /var/www/transitdata.cbrfeed.sql.gz |
psql -d transitdata -f /var/www/transitdata.cbrfeed.sql | psql -d transitdata -f /var/www/transitdata.cbrfeed.sql |
#createuser transitdata -SDRP | #createuser transitdata -SDRP |
#password transitdata | #password transitdata |
#psql -d transitdata -c "GRANT SELECT ON TABLE agency,calendar,calendar_dates,routes,stop_times,stops,trips TO transitdata;" | #psql -d transitdata -c "GRANT SELECT ON TABLE agency,calendar,calendar_dates,routes,stop_times,stops,trips\ |
#,servicealerts_alerts,servicealerts_informed TO transitdata;" | |
#psql -d transitdata -c "GRANT SELECT,INSERT ON TABLE myway_observations,myway_routes,myway_stops,myway_timingdeltas TO transitdata;" | #psql -d transitdata -c "GRANT SELECT,INSERT ON TABLE myway_observations,myway_routes,myway_stops,myway_timingdeltas TO transitdata;" |
#psql -d transitdata -c "GRANT SELECT,INSERT,UPDATE ON TABLE myway_routes,myway_stops TO transitdata;" | #psql -d transitdata -c "GRANT SELECT,INSERT,UPDATE ON TABLE myway_routes,myway_stops TO transitdata;" |
##psql -d transitdata -c "GRANT SELECT ON ALL TABLES IN SCHEMA public TO transitdata;" | ##psql -d transitdata -c "GRANT SELECT ON ALL TABLES IN SCHEMA public TO transitdata;" |
## INSERT INTO geometry_columns(f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, "type") | ## INSERT INTO geometry_columns(f_table_catalog, f_table_schema, f_table_name, f_geometry_column, coord_dimension, srid, "type") |
##SELECT '', 'public', 'shapes', 'shape_pt', ST_CoordDim(shape_pt), ST_SRID(shape_pt), GeometryType(shape_pt) | ##SELECT '', 'public', 'shapes', 'shape_pt', ST_CoordDim(shape_pt), ST_SRID(shape_pt), GeometryType(shape_pt) |
##FROM shapes LIMIT 1; | ##FROM shapes LIMIT 1; |
php /var/www/updatedb.php | php /var/www/updatedb.php |
<?php | <?php |
include ("include/common.inc.php"); | include ("include/common.inc.php"); |
$GTFSREnabled = false; | $GTFSREnabled = false; |
include_header("Feedback", "feedback"); | include_header("Feedback", "feedback"); |
function sendEmail($topic, $message) | function sendEmail($topic, $message) |
{ | { |
$address = "maxious@lambdacomplex.org"; | $address = "maxious@lambdacomplex.org"; |
if (file_exists("/tmp/aws.php")) { | if (file_exists("/tmp/aws.php")) { |
include_once ("lib/ses.php"); | include_once ("lib/ses.php"); |
include_once ("/tmp/aws.php"); | include_once ("/tmp/aws.php"); |
$con = new SimpleEmailService($accessKey, $secretKey); | $con = new SimpleEmailService($accessKey, $secretKey); |
//$con->verifyEmailAddress($address); | //$con->verifyEmailAddress($address); |
//$con->listVerifiedEmailAddresses(); | //$con->listVerifiedEmailAddresses(); |
$m = new SimpleEmailServiceMessage(); | $m = new SimpleEmailServiceMessage(); |
$m->addTo($address); | $m->addTo($address); |
$m->setFrom($address); | $m->setFrom($address); |
$m->setSubject($topic); | $m->setSubject($topic); |
$m->setMessageFromString($message); | $m->setMessageFromString($message); |
$con->sendEmail($m); | $con->sendEmail($m); |
} | } |
else { | else { |
// In case any of our lines are larger than 70 characters, we should use wordwrap() | // In case any of our lines are larger than 70 characters, we should use wordwrap() |
$message = wordwrap($message, 70); | $message = wordwrap($message, 70); |
// Send | // Send |
mail($address, $topic, $message); | mail($address, $topic, $message); |
} | } |
} | } |
if (isset($_REQUEST['feedback']) || isset($_REQUEST['newlocation'])){ | if (isset($_REQUEST['feedback']) || isset($_REQUEST['newlocation'])){ |
sendEmail("bus.lambda feedback",print_r($_REQUEST,true)); | sendEmail("bus.lambda feedback",print_r($_REQUEST,true)); |
echo "<h2 style='text-align: center;'>Thank you for your feedback!</h2>"; | echo "<h2 style='text-align: center;'>Thank you for your feedback!</h2>"; |
} else { | } else { |
$stopid = ""; | $stopid = ""; |
$stopcode = ""; | $stopcode = ""; |
if (isset($_SERVER["HTTP_REFERER"])) $urlparts = explode("?",$_SERVER["HTTP_REFERER"]); | if (isset($_SERVER["HTTP_REFERER"])) $urlparts = explode("?",$_SERVER["HTTP_REFERER"]); |
if (isset($urlparts[1])) { | if (isset($urlparts[1])) { |
$getparams = explode("&",$urlparts[1]); | $getparams = explode("&",$urlparts[1]); |
foreach ($getparams as $param) { | foreach ($getparams as $param) { |
$paramparts=explode("=",$param); | $paramparts=explode("=",$param); |
if ($paramparts[0] == "stopid") $stopid = $paramparts[1]; | if ($paramparts[0] == "stopid") $stopid = $paramparts[1]; |
if ($paramparts[0] == "stopcode") $stopcode = $paramparts[1]; | if ($paramparts[0] == "stopcode") $stopcode = $paramparts[1]; |
} | } |
} | } |
?> | ?> |
<h3>Add/Move/Delete a Bus Stop Location</h3> | <h3>Add/Move/Delete a Bus Stop Location</h3> |
<form action="feedback.php" method="post"> | <form action="feedback.php" method="post"> |
StopID: <input type="text" name="stopid" value="<?php echo $stopid ?>"/><br> | StopID: <input type="text" name="stopid" value="<?php echo $stopid ?>"/><br> |
or StopCode: <input type="text" name="stopcode" value="<?php echo $stopcode ?>"/><br> | or StopCode: <input type="text" name="stopcode" value="<?php echo $stopcode ?>"/><br> |
<small> if you click on feedback from a stop page, these will get filled in automatically. else describe the location/street of the stop in one of these boxes </small><br> | <small> if you click on feedback from a stop page, these will get filled in automatically. else describe the location/street of the stop in one of these boxes </small><br> |
Suggested Stop Location (lat/long or words): <input type="text" name="newlocation"/><br> | Suggested Stop Location (lat/long or words): <input type="text" name="newlocation"/><br> |
<!--<small> if your device supports javascript, you can pick a location from the map above</small><br>--> | <!--<small> if your device supports javascript, you can pick a location from the map above</small><br>--> |
<input type="submit" value="Submit!"/> | <input type="submit" value="Submit!"/> |
</form> | </form> |
<h3>Bug Report/Feedback</h3> | <h3>Bug Report/Feedback</h3> |
Please leave feedback about bugs/errors or general suggestions about improvements that could be made to the way the data is presented! | Please leave feedback about bugs/errors or general suggestions about improvements that could be made to the way the data is presented! |
<form action="feedback.php" method="post"> | <form action="feedback.php" method="post"> |
<textarea name="feedback"> | <textarea name="feedback"> |
</textarea> | </textarea> |
<textarea name="extrainfo" id="extrainfo"> | <textarea name="extrainfo" id="extrainfo"> |
<?php | <?php |
echo "Referrer URL: ".($_SERVER["HTTP_REFERER"] ? $_SERVER["HTTP_REFERER"] : ""); | echo "Referrer URL: ".($_SERVER["HTTP_REFERER"] ? $_SERVER["HTTP_REFERER"] : ""); |
echo "\nCurrent page URL: ".curPageURL(); | echo "\nCurrent page URL: ".curPageURL(); |
echo "\nUser Agent: ".$_SERVER["HTTP_USER_AGENT"]; | echo "\nUser Agent: ".$_SERVER["HTTP_USER_AGENT"]; |
echo "\nUser host/IP: ".$_SERVER["HTTP_X_FORWARDED_FOR"]." ".$_SERVER["REMOTE_ADDR"]; | echo "\nUser host/IP: ".$_SERVER["HTTP_X_FORWARDED_FOR"]." ".$_SERVER["REMOTE_ADDR"]; |
echo "\nServer host/IP: ".php_uname("n"); | echo "\nServer host/IP: ".php_uname("n"); |
echo "\nCurrent date/time: ". date("c"); | echo "\nCurrent date/time: ". date("c"); |
echo "\nCurrent code revision: ".exec("git rev-parse --short HEAD"); | echo "\nCurrent code revision: ".exec("git rev-parse --short HEAD"); |
echo "\nCurrent timetables version: ".date("c",@filemtime('cbrfeed.zip')); | echo "\nCurrent timetables version: ".date("c",@filemtime('../busresources/cbrfeed.zip')); |
echo "\nDump of session: ".print_r($_SESSION,true); | echo "\nDump of session: ".print_r($_SESSION,true); |
?> | ?> |
</textarea> | </textarea> |
<input type="submit" value="Submit!"/> | <input type="submit" value="Submit!"/> |
</form> | </form> |
<?php | <?php |
} | } |
include_footer(); | include_footer(); |
?> | ?> |
<?php | <?php |
header('Content-Type: application/vnd.google-earth.kml+xml'); | header('Content-Type: application/vnd.google-earth.kml+xml'); |
include ('../include/common.inc.php'); | include ('../include/common.inc.php'); |
header('Content-Disposition: attachment; filename="route.' . urlencode($routeid) . '.kml"'); | |
$debugOkay = Array(); // disable debugging output even on dev server | |
echo '<?xml version="1.0" encoding="UTF-8"?> | echo '<?xml version="1.0" encoding="UTF-8"?> |
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"><Document>'; | <kml xmlns="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom"><Document>'; |
echo ' | echo ' |
<Style id="yellowLineGreenPoly"> | <Style id="ylw-pushpin"> |
<IconStyle> | |
<Icon> | |
<href>http://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png</href> | |
</Icon> | |
</IconStyle> | |
</Style> | |
<Style id="blue-pushpin"> | |
<IconStyle> | |
<Icon> | |
<href>http://maps.google.com/mapfiles/kml/pushpin/blue-pushpin.png</href> | |
</Icon> | |
</IconStyle> | |
</Style> | |
<Style id="grn-pushpin"> | |
<IconStyle> | |
<Icon> | |
<href>http://maps.google.com/mapfiles/kml/pushpin/grn-pushpin.png</href> | |
</Icon> | |
</IconStyle> | |
</Style> | |
<Style id="yellowLineYellowPoly"> | |
<LineStyle> | <LineStyle> |
<color>7f00ff00</color> | <color>7f00ebff</color> |
<width>4</width> | <width>4</width> |
</LineStyle> | </LineStyle> |
<PolyStyle> | <PolyStyle> |
<color>7f00ffff</color> | <color>7f00ebff</color> |
</PolyStyle> | </PolyStyle> |
</Style>'; | </Style> |
<Style id="blueLineBluePoly"> | |
<LineStyle> | |
<color>7fff0000</color> | |
<width>4</width> | |
</LineStyle> | |
<PolyStyle> | |
<color>7fff0000</color> | |
</PolyStyle> | |
</Style> | |
'; | |
$route = getRoute($routeid); | $route = getRoute($routeid); |
echo "\n<Placemark>\n"; | echo "\n<Placemark>\n"; |
$link = curPageURL()."/../trip.php?routeid=".htmlspecialchars ($route["route_id"]); | $_REQUEST['time'] = "12:00"; |
echo "<name>".$route['route_short_name']."</name>"; | $trip = getRouteNextTrip($routeid, 0); |
echo '<atom:link href="'.$link.'"/>'; | $link = curPageURL() . "/../trip.php?routeid=" . htmlspecialchars($route["route_id"]. "&directionid=0&tripid=".$trip['trip_id']) ; |
echo '<description><![CDATA[ <a href="'.$link.'">'.$route['route_short_name']." ".$route['route_long_name']."</a>]]> </description>"; | echo "<name>" . $route['route_short_name'] . " Direction 0 </name>"; |
echo "<styleUrl>#yellowLineGreenPoly</styleUrl>"; | echo '<atom:link rel="related" href="' . $link . '"/>'; |
echo '<description><![CDATA[ <a href="' . $link . '">' . $route['route_short_name'] . " Direction 0</a>]]> </description>"; | |
echo "<styleUrl>#yellowLineYellowPoly</styleUrl>"; | |
$trip = getRouteNextTrip($routeid); | echo getTripShape($trip['trip_id']); |
echo getTripShape($trip['trip_id']); | echo "</Placemark>\n"; |
$stops = Array(); | |
foreach (getTripStops($trip['trip_id']) as $stop) { | |
$stop['style'] = "#ylw-pushpin"; | |
$stops[$stop['stop_id']] = $stop; | |
} | |
echo "</Placemark>\n</Document></kml>\n"; | |
echo "\n<Placemark>\n"; | |
$trip = getRouteNextTrip($routeid, 1); | |
$link = curPageURL() . "/../trip.php?routeid=" . htmlspecialchars($route["route_id"]. "&directionid=1&tripid=".$trip['trip_id']) ; | |
echo "<name>" . $route['route_short_name'] . " Direction 1 </name>"; | |
echo '<atom:link rel="related" href="' . $link . '"/>'; | |
echo '<description><![CDATA[ <a href="' . $link . '">' . $route['route_short_name'] . " Direction 1</a>]]> </description>"; | |