--- 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; } }