WordPress.org

Plugin Directory

Changeset 713040


Ignore:
Timestamp:
05/14/13 17:54:14 (11 months ago)
Author:
eskapism
Message:

version 1.3

Location:
simple-fields-map-extension/trunk
Files:
1 added
3 edited

Legend:

Unmodified
Added
Removed
  • simple-fields-map-extension/trunk/readme.txt

    r638529 r713040  
    33Donate link: http://earthpeople.se/ 
    44Tags: simple fields, google maps, geolocation, latitude, longitude, lat, lng, location, extension, geocoding 
    5 Requires at least: 3.4 
    6 Tested up to: 3.4.2 
    7 Stable tag: 1.2.2 
     5Requires at least: 3.5 
     6Tested up to: 3.5 
     7Stable tag: 1.3 
    88License: GPLv2 
    99 
     
    3535    * Address information, including store/shop name if that was what the user searched for when adding this location 
    3636 
     37#### To add a map to a field group programmatically 
     38 
     39Slug for this field extension is "googlemaps". 
     40 
     41Full example using register field group: 
     42 
     43` 
     44        simple_fields_register_field_group('sf_map_test_field_fg', 
     45            array( 
     46                'name' => 'My map', 
     47                'repeatable' => 1, 
     48                'fields' => array( 
     49                    array( 
     50                        "type" => "googlemaps", 
     51                        "slug" => "sf_map", 
     52                        "name" => "Test map", 
     53                        "options" => array( 
     54                            "defaultZoomLevel" => 10, 
     55                            "defaultMapTypeId" => "HYBRID", // ROADMAP | SATELLITE | HYBRID | TERRAIN 
     56                            "defaultLocationLat" => 40.71435, 
     57                            "defaultLocationLng" => -74.00597, 
     58                            "defaultZoomLevel" => 10 
     59                        ) 
     60                    ) 
     61                ) 
     62            ) 
     63        ); 
     64` 
     65 
    3766#### Translations/Languages 
    3867 
     
    5483 
    5584== Changelog == 
     85 
     86= 1.3 = 
     87- Add dropdown to select preferred zoom level for each map 
     88- Show notice in admin if user does not have Simple Fields installed 
    5689 
    5790= 1.2.2 = 
  • simple-fields-map-extension/trunk/scripts.js

    r637683 r713040  
    99 
    1010    return { 
    11          
     11 
    1212        init: function(){ 
     13             
    1314            this.load_map_script(); 
    1415 
     
    9192                 
    9293                // Output rounded coords on screen beause like 10 digits is just to noisy 
    93                 var coefficient = Math.pow(10, 4); 
     94                var coefficient = Math.pow(10, 5); 
    9495                var roundedLat = Math.round(pos.lat() * coefficient) / coefficient; 
    9596                var roundedLng = Math.round(pos.lng() * coefficient) / coefficient; 
     
    226227                     
    227228                    if (place.geometry === undefined) { 
     229 
    228230                        // console.log("No full place selected in autocomplete."); 
    229231 
     
    234236                        // so perhaps minus then number.dot.number pehaps comma then perhaps number then number.dot.number 
    235237                        var entered_address = address_input.get(0).value; 
    236                         var matches = entered_address.match(/(-?\d+\.\d+)[, ](-?\d+\.\d+)/); 
     238                        var matches = entered_address.match(/(-?\d+\.\d+), ?(-?\d+\.\d+)/); 
    237239                        if (matches && matches.length === 3) { 
    238240                             
     
    294296                }); 
    295297 
     298            }); // idle 
     299 
     300            // change zoom level on map when select with preferred zoom level is changed 
     301            metaboxDiv.on("change", ".simple-fields-fieldtype-googlemap-preferred-zoom select", function(e) { 
     302                var zoom = parseInt(this.value, 10); 
     303                if ( ! isNaN(zoom) ) map.setZoom( zoom ); 
    296304            }); 
    297305 
  • simple-fields-map-extension/trunk/simple-fields-map-extension.php

    r638529 r713040  
    44Plugin URI: http://earthpeople.se/ 
    55Description: Adds a Google Maps-field to Simple Fields 
    6 Version: 1.2.2 
     6Version: 1.3 
    77Author: Earth People 
    88Author URI: http://earthpeople.se/ 
     
    1010*/ 
    1111 
    12 add_action("simple_fields_register_field_types", "simple_fields_field_googlemaps_register");  
    13  
     12/* Add example post type and simple fields to test plugin.  
     13// In case I forget to comment it out, it will only be called when using on my test domain (hopefully pretty unique name :) 
     14if ( "playground-nightly.ep" === $_SERVER["HTTP_HOST"] ) { 
     15 
     16    // Full example to add post type with maps and stuff 
     17    add_action("init", function() { 
     18 
     19        register_post_type( "sf_map_test", array( 
     20            "label" => "SF Map Extension Test", 
     21            "public" => true 
     22        )); 
     23 
     24        simple_fields_register_field_group('sf_map_test_field_fg', 
     25            array ( 
     26                'name' => 'Map test', 
     27                'repeatable' => 1, 
     28                'fields' => array( 
     29                    array( 
     30                        "slug" => "sf_map", 
     31                        "name" => "Test map", 
     32                        "type" => "googlemaps", 
     33                        "options" => array( 
     34                            "defaultZoomLevel" => 10, 
     35                            "defaultMapTypeId" => "HYBRID", // ROADMAP | SATELLITE | HYBRID | TERRAIN 
     36                            "defaultLocationLat" => 40.71435, 
     37                            "defaultLocationLng" => -74.00597, 
     38                            "defaultZoomLevel" => 10 
     39                        ) 
     40                    ) 
     41                ) 
     42            ) 
     43        ); 
     44 
     45        simple_fields_register_post_connector('sf_map_test', array( 
     46            "name" => "Map extension post connector", 
     47            "field_groups" => array( 
     48                array("slug" => "sf_map_test_field_fg") 
     49            ), 
     50            "post_types" => "sf_map_test" 
     51        )); 
     52 
     53        simple_fields_register_post_type_default('sf_map_test', 'sf_map_test'); 
     54 
     55    }); 
     56} 
     57//* 
     58 
     59 
     60// Check if Simple Fields is installed and notify user if not 
     61function simple_fields_field_googlemaps_check_simple_fields_installed() { 
     62 
     63    $plugin_is_active = is_plugin_active("Simple-Fields-GIT/simple_fields.php") || is_plugin_active("Simple-Fields/simple_fields.php"); 
     64    if ( ! $plugin_is_active ) { 
     65        ?> 
     66        <div class="error"> 
     67            <p><?php _e('To use the plugin <em>Simple Fields Map Extension</em> you must also have <a target="_blank" href="http://wordpress.org/extend/plugins/simple-fields/">Simple Fields</a> installed.', 'simple-fields-field-googlemaps'); ?></p> 
     68        </div> 
     69        <?php 
     70    } 
     71 
     72} 
     73add_action("admin_notices", "simple_fields_field_googlemaps_check_simple_fields_installed"); 
     74 
     75 
     76/** 
     77 * Function that is called from simple fields 
     78 */  
    1479function simple_fields_field_googlemaps_register() { 
     80 
     81    /** 
     82     * Main class for the google maps extension 
     83     */ 
    1584    class simple_fields_field_googlemaps extends simple_fields_field { 
    1685     
     
    1887            $key = "googlemaps",  
    1988            $name = "Google Maps location", 
    20             $version = "1.2.1"; 
     89            $version = "1.3"; 
    2190         
    2291        function __construct() { 
     
    140209            $address_components = isset($saved_values["address_components"]) ? $saved_values["address_components"] : ""; 
    141210            $name               = isset($saved_values["name"]) ? $saved_values["name"] : ""; 
    142              
     211            $saved_preferred_zoom   = ( isset( $saved_values["preferred_zoom"] ) && is_numeric($saved_values["preferred_zoom"]) ) ? (int) $saved_values["preferred_zoom"] : ""; 
     212 
     213            $str_zoom_options = sprintf( '<select name="%1$s">', $this->get_options_name("preferred_zoom") ); 
     214            $str_zoom_options .= sprintf('<option value="%1$s">%2$s</option>', "", __("None preferred selected", "simple-fields-field-googlemaps")); 
     215            $ranges = range(0,21); 
     216            $ranges[0] = __("0 - whole earth visible", "simple-fields-field-googlemaps"); 
     217            $ranges[21] = __("21 - very close", "simple-fields-field-googlemaps"); 
     218            foreach ( $ranges as $one_zoom_range_key => $one_zoom_range_value ) { 
     219                $str_zoom_options .= sprintf( '<option value="%1$s" %3$s>%2$s</option>', $one_zoom_range_key, $one_zoom_range_value, ($one_zoom_range_key === $saved_preferred_zoom) ? " selected " : "" ); 
     220            } 
     221            $str_zoom_options .= "</select>"; 
     222             
     223            $str_zoom = $str_zoom_options; 
     224 
    143225            $output .= sprintf( 
    144226                ' 
     
    158240                    <input type=hidden name=%12$s value="%13$s" class="simple-fields-field-googlemap-address_components" /> 
    159241                    <p class="simple-fields-fieldtype-googlemap-selected-positions"> 
    160                         Position:  
     242                         
     243                        <span class="simple-fields-fieldtype-googlemap-preferred-zoom"> 
     244                            <strong>%21$s:</strong> 
     245                            <br> 
     246                            %20$s 
     247                        </span> 
     248                         
     249                        <br> 
     250 
     251                        <strong>Position</strong>:  
    161252                        <a class="simple-fields-fieldtype-googlemap-marker-remove" href="#">%16$s</a> 
    162253                        <span class="simple-fields-fieldtype-googlemap-selected-positions-inner"> 
    163                             latitude <span class="simple-fields-field-googlemap-selected-lat">%5$s</span>, 
     254                            latitude <span class="simple-fields-field-googlemap-selected-lat">%5$s</span> 
     255                            <br> 
    164256                            longitude <span class="simple-fields-field-googlemap-selected-lng">%6$s</span> 
    165257                            <span class="simple-fields-field-googlemap-selected-name">%15$s</span> 
    166258                            <span class="simple-fields-field-googlemap-selected-formatted_address">%11$s</span> 
    167259                        </span> 
     260 
    168261                    </p> 
    169262                    <p><a class="simple-fields-fieldtype-googlemap-marker-add" href="#">%17$s</a></p> 
     
    179272                round($lng_saved, 5), 
    180273                $options["defaultMapTypeId"], 
    181                 $options["defaultZoomLevel"], 
    182                 __("Search company/address or lat/lng coordinates", "simple-fields-field-googlemaps"), // 9 
     274                empty($saved_preferred_zoom) ? $options["defaultZoomLevel"] : $saved_preferred_zoom, // use preferred over default 
     275                __("Search company/address or lat,lng", "simple-fields-field-googlemaps"), // 9 
    183276                $this->get_options_name("formatted_address"), // 10 
    184277                esc_attr($formatted_address), 
     
    190283                __("Add marker/location", "simple-fields-field-googlemaps"), // 17 
    191284                $lat_init_pos, // 18 
    192                 $lng_init_pos  // 19 
     285                $lng_init_pos,  // 19 
     286                $str_zoom, // 20 
     287                __("Preferred zoom", "simple-fields-field-googlemaps") // 21 
    193288            ); 
    194289             
     
    243338            $static_map_base = "http://maps.googleapis.com/maps/api/staticmap?sensor=false"; 
    244339            foreach ($values as $key => $val) { 
     340                 
    245341                $arr_static_maps = array(); 
    246342                foreach($arr_sizes as $size_key => $size_vals) { 
     
    289385} 
    290386 
     387// Tell Simple Fields to register this plugin 
     388add_action("simple_fields_register_field_types", "simple_fields_field_googlemaps_register"); 
     389 
Note: See TracChangeset for help on using the changeset viewer.