'; $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 . ""; } ?>