Skip to content

Commit ebfeac3

Browse files
committed
first commit - taking over the plugin
0 parents  commit ebfeac3

6 files changed

Lines changed: 365 additions & 0 deletions

File tree

README.md

Whitespace-only changes.

admin/settings.php

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
<?php
2+
// add submenu page
3+
add_action( 'admin_menu' , 'frm_google_map_admin_menu');
4+
function frm_google_map_admin_menu(){
5+
add_options_page( 'Frm Google Map' , 'Frm Google Map' , 'manage_options' , __FILE__ , 'frm_google_map_admin_menu_page' );
6+
}
7+
// adding menu page content
8+
function frm_google_map_admin_menu_page(){?>
9+
<div class="wrap">
10+
<?php screen_icon('options-general'); ?>
11+
<h2> Frm Google Map settings </h2>
12+
<form action="options.php" method="post">
13+
<?php settings_fields('frm_google_map'); ?>
14+
<?php do_settings_sections('frm_google_map'); ?>
15+
<div style="clear:both;" ></div>
16+
<br />
17+
<p>Valid <b>latitude</b> values are between -85 and +85</p>
18+
<p>Valid <b>longitude</b> values are between 0 and 180 </p>
19+
<input name="Submit" type="submit" value="Save Changes" class="button-primary"/>
20+
</form>
21+
22+
</div>
23+
24+
25+
<?php
26+
}
27+
28+
29+
30+
add_action('admin_init' , 'frm_google_admin_init');
31+
function frm_google_admin_init(){
32+
register_setting('frm_google_map' , 'frm_google_map_init_zoom' );
33+
register_setting('frm_google_map' , 'frm_google_map_geocoded_zoom' );
34+
register_setting('frm_google_map' , 'frm_google_map_maptype' );
35+
register_setting('frm_google_map' , 'frm_google_map_latitude' );
36+
register_setting('frm_google_map' , 'frm_google_map_longitude' );
37+
38+
39+
add_settings_field( 'frm_gmi_init' , 'Map Zoom Level' , 'frm_google_map_print_init_level' , 'frm_google_map' , 'frm_google_map_section' );
40+
41+
add_settings_field( 'frm_gmi_geococed' , 'Map Zoom Level After Geocoding' , 'frm_google_map_print_geocoded_level' , 'frm_google_map' , 'frm_google_map_section' );
42+
add_settings_field( 'frm_gmi_maptype' , 'Select Maptype' , 'frm_google_map_print_maptype' , 'frm_google_map' , 'frm_google_map_section' );
43+
add_settings_field( 'frm_gmi_lat' , 'Enter Map Center Latitude' , 'frm_google_map_print_latitude' , 'frm_google_map' , 'frm_google_map_section' );
44+
add_settings_field( 'frm_gmi_lmg' , 'Enter Map Center Longitude' , 'frm_google_map_print_longitude' , 'frm_google_map' , 'frm_google_map_section' );
45+
46+
add_settings_section( 'frm_google_map_section' , '' , 'frmgmi_section_text' , 'frm_google_map' );
47+
}
48+
function frmgmi_section_text(){
49+
return false ;
50+
51+
}
52+
function frm_google_map_print_init_level(){?>
53+
<select name="frm_google_map_init_zoom" style="width:120px;">
54+
<?php $selected = get_option('frm_google_map_init_zoom'); $drop_options = array( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 ,15 , 16 , 17 , 18 , 19 , 20 , 21, 22, 23 , 24 , 25 );
55+
foreach($drop_options as $drop_option){
56+
if($drop_option == $selected){ echo '<option value="'.$drop_option.'" selected="selected">'.$drop_option.'</option>'."\n";
57+
}
58+
}
59+
foreach($drop_options as $drop_option){
60+
if($drop_option != $selected){ echo '<option value="'.$drop_option.'" >'.$drop_option.'</option>'."\n";}
61+
62+
}
63+
64+
65+
?>
66+
67+
</select>
68+
<?php }
69+
70+
function frm_google_map_print_geocoded_level() { ?>
71+
<select name="frm_google_map_geocoded_zoom" style="width:120px;">
72+
<?php $selected = get_option('frm_google_map_geocoded_zoom'); $drop_options = array( 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 ,15 , 16 , 17 , 18 , 19 , 20 , 21, 22, 23 , 24 , 25 );
73+
foreach($drop_options as $drop_option){
74+
if($drop_option == $selected){ echo '<option value="'.$drop_option.'" selected="selected">'.$drop_option.'</option>'."\n";
75+
}
76+
}
77+
foreach($drop_options as $drop_option){
78+
if($drop_option != $selected){ echo '<option value="'.$drop_option.'" >'.$drop_option.'</option>'."\n";}
79+
80+
}
81+
?>
82+
</select>
83+
<?php }
84+
85+
function frm_google_map_print_maptype(){ ?>
86+
<select name="frm_google_map_maptype" style="width:120px;">
87+
<?php $selected = get_option('frm_google_map_maptype'); $drop_options = array( 'ROADMAP', 'TERRAIN' , 'HYBRID' , 'SATELLITE');
88+
foreach($drop_options as $drop_option){
89+
if($drop_option == $selected){ echo '<option value="'.$drop_option.'" selected="selected">'.$drop_option.'</option>'."\n";
90+
}
91+
}
92+
foreach($drop_options as $drop_option){
93+
if($drop_option != $selected){ echo '<option value="'.$drop_option.'" >'.$drop_option.'</option>'."\n";}
94+
95+
}
96+
?>
97+
</select>
98+
<?php }
99+
function frm_google_map_print_latitude(){?>
100+
<input type="text" name="frm_google_map_latitude" style="width:120px;" value="<?php echo get_option('frm_google_map_latitude'); ?>" />
101+
<?php
102+
}
103+
function frm_google_map_print_longitude(){?>
104+
<input type="text" name="frm_google_map_longitude" style="width:120px;" value="<?php echo get_option('frm_google_map_longitude'); ?>" />
105+
<?php
106+
}
107+
108+
?>
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
<?php
2+
class GoogleMapController{
3+
4+
function GoogleMapController(){
5+
add_filter('frm_pro_available_fields', array(&$this, 'add_field'));
6+
add_filter('frm_before_field_created',array(&$this, 'set_defaults'));
7+
add_action('frm_display_added_fields', array(&$this, 'admin_field'));
8+
add_action('frm_form_fields', array(&$this, 'front_field'), 10, 2);
9+
10+
}
11+
12+
function add_field($fields){
13+
$fields['google-map-address'] = __('Map Location');
14+
$fields['google-map-latitude'] = __('Latitude');
15+
$fields['google-map-longitude'] = __('Longitude');
16+
return $fields;
17+
}
18+
19+
function set_defaults($field_data){ //done
20+
if($field_data['type'] == 'google-map-address')
21+
$field_data['name'] = __('Map Location');
22+
if($field_data['type'] == 'google-map-latitude')
23+
$field_data['name'] = __('Latitude');
24+
if($field_data['type'] == 'google-map-longitude')
25+
$field_data['name'] = __('Longitude');
26+
return $field_data;
27+
}
28+
29+
function admin_field($field){
30+
31+
if($field['type'] == 'google-map-address' ){
32+
$field_name = "item_meta[". $field['id'] ."]";?>
33+
34+
<div style="width:100%;margin-bottom:10px;text-align:center;">
35+
<div class="howto button-secondary frm_html_field"><?php _e('This is a placeholder for your google map address field. <br/>View your form to see it in action.', 'formidable') ?></div>
36+
</div>
37+
<?php
38+
}
39+
40+
if($field['type'] == 'google-map-latitude' ){
41+
$field_name = "item_meta[". $field['id'] ."]";?>
42+
43+
<div style="width:100%;margin-bottom:10px;text-align:center;">
44+
<div class="howto button-secondary frm_html_field"><?php _e('This is a placeholder for your google map latitude field. <br/>View your form to see it in action.', 'formidable') ?></div>
45+
</div>
46+
<?php
47+
}
48+
49+
if($field['type'] == 'google-map-longitude' ){
50+
$field_name = "item_meta[". $field['id'] ."]";?>
51+
52+
<div style="width:100%;margin-bottom:10px;text-align:center;">
53+
<div class="howto button-secondary frm_html_field"><?php _e('This is a placeholder for your google map longitude field. <br/>View your form to see it in action.', 'formidable') ?></div>
54+
</div>
55+
<?php
56+
}
57+
}
58+
59+
function front_field( $field, $field_name ){
60+
61+
global $frm_editing_entry, $wp_scripts, $wp_styles, $frmpro_settings;
62+
$entry_id = $frm_editing_entry;
63+
64+
if($field['type'] != 'google-map-address' && $field['type'] != 'google-map-latitude' && $field['type'] != 'google-map-longitude' )
65+
return;
66+
67+
if( ! isset ($GLOBALS['frm-google-map']) || $GLOBALS['frm-google-map'] != 1 ){
68+
$GLOBALS['frm-google-map'] = 1 ;
69+
70+
echo '<div id="frm-map-canvas" style="width:100%;height:300px;" class="google-map-it-canvas"></div>';
71+
echo '<label class="frm_primary_label">'. $field['name'] .'</label>';
72+
73+
$initzoom = get_option('frm_google_map_init_zoom');
74+
if( strlen( $initzoom ) < 1 || $initzoom < 1 || $initzoom > 25 ){
75+
$initzoom = 5 ;
76+
}
77+
78+
$geozoom = get_option('frm_google_map_geocoded_zoom');
79+
if( strlen( $geozoom ) < 1 || $geozoom < 1 || $geozoom > 25 ){
80+
$geozoom = 5 ;
81+
}
82+
83+
$maptype = get_option('frm_google_map_maptype');
84+
85+
$lat = get_option('frm_google_map_latitude');
86+
if(strlen($lat)< 1 || ! is_numeric( $lat ) || abs($lat) > 85 ){
87+
$lat = 0 ;
88+
}
89+
$lat = sprintf( "%1\$.6f" , $lat ) ;
90+
91+
92+
$lng = get_option('frm_google_map_longitude');
93+
if(strlen($lng)< 1 || ! is_numeric( $lng ) || abs($lng ) > 180 ){
94+
$lng = 0 ;
95+
}
96+
$lng = sprintf( "%1\$.6f" , $lng ) ;
97+
98+
echo '<input type="hidden" id="frm-gm-init-zoom" value="'. $initzoom .'" />';
99+
echo '<input type="hidden" id="frm-gm-geo-zoom" value="'.$geozoom.'" />';
100+
echo '<input type="hidden" id="frm-gm-maptype" value="'.$maptype.'" />';
101+
echo '<input type="hidden" id="frm-gm-lat" value="'.$lat.'" />';
102+
echo '<input type="hidden" id="frm-gm-lng" value="'.$lng.'" />';
103+
104+
}
105+
106+
107+
if($entry_id){
108+
global $frm_entry;
109+
110+
//make sure entry is for this form
111+
$entry = $frm_entry->getOne((int)$entry_id);
112+
if(!$entry or $entry->form_id != $field['form_id'])
113+
$entry_id = false;
114+
unset($entry);
115+
}
116+
117+
if( $field['type'] == 'google-map-address' && ! isset( $GLOBALS['frm_geo_add'] )) {
118+
$GLOBALS['frm_geo_add'] = 1 ;
119+
$value = esc_attr($field['value']);
120+
121+
echo '<input type="text" name="'. $field_name.'" value="'.$value.'" id="frm-gmi-loc" onfocus="reset_map_location( this );" onkeyup="ch_pp_address_onkeyup(event);" onblur="ch_pp_addressinput();" />';
122+
123+
}elseif($field['type'] == 'google-map-latitude' && ! isset( $GLOBALS['frm_geo_lat'] )){
124+
$GLOBALS['frm_geo_lat'] = 1 ;
125+
$value = esc_attr($field['value']);
126+
if(strlen($value)< 2 ) {
127+
$value = get_option('frm_google_map_latitude');
128+
129+
if(strlen( $value )< 1 || ! is_numeric( $value ) || abs($value) > 85 ){
130+
$value = 0 ;
131+
}
132+
$value= sprintf( "%1\$.6f" , $value ) ;
133+
134+
}
135+
136+
echo '<input type="text" name="'. $field_name.'" value="'.$value.'" id="frm-gmi-lat" readonly="readonly" />';
137+
138+
}elseif( $field['type'] == 'google-map-longitude' && ! isset( $GLOBALS['frm_geo_lng'] ) ){
139+
$GLOBALS['frm_geo_lng'] = 1 ;
140+
$value = esc_attr($field['value']);
141+
if(strlen($value)< 2 ) {
142+
$value = get_option('frm_google_map_longitude');
143+
144+
if(strlen( $value )< 1 || ! is_numeric( $value ) || abs($value ) > 180 ){
145+
$value = 0 ;
146+
}
147+
$value= sprintf( "%1\$.6f" , $value ) ;
148+
149+
}
150+
echo '<input type="text" name="'. $field_name.'" value="'. $value .'" id="frm-gmi-lng" readonly="readonly" />';
151+
152+
}
153+
}
154+
}
155+
?>

