WordPress.org

Plugin Directory

Changeset 607114


Ignore:
Timestamp:
10/02/12 18:33:13 (19 months ago)
Author:
williamsba1
Message:

Committing v1.6 of the plugin. Rewrote entire plugin from the ground up

Location:
post-google-map/trunk
Files:
2 added
1 deleted
5 edited

Legend:

Unmodified
Added
Removed
  • post-google-map/trunk/post-google-map.php

    r159444 r607114  
    33Plugin Name: Post Google Map 
    44Plugin URI: http://webdevstudios.com/support/wordpress-plugins/ 
    5 Description: Plugin allows posts to be linked to specific addresses and coordinates and display plotted on a Google Map.  Use shortcode [google-map] to display map directly in your post/page.  Map shows plots for each post with filter options and preview when hovered. <a href="options-general.php?page=post-google-map/post-google-map.php">Plugin Settings</a> | 
    6 Version: 1.5.1 
     5Description: Plugin allows posts to be linked to specific addresses and coordinates and display plotted on a Google Map.  Use shortcode [google-map] to display map directly in your post/page.  Map shows plots for each address added to the post you are viewing. 
     6Version: 1.6 
    77Author: WebDevStudios.com 
    88Author URI: http://webdevstudios.com 
     9License: GPLv2 
    910*/ 
    1011 
    11 $gmp_version = "1.5.1"; 
     12$gmp_version = '1.6'; 
     13 
    1214//hook for adding admin menus 
    13 add_action('admin_menu', 'gmp_menu'); 
     15add_action( 'admin_menu', 'gmp_menu' ); 
    1416 
    1517//hook for adding a new address 
    16 add_action('admin_menu', 'gmp_add_new_address'); 
     18add_action( 'admin_menu', 'gmp_add_new_address' ); 
    1719 
    1820//hook for post/page custom meta box 
    19 add_action('admin_menu', 'gmp_meta_box_add'); 
    20  
    21 //hook for add a map to the content 
    22 add_filter('the_content', 'gmp_widget'); 
    23  
    24 //hook for loading widget 
    25 add_action('plugins_loaded', 'gmp_widget_init'); 
     21add_action( 'admin_menu', 'gmp_meta_box_add' ); 
     22 
     23//hook to initialize the widget 
     24add_action( 'widgets_init', 'gmp_register_widget' ); 
     25 
     26//register the [google-map] shortcode 
     27add_shortcode( 'google-map', 'gmp_register_shortcode' ); 
     28 
     29function gmp_register_widget() { 
     30     
     31    //register the map widget 
     32    register_widget( 'gmp_map_widget' ); 
     33     
     34} 
     35 
     36//shortcode function 
     37function gmp_register_shortcode() { 
     38    global $gmp_display; 
     39     
     40    $gmp_display = 'return'; 
     41     
     42    //generate map for shortcode 
     43    $map = gmp_generate_map( '650', 'map_canvas_shortcode'); 
     44     
     45    echo $map; 
     46     
     47} 
     48 
     49//post google map widget 
     50class gmp_map_widget extends WP_Widget { 
     51 
     52    //process the new widget 
     53    function gmp_map_widget() { 
     54        $widget_ops = array( 
     55            'classname' => 'gmp_map_widget', 
     56            'description' => __( 'Widget to show Post Google Map plots', 'gmp-plugin' ) 
     57            ); 
     58        $this->WP_Widget( 'gmp_map_widget', __( 'Post Google Map Widget', 'gmp-plugin' ), $widget_ops ); 
     59    } 
     60 
     61     //build the widget settings form 
     62    function form($instance) { 
     63        $defaults = array( 'title' => 'Google Map' ); 
     64        $instance = wp_parse_args( (array) $instance, $defaults ); 
     65        $title = $instance['title']; 
     66        ?> 
     67            <p>Title: <input class="widefat" name="<?php echo $this->get_field_name( 'title' ); ?>"  type="text" value="<?php echo esc_attr( $title ); ?>" /></p> 
     68        <?php 
     69    } 
     70 
     71    //save the widget settings 
     72    function update( $new_instance, $old_instance ) { 
     73        $instance = $old_instance; 
     74         
     75        $instance['title'] = strip_tags( $new_instance['title'] ); 
     76 
     77        return $instance; 
     78    } 
     79 
     80    //display the widget 
     81    function widget( $args, $instance ) { 
     82 
     83        extract( $args ); 
     84 
     85        echo $before_widget; 
     86        $title = apply_filters( 'widget_title', $instance['title'] ); 
     87 
     88        if ( !empty( $title ) ) { echo $before_title . esc_html( $title ) . $after_title; }; 
     89 
     90        //generate the map 
     91        gmp_generate_map( '200' ); 
     92 
     93        // Reset Post Data 
     94        wp_reset_postdata(); 
     95 
     96        echo $after_widget; 
     97    } 
     98} 
    2699 
    27100//save/update post/page address fields from meta box 
    28101function gmp_add_new_address() { 
    29     $gmp_submit = $_POST["gmp_submit"]; 
    30     If (isset($gmp_submit) && !empty($gmp_submit) ) { 
    31         post_meta_tags(); 
     102 
     103    if ( isset( $_POST['gmp_submit'] ) && ! empty( $_POST['gmp_submit'] ) ) { 
     104        gmp_post_meta_tags(); 
    32105    } 
    33 } 
    34  
    35 //add_action('edit_post', 'post_meta_tags'); 
    36 //add_action('publish_post', 'post_meta_tags'); 
    37 //add_action('save_post', 'post_meta_tags'); 
    38 //add_action('edit_page_form', 'post_meta_tags'); 
    39  
    40 function getWords($text, $limit) 
    41 { 
    42     $array = explode(" ", strip_tags($text), $limit+1); 
    43  
    44     if (count($array) > $limit) 
    45     { 
    46         unset($array[$limit]); 
    47     } 
    48  
    49     return implode(" ", $array); 
    50 } 
    51  
    52 function gmp_widget_options() { 
    53     //widget options form 
    54     if ($_POST['gmp_form_submit']) { 
    55         update_option('gmp_widget_title', esc_attr($_POST['gmp_widget_title']) ); 
    56     } 
    57     //load widget title 
    58     $gmp_widget_title = get_option('gmp_widget_title'); 
    59     ?> 
    60     <div> 
    61          <label for="cc_form_title"> 
    62           <strong><?php _e('Title:'); ?></strong> 
    63         </label> 
    64         <input style="width: 100%; margin-bottom:1em;" id="gmp_widget_title" name="gmp_widget_title" type="text" value="<?php echo htmlspecialchars(stripslashes($gmp_widget_title)); ?>" /> 
    65         Setting a title will override category tabs from displaying 
    66         <input type="hidden" name="gmp_form_submit" value="Submit" /> 
    67     </div> 
    68     <?php 
    69 } 
    70  
    71 function gmp_widget_init() { 
    72     //widget code 
    73         if ( !function_exists('register_sidebar_widget') ) 
    74             return; 
    75         function gmp_widget_init2() { 
    76             gmp_widget('xxx'); 
    77         } 
    78         function gmp_widget($content) { 
    79             global $wpdb; 
    80             global $post; 
    81  
    82             $options_arr = get_option('gmp_params'); 
    83  
    84             $key = $options_arr["post_gmp_params"]; 
    85             $imgpath = WP_PLUGIN_URL . '/post-google-map/markers/'; 
    86  
    87             $gmp_map_type = $options_arr["post_gmp_map_type"]; 
    88             $gmp_cats = $options_arr["post_gmp_cats"]; 
    89             $gmp_wordpress_loop = $options_arr["gmp_wordpress_loop"]; 
    90             $gmp_categories = $options_arr["gmp_categories"]; 
    91             $gmp_hide = $options_arr["gmp_hide"]; 
    92             $gmp_marker_max = $options_arr["gmp_marker_max"]; 
    93             $gmp_marker_order = $options_arr["gmp_marker_order"]; 
    94  
    95             //random number for multiple map display 
    96             srand ((double) microtime( )*1000000); 
    97             $rn = rand( ); 
    98  
    99             //print out default categories 
    100             $CT="<div class='map_cats'>"; 
    101             $cat=$_GET["cat"]; 
    102             $iCat_ID=$_GET["map_cat_id"]; 
    103             if (($iCat_ID=="") && ($cat!="")){ 
    104                 $iCat_ID=$cat; 
     106 
     107} 
     108 
     109function gmp_generate_map( $height='650', $id='map_canvas' ) { 
     110 
     111    //include the Google Map Class 
     112    include_once( plugin_dir_path( __FILE__ ) .'map-lib/Google-Map-Class.php' ); 
     113 
     114    ?><div id="google_map" class="paper shadow"><?php 
     115    $gmp_google_map = new GMP_Google_Map(); 
     116    $gmp_google_map->run( absint( $height ), $id ); 
     117    ?></div><?php 
     118     
     119} 
     120 
     121function gmp_meta_box_add() { 
     122 
     123    //register custom meta boxes for addresses  
     124    add_meta_box( 'gmp', __( 'Post Google Map', 'gmp-plugin' ), 'gmp_meta_box', 'post' ); 
     125    add_meta_box( 'gmp', __( 'Post Google Map', 'gmp-plugin' ), 'gmp_meta_box', 'page' ); 
     126 
     127} 
     128 
     129function del_gmp_address( $deladdy ) { 
     130 
     131    //delete address from a post 
     132    if ( is_numeric( $deladdy ) ) { 
     133 
     134        $id = $_GET['post']; 
     135        $gmp_arr = get_post_meta( absint( $id ), 'gmp_arr', false ); 
     136 
     137        if ( is_array( $gmp_arr ) ) { 
     138 
     139            delete_post_meta( absint( $id ), 'gmp_arr' ); 
     140 
     141            unset( $gmp_arr[$deladdy] ); 
     142             
     143            for ( $row = 0; $row <= count( $gmp_arr ); $row++ ) { 
     144 
     145                if ( ! empty( $gmp_arr[$row] ) && is_array( $gmp_arr[$row] ) ) { 
     146 
     147                    add_post_meta( absint( $id ), 'gmp_arr', $gmp_arr[$row] ); 
     148 
     149                } 
     150 
    105151            } 
    106             if ($gmp_cats!= ""){ 
    107                 $Cat_Names = explode(",", $gmp_cats); 
    108                 for($i = 0; $i < count($Cat_Names); $i++){ 
    109                     $Cat_ID = $Cat_Names[$i]; 
    110                     $Cat = get_cat_name($Cat_ID); 
    111                     if (!is_single() && $iCat_ID==""){ 
    112                         //$iCat_ID=$Cat_ID; 
    113                     } 
    114                     if ($i!=0){ 
    115                         $CT.=" | "; 
    116                     } 
    117                     $CT.="<a "; 
    118                     if ($Cat_ID==$iCat_ID){ 
    119                         $CT.="style='font-weight:bold;'"; 
    120                     } 
    121                     $CT.="href=".add_query_arg("map_cat_id", $Cat_ID).">".$Cat."</a>"; 
    122                 } 
    123             } 
    124             $CT.="</div>"; 
    125             $map="var map".$rn." = new GMap2(document.getElementById('map".$rn."'));"; 
    126             $map.="map".$rn.".setCenter(new GLatLng(0,0),0);"; 
    127             $map.="map".$rn.".setUIToDefault();"; 
    128             $map.="map".$rn.".setMapType(".$gmp_map_type.");"; 
    129             $map.="var bounds".$rn." = new GLatLngBounds(); "; 
    130  
    131             //if viewing a single post don't load plots by categories 
    132             $x=1; 
    133             //shortcode 
    134             if ($content!="xxx") { 
    135                 $map_type="short_code"; 
    136                 include("get_map.php"); 
    137             }else{ 
    138                 if ($iCat_ID==""){ 
    139                     $y=0; 
    140                     if (have_posts()) : 
    141                         while (have_posts()) : the_post(); 
    142                             include("get_map.php"); 
    143                         endwhile; 
    144                     endif; 
    145                 } 
    146                 if ($iCat_ID!="" || $y==0){ 
    147                     $recentPosts = new WP_Query(); 
    148                         $recentPosts->query('showposts='.$gmp_marker_max.'&cat='.$iCat_ID); 
    149                         while ($recentPosts->have_posts()) : $recentPosts->the_post(); 
    150                             include("get_map.php"); 
    151                         endwhile; 
    152                 } 
    153             } 
    154             $JS.="map".$rn.".setZoom(map".$rn.".getBoundsZoomLevel(bounds".$rn."));"; 
    155             $JS.="map".$rn.".setCenter(bounds".$rn.".getCenter());"; 
    156             $JS.="map".$rn.".zoomOut(); "; 
    157  
    158             $JS = $map.$JS; 
    159  
    160             $themap = '<li id="post-google-map" class="widget widget_gmp">'; 
    161  
    162             //check if widget title exists, if so use it 
    163             $gmp_widget_title = get_option('gmp_widget_title'); 
    164             If ($gmp_widget_title != "") { 
    165                 $themap.='<h2 class="title">'.$gmp_widget_title.'</h2>'; 
    166             }Else{ 
    167                 //display the category tabs instead 
    168                 $themap.=$CT; 
    169             } 
    170  
    171             $themap.="<script src='http://maps.google.com/maps?file=api&v=1&key=".$key."' type='text/javascript'></script>"; 
    172             $themap.="<body onUnload='GUnload()'>"; 
    173  
    174             if ($map_type=="short_code") { 
    175                 $themap.="<div id='map".$rn."' style='width:100%;height:400px;'></div>"; 
    176             }Else{ 
    177                 $themap.="<div id='map".$rn."' style='width:100%;height:200px;'></div>"; 
    178             } 
    179             $themap.="<div id='map-info".$rn."'></div>"; 
    180             $themap.="<script type='text/javascript'>"; 
    181             $themap.=$JS; 
    182             $themap.="var info".$rn." = document.getElementById('map-info".$rn."');"; 
    183             $themap.="info".$rn.".innerHTML = '".str_replace('[google-map]', '', $Default_HTML)."';"; 
    184             $themap.="</script>"; 
    185             $themap.="</li>"; 
    186             if ($map_type=="short_code") { 
    187                 return str_replace('[google-map]', $themap, $content); 
    188             }else{ 
    189                 echo $themap; 
    190             } 
    191  
    192         } 
    193  
    194         if ( function_exists('wp_register_sidebar_widget') ) // fix for wordpress 2.2.1 
    195           wp_register_sidebar_widget(sanitize_title('Post Google Map' ), 'Post Google Map', 'gmp_widget_init2', array(), 1); 
    196         else 
    197           register_sidebar_widget('Post Google Map', 'gmp_widget_init2', 1); 
    198           register_widget_control('Post Google Map', 'gmp_widget_options'); 
    199  
    200 } 
    201  
    202 function gmp_meta_box_add() { 
    203     // Check whether the 2.5 function add_meta_box exists before adding the meta box 
    204     if ( function_exists('add_meta_box') ) { 
    205         add_meta_box('gmp','Post Google Map','gmp','post'); 
    206         add_meta_box('gmp','Post Google Map','gmp','page'); 
    207     } 
    208 } 
    209  
    210 function del_gmp_address($deladdy) { 
    211     //delete address from a post/page 
    212     If (is_numeric($deladdy)) { 
    213         $id = $_GET['post']; 
    214         $gmp_arr = get_post_meta($id, 'gmp_arr', false); 
    215         If (is_array($gmp_arr)) { 
    216             delete_post_meta($id, 'gmp_arr'); 
    217             unset($gmp_arr[$deladdy]); 
    218             for ($row = 0; $row <= count($gmp_arr); $row++) 
    219             { 
    220                 If (is_array($gmp_arr[$row])) { 
    221                     add_post_meta($id, 'gmp_arr', $gmp_arr[$row]); 
    222                 } 
    223             } 
     152 
    224153            //echo "<div id=message class=updated fade>Address deleted successfully.</div>"; 
    225154            $isdeleted = true; 
     155 
    226156        } 
    227157    } 
    228158} 
    229159 
    230 function post_meta_tags() { 
     160function gmp_post_meta_tags() { 
     161     
    231162    //verify user is on the admin dashboard and at least a contributor 
    232     If ( is_admin() && current_user_can('level_1') ) { 
    233         global $wpdb, $alreadyran; 
     163    if ( is_admin() && current_user_can( 'edit_posts' ) ) { 
     164        global $alreadyran; 
     165         
    234166        $gmp_id = $_POST["gmp_id"]; 
    235167 
    236         //if post not created yet create it 
    237         if ($gmp_id==0){ 
    238             $title=$_POST["post_title"]; 
    239             $sql = "SELECT ID FROM ".$wpdb->prefix."posts order by ID desc LIMIT 1"; 
    240             $rs = mysql_query($sql); 
    241             if ($rs) { 
    242                 while ($r = mysql_fetch_assoc($rs)) { 
    243                     $gmp_id=$r['ID']; 
    244                 } 
    245             } 
    246         } 
     168        //if post is not created yet, bail out 
     169        if ( ! is_numeric( $gmp_id ) ) 
     170            return; 
    247171 
    248172        //save the form data from the post/page meta box 
    249         if (isset($gmp_id) && !empty($gmp_id) && $alreadyran != "1") { 
     173        if ( isset( $gmp_id ) && ! empty( $gmp_id ) && $alreadyran != '1' ) { 
    250174            $id = $gmp_id; 
    251175            $alreadyran = "1"; 
     
    264188            $gmp_desc_show = esc_attr($_POST["gmp_desc_show"]); 
    265189 
    266             //get long & lat BRM 
    267             if (isset($gmp_long) && !empty($gmp_long) && isset($gmp_lat) && !empty($gmp_lat)) { 
    268             }elseif (isset($gmp_address1) && !empty($gmp_address1)){ 
    269                 $options_arr = get_option('gmp_params'); 
     190            //get long & lat 
     191            if ( isset( $gmp_long ) && ! empty( $gmp_long ) && isset( $gmp_lat ) && ! empty( $gmp_lat ) ) { 
     192                 
     193            }elseif ( isset( $gmp_address1 ) && ! empty( $gmp_address1 ) ) { 
     194                 
     195                $options_arr = get_option( 'gmp_params' ); 
    270196                $key = $options_arr["post_gmp_params"]; 
    271                 //$key = get_option('post_gmp_params'); 
    272                 $addressarr = array($gmp_address1, $gmp_city, $gmp_state, $gmp_zip); 
    273                 $address = IMPLODE(",", $addressarr); 
    274                 $iaddress = "http://maps.google.com/maps/geo?q=".urlencode($address)."&output=csv&key=".$key.""; 
    275                 //$csv = file_get_contents($iaddress); 
     197                $addressarr = array( $gmp_address1, $gmp_city, $gmp_state, $gmp_zip ); 
     198                $address = IMPLODE( ",", $addressarr ); 
     199                $iaddress = "http://maps.google.com/maps/geo?q=" .urlencode( $address ); 
    276200 
    277201                //use the WordPress HTTP API to call the Google Maps API and get coordinates 
    278                 $csv = wp_remote_get($iaddress); 
    279                 $csv = $csv["body"]; 
    280  
    281                 $csvSplit = split(",", $csv); 
    282                 $status = $csvSplit[0]; 
    283  
    284                 $lat = $csvSplit[2]; 
    285                 $lng = $csvSplit[3]; 
    286                 if (strcmp($status, "200") == 0){ 
    287                     // successful 
    288                     $lat = $csvSplit[2]; 
    289                     $lng = $csvSplit[3]; 
     202                $result = wp_remote_get( esc_url( $iaddress ) ); 
     203                 
     204                if( ! is_wp_error( $result ) ) { 
     205 
     206                    $json = json_decode( $result['body'] ); 
     207                     
     208                    //set lat/long for address from JSON response 
     209                    $lat = $json->Placemark[0]->Point->coordinates[1]; 
     210                    $lng = $json->Placemark[0]->Point->coordinates[0]; 
     211                 
    290212                } 
    291                 $gmp_long=$lat; 
    292                 $gmp_lat=$lng; 
     213 
    293214            } 
    294  
     215             
    295216            //create an array from the post data and long/lat from Google 
    296217            $gmp_arr=array( 
    297                 "gmp_long"=>$gmp_long, 
    298                 "gmp_lat"=>$gmp_lat, 
    299                 "gmp_address1"=>$gmp_address1, 
    300                 "gmp_address2"=>$gmp_address2, 
    301                 "gmp_city"=>$gmp_city, 
    302                 "gmp_state"=>$gmp_state, 
    303                 "gmp_zip"=>$gmp_zip, 
    304                 "gmp_marker"=>$gmp_marker, 
    305                 "gmp_title"=>$gmp_title, 
    306                 "gmp_description"=>$gmp_description, 
    307                 "gmp_desc_show"=>$gmp_desc_show, 
     218                "gmp_long"          =>  $lng, 
     219                "gmp_lat"           =>  $lat, 
     220                "gmp_address1"      =>  $gmp_address1, 
     221                "gmp_address2"      =>  $gmp_address2, 
     222                "gmp_city"          =>  $gmp_city, 
     223                "gmp_state"         =>  $gmp_state, 
     224                "gmp_zip"           =>  $gmp_zip, 
     225                "gmp_marker"        =>  $gmp_marker, 
     226                "gmp_title"         =>  $gmp_title, 
     227                "gmp_description"   =>  $gmp_description, 
     228                "gmp_desc_show"     =>  $gmp_desc_show, 
    308229                ); 
    309230 
     231            //sanitize the data 
     232            $gmp_arr = array_map( 'strip_tags', $gmp_arr ); 
     233             
    310234            //save address array as option gmp_arr 
    311             add_post_meta($id, 'gmp_arr', $gmp_arr); 
    312             //echo "<div id=message class=updated fade>Address added successfully.</div>"; 
     235            add_post_meta( absint( $id ), 'gmp_arr', $gmp_arr ); 
     236             
    313237        } 
    314238    } 
    315239} 
    316240 
    317 function gmp() { 
    318     global $post; 
     241function gmp_meta_box() { 
     242    global $post, $isdeleted; 
    319243 
    320244    //call function to delete an address 
    321     If ($_GET['deladdy'] != "" && $isdeleted != true) { 
     245    if ( isset( $_GET['deladdy'] ) && $_GET['deladdy'] != "" && $isdeleted != true ) { 
     246 
    322247        //verify user is at least a contributor and on the WP dashboard to allow deleting an address 
    323         If ( is_admin() && current_user_can('level_1') ) { 
    324             check_admin_referer('delete-address'); 
     248        if ( is_admin() && current_user_can( 'edit_posts' ) ) { 
     249 
     250            //check nonce for security 
     251            check_admin_referer( 'delete-address' ); 
    325252            $deladdy = $_GET['deladdy']; 
    326             del_gmp_address($deladdy); 
     253 
     254            del_gmp_address( absint( $deladdy ) ); 
     255 
    327256        } 
    328257    } 
    329  
    330     $post_id = $post; 
    331     if (is_object($post_id)){ 
    332         $post_id = $post_id->ID; 
    333     } 
    334  
    335     $options_arr = get_option('gmp_params'); 
    336     $gmp_api_key = $options_arr["post_gmp_params"]; 
    337  
    338     $gmp_arr = get_post_meta($post_id, 'gmp_arr', false); 
    339  
    340     $imgpath = WP_PLUGIN_URL . '/post-google-map/markers/'; 
    341  
     258     
     259    //load saved addresses if any exist 
     260    $gmp_arr = get_post_meta( $post->ID, 'gmp_arr', false ); 
     261 
     262    $imgpath = plugin_dir_url( __FILE__ ) .'/markers/'; 
    342263    ?> 
    343264    <form method="post"> 
    344         <input value="<?php echo $post_id; ?>" type="hidden" name="gmp_id" /> 
    345         <?php If ($gmp_api_key == "") { ?> 
    346             <div class="error"> 
    347                 <p> 
    348                     <strong> 
    349                     Google Maps API key has not been saved. 
    350                     <a href="<?php echo admin_url( 'options-general.php?page=post-google-map.php' ); ?>">Enter Google Maps API Key</a> 
    351                     to enable post mapping. 
    352                     </strong> 
    353                 </p> 
    354             </div> 
    355         <?php } ?> 
    356         <div style="padding-bottom:10px;">Current Saved Addresses:</div> 
     265        <input value="<?php echo absint( $post->ID ); ?>" type="hidden" name="gmp_id" /> 
     266        <div style="padding-bottom:10px;"><?php _e( 'Current Saved Addresses', 'gmp-plugin' ); ?>:</div> 
    357267        <table cellspacing="0" cellpadding="3" width="100%" style="margin-bottom:20px"> 
    358268            <tr> 
     
    365275            </tr> 
    366276            <?php 
    367             If (is_array($gmp_arr)) { 
    368                 $bgc==""; 
    369                 for ($row = 0; $row < count($gmp_arr); $row++) 
    370                 { 
    371                 if($bgc==""){ 
    372                     $bgc="#eeeeee"; 
    373                 }else{\ 
    374                     $bgc=""; 
    375                 } 
    376                 $gmp_action = "delete-address"; 
    377                 ?> 
    378                     <tr style="background:<?php echo $bgc;?> !important;" bgcolor="<?php echo $bgc;?>"> 
    379                         <td><a title="Delete Address" href="<?php echo wp_nonce_url(add_query_arg ("deladdy", $row), $gmp_action); ?>"><img width="15px" border="0" src="<?php echo WP_PLUGIN_URL . '/post-google-map/delete.png';?>"></a></td> 
     277            if ( is_array( $gmp_arr ) ) { 
     278                $bgc = ""; 
     279                for ( $row = 0; $row < count( $gmp_arr ); $row++ ) { 
     280 
     281                    if( $bgc=="" ) { 
     282                        $bgc="#eeeeee"; 
     283                    }else{ 
     284                        $bgc=""; 
     285                    } 
     286 
     287                    $gmp_action = "delete-address"; 
     288                    ?> 
     289                    <tr style="background:<?php echo esc_attr( $bgc );?> !important;" bgcolor="<?php echo esc_attr( $bgc );?>"> 
     290                        <td><a title="Delete Address" href="<?php echo wp_nonce_url( add_query_arg ( 'deladdy', $row ), $gmp_action ); ?>"><img width="15px" border="0" src="<?php echo WP_PLUGIN_URL . '/post-google-map/delete.png';?>"></a></td> 
    380291                        <td><img width="25px" src="<?php echo $imgpath.$gmp_arr[$row]["gmp_marker"]; ?>"></td> 
    381                         <td><?php echo $gmp_arr[$row]["gmp_address1"]; ?></td> 
    382                         <td><?php echo $gmp_arr[$row]["gmp_address2"]; ?></td> 
    383                         <td><?php echo $gmp_arr[$row]["gmp_city"]; ?></td> 
    384                         <td><?php echo $gmp_arr[$row]["gmp_state"]; ?></td> 
    385                         <td><?php echo $gmp_arr[$row]["gmp_zip"]; ?></td> 
     292                        <td><?php echo esc_html( $gmp_arr[$row]["gmp_address1"] ); ?></td> 
     293                        <td><?php echo esc_html( $gmp_arr[$row]["gmp_address2"] ); ?></td> 
     294                        <td><?php echo esc_html( $gmp_arr[$row]["gmp_city"] ); ?></td> 
     295                        <td><?php echo esc_html( $gmp_arr[$row]["gmp_state"] ); ?></td> 
     296                        <td><?php echo esc_html( $gmp_arr[$row]["gmp_zip"] ); ?></td> 
    386297                    </tr> 
    387298                    <tr style="background:<?php echo $bgc;?> !important;" bgcolor="<?php echo $bgc;?>"> 
     
    389300                        <td colspan="5"> 
    390301                            <?php echo $gmp_arr[$row]["gmp_title"]; 
    391                             if ($gmp_arr[$row]["gmp_description"]!=""){ 
     302                            if ( $gmp_arr[$row]["gmp_description"] != "" ){ 
    392303                                echo " - "; 
    393304                            } 
    394                             echo $gmp_arr[$row]["gmp_description"]; ?> 
     305                            echo esc_html( $gmp_arr[$row]["gmp_description"] ); ?> 
    395306                        </td> 
    396307                    </tr> 
    397                 <?php 
    398                 } 
    399             }Else{ 
     308                    <?php 
     309                    } 
     310            }else{ 
    400311                ?><tr><td colspan="6" align="center"><i>no addresses saved</i></td></tr><?php 
    401312            } 
    402                 ?> 
     313            ?> 
    403314        </table> 
    404315        <div style="padding-bottom:10px;">Enter an address or coordinates to plot this post/page on a Google Map.  You can enter multiple addresses</div> 
     
    409320            </tr> 
    410321            <tr> 
    411             <th scope="row" style="text-align:right;"><?php _e('Marker') ?></th> 
     322            <th scope="row" style="text-align:right;"><?php _e( 'Marker', 'gmp-plugin' ) ?></th> 
    412323            <td> 
    413324                <select name="gmp_marker"> 
    414325                    <?php 
    415                     $dir = WP_PLUGIN_DIR.'/post-google-map/markers/'; 
     326                    //allow extensions 
     327                    $allowed_exts = apply_filters( 'gmp_allowed_exts', array( 'jpg', 'jpeg', 'gif', 'png' ) ); 
     328                     
     329                    $dir = plugin_dir_path( __FILE__ ) .'/markers/'; 
    416330                    $x=0; 
    417                     if (is_dir($dir)){ 
    418                         if ($handle = opendir($dir)) { 
    419                             while (false !== ($file = readdir($handle))) { 
    420                                 if ($file<>"."&&$file<>".."){ 
     331                    if ( is_dir( $dir ) ) { 
     332                        if ( $handle = opendir( $dir ) ) { 
     333                            while ( false !== ( $file = readdir( $handle ) ) ) { 
     334                                $ext = pathinfo( $file , PATHINFO_EXTENSION); 
     335                                if ( $file != "." && $file != ".." && in_array( $ext, $allowed_exts ) ) { 
    421336                                    $x=1; 
    422                                     echo "<option value='".$file."' style='background: url(".$imgpath.$file.")no-repeat;text-indent: 30px;height:25px;'>".$file; 
     337                                    echo "<option value='".esc_attr( $file )."' style='background: url(".$imgpath.$file.")no-repeat;text-indent: 30px;height:25px;'>".$file; 
    423338                                } 
    424339                            } 
    425                             closedir($handle); 
     340                            closedir( $handle ); 
    426341                        } 
    427342                    } 
     
    431346            </tr> 
    432347            <tr> 
    433             <th scope="row" style="text-align:right;"><?php _e('Title') ?></th> 
     348            <th scope="row" style="text-align:right;"><?php _e( 'Title', 'gmp-plugin' ) ?></th> 
    434349            <td><input value="" type="text" name="gmp_title" size="25" tabindex=91 />*If blank will use post title.</td> 
    435350            </tr> 
    436351            <tr> 
    437             <th valign="top" scope="row" style="text-align:right;"><?php _e('Description') ?></th> 
     352            <th valign="top" scope="row" style="text-align:right;"><?php _e( 'Description', 'gmp-plugin' ) ?></th> 
    438353            <td><textarea name="gmp_description" style="width:300px;" tabindex=92 ></textarea><br> 
    439354            <input checked type="checkbox" name="gmp_desc_show"> Use excerpt or first ten words of post if excerpt is blank. 
     
    441356            </tr> 
    442357            <tr> 
    443             <th scope="row" style="text-align:right;"><?php _e('Address 1') ?></th> 
     358            <th scope="row" style="text-align:right;"><?php _e( 'Address 1', 'gmp-plugin' ) ?></th> 
    444359            <td><input value="" type="text" name="gmp_address1" size="25" tabindex=93 /></td> 
    445360            </tr> 
    446361            <tr> 
    447             <th scope="row" style="text-align:right;"><?php _e('Address 2') ?></th> 
     362            <th scope="row" style="text-align:right;"><?php _e( 'Address 2', 'gmp-plugin' ) ?></th> 
    448363            <td><input value="" type="text" name="gmp_address2" size="25" tabindex=94 /></td> 
    449364            </tr> 
    450365            <tr> 
    451             <th scope="row" style="text-align:right;"><?php _e('City') ?></th> 
     366            <th scope="row" style="text-align:right;"><?php _e( 'City', 'gmp-plugin' ) ?></th> 
    452367            <td><input value="" type="text" name="gmp_city" size="25" tabindex=95 /></td> 
    453368            </tr> 
    454369            <tr> 
    455             <th scope="row" style="text-align:right;"><?php _e('State') ?></th> 
     370            <th scope="row" style="text-align:right;"><?php _e( 'State', 'gmp-plugin' ) ?></th> 
    456371            <td><input value="" type="text" name="gmp_state" size="15" tabindex=96 /></td> 
    457372            </tr> 
    458373            <tr> 
    459             <th scope="row" style="text-align:right;"><?php _e('Zip Code') ?></th> 
     374            <th scope="row" style="text-align:right;"><?php _e( 'Zip Code', 'gmp-plugin' ) ?></th> 
    460375            <td><input value="" type="text" name="gmp_zip" size="10" tabindex=97 /></td> 
    461376            </tr> 
     
    465380            </tr> 
    466381            <tr> 
    467             <th scope="row" style="text-align:right;"><?php _e('Longitude') ?></th> 
     382            <th scope="row" style="text-align:right;"><?php _e( 'Longitude', 'gmp-plugin' ) ?></th> 
    468383            <td><input value="" type="text" name="gmp_long" size="20" tabindex=98 /></td> 
    469384            </tr> 
    470385            <tr> 
    471             <th scope="row" style="text-align:right;"><?php _e('Latitude') ?></th> 
     386            <th scope="row" style="text-align:right;"><?php _e( 'Latitude', 'gmp-plugin' ) ?></th> 
    472387            <td><input value="" type="text" name="gmp_lat" size="20" tabindex=99 /></td> 
    473388            </tr> 
     
    476391            <td> 
    477392                <div class="submit"> 
    478                     <input type="submit" name="gmp_submit" value="Add Address" tabindex=100  /><br>*Post title must exist to save address 
     393                    <input type="submit" name="gmp_submit" value="<?php _e( 'Add Address', 'gmp-plugin' ); ?>" tabindex=100  /> 
    479394                </div> 
    480395            </td> 
     
    486401 
    487402function gmp_menu() { 
    488   add_options_page('Post Google Map Options', 'Post Google Map', 8, __FILE__, 'gmp_options'); 
     403 
     404    add_options_page( __( 'Post Google Map Options', 'gmp-plugin' ), __( 'Post Google Map', 'gmp-plugin' ), 'manage_options', __FILE__, 'gmp_options' ); 
     405 
    489406} 
    490407 
    491408//Function to save the plugin settings 
    492 function gmp_update_options() 
    493 { 
    494     check_admin_referer('gmp_check'); 
     409function gmp_update_options() { 
     410 
     411    //nonce check for security 
     412    check_admin_referer( 'gmp_check' ); 
    495413 
    496414    //create array for storing option values 
    497     $wds_gmp_arr=array( 
    498         "post_gmp_params"=>esc_attr($_POST['google_api_key']), 
    499         "post_gmp_cats"=>esc_attr($_POST['gmp_cats']), 
    500         "post_gmp_map_type"=>esc_attr($_POST['gmp_map_type']), 
    501         "gmp_wordpress_loop"=>esc_attr($_POST['gmp_wordpress_loop']), 
    502         "gmp_categories"=>esc_attr($_POST['gmp_categories']), 
    503         "gmp_hide"=>esc_attr($_POST['gmp_hide']), 
    504         "gmp_marker_max"=>esc_attr($_POST['gmp_marker_max']), 
    505         "gmp_marker_order"=>esc_attr($_POST['gmp_marker_order']), 
     415    $wds_gmp_arr = array( 
     416        "post_gmp_map_type" =>  $_POST['gmp_map_type'], 
     417        "gmp_marker_max"    =>  $_POST['gmp_marker_max'], 
    506418        ); 
    507419 
     420    //sanitize the values 
     421    $wds_gmp_arr = array_map( 'strip_tags', $wds_gmp_arr ); 
     422     
    508423    //save array as option 
    509     update_option('gmp_params', $wds_gmp_arr); 
     424    update_option( 'gmp_params', $wds_gmp_arr ); 
     425 
    510426} # gmp_update_options() 
    511427 
     
    513429function gmp_options() { 
    514430    global $gmp_version; 
    515         # Acknowledge update 
    516  
    517         if ( isset($_POST['update_gmp_options']) 
    518             && $_POST['update_gmp_options'] 
    519             ) 
    520         { 
    521             gmp_update_options(); 
    522  
    523             echo "<div class=\"updated\">\n" 
    524                 . "<p>" 
    525                     . "<strong>" 
    526                     . __('Settings saved.') 
    527                     . "</strong>" 
    528                 . "</p>\n" 
    529                 . "</div>\n"; 
    530         } 
     431 
     432    if ( isset( $_POST['update_gmp_options'] ) && $_POST['update_gmp_options'] ) { 
     433         
     434        //update plugin options 
     435        gmp_update_options(); 
     436 
     437        echo "<div class=\"updated\">\n" 
     438            . "<p>" 
     439                . "<strong>" 
     440                . __( 'Settings saved.', 'gmp-plugin' ) 
     441                . "</strong>" 
     442            . "</p>\n" 
     443            . "</div>\n"; 
     444    } 
    531445 
    532446    //load plugin settings 
    533     $options_arr = get_option('gmp_params'); 
    534  
    535     $options = $options_arr["post_gmp_params"]; 
    536     $options_cats = $options_arr["post_gmp_cats"]; 
     447    $options_arr = get_option( 'gmp_params' ); 
     448 
    537449    $options_map_type = $options_arr["post_gmp_map_type"]; 
    538     $gmp_wordpress_loop = $options_arr["gmp_wordpress_loop"]; 
    539     $gmp_categories = $options_arr["gmp_categories"]; 
    540     $gmp_hide = $options_arr["gmp_hide"]; 
    541450    $gmp_marker_max = $options_arr["gmp_marker_max"]; 
    542     $gmp_marker_order = $options_arr["gmp_marker_order"]; 
    543451 
    544452    echo '<div class="wrap">'; 
    545     echo '<h2>' . __('Post Google Map Settings') . '</h2>'; 
    546     echo 'You must have a Google Maps API Key for this plugin to work.  '; 
     453    echo '<h2>' . __( 'Post Google Map Settings', 'gmp-plugin' ) . '</h2>'; 
    547454    echo '<form method="post" action="">'; 
    548     if ( function_exists('wp_nonce_field') ) wp_nonce_field('gmp_check'); 
     455 
     456    if ( function_exists( 'wp_nonce_field' ) )  
     457        wp_nonce_field( 'gmp_check' ); 
     458 
    549459    echo '<input type="hidden" name="update_gmp_options" value="1">'; 
    550     echo '<p><b>Google API Key</b>&nbsp;'; 
    551     echo '<input type="text"' 
    552         . ' name="google_api_key" id="google_api[api_key]" size="100"' 
    553         . ( $options['api_key'] ? 'value="'.$options.'"' : '' ) 
    554         . ' />'; 
    555     echo '<p>You can obtain a free Google Maps API Key here: <a href="http://code.google.com/apis/maps/signup.html" target="_blank">http://code.google.com/apis/maps/signup.html</a></p>'; 
    556460    ?> 
    557     <b>Default Map Settings</b> 
     461    <strong><?php _e( 'Default Map Settings', 'gmp-plugin' ); ?></strong> 
    558462    <table> 
    559463    <tr> 
    560     <td align=right>Map Type:</td> 
     464    <td align=right><?php _e( 'Map Type', 'gmp-plugin' ); ?>:</td> 
    561465    <td> 
    562466        <select name="gmp_map_type"> 
    563             <option value="G_NORMAL_MAP" <?php If ($options_map_type == "G_NORMAL_MAP") { echo "SELECTED"; }?>>Map 
    564             <option value="G_SATELLITE_MAP" <?php If ($options_map_type == "G_SATELLITE_MAP") { echo "SELECTED"; }?>>Satellite 
    565             <option value="G_HYBRID_MAP" <?php If ($options_map_type == "G_HYBRID_MAP") { echo "SELECTED"; }?>>Hybrid 
    566             <option value="G_DEFAULT_MAP_TYPES" <?php If ($options_map_type == "G_DEFAULT_MAP_TYPES") { echo "SELECTED"; }?>>Terrain 
    567             <option value="G_PHYSICAL_MAP" <?php If ($options_map_type == "G_PHYSICAL_MAP") { echo "SELECTED"; }?>>Physical 
     467            <option value="ROADMAP" <?php selected( $options_map_type, 'ROADMAP' ); ?> >Road 
     468            <option value="SATELLITE" <?php selected( $options_map_type, 'SATELLITE' ); ?> >Satellite 
     469            <option value="HYBRID" <?php selected( $options_map_type, 'HYBRID' ); ?> >Hybrid 
     470            <option value="TERRAIN" <?php selected( $options_map_type, 'TERRAIN' ); ?> >Terrain 
    568471        </select> 
    569472    </td> 
    570473    </tr> 
    571     <!--<tr> 
    572         <td valign="top" align=right>Marker View:</td> 
    573         <td> 
    574             <input type="checkbox" name="gmp_wordpress_loop" value="1" <?php if ($gmp_wordpress_loop==1){ ?>checked<?php } ?>>WordPress Loop 
    575             <input type="checkbox" name="gmp_categories" value="1" <?php if ($gmp_categories==1){ ?>checked<?php } ?>>Categories<br>*if both are checked map will show categories if loop is empty. 
    576         </td> 
    577     </tr> 
    578474    <tr> 
    579                 <td align="right"></td> 
    580                 <td> 
    581                     <input type="checkbox" name="gmp_hide" value="1" <?php if ($gmp_hide==1){ ?>checked<?php } ?>>Hide map if ever empty. 
    582                 </td> 
    583     </tr>--> 
    584     <tr> 
    585             <td align="right" valign="top">Category Tabs:</td> 
    586             <td valign="top"> 
    587                 <input type="text" name="gmp_cats" value="<?php echo $options_cats; ?>">*Category IDs(ie 1,2,3) 
    588             </td> 
    589     </tr> 
    590  
    591     <tr> 
    592             <td align=right>Marker Plot Max:</td> 
     475            <td align=right><?php _e( 'Marker Plot Max', 'gmp-plugin' ); ?>:</td> 
    593476            <td> 
    594477                <select name="gmp_marker_max"> 
    595                     <?php for ($x = 0; $x <50;){ 
    596                         $x=$x+5; 
     478                    <?php for ( $x = 0; $x <50; ){ 
     479                        $x = $x + 5; 
    597480                        ?> 
    598                         <option value='<?php echo $x?>' <?php if ($gmp_marker_max==$x){ ?>selected<?php } ?>><?php echo $x?> 
     481                        <option value='<?php echo esc_attr( $x ); ?>' <?php selected( $gmp_marker_max, $x ); ?>><?php echo esc_html( $x ); ?> 
    599482                        <?php 
    600483                    } 
    601484                    ?> 
    602  
    603  
    604485                </select> 
    605486                *per page load 
    606487            </td> 
    607488    </tr> 
    608     <!--<tr> 
    609         <td align="right">Marker Order:</td> 
    610         <td> 
    611             <?php echo $gmp_marker_order;?> 
    612             <input type="radio" name="gmp_marker_order" value="Newest" checked>Newest 
    613             <input type="radio" name="gmp_marker_order" value="Random" <?php if ($gmp_marker_order=="Random"){ ?>checked<?php } ?>>Random 
    614         </td> 
    615     </tr>--> 
    616  
    617489    </table> 
    618490 
     
    620492    echo '<p class="submit">' 
    621493    . '<input type="submit"' 
    622         . ' value="' . attribute_escape(__('Save Changes')) . '"' 
    623         . ' />' 
     494        . ' value="' . __( 'Save Changes', 'gmp-plugin' ) . '"' 
     495        . ' class="button-primary" />' 
    624496    . '</p></form>'; 
    625     echo '<p>For support please visit our <a href="http://webdevstudios.com/support/wordpress-plugins/" target="_blank">WordPress Plugins</a> and <a href="http://webdevstudios.com/support/forum/" target="_blank">Support Forum</a><br>Version '. $gmp_version .' by <a href="http://webdevstudios.com/" title="WordPress Development and Design" target="_blank">WebDevStudios.com</a> | <a href="http://twitter.com/webdevstudios" target="_blank">WDS on Twitter</a></p>'; 
     497    echo '<p>For support please visit our <a href="http://webdevstudios.com/support/wordpress-plugins/" target="_blank">WordPress Plugins</a> and <a href="http://wordpress.org/support/plugin/post-google-map" target="_blank">Support Forum</a><br>Version '. $gmp_version .' by <a href="http://webdevstudios.com/" title="WordPress Development and Design" target="_blank">WebDevStudios.com</a> | <a href="http://twitter.com/webdevstudios" target="_blank">@WebDevStudios</a></p>'; 
    626498    echo '</div>'; 
    627499} 
    628  
    629 function gmp_get_post_image($post_id, $width=0, $height=0) { 
    630     $dimensions = ""; 
    631     $post_id = explode(",", $post_id); 
    632     foreach ($post_id as $id) { 
    633         $my_query = new WP_Query('p='.$id); 
    634         while ($my_query->have_posts()) : $my_query->the_post(); 
    635             $attargs = array( 
    636             'numberposts' => 1, 
    637             'order' => 'ASC', 
    638             'orderby' => 'menu_order', 
    639             'post_type' => 'attachment', 
    640             'post_mime_type' => 'image', 
    641             'post_parent' => $id); 
    642             $attachments = get_children($attargs); 
    643             if ($attachments) { 
    644                 foreach ($attachments as $attachment) { 
    645                     If ($width != "full" && $width != "medium" && $width != "thumb" && $width != "large") { 
    646                         return wp_get_attachment_image($attachment->ID, array($width, $height), false); 
    647                     }Else{ 
    648                         return wp_get_attachment_image($attachment->ID, $width, false); 
    649                     } 
    650                 } 
    651             } 
    652         endwhile; 
    653     } 
    654 } 
    655  
    656 // Install/Uninstall Plugin 
    657 register_activation_hook(__FILE__,'gmp_install'); 
    658 //register_deactivation_hook(__FILE__,'gmp_uninstall'); //coming soon 
    659  
    660 function gmp_install () { 
    661     //load settings option array 
    662     $options_arr = get_option('gmp_params'); 
    663  
    664     //check if settings array is set 
    665     //if not we need to upgrade the settings to the new array 
    666     If (!is_array($options_arr) ) { 
    667         //load current settings 
    668         $key = get_option('post_gmp_params'); 
    669         $gmp_map_type = get_option('post_gmp_map_type'); 
    670         $gmp_cats = get_option('post_gmp_cats'); 
    671         $gmp_wordpress_loop = get_option('gmp_wordpress_loop'); 
    672         $gmp_categories = get_option('gmp_categories'); 
    673         $gmp_hide = get_option('gmp_hide'); 
    674         $gmp_marker_max = get_option('gmp_marker_max'); 
    675         $gmp_marker_order = get_option('gmp_marker_order'); 
    676  
    677         //create array for storing option values with current settings 
    678         $wds_gmp_arr=array( 
    679             "post_gmp_params"=>esc_attr($key), 
    680             "post_gmp_cats"=>esc_attr($gmp_cats), 
    681             "post_gmp_map_type"=>esc_attr($gmp_map_type), 
    682             "gmp_wordpress_loop"=>esc_attr($gmp_wordpress_loop), 
    683             "gmp_categories"=>esc_attr($gmp_categories), 
    684             "gmp_hide"=>esc_attr($gmp_hide), 
    685             "gmp_marker_max"=>esc_attr($gmp_marker_max), 
    686             "gmp_marker_order"=>esc_attr($gmp_marker_order), 
    687             ); 
    688  
    689         //save array as option 
    690         update_option('gmp_params', $wds_gmp_arr); 
    691  
    692         //delete original settings 
    693         delete_option('post_gmp_params'); 
    694         delete_option('post_gmp_map_type'); 
    695         delete_option('post_gmp_cats'); 
    696         delete_option('gmp_wordpress_loop'); 
    697         delete_option('gmp_categories'); 
    698         delete_option('gmp_hide'); 
    699         delete_option('gmp_marker_max'); 
    700         delete_option('gmp_marker_order'); 
    701     } 
    702 } 
    703 ?> 
  • post-google-map/trunk/readme.txt

    r297821 r607114  
    11=== Post Google Map === 
    2 Contributors: williamsba1, Messenlehner, wds-scott 
     2Contributors: williamsba1, Messenlehner 
    33Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3084056 
    4 Tags: map, google, posts, plot, widget, address, API, sidebar 
    5 Requires at least: 2.6 
    6 Tested up to: 2.8.4 
    7 Stable tag: 1.5.1.0 
     4Tags: map, google, posts, plot, widget, address, API, sidebar, v3 
     5Requires at least: 3.0 
     6Tested up to: 3.5 
     7Stable tag: 1.6.0 
     8License: GPLv2 
    89 
    9 Add multiple addresses to a post/page.  Addresses will be plotted on a Google Map in your post/page or in the Post Google Map sidebar widget. 
     10Add multiple addresses to a post or page.  Addresses will be plotted on a Google Map in your post/page or in the Post Google Map sidebar widget. 
    1011 
    1112== Description == 
    1213 
    1314This plugin allows you to add multiple addresses to a post/page and have those addresses automatically plotted on a Google Map in a sidebar widget or directly in the post/page. This is a great plugin to help localize your stories, events, news, etc. 
    14 Hovering over a plot will display the title of the post, address, and also a thumbnail from the post if any images exist. Easily add and delete a single or multiple addresses to each post/page. Viewing a single post/page displays only addresses attached to that post/page, viewing anything else will show the most recent plots across your entire site. 
    15 You can also set a custom title and description for each address saved. If no title or description is entered the post title and excerpt will be used. 
     15Easily add and delete a single or multiple addresses to each post/page. Viewing a single post/page displays only addresses attached to that post/page, viewing anything else will show the most recent plots across your entire site. 
     16You can also set a custom title and description for each address saved.  
    1617 
    1718Custom plot markers can be upload to the /markers folder. 
    1819 
    19 Works with WordPress and WordPress MU 2.8.4 
    20  
    2120== Screenshots == 
    2221 
    23 1. Google Map Widget displaying multiple plots on a map for a given post 
    24 2. Add new address form.  Multiple addresses can be added to each post/page 
    25 3. Settings page showing multiple options for the map display 
     221. Google Map Shortcode displaying multiple plots on a map in a post 
     232. Google Map Widget displaying multiple plots on a map for a given post 
     243. Add new address form.  Multiple addresses can be added to each post/page 
    2625 
    2726== Changelog == 
     27 
     28= 1.6 = 
     29* Full plugin rewrite 
     30* Uses current WordPress coding standards 
     31* Tightened security 
     32* Updated to use Google Maps API v3 
    2833 
    2934= 1.5.1 = 
     
    7479* First official release 
    7580 
     81== Upgrade Notice == 
     82 
     83= 1.6 = 
     84* Complete plugin rewrite using updated WordPress procedures and Google Map API v3 
     85 
    7686== Installation == 
    7787 
    78 1. Upload the post-google-map folder to the plugins directory in your WordPress or WPMU installation 
     881. Upload the post-google-map folder to the plugins directory in your WordPress installation 
    79892. Activate the plugin 
    80 3. Click on the "Post Google Map" under Settings. You MUST obtain a Google Maps API key for this plugin to work. http://code.google.com/apis/maps/signup.html 
    81 4. Add the "Post Google Map" widget to your sidebar or use shortcode [google-map] in your post/page to embed the Google Map 
    82 5. Add addresses to any posts/pages 
     903. Add the "Post Google Map" widget to your sidebar or use shortcode [google-map] in your post/page to embed the Google Map 
     914. Add addresses to any posts/pages 
    8392 
    8493That's it! Addresses will automatically be plotted on the map for each post/page that contains addresses 
     
    8695== Frequently Asked Questions == 
    8796 
    88 = Does this plugin work with WordPress MU? = 
     97= Does this plugin work with WordPress Multisite? = 
    8998 
    90 Absolutely!  This plugin has been tested and verified to work on the most current version of WordPress MU 
    91  
    92 = What does the error "The Google Maps API server rejected your request" mean? = 
    93  
    94 You need to sign up for a Google Map API for your domain.   
    95  
    96 You can get a free API key here: http://code.google.com/apis/maps/signup.html 
     99Absolutely!  This plugin has been tested and verified to work on the most current version of WordPress and Multisite 
    97100 
    98101== Plugin Support == 
    99 [Post Google Map Support](http://webdevstudios.com/support/wordpress-plugins/ "WordPress Plugins and Support Services") 
     102[Post Google Map Support](http://wordpress.org/support/plugin/post-google-map "WordPress Plugin Support") 
Note: See TracChangeset for help on using the changeset viewer.