';
$xml .= "\n";
/*
*/
try {
$user = Util::securityGetCurrentUser();
if (isset($user)) {
$xml .= "getSafeFieldsAsJSON() . "]]>\n";
} else {
$xml .= "\n";
}
} catch (Exception $ex) {
die('Error! Error getting user info.');
}
/*
*/
try {
$sql = "SELECT AreaMap.*, Client.ClientDomain, Client.ClientFaviconURL, Client.ClientMETADescription, Client.ClientSkinFolder,
COALESCE(NULLIF(TRIM(`AreaMap`.`MapStyleOverrideJSON`),''),
NULLIF(TRIM(`Project`.`ProjectAreaMapStyleOverrideJSON`),''),
NULLIF(TRIM(`Client`.`ClientAreaMapStyleOverrideJSON`),'')) AS `AreaMapStyleOverrideJSON`
FROM AreaMap
LEFT JOIN Project ON Project.ProjectID=AreaMap.ProjectID
LEFT JOIN Client ON Client.ClientID=Project.ClientID
WHERE AreaMapGUID=:AreaMapGUID
LIMIT 1";
$stmt = $db->prepare($sql);
$stmt->bindValue(':AreaMapGUID', $AreaMapGUID, PDO::PARAM_INT);
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC);
$areamap_id = $row['AreaMapID'];
$attributes = '';
$skin_folder = $row['MapSkinFolder'];
if (is_null($skin_folder) || trim($skin_folder)=='') $skin_folder = $row['ClientSkinFolder'];
foreach ($row as $key => $val) {
if ($val) {
if ($key=="ExtraAPICalls") {
$extra_js .= "function ExtraMapAPICalls() {\r\n" . $val . "} ";
} else $attributes .= ' ' . strtolower($key) . '="' . htmlentities($val) . '"';
}
}
$xml .= "\n";
} catch (Exception $ex) {
die('Error! Error getting areamap info.');
}
/*
*/
try {
$sql = "SELECT c.*, p.*, AreaMap.ShowAllLabel, AreaMap.ShowAllIconFilePath
, c.ExtraAPICalls AS CategoryExtraAPICalls, p.ExtraAPICalls AS POIExtraAPICalls
FROM AreaMap
INNER JOIN Project ON AreaMap.ProjectID=Project.ProjectID
INNER JOIN AreaMapPOIMember pm ON pm.AreaMapID=AreaMap.AreaMapID
INNER JOIN AreaMapPOI p ON p.AreaMapPOIID=pm.AreaMapPOIID
INNER JOIN AreaMapPOICategory c ON p.AreaMapPOICategoryID=c.AreaMapPOICategoryID
WHERE AreaMap.AreaMapGUID=:AreaMapGUID
ORDER BY c.CategoryName, p.POIName";
$stmt = $db->prepare($sql);
$stmt->bindValue(':AreaMapGUID', $AreaMapGUID, PDO::PARAM_INT);
$stmt->execute();
$categoryLastID = 0;
$categoryCurrentID = 0;
$categoryIsOpen = FALSE;
$xml .= "\n";
$maxfilter = 0;
$showall_label = '';
$showall_icon = '';
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$showall_label = $row['ShowAllLabel'];
$showall_icon = $row['ShowAllIconFilePath'];
$categoryCurrentID = $row['AreaMapPOICategoryID'];
if ($categoryCurrentID!=$categoryLastID && $categoryIsOpen) {
$xml .= "\n";
$categoryIsOpen = FALSE;
}
if (!$categoryIsOpen) {
$maxfilter++;
$attributes = '';
foreach ($row as $key => $val) {
// category attributes not distinguishable from POI attributes simply by name
if (($key=="CategoryName" || $key=="IconFilePath" || $key=="AlwaysShow" || $key=="ShowOnStart"|| $key=="CategoryExtraAPICalls"|| $key=="AreaMapPOICategoryID") && !is_null($val)) {
if ($key=="CategoryExtraAPICalls") {
$extra_js .= "function ExtraCategory" . (int)$categoryCurrentID . "APICalls() {\r\n" . $val . "} ";
} else $attributes .= ' ' . strtolower($key) . '="' . htmlentities($val) . '"';
}
}
if ($attributes) $xml .= "\n";
$categoryLastID = $categoryCurrentID;
$categoryIsOpen = TRUE;
}
// now get actual POI attributes
$attributes = '';
// loop through DB attributes
foreach ($row as $key => $val) {
// category attributes not distinguishable from POI attributes simply by name
if (($key!="CategoryName" && $key!="CategoryExtraAPICalls" && $key!="MapExtaAPICalls") && !is_null($val)) {
if ($key=="POIExtraAPICalls") {
$extra_js .= "function ExtraPOI" . (int)$row['AreaMapPOIID'] . "APICalls() {\r\n" . $val . "} ";
} else $attributes .= ' ' . strtolower($key) . '="' . htmlentities($val) . '"';
}
}
if ($attributes) $xml .= "\n";
}
if ($categoryIsOpen) $xml .= "\n";
if ($showall_label!='' || $showall_icon!='') {
$xml .= "";
}
$xml .= "\n";
} catch (Exception $ex) {
die('Error! Error getting POIs.');
}
$xml .= "";
// ---------------------------------------------- client-side JS to parse the XML and display the google map --------------------------------------------------//
?>
\r\n";
}
?>
". $extra_js . "";
}
?>