Geo_Preferences::GetFocusInfo PHP Method

GetFocusInfo() public static method

Gets info on map auto-focusing
public static GetFocusInfo ( string $p_htmlDir = '', string $p_websiteUrl = '' ) : array
$p_htmlDir string
$p_websiteUrl string
return array
    public static function GetFocusInfo($p_htmlDir = '', $p_websiteUrl = '')
    {
        $preferencesService = \Zend_Registry::get('container')->getService('system_preferences_service');
        $focus_default = $preferencesService->MapAutoFocusDefault;
        if (!$focus_default) {
            $focus_default = false;
        } else {
            $focus_default = true;
        }
        $focus_maxzoom = $preferencesService->MapAutoFocusMaxZoom;
        if (!$focus_maxzoom) {
            $focus_maxzoom = 18;
        }
        $focus_border = $preferencesService->MapAutoFocusBorder;
        if (!$focus_border) {
            $focus_border = 100;
        }
        $res_focus_info = array('auto_focus' => $focus_default, 'max_zoom' => $focus_maxzoom, 'border' => $focus_border);
        return array('json_obj' => $res_focus_info);
    }

Usage Example

Example #1
0
    /**
     * 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;
    }
All Usage Examples Of Geo_Preferences::GetFocusInfo