Forum Replies Created

Viewing 2 replies - 1 through 2 (of 2 total)
  • Thread Starter KeithMitchell

    (@keithmitchell)

    Hi Ben, basically I am creating a form to show a map, allow user to click a position, and have the lat and long populate into fields that will be populated in with my custom post type.

    Thread Starter KeithMitchell

    (@keithmitchell)

    Sorry. I forgot to mention. I am using a mashup to enable the map to show on a Gravity Form

    Map box and controls show, but not the map. Tried different themes and works ok. If you have any suggestions greatly appreciate it. But I do understand its a mashup, so probably not really an issue with the plugin.

    Here is the code:

    add_filter("gform_pre_render", "gravityforms_wpgeo_mashup");
    function gravityforms_wpgeo_mashup($form) {
    
        //REPLACE 1 with your actual form id
        $my_geo_form = 2;
        if($form["id"] !=$my_geo_form)
            return $form;
    
        // find IDs of latitude&longitude custom fields
        foreach($form["fields"] as &$field){
                if($field["postCustomFieldName"]=="_wp_geo_longitude") $field_lng = $field["id"];
                if($field["postCustomFieldName"]=="_wp_geo_latitude") $field_lat = $field["id"];
                //print_r($field);
        }
    
        // show map only if latitude&longitude custom fields exist
        if($field_lng && $field_lat ) :
            // load "WP Geo" plugin
            require_once( WP_PLUGIN_DIR . '/wp-geo/wp-geo.php' );
            global $wpgeo;
            $wpgeo = new WPGeo();
            $zoom = 2;
            $map = $wpgeo->mapScriptsInit( 20, 0,$zoom, true, false );
            $map .='
                <input type="hidden" name="wpgeo_map_settings_zoom" id="wpgeo_map_settings_zoom" value="" />
                <input type="hidden" name="wpgeo_map_settings_type" id="wpgeo_map_settings_type" value="" />
                <input type="hidden" name="wpgeo_map_settings_centre" id="wpgeo_map_settings_centre" value="" />
                <input name="wp_geo_latitude" type="hidden" size="25" id="wp_geo_latitude" value="" />
                <input name="wp_geo_longitude" type="hidden" size="25" id="wp_geo_longitude" value="" />
                <script type="text/javascript">
                    <!--
                    jQuery(document).ready(function() {';
    
                        $map .='var my_geo_form= '.$my_geo_form.';';
                        $map .='var field_lng= '.$field_lng.';';
                        $map .='var field_lat= '.$field_lat.';';
                        $map .='
                        jQuery("#wp_geo_map").click(function(e) {
    
                            jQuery("#input_"+my_geo_form+"_"+field_lat).val(jQuery("#wp_geo_latitude").val());
                            jQuery("#input_"+my_geo_form+"_"+field_lng).val(jQuery("#wp_geo_longitude").val());
    
                        });
    
                    });
                -->
                </script>
                <div id="wp_geo_map" style="width:auto; height:400px"></div>';
    
            // find ID of section with cssClass "wpgeo" and put the map into description
            foreach($form["fields"] as &$field){
                    if($field["cssClass"]=="wpgeo")$field["description"].=$map;
            }
        endif;
        return $form;
    }

Viewing 2 replies - 1 through 2 (of 2 total)