frm-google-map.php

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
<?php
2+
/*
3+
Plugin Name: Formidable Google Map
4+
Plugin URI: http://www.web-directory-service.com/downloads-2/
5+
Description: Adds google map and latitude - longitude field to Formidable Pro ( FRM-001 )
6+
Author:Crazy Hungarian
7+
Version:1.0
8+
*/
9+
10+
11+
define ( 'CH_GOOGLE_MAP_JS' , plugins_url( 'frm-google-map/js/' ));
12+
define ( 'CH_GOOGLE_MAP_PATH', WP_PLUGIN_DIR.'/frm-google-map');
13+
if(is_admin()){ require_once CH_GOOGLE_MAP_PATH .'/admin/settings.php'; }
14+
15+
// formidable functions
16+
17+
include_once(CH_GOOGLE_MAP_PATH . "/controllers/FrmGoogleMapControllers.php");
18+
global $frm_google_map_controller;
19+
$frm_google_map_controller = new GoogleMapController();
20+
21+
add_action('init' , 'frm_google_map_register');
22+
23+
function frm_google_map_register(){
24+
wp_register_script('frm_google_api' , 'https://maps.googleapis.com/maps/api/js?sensor=false' , array() , true );
25+
wp_register_script('frm_google_script' , CH_GOOGLE_MAP_JS . 'frmmap.js' , array( 'frm_google_api' ) , true ) ;
26+
}
27+
28+
add_action('wp_footer' , 'frm_google_map_print');
29+
30+
function frm_google_map_print(){
31+
if( isset ($GLOBALS['frm-google-map']) && $GLOBALS['frm-google-map'] == 1 ){
32+
wp_enqueue_script('frm_google_api' );
33+
wp_enqueue_script('frm_google_script' );
34+
35+
}
36+
}
37+
38+
add_action('admin_init' , 'frm_google_map_admin' );
39+
40+
function frm_google_map_admin(){
41+
42+
43+
44+
45+
if ( isset($_GET['page']) && $_GET['page'] == 'formidable-entries' ){
46+
wp_enqueue_script('frm_google_api_admin' , 'https://maps.googleapis.com/maps/api/js?sensor=false' , array() , true );
47+
wp_enqueue_script('frm_google_script_admin' , CH_GOOGLE_MAP_JS . 'frmmap.js' , array( 'frm_google_api' ) , true ) ;
48+
}
49+
}
50+
51+
register_activation_hook( __FILE__ , 'frm_google_map_activation' );
52+
53+
function frm_google_map_activation(){
54+
add_option('frm_google_map_init_zoom' , 10 );
55+
add_option( 'frm_google_map_geocoded_zoom' , 6 );
56+
add_option( 'frm_google_map_maptype' , 'ROADMAP ');
57+
add_option( 'frm_google_map_latitude' , 0 );
58+
add_option( 'frm_google_map_longitude' , 0 );
59+
60+
61+
}
62+
63+
add_action('wp_head', 'frm_gmi_style');
64+
65+
function frm_gmi_style(){?>
66+
67+
<style>
68+
.google-map-it-canvas img {
69+
border: none !important;
70+
max-width: none !important;
71+
}
72+
.gmnoprint img { max-width: none !important ;}
73+
74+
</style>
75+
76+
<?php
77+
}
78+
?>

js/frmmap.js

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

readme.txt

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
=== Formidable Geocoder ===
2+
3+
Tags: formidable , google map
4+
Tested up to wordpress: 3.4.2
5+
Tested up to Formidable Pro : 1.06.05
6+
License: GPLv2 or later
7+
License URI: http://www.gnu.org/licenses/gpl-2.0.html
8+
WDS : FRM-001
9+
10+
Creates "Map Location" , "Latitude" and "Longitude" fields for Formidable Pro
11+
When uploaded and activated these fields become available.
12+
If any of these fields are added to a form a google map appears with a draggable marker in the center.
13+
If this marker is dragged updates the latitude and longitude fields calculating the actual position of the marker.
14+
When address field is added to the form , entered address gets geocoded and the latiude , longitude fields get updated .
15+
16+
17+
18+
19+
20+
21+
22+
23+

0 commit comments

Comments
 (0)