<?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. |
*/ | */ |
function getServiceOverride($date = "") { | function getServiceOverride($date = "") { |
global $conn; | global $conn; |
$query = "Select * from calendar_dates where date = :date and exception_type = '1' LIMIT 1"; | $query = "Select * from calendar_dates where date = :date and exception_type = '1' LIMIT 1"; |
// debug($query,"database"); | // debug($query,"database"); |
$query = $conn->prepare($query); // Create a prepared statement | $query = $conn->prepare($query); // Create a prepared statement |
$query->bindParam(":date", date("Ymd", ($date != "" ? $date : time()))); | $query->bindParam(":date", date("Ymd", ($date != "" ? $date : time()))); |
$query->execute(); | $query->execute(); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetch(PDO :: FETCH_ASSOC); | return $query->fetch(PDO :: FETCH_ASSOC); |
} | } |
function getServiceAlert($alertID) { | function getServiceAlert($alertID) { |
global $conn; | global $conn; |
$query = "SELECT id,extract('epoch' from start) as start, extract('epoch' from \"end\") as \"end\",cause,effect,header,description,url from servicealerts_alerts where id = :servicealert_id"; | $query = "SELECT id,extract('epoch' from start) as start, extract('epoch' from \"end\") as \"end\",cause,effect,header,description,url from servicealerts_alerts where id = :servicealert_id"; |
debug($query, "database"); | debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":servicealert_id", $alertID); | $query->bindParam(":servicealert_id", $alertID); |
$query->execute(); | $query->execute(); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetch(PDO :: FETCH_ASSOC); | return $query->fetch(PDO :: FETCH_ASSOC); |
} | } |
function updateServiceAlert($alertID, $start, $end, $header, $description, $url) { | function updateServiceAlert($alertID, $alert) { |
global $conn; | 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"); | debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":servicealert_id", $alertID); | $query->bindValue(":servicealert_id", $alertID); |
$query->bindParam(":start", $start); | $query->bindValue(":start", $alert['startdate']); |
$query->bindParam(":end", $end); | $query->bindValue(":end", $alert['enddate']); |
$query->bindParam(":header", $header); | $query->bindValue(":header", $alert['header']); |
$query->bindParam(":description", $description); | $query->bindValue(":description", $alert['description']); |
$query->bindParam(":url", $url); | $query->bindValue(":url", $alert['url']); |
$query->bindValue(":cause", $alert['cause']); | |
$query->bindValue(":effect", $alert['effect']); | |
$query->execute(); | $query->execute(); |
print_r($conn->errorInfo()); | print_r($conn->errorInfo()); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetch(PDO :: FETCH_ASSOC); | return $query->fetch(PDO :: FETCH_ASSOC); |
} | } |
function addServiceAlert($start, $end, $header, $description, $url) { | function addServiceAlert($alert) { |
global $conn; | 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"); | debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":start", $start); | //print_r($alert); |
$query->bindParam(":end", $end); | $query->bindValue(":start", $alert['startdate']); |
$query->bindParam(":header", $header); | $query->bindValue(":end", $alert['enddate']); |
$query->bindParam(":description", $description); | $query->bindValue(":header", $alert['header']); |
$query->bindParam(":url", $url); | $query->bindValue(":description", $alert['description']); |
$query->bindValue(":url", $alert['url']); | |
$query->bindValue(":cause", $alert['cause']); | |
$query->bindValue(":effect", $alert['effect']); | |
$query->execute(); | $query->execute(); |
print_r($conn->errorInfo()); | print_r($conn->errorInfo()); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetch(PDO :: FETCH_ASSOC); | return $query->fetch(PDO :: FETCH_ASSOC); |
} | } |
function getCurrentAlerts() { | function getCurrentAlerts() { |
global $conn; | global $conn; |
$query = "SELECT id,extract('epoch' from start) as start, extract('epoch' from \"end\") as \"end\",cause,effect,header,description,url from servicealerts_alerts where NOW() > start and NOW() < \"end\""; | $query = "SELECT id,extract('epoch' from start) as start, extract('epoch' from \"end\") as \"end\",cause,effect,header,description,url from servicealerts_alerts where NOW() > start and NOW() < \"end\""; |
// debug($query, "database"); | // debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->execute(); | $query->execute(); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetchAll(); | return $query->fetchAll(); |
} | } |
function getFutureAlerts() { | function getFutureAlerts() { |
global $conn; | global $conn; |
$query = "SELECT id,extract('epoch' from start) as start, extract('epoch' from \"end\") as \"end\",cause,effect,header,description,url from servicealerts_alerts where NOW() > start or NOW() < \"end\""; | $query = "SELECT id,extract('epoch' from start) as start, extract('epoch' from \"end\") as \"end\",cause,effect,header,description,url from servicealerts_alerts where NOW() > start or NOW() < \"end\""; |
// debug($query, "database"); | // debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->execute(); | $query->execute(); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetchAll(); | return $query->fetchAll(); |
} | } |
function getInformedAlerts($id, $filter_class, $filter_id) { | function getInformedAlerts($id, $filter_class, $filter_id) { |
global $conn; | global $conn; |
$query = "SELECT * from servicealerts_informed where servicealert_id = :servicealert_id"; | $query = "SELECT * from servicealerts_informed where servicealert_id = :servicealert_id"; |
if ($filter_class != "") { | if ($filter_class != "") { |
$query .= " AND informed_class = :informed_class "; | $query .= " AND informed_class = :informed_class "; |
} | } |
if ($filter_id != "") { | if ($filter_id != "") { |
$query .= " AND informed_id = :informed_id "; | $query .= " AND informed_id = :informed_id "; |
} | } |
// debug($query, "database"); | // debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
if ($filter_class != "") { | if ($filter_class != "") { |
$query->bindParam(":informed_class", $filter_class); | $query->bindParam(":informed_class", $filter_class); |
} | } |
if ($filter_id != "") { | if ($filter_id != "") { |
$query->bindParam(":informed_id", $filter_id); | $query->bindParam(":informed_id", $filter_id); |
} | } |
$query->bindParam(":servicealert_id", $id); | $query->bindParam(":servicealert_id", $id); |
$query->execute(); | $query->execute(); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetchAll(); | return $query->fetchAll(); |
} | } |
function deleteInformedAlert($serviceAlertID, $class, $id) { | function deleteInformedAlert($serviceAlertID, $class, $id) { |
global $conn; | global $conn; |
$query = 'DELETE from servicealerts_informed where servicealert_id = :servicealert_id and informed_class = :informed_class AND informed_id = :informed_id'; | $query = 'DELETE from servicealerts_informed where servicealert_id = :servicealert_id and informed_class = :informed_class AND informed_id = :informed_id'; |
debug($query, "database"); | debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":servicealert_id", $serviceAlertID); | $query->bindParam(":servicealert_id", $serviceAlertID); |
$query->bindParam(":informed_class", $class); | $query->bindParam(":informed_class", $class); |
$query->bindParam(":informed_id", $id); | $query->bindParam(":informed_id", $id); |
$query->execute(); | $query->execute(); |
print_r($conn->errorInfo()); | print_r($conn->errorInfo()); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return null; | return null; |
} | } |
function addInformedAlert($serviceAlertID, $class, $id, $action) { | function addInformedAlert($serviceAlertID, $class, $id, $action) { |
global $conn; | 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"); | debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":servicealert_id", $serviceAlertID); | $query->bindParam(":servicealert_id", $serviceAlertID); |
$query->bindParam(":informed_class", $class); | $query->bindParam(":informed_class", $class); |
$query->bindParam(":informed_id", $id); | $query->bindParam(":informed_id", $id); |
$query->bindParam(":informed_action", $action); | |
$query->execute(); | $query->execute(); |
print_r($conn->errorInfo()); | print_r($conn->errorInfo()); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return null; | return null; |
} | } |
<?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. |
*/ | */ |
function getStop($stopID) { | function getStop($stopID) { |
global $conn; | global $conn; |
$query = "Select * from stops where stop_id = :stopID LIMIT 1"; | $query = "Select * from stops where stop_id = :stopID LIMIT 1"; |
debug($query, "database"); | debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":stopID", $stopID); | $query->bindParam(":stopID", $stopID); |
$query->execute(); | $query->execute(); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetch(PDO :: FETCH_ASSOC); | return $query->fetch(PDO :: FETCH_ASSOC); |
} | } |
function getStops($firstLetter = "", $startsWith = "") { | function getStops($firstLetter = "", $startsWith = "") { |
global $conn; | global $conn; |
$conditions = Array(); | $conditions = Array(); |
if ($firstLetter != "") | if ($firstLetter != "") |
$conditions[] = "substr(stop_name,1,1) = :firstLetter"; | $conditions[] = "substr(stop_name,1,1) = :firstLetter"; |
if ($startsWith != "") | if ($startsWith != "") |
$conditions[] = "stop_name like :startsWith"; | $conditions[] = "stop_name like :startsWith"; |
$query = "Select * from stops"; | $query = "Select * from stops"; |
if (sizeof($conditions) > 0) { | if (sizeof($conditions) > 0) { |
if (sizeof($conditions) > 1) { | if (sizeof($conditions) > 1) { |
$query .= " Where " . implode(" AND ", $conditions) . " "; | $query .= " Where " . implode(" AND ", $conditions) . " "; |
} else { | } else { |
$query .= " Where " . $conditions[0] . " "; | $query .= " Where " . $conditions[0] . " "; |
} | } |
} | } |
$query .= " order by stop_name;"; | $query .= " order by stop_name;"; |
debug($query, "database"); | debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
if ($firstLetter != "") | if ($firstLetter != "") |
$query->bindParam(":firstLetter", $firstLetter); | $query->bindParam(":firstLetter", $firstLetter); |
if ($startsWith != "") { | if ($startsWith != "") { |
$startsWith = $startsWith . "%"; | $startsWith = $startsWith . "%"; |
$query->bindParam(":startsWith", $startsWith); | $query->bindParam(":startsWith", $startsWith); |
} | } |
$query->execute(); | $query->execute(); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetchAll(); | return $query->fetchAll(); |
} | } |
function getNearbyStops($lat, $lng, $limit = "", $distance = 1000) { | function getNearbyStops($lat, $lng, $limit = "", $distance = 1000) { |
if ($lat == null || $lng == null) | if ($lat == null || $lng == null) |
return Array(); | return Array(); |
if ($limit != "") | if ($limit != "") |
$limitSQL = " LIMIT :limit "; | $limitSQL = " LIMIT :limit "; |
global $conn; | global $conn; |
$query = "Select *, ST_Distance(position, ST_GeographyFromText('SRID=4326;POINT($lng $lat)'), FALSE) as distance | $query = "Select *, ST_Distance(position, ST_GeographyFromText('SRID=4326;POINT($lng $lat)'), FALSE) as distance |
from stops WHERE ST_DWithin(position, ST_GeographyFromText('SRID=4326;POINT($lng $lat)'), :distance, FALSE) | from stops WHERE ST_DWithin(position, ST_GeographyFromText('SRID=4326;POINT($lng $lat)'), :distance, FALSE) |
order by distance $limitSQL;"; | order by distance $limitSQL;"; |
debug($query, "database"); | debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":distance", $distance); | $query->bindParam(":distance", $distance); |
$query->bindParam(":limit", $limit); | $query->bindParam(":limit", $limit); |
$query->execute(); | $query->execute(); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetchAll(); | return $query->fetchAll(); |
} | } |
function getStopsByName($name) { | function getStopsByName($name) { |
global $conn; | global $conn; |
$query = "Select * from stops where stop_name LIKE :name;"; | $query = "Select * from stops where stop_name LIKE :name;"; |
debug($query, "database"); | debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$name = "%" . $name . ";%"; | $name = $name . "%"; |
$query->bindParam(":name", $name); | $query->bindParam(":name", $name); |
$query->execute(); | $query->execute(); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetchAll(); | return $query->fetchAll(); |
} | } |
function getStopsBySuburb($suburb) { | function getStopsBySuburb($suburb) { |
global $conn; | global $conn; |
$query = "Select * from stops where stop_desc LIKE :suburb order by stop_name;"; | $query = "Select * from stops where stop_desc LIKE :suburb order by stop_name;"; |
debug($query, "database"); | debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$suburb = "%<br>Suburb: %" . $suburb . "%"; | $suburb = "%<br>Suburb: %" . $suburb . "%"; |
$query->bindParam(":suburb", $suburb); | $query->bindParam(":suburb", $suburb); |
$query->execute(); | $query->execute(); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetchAll(); | return $query->fetchAll(); |
} | } |
function getStopsByStopCode($stop_code, $startsWith = "") { | function getStopsByStopCode($stop_code, $startsWith = "") { |
global $conn; | global $conn; |
$query = "Select * from stops where (stop_code = :stop_code OR stop_code LIKE :stop_code2)"; | $query = "Select * from stops where (stop_code = :stop_code OR stop_code LIKE :stop_code2)"; |
if ($startsWith != "") | if ($startsWith != "") |
$query .= " AND stop_name like :startsWith"; | $query .= " AND stop_name like :startsWith"; |
debug($query, "database"); | debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":stop_code", $stop_code); | $query->bindParam(":stop_code", $stop_code); |
$stop_code2 = $stop_code . "%"; | $stop_code2 = $stop_code . "%"; |
$query->bindParam(":stop_code2", $stop_code2); | $query->bindParam(":stop_code2", $stop_code2); |
if ($startsWith != "") { | if ($startsWith != "") { |
$startsWith = $startsWith . "%"; | $startsWith = $startsWith . "%"; |
$query->bindParam(":startsWith", $startsWith); | $query->bindParam(":startsWith", $startsWith); |
} | } |
$query->execute(); | $query->execute(); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetchAll(); | return $query->fetchAll(); |
} | } |
function getStopRoutes($stopID, $service_period) { | function getStopRoutes($stopID, $service_period) { |
if ($service_period == "") { | if ($service_period == "") { |
$service_period = service_period(); | $service_period = service_period(); |
} | } |
$service_ids = service_ids($service_period); | $service_ids = service_ids($service_period); |
$sidA = $service_ids[0]; | $sidA = $service_ids[0]; |
$sidB = $service_ids[1]; | $sidB = $service_ids[1]; |
global $conn; | global $conn; |
$query = "SELECT distinct service_id,trips.route_id,route_short_name,route_long_name | $query = "SELECT distinct service_id,trips.route_id,route_short_name,route_long_name |
FROM stop_times join trips on trips.trip_id = | FROM stop_times join trips on trips.trip_id = |
stop_times.trip_id join routes on trips.route_id = routes.route_id WHERE stop_id = :stopID | stop_times.trip_id join routes on trips.route_id = routes.route_id WHERE stop_id = :stopID |
AND (service_id=:service_periodA OR service_id=:service_periodB)"; | AND (service_id=:service_periodA OR service_id=:service_periodB)"; |
debug($query, "database"); | debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":service_periodA", $sidA); | $query->bindParam(":service_periodA", $sidA); |
$query->bindParam(":service_periodB", $sidB); | $query->bindParam(":service_periodB", $sidB); |
$query->bindParam(":stopID", $stopID); | $query->bindParam(":stopID", $stopID); |
$query->execute(); | $query->execute(); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetchAll(); | return $query->fetchAll(); |
} | } |
function getStopTrips($stopID, $service_period = "", $afterTime = "", $limit = "", $route_short_name = "") { | function getStopTrips($stopID, $service_period = "", $afterTime = "", $limit = "", $route_short_name = "") { |
if ($service_period == "") { | if ($service_period == "") { |
$service_period = service_period(); | $service_period = service_period(); |
} | } |
$service_ids = service_ids($service_period); | $service_ids = service_ids($service_period); |
$sidA = $service_ids[0]; | $sidA = $service_ids[0]; |
$sidB = $service_ids[1]; | $sidB = $service_ids[1]; |
$limitSQL = ""; | $limitSQL = ""; |
if ($limit != "") | if ($limit != "") |
$limitSQL .= " LIMIT :limit "; | $limitSQL .= " LIMIT :limit "; |
global $conn; | global $conn; |
if ($afterTime != "") { | if ($afterTime != "") { |
$query = " SELECT stop_times.trip_id,stop_times.arrival_time,stop_times.stop_id,stop_sequence,service_id,trips.route_id,trips.direction_id,trips.trip_headsign,route_short_name,route_long_name,end_times.arrival_time as end_time | $query = " SELECT stop_times.trip_id,stop_times.arrival_time,stop_times.stop_id,stop_sequence,service_id,trips.route_id,trips.direction_id,trips.trip_headsign,route_short_name,route_long_name,end_times.arrival_time as end_time |
FROM stop_times | FROM stop_times |
join trips on trips.trip_id = | join trips on trips.trip_id = |
stop_times.trip_id | stop_times.trip_id |
join routes on trips.route_id = routes.route_id , (SELECT trip_id,max(arrival_time) as arrival_time from stop_times | join routes on trips.route_id = routes.route_id , (SELECT trip_id,max(arrival_time) as arrival_time from stop_times |
WHERE stop_times.arrival_time IS NOT NULL group by trip_id) as end_times | WHERE stop_times.arrival_time IS NOT NULL group by trip_id) as end_times |
WHERE stop_times.stop_id = :stopID | WHERE stop_times.stop_id = :stopID |
AND stop_times.trip_id = end_times.trip_id | AND stop_times.trip_id = end_times.trip_id |
AND (service_id=:service_periodA OR service_id=:service_periodB) " . ($route_short_name != "" ? " AND route_short_name = :route_short_name " : "") . " | AND (service_id=:service_periodA OR service_id=:service_periodB) " . ($route_short_name != "" ? " AND route_short_name = :route_short_name " : "") . " |
AND end_times.arrival_time > :afterTime | AND end_times.arrival_time > :afterTime |
ORDER BY end_time $limitSQL"; | ORDER BY end_time $limitSQL"; |
} else { | } else { |
$query = "SELECT stop_times.trip_id,arrival_time,stop_times.stop_id,stop_sequence,service_id,trips.route_id,route_short_name,route_long_name | $query = "SELECT stop_times.trip_id,arrival_time,stop_times.stop_id,stop_sequence,service_id,trips.route_id,route_short_name,route_long_name |
FROM stop_times | FROM stop_times |
join trips on trips.trip_id = | join trips on trips.trip_id = |
stop_times.trip_id | stop_times.trip_id |
join routes on trips.route_id = routes.route_id | join routes on trips.route_id = routes.route_id |
WHERE stop_times.stop_id = :stopID | WHERE stop_times.stop_id = :stopID |
AND (service_id=:service_periodA OR service_id=:service_periodB) " . ($route_short_name != "" ? " AND route_short_name = :route_short_name " : "") . " | AND (service_id=:service_periodA OR service_id=:service_periodB) " . ($route_short_name != "" ? " AND route_short_name = :route_short_name " : "") . " |
ORDER BY arrival_time $limitSQL"; | ORDER BY arrival_time $limitSQL"; |
} | } |
debug($query, "database"); | debug($query, "database"); |
$query = $conn->prepare($query); | $query = $conn->prepare($query); |
$query->bindParam(":service_periodA", $sidA); | $query->bindParam(":service_periodA", $sidA); |
$query->bindParam(":service_periodB", $sidB); | $query->bindParam(":service_periodB", $sidB); |
$query->bindParam(":stopID", $stopID); | $query->bindParam(":stopID", $stopID); |
if ($limit != "") | if ($limit != "") |
$query->bindParam(":limit", $limit); | $query->bindParam(":limit", $limit); |
if ($afterTime != "") | if ($afterTime != "") |
$query->bindParam(":afterTime", $afterTime); | $query->bindParam(":afterTime", $afterTime); |
if ($route_short_name != "") | if ($route_short_name != "") |
$query->bindParam(":route_short_name", $route_short_name); | $query->bindParam(":route_short_name", $route_short_name); |
$query->execute(); | $query->execute(); |
if (!$query) { | if (!$query) { |
databaseError($conn->errorInfo()); | databaseError($conn->errorInfo()); |
return Array(); | return Array(); |
} | } |
return $query->fetchAll(); | return $query->fetchAll(); |
} | } |
function getStopTripsWithTimes($stopID, $time = "", $service_period = "", $time_range = "", $limit = "") { | function getStopTripsWithTimes($stopID, $time = "", $service_period = "", $time_range = "", $limit = "") { |
if ($service_period == "") | if ($service_period == "") |
$service_period = service_period(); | $service_period = service_period(); |
if ($time_range == "") | if ($time_range == "") |
$time_range = (24 * 60 * 60); | $time_range = (24 * 60 * 60); |
if ($time == "") | if ($time == "") |
$time = current_time(); | $time = current_time(); |
if ($limit == "") | if ($limit == "") |
$limit = 10; | $limit = 10; |
$trips = getStopTrips($stopID, $service_period, $time); | $trips = getStopTrips($stopID, $service_period, $time); |
$timedTrips = Array(); | $timedTrips = Array(); |
if ($trips && sizeof($trips) > 0) { | if ($trips && sizeof($trips) > 0) { |
foreach ($trips as $trip) { | foreach ($trips as $trip) { |
if ($trip['arrival_time'] != "") { | if ($trip['arrival_time'] != "") { |
if (strtotime($trip['arrival_time']) > strtotime($time) and strtotime($trip['arrival_time']) < (strtotime($time) + $time_range)) { | if (strtotime($trip['arrival_time']) > strtotime($time) and strtotime($trip['arrival_time']) < (strtotime($time) + $time_range)) { |
$timedTrips[] = $trip; | $timedTrips[] = $trip; |
} | } |
} else { | } else { |
$timedTrip = getTripAtStop($trip['trip_id'], $trip['stop_sequence']); | $timedTrip = getTripAtStop($trip['trip_id'], $trip['stop_sequence']); |
if ($timedTrip['arrival_time'] > $time and strtotime($timedTrip['arrival_time']) < (strtotime($time) + $time_range)) { | if ($timedTrip['arrival_time'] > $time and strtotime($timedTrip['arrival_time']) < (strtotime($time) + $time_range)) { |
$timedTrips[] = $timedTrip; | $timedTrips[] = $timedTrip; |
} | } |
} | } |
if (sizeof($timedTrips) > $limit) | if (sizeof($timedTrips) > $limit) |
break; | break; |
} | } |
sktimesort($timedTrips, "arrival_time", true); | sktimesort($timedTrips, "arrival_time", true); |
} | } |
return $timedTrips; | return $timedTrips; |
} | } |
<?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'); |
auth(); | auth(); |
include_header("Service Alert Editor", "serviceAlertEditor"); | include_header("Service Alert Editor", "serviceAlertEditor"); |
/** | /** |
* Currently support: | * Currently support: |
* network inform | * network inform |
* stop remove: route patch, stop remove | * stop remove: route patch, stop remove |
* - stop search | * - stop search |
* street inform: route inform, stop inform | * street inform: route inform, stop inform |
* - street search | * - street search |
*/ | */ |
if (isset($_REQUEST['saveedit'])) { | if (isset($_REQUEST['saveedit'])) { |
if ($_REQUEST['saveedit'] != "") | if ($_REQUEST['saveedit'] != "") { |
updateServiceAlert($_REQUEST['saveedit'], $_REQUEST['startdate'], $_REQUEST['enddate'], $_REQUEST['header'], $_REQUEST['description'], $_REQUEST['url']); | updateServiceAlert($_REQUEST['saveedit'], $_REQUEST); |
else | } else { |
addServiceAlert($_REQUEST['startdate'], $_REQUEST['enddate'], $_REQUEST['header'], $_REQUEST['description'], $_REQUEST['url']); | addServiceAlert($_REQUEST); |
} | |
echo "Saved " . $_REQUEST['saveedit']; | echo "Saved " . $_REQUEST['saveedit']; |
die(); | die(); |
} | } |
if ($_REQUEST['delete']) { | if ($_REQUEST['delete']) { |
$deleteParts = explode(";", $_REQUEST['delete']); | $deleteParts = explode(";", $_REQUEST['delete']); |
deleteInformedAlert($deleteParts[0], $deleteParts[1], $deleteParts[2]); | deleteInformedAlert($deleteParts[0], $deleteParts[1], $deleteParts[2]); |
echo "Deleted network inform for {$deleteParts[0]} ({$deleteParts[1]},{$deleteParts[2]})<br>\n"; | echo "Deleted network inform for {$deleteParts[0]} ({$deleteParts[1]},{$deleteParts[2]})<br>\n"; |
die(); | die(); |
} | } |
if ($_REQUEST['networkinform']) { | if ($_REQUEST['networkinform']) { |
addInformedAlert($_REQUEST['networkinform'], "agency", "0", "inform"); | addInformedAlert($_REQUEST['networkinform'], "agency", "0", "inform"); |
echo "Added network inform for" . $_REQUEST['networkinform']; | echo "Added network inform for" . $_REQUEST['networkinform']; |
die(); | die(); |
} | } |
if ($_REQUEST['stopsearch']) { | if ($_REQUEST['stopsearch']) { |
addInformedAlert($_REQUEST['stopsearch'], "stop", $_REQUEST['stopid'], "remove"); | addInformedAlert($_REQUEST['stopsearch'], "stop", $_REQUEST['stopid'], "remove"); |
echo "Added stop remove for" . $_REQUEST['stopsearch'] . ", stop" . $_REQUEST['stopid'] . "<br>\n"; | echo "Added stop remove for" . $_REQUEST['stopsearch'] . ", stop" . $_REQUEST['stopid'] . "<br>\n"; |
foreach ($service_periods as $sp) { | foreach ($service_periods as $sp) { |
echo "Remove from $sp routes<br>\n"; | echo "Remove from $sp routes<br>\n"; |
foreach (getStopRoutes($_REQUEST['stopid'], $sp) as $route) { | foreach (getStopRoutes($_REQUEST['stopid'], $sp) as $route) { |
addInformedAlert($_REQUEST['stopsearch'], "route", $route['route_id'], "patch"); | addInformedAlert($_REQUEST['stopsearch'], "route", $route['route_id'], "patch"); |
echo "Added route patch for" . $_REQUEST['stopsearch'] . ", route" . $route['route_id'] . "<br>\n"; | echo "Added route patch for" . $_REQUEST['stopsearch'] . ", route" . $route['route_id'] . "<br>\n"; |
} | } |
} | } |
die(); | die(); |
} | } |
if ($_REQUEST['streetsearch']) { | if ($_REQUEST['streetsearch']) { |
echo "Informing stops of street<br>\n"; | echo "Informing stops of street<br>\n"; |
foreach (getStopByName() as $stop) { | foreach (getStopsByName($_REQUEST['street']) as $stop) { |
addInformedAlert($_REQUEST['stopsearch'], "stop", $_REQUEST['stopid'], "inform"); | addInformedAlert($_REQUEST['streetsearch'], "stop", $stop['stop_id'], "inform"); |
echo "Added stop inform for" . $_REQUEST['stopsearch'] . ", stop" . $_REQUEST['stopid'] . "<br>\n"; | echo "Added stop inform for" . $_REQUEST['streetsearch'] . ", stop" . $stop['stop_id'] . " ". $stop['stop_name']."<br>\n"; |
foreach ($service_periods as $sp) { | foreach ($service_periods as $sp) { |
echo "Informing $sp routes<br>\n"; | echo "Informing $sp routes<br>\n"; |
foreach (getStopRoutes($_REQUEST['stopid'], $sp) as $route) { | foreach (getStopRoutes($stop['stop_id'], $sp) as $route) { |
addInformedAlert($_REQUEST['stopsearch'], "route", $route['route_id'], "inform"); | addInformedAlert($_REQUEST['streetsearch'], "route", $route['route_id'], "inform"); |
echo "Added route inform for stop" . $_REQUEST['stopsearch'] . ", route" . $route['route_id'] . "<br>\n"; | echo "Added route inform for stop" . $_REQUEST['streetsearch'] . ", route" . $route['route_id'] . "<br>\n"; |
} | } |
} | } |
} | |
die(); | die(); |
} | |
} | } |
?> | ?> |
Active and Future Alerts: | Active and Future Alerts: |
<table> | <table> |
<?php | <?php |
foreach (getFutureAlerts() as $alert) { | foreach (getFutureAlerts() as $alert) { |
echo "<tr><td>{$alert['start']}</td><td>{$alert['end']}</td><td>" . substr($alert['description'], 0, 999) . '</td><td><a href="?edit=' . $alert['id'] . '">edit</a></td></tr>'; | echo "<tr><td>" . date("c", $alert['start']) . "</td><td>" . date("c", $alert['end']) . "</td><td>" . substr($alert['description'], 0, 999) . '</td><td><a href="?edit=' . $alert['id'] . '">edit</a></td></tr>'; |
} | } |
?> | ?> |
</table> | </table> |
<?php | <?php |
$alert = getServiceAlert($_REQUEST['edit']); | $alert = getServiceAlert($_REQUEST['edit']); |
?> | ?> |
<form action="<?php echo basename(__FILE__); | <form action="<?php echo basename(__FILE__); |
?>" method="get"> | ?>" method="get"> |
<div data-role="fieldcontain"> | <div data-role="fieldcontain"> |
<label for="startdate"> Start Date</label> | <label for="startdate"> Start Date</label> |
<input type="text" name="startdate" id="startdate" value="<?php | <input type="text" name="startdate" id="startdate" value="<?php |
if ($alert['start']) | if ($alert['start']) |
echo $alert['start']; | echo date("c", $alert['start']); |
else | else |
echo date("c", strtotime("0:00")); | echo date("c", strtotime("0:00")); |
?>" /> | ?>" /> |
</div> | </div> |
<div data-role="fieldcontain"> | <div data-role="fieldcontain"> |
<label for="enddate"> End Date </label> | <label for="enddate"> End Date </label> |
<input type="text" name="enddate" id="enddate" value="<?php | <input type="text" name="enddate" id="enddate" value="<?php |
if ($alert['end']) | if ($alert['end']) |
echo $alert['end']; | echo date("c", $alert['end']); |
else | else |
echo date("c", strtotime("23:59")); | echo date("c", strtotime("23:59")); |
?>" /> | ?>" /> |
</div> | </div> |
<div data-role="fieldcontain"> | <div data-role="fieldcontain"> |
<label for="header">Header</label> | <label for="header">Header</label> |
<input type="text" name="header" id="header" value="<?php echo $alert['header']; ?>" /> | <input type="text" name="header" id="header" value="<?php echo $alert['header']; ?>" /> |
</div> | </div> |
<div data-role="fieldcontain"> | <div data-role="fieldcontain"> |
<label for="description">Description</label> | <label for="description">Description</label> |
<textarea name="description"> | <textarea name="description"> |
<?php echo $alert['description']; ?></textarea> | <?php echo $alert['description']; ?></textarea> |
</div> | </div> |
<div data-role="fieldcontain"> | <div data-role="fieldcontain"> |
<label for="url">URL</label> | <label for="url">URL</label> |
<input type="text" name="url" id="url" value="<?php echo $alert['url']; ?>" /> | <input type="text" name="url" id="url" value="<?php echo $alert['url']; ?>" /> |
</div> | </div> |
<div data-role="fieldcontain"> | |
<label for="cause"> Cause: </label> | |
<select name="cause" id="cause"> | |
<?php | |
foreach ($serviceAlertCause as $key => $value) { | |
echo "<option value=\"$key\"" . ($key === $alert['cause'] ? " SELECTED" : "") . '>' . $value . '</option>'; | |
} | |
?> | |
</select></div> | |
<div data-role="fieldcontain"> | |
<label for="effect"> Effect: </label> | |
<select name="effect" id="effect"> | |
<?php | |
foreach ($serviceAlertEffect as $key => $value) { | |
echo "<option value=\"$key\"" . ($key === $alert['effect'] ? " SELECTED" : "") . '>' . $value . '</option>'; | |
} | |
?> | |
</select></div> | |
<input type="hidden" name="saveedit" value="<?php echo $_REQUEST['edit']; ?>"/> | <input type="hidden" name="saveedit" value="<?php echo $_REQUEST['edit']; ?>"/> |
<input type="submit" value="Save"/> | <input type="submit" value="Save"/> |
</div></form> | </div></form> |
<?php | <?php |
if ($_REQUEST['edit']) { | if ($_REQUEST['edit']) { |
echo "Informed Entities for ID {$_REQUEST['edit']}:"; | echo "Informed Entities for ID {$_REQUEST['edit']}:"; |
echo '<table>'; | echo '<table>'; |
foreach (getInformedAlerts($_REQUEST['edit'], "", "") as $informed) { | foreach (getInformedAlerts($_REQUEST['edit'], "", "") as $informed) { |
echo "<tr><td>{$informed['informed_class']}</td><td>{$informed['informed_id']}</td><td>{$informed['informed_action']}" . '</td><td><a href="?delete=' . $_REQUEST['edit'] . ';' . $informed['informed_class'] . ';' . $informed['informed_id'] . '">delete</a></td></tr>'; | echo "<tr><td>{$informed['informed_class']}</td><td>{$informed['informed_id']}</td><td>{$informed['informed_action']}" . '</td><td><a href="?delete=' . $_REQUEST['edit'] . ';' . $informed['informed_class'] . ';' . $informed['informed_id'] . '">delete</a></td></tr>'; |
} | } |
echo '</table>'; | echo '</table>'; |
?> | ?> |
<form action="<?php echo basename(__FILE__); | <form action="<?php echo basename(__FILE__); |
?>" method="get"> | ?>" method="get"> |
<input type="hidden" name="networkinform" value="<?php echo $_REQUEST['edit']; | <input type="hidden" name="networkinform" value="<?php echo $_REQUEST['edit']; |
?>"/> | ?>"/> |
<input type="submit" value="Add Network Inform"/> | <input type="submit" value="Add Network Inform"/> |
</form> | </form> |
<form action="<?php echo basename(__FILE__); | <form action="<?php echo basename(__FILE__); |
?>" method="get"> | ?>" method="get"> |
<div data-role="fieldcontain"> | <div data-role="fieldcontain"> |
<label for="stopid">StopID to remove</label> | <label for="stopid">StopID to remove</label> |
<input type="text" name="stopid" /> | <input type="text" name="stopid" /> |
</div> | </div> |
<input type="hidden" name="stopsearch" value="<?php echo $_REQUEST['edit']; | <input type="hidden" name="stopsearch" value="<?php echo $_REQUEST['edit']; |
?>"/> | ?>"/> |
<input type="submit" value="Stop Search"/> | <input type="submit" value="Stop Search"/> |
</form> | </form> |
<form action="<?php echo basename(__FILE__); | <form action="<?php echo basename(__FILE__); |
?>" method="get"> | ?>" method="get"> |
<div data-role="fieldcontain"> | <div data-role="fieldcontain"> |
<label for="street">Street to inform</label> | <label for="street">Street to inform</label> |
<input type="text" name="street" /> | <input type="text" name="street" /> |
</div> | </div> |
<input type="hidden" name="streetsearch" value="<?php echo $_REQUEST['edit']; | <input type="hidden" name="streetsearch" value="<?php echo $_REQUEST['edit']; |
?>"/> | ?>"/> |
<input type="submit" value="Street Search"/> | <input type="submit" value="Street Search"/> |
</form> | </form> |
<?php | <?php |
} | } |
include_footer(); | include_footer(); |
?> | ?> |