Open($userInfo); $resourceSrvc = $siteConn->CreateService(MgServiceType::ResourceService); $webLayoutName= "Session:" . $adminSession . "//" . "Map" .rand(). "." . MgResourceType::WebLayout; $webLayOutId = new MgResourceIdentifier($webLayoutName); // get contents of a file into a string try { //under Liunx, we should use '/' instead of '\\' $filename = "profilingmapxml/MapViewerTemplate.xml"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fclose($handle); } catch (Exception $e) { echo $e->getMessage(); } $contents= str_replace("{0}", $mapDefiniton, $contents); $content_byteSource = new MgByteSource($contents,strlen($contents)); $content_byteSource->setMimeType("text/xml"); $content_byteReader = $content_byteSource->GetReader(); $resourceSrvc->SetResource($webLayOutId, $content_byteReader, null); //pass the seesion ID with the url, so when the map viewer is opened, there is no need to re-enter the password $ajaxViewerFolder = "mapviewerajax/?"; //when user installed the ajax java viewer, the apache will add a redict //from mapviewerajax to mapviewerjava, and change the relative path to absolute path //which casues the cross-domain problem //now we check if we install the ajax java, then use the "mapviewerjava/ajaxviewer.jsp?" directly to avoid this problem $os = (DIRECTORY_SEPARATOR=='\\') ? "winNT" : "linux"; //under the linux system, the mapviewerjava is always installed, so if someone is running apache + java on linux, //the admin should manually change the line 51 as: //if(file_exists("../mapviewerjava/ajaxviewer.jsp")) if( ("winNT" == $os) && file_exists("../mapviewerjava/ajaxviewer.jsp")) { $ajaxViewerFolder = "mapviewerjava/ajaxviewer.jsp?"; } $webLayoutUrl="../".$ajaxViewerFolder."WEBLAYOUT=".urlencode($webLayoutName)."&LOCALE=en&SESSION=".$site->GetCurrentSession(); header('Location:'. $webLayoutUrl); ?>