<?php |
<?php |
$service_periods = Array( |
$service_periods = Array( |
'sunday', |
'sunday', |
'saturday', |
'saturday', |
'weekday' |
'weekday' |
); |
); |
|
|
function service_period($date = "") |
function service_period($date = "") |
{ |
{ |
|
|
if (isset($_SESSION['service_period'])) return $_SESSION['service_period']; |
if (isset($_SESSION['service_period'])) return $_SESSION['service_period']; |
$override = getServiceOverride($date); |
$override = getServiceOverride($date); |
if ($override['service_id']){ |
if ($override['service_id']){ |
return $override['service_id']; |
return $override['service_id']; |
} |
} |
|
|
switch (date('w',($date != "" ? $date : time()))) { |
switch (date('w',($date != "" ? $date : time()))) { |
case 0: |
case 0: |
return 'sunday'; |
return 'sunday'; |
case 6: |
case 6: |
return 'saturday'; |
return 'saturday'; |
default: |
default: |
return 'weekday'; |
return 'weekday'; |
} |
} |
} |
} |
function midnight_seconds($time = "") |
function midnight_seconds($time = "") |
{ |
{ |
// from http://www.perturb.org/display/Perlfunc__Seconds_Since_Midnight.html |
// from http://www.perturb.org/display/Perlfunc__Seconds_Since_Midnight.html |
if ($time != "") { |
if ($time != "") { |
return (date("G", $time) * 3600) + (date("i", $time) * 60) + date("s", $time); |
return (date("G", $time) * 3600) + (date("i", $time) * 60) + date("s", $time); |
} |
} |
if (isset($_SESSION['time'])) { |
if (isset($_SESSION['time'])) { |
$time = strtotime($_SESSION['time']); |
$time = strtotime($_SESSION['time']); |
return (date("G", $time) * 3600) + (date("i", $time) * 60) + date("s", $time); |
return (date("G", $time) * 3600) + (date("i", $time) * 60) + date("s", $time); |
} |
} |
return (date("G") * 3600) + (date("i") * 60) + date("s"); |
return (date("G") * 3600) + (date("i") * 60) + date("s"); |
} |
} |
function midnight_seconds_to_time($seconds) |
function midnight_seconds_to_time($seconds) |
{ |
{ |
if ($seconds > 0) { |
if ($seconds > 0) { |
$midnight = mktime(0, 0, 0, date("n") , date("j") , date("Y")); |
$midnight = mktime(0, 0, 0, date("n") , date("j") , date("Y")); |
return date("h:ia", $midnight + $seconds); |
return date("h:ia", $midnight + $seconds); |
} |
} |
else { |
else { |
return ""; |
return ""; |
} |
} |
} |
} |
|
|
$serviceAlertCause = Array( |
$serviceAlertCause = Array( |
UNKNOWN_CAUSE |
"UNKNOWN_CAUSE" => "Unknown cause", |
OTHER_CAUSE |
"OTHER_CAUSE" => "Other cause", |
TECHNICAL_PROBLEM |
"TECHNICAL_PROBLEM" => "Technical problem", |
STRIKE |
"STRIKE" => "Strike", |
DEMONSTRATION |
"DEMONSTRATION" => "Demonstration", |
ACCIDENT |
"ACCIDENT" => "Accident", |
HOLIDAY |
"HOLIDAY" => "Holiday", |
WEATHER |
"WEATHER" => "Weather", |
MAINTENANCE |
"MAINTENANCE" => "Maintenance", |
CONSTRUCTION |
"CONSTRUCTION" => "Construction", |
POLICE_ACTIVITY |
"POLICE_ACTIVITY" => "Police activity", |
MEDICAL_EMERGENCY |
"MEDICAL_EMERGENCY" => "Medical emergency" |
|
|
Unknown cause |
|
Other cause (not represented by any of these options) |
|
Technical problem |
|
Strike |
|
Demonstration |
|
Accident |
|
Holiday |
|
Weather |
|
Maintenance |
|
Construction |
|
Police activity |
|
Medical emergency |
|
); |
); |
$serviceAlertEffect = Array( |
$serviceAlertEffect = Array( |
NO_SERVICE |
"NO_SERVICE" => "No service", |
REDUCED_SERVICE |
"REDUCED_SERVICE" => "Reduced service", |
SIGNIFICANT_DELAYS |
"SIGNIFICANT_DELAYS" => "Significant delays", |
DETOUR |
"DETOUR" => "Detour", |
ADDITIONAL_SERVICE |
"ADDITIONAL_SERVICE" => "Additional service", |
MODIFIED_SERVICE |
"MODIFIED_SERVICE" => "Modified service", |
OTHER_EFFECT |
"OTHER_EFFECT" => "Other effect", |
UNKNOWN_EFFECT |
"UNKNOWN_EFFECT" => "Unknown effect", |
STOP_MOVED |
"STOP_MOVED" => "Stop moved"); |
|
|
No service |
|
Reduced service |
|
Significant delays (insignificant delays should only be provided through Trip updates). |
|
Detour |
|
Additional service |
|
Modified service |
|
Stop moved |
|
Other effect (not represented by any of these options) |
|
Unknown effect); |
|
|
|
function getServiceAlerts($filter_class, $filter_id) { |
function getServiceAlerts($filter_class, $filter_id) { |
/* |
/* |
|
|
also need last modified epoch of client gtfs |
also need last modified epoch of client gtfs |
|
|
- add,remove,patch,inform (null) |
- add,remove,patch,inform (null) |
- stop |
- stop |
- trip |
- trip |
- network |
- network |
- classes (WHERE=) |
- classes (WHERE=) |
- route (short_name or route_id) |
- route (short_name or route_id) |
- street |
- street |
- stop |
- stop |
- trip |
- trip |
Currently support: |
Currently support: |
network inform |
network inform |
trip patch: stop remove |
trip patch: stop remove |
street inform: route inform, trip inform, stop inform |
street inform: route inform, trip inform, stop inform |
route patch: trip remove |
route patch: trip remove |
*/ |
*/ |
$return = Array(); |
$return = Array(); |
$return['header']['gtfs_realtime_version'] = "1"; |
$return['header']['gtfs_realtime_version'] = "1"; |
$return['header']['timestamp'] = time(); |
$return['header']['timestamp'] = time(); |
$return['header']['incrementality'] = "FULL_DATASET"; |
$return['header']['incrementality'] = "FULL_DATASET"; |
$return['entities'] = Array(); |
$return['entities'] = Array(); |
foreach(getCurrentAlerts() as $alert) { |
foreach(getCurrentAlerts() as $alert) { |
$informedEntities = getInformedAlerts($alert['id'],$_REQUEST['filter_class'],$_REQUEST['filter_id']); |
$informedEntities = getInformedAlerts($alert['id'],$_REQUEST['filter_class'],$_REQUEST['filter_id']); |
if (sizeof($informedEntities) >0) { |
if (sizeof($informedEntities) >0) { |
$entity = Array(); |
$entity = Array(); |
$entity['id'] = $alert['id']; |
$entity['id'] = $alert['id']; |
$entity['alert']['active_period']['start'] = $alert['start']; |
$entity['alert']['active_period']['start'] = $alert['start']; |
$entity['alert']['active_period']['end'] = $alert['end']; |
$entity['alert']['active_period']['end'] = $alert['end']; |
$entity['alert']['url']['translation']['text'] = $alert['url']; |
$entity['alert']['url']['translation']['text'] = $alert['url']; |
$entity['alert']['url']['translation']['language'] = 'en'; |
$entity['alert']['url']['translation']['language'] = 'en'; |
$entity['alert']['header_text']['translation']['text'] = $alert['header']; |
$entity['alert']['header_text']['translation']['text'] = $alert['header']; |
$entity['alert']['header_text']['translation']['language'] = 'en'; |
$entity['alert']['header_text']['translation']['language'] = 'en'; |
$entity['alert']['description_text']['translation']['text'] = $alert['description']; |
$entity['alert']['description_text']['translation']['text'] = $alert['description']; |
$entity['alert']['description_text']['translation']['language'] = 'en'; |
$entity['alert']['description_text']['translation']['language'] = 'en'; |
|
|
foreach ($informedEntities as $informedEntity) { |
foreach ($informedEntities as $informedEntity) { |
$informed = Array(); |
$informed = Array(); |
$informed[$informedEntity['informed_class']."_id"] = $informedEntity['informed_id']; |
$informed[$informedEntity['informed_class']."_id"] = $informedEntity['informed_id']; |
if ($informedEntity['informed_action'] != "") $informed["x-action"] = $informedEntity['informed_action']; |
if ($informedEntity['informed_action'] != "") $informed["x-action"] = $informedEntity['informed_action']; |
$informed[$informedEntity['class']."_type"] = $informedEntity['type']; |
$informed[$informedEntity['class']."_type"] = $informedEntity['type']; |
$entity['informed'][] = $informed; |
$entity['informed'][] = $informed; |
} |
} |
$return['entities'][] = $entity; |
$return['entities'][] = $entity; |
} |
} |
} |
} |
return $return; |
return $return; |
} |
} |
function getServiceAlertsByClass() { |
function getServiceAlertsByClass() { |
$return = Array(); |
$return = Array(); |
$alerts = getServiceAlerts("",""); |
$alerts = getServiceAlerts("",""); |
foreach ($alerts['entities'] as $entity) { |
foreach ($alerts['entities'] as $entity) { |
foreach ($entity['informed'] as $informed) { |
foreach ($entity['informed'] as $informed) { |
foreach($informed as $key => $value){ |
foreach($informed as $key => $value){ |
if (strpos("_id",$key) > 0) { |
if (strpos("_id",$key) > 0) { |
$parts = explode($key); |
$parts = explode($key); |
$class = $parts[0]; |
$class = $parts[0]; |
$id = $value; |
$id = $value; |
} |
} |
} |
} |
$return[$class][$id][]['entity'] = $entity; |
$return[$class][$id][]['entity'] = $entity; |
$return[$class][$id][]['action'] = $informed["x-action"]; |
$return[$class][$id][]['action'] = $informed["x-action"]; |
} |
} |
} |
} |
} |
} |
?> |
?> |
|
|