Here is my working code
$points[] = array("point" => array(
$longitude,
$latitude
),
"color" => $color,
"site_name" => $account_namme
);
Above is points array format
<script type="text/javascript">
var map;
require([
"esri/map", "esri/geometry/Point",
"esri/symbols/SimpleMarkerSymbol",
"esri/graphic",
"dojo/_base/array", "dojo/dom-style",
"dojo/domReady!"
], function(
Map, Point,
SimpleMarkerSymbol, Graphic,
arrayUtils, domStyle
) {
map = new Map("map",{
basemap: "streets",
center :[{$SITE_LONG}, {$SITE_LAT}],
zoom: 4,
minZoom: 0
});
map.on("load", mapLoaded);
map.on("click", function (evt) {
if(typeof evt.graphic.attributes !== 'undefined'){
console.log(evt.graphic.attributes.site_name);
var title = "Site Details";
var content = "Site Name : " + evt.graphic.attributes.site_name;
map.infoWindow.setTitle(title);
map.infoWindow.setContent(content);
map.infoWindow.show(evt.mapPoint);
}
});
function mapLoaded(){
var points = {$POINTS|@json_encode};
arrayUtils.forEach(points, function(point) {
var graphic = new Graphic(new Point(point['point']), createSymbol(point['color']));
graphic.setAttributes({
site_name: point['site_name'],
});
map.graphics.add(graphic);
});
}
function createSymbol(color){
var markerSymbol = new esri.symbol.SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_CIRCLE, 10);
markerSymbol.setColor(new dojo.Color(color));
markerSymbol.setOutline(null);
return markerSymbol;
}
});
</script>