Merge service alerts relating to stops into their page
Merge service alerts relating to stops into their page

--- a/include/db/servicealert-dao.inc.php
+++ b/include/db/servicealert-dao.inc.php
@@ -2,7 +2,7 @@
 function getServiceOverride($date="") {
 	global $conn;
 	$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->bindParam(":date", date("Ymd",($date != "" ? $date : time())));
 	$query->execute();
@@ -12,4 +12,42 @@
 	}
 	return $query->fetch(PDO::FETCH_ASSOC);
 }
+
+function getCurrentAlerts() {
+		global $conn;
+	$query = "SELECT * from servicealerts_alerts";
+	//debug($query, "database");
+	$query = $conn->prepare($query);
+	//if ($stop_sequence != "") $query->bindParam(":stop_sequence", $stop_sequence);
+	$query->execute();
+	if (!$query) {
+		databaseError($conn->errorInfo());
+		return Array();
+	}
+	return $query->fetchAll();
+}
+function getInformedAlerts($id,$filter_class,$filter_id) {
+	
+		global $conn;
+	$query = "SELECT * from servicealerts_informed where servicealert_id = :servicealert_id";
+	
+	if ($filter_class != "" && $filter_id != "") {
+		$query .= " AND (informed_class = :informed_class OR informed_class = 'network') AND informed_id = :informed_id";
+	
+	}
+	//debug($query, "database");
+	$query = $conn->prepare($query);
+	if ($filter_class != "" && $filter_id != "") {
+		$query->bindParam(":informed_class", $filter_class);
+		$query->bindParam(":informed_id", $filter_id);
+	}
+	$query->bindParam(":servicealert_id", $id);
+	$query->execute();
+	if (!$query) {
+		databaseError($conn->errorInfo());
+		return Array();
+	}
+	return $query->fetchAll();
+}
+
 ?>

--- a/servicealerts_api.php
+++ b/servicealerts_api.php
@@ -6,48 +6,43 @@
          - add,remove,patch
             - stop
             - trip
+            - network
           - patterns (WHERE=)
             - route (short_name or route_id)
             - street
             - stop
             - trip */
-/* header {
-  gtrtfs_version: "1"
-  timestamp: 1307926866
+$return = Array();
+$return['header']['gtrtfs_version'] = "1";
+$return['header']['timestamp'] = time();
+$return['entities'] = Array();
+foreach(getCurrentAlerts() as $alert) {
+	$informedEntities = getInformedAlerts($alert['id'],$_REQUEST['filter_class'],$_REQUEST['filter_id']);
+	if (sizeof($informedEntities) >0) {
+		$entity = Array();
+		$entity['id'] = $alert['id'];
+		$entity['alert']['active_period']['start'] = $alert['start'];
+		$entity['alert']['active_period']['start'] = $alert['end'];
+		$entity['alert']['url']['translation'] = $alert['url'];
+		$entity['alert']['description']['translation'] = $alert['description'];
+		
+		foreach ($informedEntities as $informedEntity) {
+			$informed = Array();
+			$informed[$informedEntity['informed_class']."_id"] = $informedEntity['informed_id'];
+			if ($informedEntity['informed_action'] != "") $informed["x-action"] = $informedEntity['informed_action'];
+			//$informed[$informedEntity['class']."_type"] = $informedEntity['type'];
+			$entity['informed'][] = $informed; 
+		}
+		$return['entities'][] = $entity;
+	}
 }
-entity {
-  id: "21393"
-  alert {
-    active_period {
-      start: 1307955600
-      end: 1307988000
-    }
-    informed_entity {
-      route_id: "100"
-      route_type: 1
-    }
-    url {
-      translation {
-        text: "http://trimet.org/alerts/"
-      }
-    }
-    description_text {
-      translation {
-        text: "Rose Festival fleet departures will cause bridge lifts until around 10 a.m. Expect delays."
-      }
-    }
-  }
-}*/
-$return = Array();
-
-header('Content-Type: text/javascript; charset=utf8');
+//header('Content-Type: text/javascript; 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 = '(' . json_encode($return) . ');'; //must wrap in parens and end with semicolon
-	print_r($_GET['callback'] . $json); //callback is prepended for json-p
-	
+	//print_r($_GET['callback'] . $json); //callback is prepended for json-p
 }
 else echo json_encode($return);
             ?>

file:a/stop.php -> file:b/stop.php
--- a/stop.php
+++ b/stop.php
@@ -12,6 +12,7 @@
 	// expand out to all platforms
 	
 }*/
+
 $stops = Array();
 $stopPositions = Array();
 $stopNames = Array();
@@ -60,6 +61,12 @@
 	}
 }
 include_header($stop['stop_name'], "stop");
+/*$serviceAlerts = json_decode(getPage(curPageURL() . "/servicealerts_api.php?filter_class=stop&filter_id=".$stopid) , true);
+
+foreach($serviceAlerts['entities'] as $serviceAlert) {
+    echo '<div id="servicewarning">'.$serviceAlert['alert']['description']['translation'].'</div>';
+}*/
+
 echo '<span class="content-secondary">';
 timePlaceSettings();
 echo $stopLinks;