exit; } $articleObj = new Article($f_language_id, $f_article_number); $cnf_html_dir = $Campsite['HTML_DIR']; $cnf_website_url = $Campsite['WEBSITE_URL']; $geo_map_info = Geo_Preferences::GetMapInfo($cnf_html_dir, $cnf_website_url); $geo_map_incl = Geo_Preferences::PrepareMapIncludes($geo_map_info['incl_obj']); $geo_map_json = ""; $geo_map_json .= json_encode($geo_map_info['json_obj']); $geo_map_usage = Geo_Map::ReadMapInfo('article', $f_article_number); $geo_map_usage_json = ""; $geo_map_usage_json .= json_encode($geo_map_usage); $geo_icons_info = Geo_Preferences::GetIconsInfo($cnf_html_dir, $cnf_website_url); $geo_icons_json = ""; $geo_icons_json .= json_encode($geo_icons_info['json_obj']); $geo_popups_info = Geo_Preferences::GetPopupsInfo($cnf_html_dir, $cnf_website_url); $geo_popups_json = ""; $geo_popups_json .= json_encode($geo_popups_info['json_obj']); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <meta http-equiv="Expires" content="now" /> <title><?php putGS('Setting Map Locations'); ?> </title> <?php include dirname(__FILE__) . '/../../html_head.php';
/** * Gives the header part for the multi-map front end presentation * * @param int $p_languageId * @param array $p_constarints * @param array $p_options * @param int $p_offset * @param int $p_limit * @param int $p_mapWidth * @param int $p_mapHeight * @param int $p_rank * The rank of the current multi-map, used to make unique ids * * @return string */ public static function GetMultiMapTagHeader($p_languageId, $p_constraints, $p_options, $p_offset, $p_limit, $p_mapWidth, $p_mapHeight, $p_rank = 0) { global $Campsite; $tag_string = ''; $tag_string_top = ''; $tag_string_gv3_async = false; $tag_string_ini = ''; $tag_string_mid = ''; $tag_string_fin = ''; $points = null; $pois_loaded = false; $max_zoom = null; $map_margin = null; $load_common = true; $area_points = null; $area_points_empty_only = 'false'; $width_dyn = false; $height_dyn = false; if (is_array($p_options)) { if (array_key_exists('pois_retrieved', $p_options)) { $pois_loaded = $p_options['pois_retrieved']; } if (array_key_exists('max_zoom', $p_options)) { $max_zoom = $p_options['max_zoom']; } if (array_key_exists('map_margin', $p_options)) { $map_margin = $p_options['map_margin']; } if (array_key_exists('load_common', $p_options)) { $load_common = $p_options['load_common']; } if (array_key_exists('area_points', $p_options)) { $area_points = $p_options['area_points']; } if (array_key_exists('area_points_empty_only', $p_options)) { if ($p_options['area_points_empty_only']) { $area_points_empty_only = 'true'; } } if (array_key_exists('width_dyn', $p_options)) { $width_dyn = $p_options['width_dyn']; } if (array_key_exists('height_dyn', $p_options)) { $height_dyn = $p_options['height_dyn']; } } $large_map_on_click = false; $open_large_map = false; $width_large_map = 800; $height_large_map = 600; $label_large_map = ''; if (is_array($p_options)) { if (array_key_exists('large_map_on_click', $p_options)) { $large_map_on_click = $p_options['large_map_on_click']; } if (array_key_exists('large_map_open', $p_options)) { $open_large_map = $p_options['large_map_open']; } if ($large_map_on_click && !$open_large_map) { $open_large_map = true; } if (array_key_exists('large_map_width', $p_options)) { $width_large_map_param = 0 + $p_options['large_map_width']; if (0 < $width_large_map_param) { $width_large_map = $width_large_map_param; } } if (array_key_exists('large_map_height', $p_options)) { $height_large_map_param = 0 + $p_options['large_map_height']; if (0 < $height_large_map_param) { $height_large_map = $height_large_map_param; } } if (array_key_exists('large_map_label', $p_options)) { $label_large_map_param = '' . $p_options['large_map_label']; if ('' != $label_large_map_param) { $label_large_map = $label_large_map_param; } } } if (!$pois_loaded) { $leftOperand = 'as_array'; $rightOperand = true; $operator = new Operator('is', 'php'); $constraint = new ComparisonOperation($leftOperand, $operator, $rightOperand); $p_constraints[] = $constraint; $leftOperand = 'active_only'; $rightOperand = true; $operator = new Operator('is', 'php'); $constraint = new ComparisonOperation($leftOperand, $operator, $rightOperand); $p_constraints[] = $constraint; $leftOperand = 'text_only'; $rightOperand = false; $operator = new Operator('is', 'php'); $constraint = new ComparisonOperation($leftOperand, $operator, $rightOperand); $p_constraints[] = $constraint; $leftOperand = 'language'; $rightOperand = $p_languageId; $operator = new Operator('is', 'php'); $constraint = new ComparisonOperation($leftOperand, $operator, $rightOperand); $p_constraints[] = $constraint; $leftOperand = 'constrained'; $rightOperand = true; $operator = new Operator('is', 'php'); $constraint = new ComparisonOperation($leftOperand, $operator, $rightOperand); $p_constraints[] = $constraint; $poi_count = 0; $points = array(); $point_objs = Geo_MapLocation::GetListExt($p_constraints, (array) null, $p_offset, $p_limit, $poi_count, false, $points); } else { $points = $p_constraints; } $f_language_id = $p_languageId; $map_suffix = '_' . 'multimap' . '_' . $f_language_id . '_' . $p_rank; $cnf_html_dir = $Campsite['HTML_DIR']; $cnf_website_url = $Campsite['WEBSITE_URL']; $geo_map_usage = Geo_Map::ReadMultiMapInfo(); if (0 < $p_mapWidth) { $geo_map_usage['width'] = $p_mapWidth; } if (0 < $p_mapHeight) { $geo_map_usage['height'] = $p_mapHeight; } $geo_map_usage_json = ''; $geo_map_usage_json .= json_encode($geo_map_usage); $geo_map_info = Geo_Preferences::GetMapInfo($cnf_html_dir, $cnf_website_url, $geo_map_usage['prov']); $geo_map_incl = Geo_Preferences::PrepareMapIncludes($geo_map_info['incl_obj']); $geo_map_incl_async_arr = $geo_map_info['incl_obj_async']; $geo_map_incl_async_init = $geo_map_info['incl_gv3_init']; $tag_string_gv3_async = $geo_map_info['incl_gv3']; $geo_map_json = ''; $geo_map_json .= json_encode($geo_map_info['json_obj']); $geo_icons_info = Geo_Preferences::GetIconsInfo($cnf_html_dir, $cnf_website_url); $geo_icons_json = ''; $geo_icons_json .= json_encode($geo_icons_info['json_obj']); $geo_popups_info = Geo_Preferences::GetPopupsInfo($cnf_html_dir, $cnf_website_url); $geo_popups_json = ''; $geo_popups_json .= json_encode($geo_popups_info['json_obj']); $geo_focus_info = Geo_Preferences::GetFocusInfo($cnf_html_dir, $cnf_website_url); $geo_focus_info['json_obj']['auto_focus'] = true; if (null !== $max_zoom) { $geo_focus_info['json_obj']['max_zoom'] = $max_zoom; } if (null !== $map_margin) { $geo_focus_info['json_obj']['border'] = $map_margin; } $geo_focus_json = ''; $geo_focus_json .= json_encode($geo_focus_info['json_obj']); $preview = true; $poi_info = array('pois' => $points, 'map' => $geo_map_usage); $poi_info_json = json_encode($poi_info); $geocodingdir = $Campsite['WEBSITE_URL'] . '/js/geocoding/'; // map-provider specific includes shall be taken for all maps, since those maps can use different map providers $tag_string_top .= $geo_map_incl; $tag_string_top .= "\n"; $check_gv3 = 'false'; if ($tag_string_gv3_async) { $check_gv3 = 'true'; } $check_gv3_init = 'false'; if ('' != $geo_map_incl_async_init) { $check_gv3_init = 'true'; } $include_files_tags = ''; if (true) { $include_files = Geo_Preferences::GetIncludeCSS($cnf_html_dir, $cnf_website_url); $include_files_css = $include_files['css_files']; foreach ($include_files_css as $css_file) { $include_files_tags .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"{$css_file}\" />\n"; } } $tag_string_ini .= $include_files_tags; if (true) { $tag_string_ini .= ' <script type="text/javascript" src="' . $Campsite['WEBSITE_URL'] . '/js/geocoding/map_popups.js"></script> <script type="text/javascript" src="' . $Campsite['WEBSITE_URL'] . '/js/geocoding/openlayers/OpenLayers.js"></script> <script type="text/javascript" src="' . $Campsite['WEBSITE_URL'] . '/js/geocoding/openlayers/OLlocals.js"></script> <script type="text/javascript" src="' . $Campsite['WEBSITE_URL'] . '/js/geocoding/map_preview.js"></script> '; } $tag_string_mid .= ' <script type="text/javascript"> window.map_prepared = false; '; if ('' != $geo_map_incl_async_init) { $tag_string_mid .= ' if (undefined === window.' . $geo_map_incl_async_init . ') { window.' . $geo_map_incl_async_init . ' = function () { window.gv3_maps_loaded = true; }; } '; } $tag_string_mid .= ' geo_object' . $map_suffix . ' = new geo_locations(); window.center_large_map' . $map_suffix . ' = function () { try { if (window.map_win_popup && window.map_win_popup.map_prepared) { if ("' . $map_suffix . '" == window.map_win_popup.map_obj_specifier) { window.map_win_popup.geo_object' . $map_suffix . '.map_showview(); } } } catch (e) {} }; window.point_large_map_center' . $map_suffix . ' = function (index, select) { try { if (window.map_win_popup && window.map_win_popup.map_prepared) { if ("' . $map_suffix . '" == window.map_win_popup.map_obj_specifier) { window.map_win_popup.geo_object' . $map_suffix . '.center_poi(index); if (select) { window.map_win_popup.OpenLayers.HooksPopups.on_map_feature_select(window.map_win_popup.geo_object' . $map_suffix . ', index); } } } } catch (e) {} }; window.geo_on_load_proc_check_async_map' . $map_suffix . ' = function() { var async_loaded = true; if (' . $check_gv3 . ') { var loaded_gv3 = false; if ((undefined !== window.google) && (undefined !== window.google.maps) && (undefined !== window.google.maps.event)) { loaded_gv3 = true; } if (' . $check_gv3_init . ') { if ((undefined === window.gv3_maps_loaded) || (!window.gv3_maps_loaded)) { loaded_gv3 = false; } } if (!loaded_gv3) {async_loaded = false;} } if (0 < window.count_to_async_load' . $map_suffix . ') { async_loaded = false; } if (async_loaded) { setTimeout("geo_on_load_proc_phase2_map' . $map_suffix . '();", 250); return; } setTimeout("geo_on_load_proc_check_async_map' . $map_suffix . '();", 250); } var geo_on_load_proc_map' . $map_suffix . ' = function() { var map_obj = document.getElementById ? document.getElementById("geo_map_mapcanvas' . $map_suffix . '") : null; if (map_obj) { if (typeof(window.map_popup_win) == "undefined") { map_obj.style.width = "' . $geo_map_usage['width'] . ($width_dyn ? '%' : 'px') . '"; map_obj.style.height = "' . $geo_map_usage['height'] . ($height_dyn ? '%' : 'px') . '"; } else { // not setting the map size for the large map } '; $dyn_size_params = array(); if ($width_dyn) { $dyn_size_params['width'] = $geo_map_usage['width']; } if ($height_dyn) { $dyn_size_params['height'] = $geo_map_usage['height']; } if (0 < count($dyn_size_params)) { $tag_string_mid .= ' if (typeof(window.map_popup_win) == "undefined") { geo_object' . $map_suffix . '.set_size_percentage(' . json_encode($dyn_size_params) . '); setInterval("geo_object' . $map_suffix . '.try_size_updated();", 1000); } '; } $article_spec_arr = array('language_id' => $f_language_id, 'article_number' => 0); $article_spec = json_encode($article_spec_arr); $local_strings = array(); $local_strings['articles'] = getGS('Articles'); $local_strings_json = json_encode($local_strings); $tag_string_mid .= "\n"; $tag_string_mid .= "geo_object{$map_suffix}.set_article_spec({$article_spec});"; $tag_string_mid .= "\n"; $tag_string_mid .= "geo_object{$map_suffix}.set_auto_focus({$geo_focus_json});"; $tag_string_mid .= "\n"; $tag_string_mid .= "geo_object{$map_suffix}.set_map_info({$geo_map_json});"; $tag_string_mid .= "\n"; $tag_string_mid .= "geo_object{$map_suffix}.set_map_usage({$geo_map_usage_json});"; $tag_string_mid .= "\n"; $tag_string_mid .= "geo_object{$map_suffix}.set_icons_info({$geo_icons_json});"; $tag_string_mid .= "\n"; $tag_string_mid .= "geo_object{$map_suffix}.set_popups_info({$geo_popups_json});"; $tag_string_mid .= "\n"; $tag_string_mid .= "geo_object{$map_suffix}.set_display_strings({$local_strings_json});"; $tag_string_mid .= "\n"; if ($area_points) { $tag_string_mid .= "geo_object{$map_suffix}.set_area_constraints({$area_points}, {\"empty_only\":{$area_points_empty_only}});"; $tag_string_mid .= "\n"; } if ($large_map_on_click) { $tag_string_mid .= "if (typeof(window.map_popup_win) == \"undefined\") {\n"; $tag_string_mid .= " geo_object{$map_suffix}.set_action_subst(function(params) {"; $tag_string_mid .= " " . self::GetMultiMapTagOpen($p_languageId, $p_rank, "open_form") . "(params);\n"; $tag_string_mid .= " });\n"; $tag_string_mid .= "}\n"; $tag_string_mid .= "\n"; } $tag_string_mid .= "if (typeof(window.map_popup_win) != \"undefined\") {\n"; $tag_string_mid .= " geo_object{$map_suffix}.set_map_large({width:{$width_large_map},height:{$height_large_map},map_holder:\"map_body_holder\"});\n"; $tag_string_mid .= "}\n"; $tag_string_mid .= "\n"; $tag_string_mid .= ' if (true && (typeof(window.map_popup_win) != "undefined")) { '; $tag_async_load_bunch = ''; $count_to_async_load = 0; foreach ($geo_map_incl_async_arr as $one_async_scr) { if (!empty($one_async_scr)) { $count_to_async_load += 1; $tag_async_load_bunch .= '$.getScript("' . $one_async_scr . '", function() {window.count_to_async_load' . $map_suffix . ' -= 1;});'; } } $tag_string_mid .= ' window.count_to_async_load' . $map_suffix . ' = ' . $count_to_async_load . '; window.gv3_maps_loaded = false; ' . $tag_async_load_bunch . ' if (true) { setTimeout("geo_on_load_proc_check_async_map' . $map_suffix . '();", 250); return; } } setTimeout("geo_on_load_proc_phase2_map' . $map_suffix . '();", 250); return; } }; var geo_on_load_proc_phase2_map' . $map_suffix . ' = function() { var res_state = false; try { res_state = OpenLayers.Util.test_ready(); } catch (e) {res_state = false;} if (!res_state) { setTimeout("geo_on_load_proc_phase2_map' . $map_suffix . '();", 250); return; } geo_object' . $map_suffix . '.main_openlayers_init("geo_map_mapcanvas' . $map_suffix . '"); geo_object' . $map_suffix . '.got_load_data(' . $poi_info_json . ', true); window.map_prepared = true; if (undefined !== window.deferred_action) { try {window.deferred_action();} catch (e) {} } }; $(document).ready(function() { setTimeout("geo_on_load_proc_map' . $map_suffix . '();", 0); }); </script> '; // should we provide js for large-map openning if ($open_large_map) { $tag_string_fin .= self::GetLargeMapOpener($map_suffix, $width_large_map, $height_large_map, $label_large_map, $tag_string_ini . $tag_string_mid, self::GetMultiMapTagBody($p_languageId, $p_rank, true)); } $tag_string .= $tag_string_top; if ($load_common) { $tag_string .= $tag_string_ini; } return $tag_string . $tag_string_mid . $tag_string_fin; }
/** * Gives the header part for the map front end presentation * * @param int $p_articleNumber * @param int $p_languageId * @param int $p_mapWidth * @param int $p_mapHeight * * @return string */ public static function GetMapTagHeader($p_articleNumber, $p_languageId, $p_mapWidth = 0, $p_mapHeight = 0) { global $Campsite; $tag_string = ""; $f_article_number = $p_articleNumber; $f_language_id = $p_languageId; $map_suffix = "_" . $f_article_number . "_" . $f_language_id; $cnf_html_dir = $Campsite['HTML_DIR']; $cnf_website_url = $Campsite['WEBSITE_URL']; $geo_map_usage = Geo_Map::ReadMapInfo("article", $f_article_number); if (0 < $p_mapWidth) { $geo_map_usage['width'] = $p_mapWidth; } if (0 < $p_mapHeight) { $geo_map_usage['height'] = $p_mapHeight; } $geo_map_usage_json = ""; $geo_map_usage_json .= json_encode($geo_map_usage); $geo_map_info = Geo_Preferences::GetMapInfo($cnf_html_dir, $cnf_website_url, $geo_map_usage['prov']); $geo_map_incl = Geo_Preferences::PrepareMapIncludes($geo_map_info["incl_obj"]); $geo_map_json = ""; $geo_map_json .= json_encode($geo_map_info["json_obj"]); $geo_icons_info = Geo_Preferences::GetIconsInfo($cnf_html_dir, $cnf_website_url); $geo_icons_json = ""; $geo_icons_json .= json_encode($geo_icons_info["json_obj"]); $geo_popups_info = Geo_Preferences::GetPopupsInfo($cnf_html_dir, $cnf_website_url); $geo_popups_json = ""; $geo_popups_json .= json_encode($geo_popups_info["json_obj"]); $map_id = Geo_Map::GetMapIdByArticle($f_article_number); $preview = true; $poi_info = Geo_Map::LoadMapData($map_id, $f_language_id, $f_article_number, $preview); //$poi_info_json = str_replace("'", "\\'", json_encode($poi_info)); $poi_info_json = json_encode($poi_info); $geocodingdir = $Campsite['WEBSITE_URL'] . '/js/geocoding/'; $tag_string .= $geo_map_incl; $tag_string .= "\n"; $tag_string .= ' <script type="text/javascript" src="' . $Campsite["WEBSITE_URL"] . '/js/geocoding/openlayers/OpenLayers.js"></script> <script type="text/javascript" src="' . $Campsite["WEBSITE_URL"] . '/js/geocoding/openlayers/OLlocals.js"></script> <script type="text/javascript" src="' . $Campsite["WEBSITE_URL"] . '/js/geocoding/map_preview.js"></script> <script type="text/javascript"> geo_object'. $map_suffix .' = new geo_locations(); var geo_use_system_parameters_map' . $map_suffix . ' = function() { '; $article_spec_arr = array("language_id" => $f_language_id, "article_number" => $f_article_number); $article_spec = json_encode($article_spec_arr); $tag_string .= "\n"; $tag_string .= "geo_object$map_suffix.set_article_spec($article_spec);"; $tag_string .= "\n"; $tag_string .= "geo_object$map_suffix.set_map_info($geo_map_json);"; $tag_string .= "\n"; $tag_string .= "geo_object$map_suffix.set_map_usage($geo_map_usage_json);"; $tag_string .= "\n"; $tag_string .= "geo_object$map_suffix.set_icons_info($geo_icons_json);"; $tag_string .= "\n"; $tag_string .= "geo_object$map_suffix.set_popups_info($geo_popups_json);"; $tag_string .= "\n"; $tag_string .= ' }; var geo_on_load_proc_map' . $map_suffix . ' = function() { var map_obj = document.getElementById ? document.getElementById("geo_map_mapcanvas' . $map_suffix . '") : null; if (map_obj) { map_obj.style.width = "' . $geo_map_usage["width"] . 'px"; map_obj.style.height = "' . $geo_map_usage["height"] . 'px"; geo_main_selecting_locations(geo_object' . $map_suffix . ', "' . $geocodingdir. '", "geo_map_mapcanvas' . $map_suffix. '", "map_sidedescs", "", "", true); geo_use_system_parameters_map' . $map_suffix . '(); setTimeout("geo_on_load_proc_phase2_map' . $map_suffix . '();", 250); return; } }; var geo_on_load_proc_phase2_map' . $map_suffix . ' = function() { var res_state = null; try { res_state = geo_main_openlayers_init(geo_object' . $map_suffix . ', "geo_map_mapcanvas' . $map_suffix. '"); } catch (e) {res_state = "not_yet";} if ("ok" != res_state) { setTimeout("geo_on_load_proc_phase2_map' . $map_suffix . '();", 250); return; } geo_object' . $map_suffix . '.got_load_data(' . $poi_info_json . ', true); }; $(document).ready(function() { setTimeout("geo_on_load_proc_map' . $map_suffix . '();", 0); }); </script> '; return $tag_string; } // fn GetMapTagHeader