Google Map Shortcode - Version 2.2

Version Description

  • Map type added.
    • Marker animation option added.
    • Focus option added.
    • Maps marging and aligment added.
    • Performance improved.
    • More map languages included
Download this release

Release Info

Developer alaingg
Plugin Icon wp plugin Google Map Shortcode
Version 2.2
Comparing to
See all releases

Code changes from version 2.1.2 to 2.2

google-map-shortcode.php CHANGED
@@ -3,14 +3,15 @@
3
Plugin Name: Google Map Shortcode
4
Plugin URI: http://web-argument.com/google-map-shortcode-2-0-total-solution/
5
Description: Include Google Map in your blogs with just one click.
6
- Version: 2.1.2
7
Author: Alain Gonzalez
8
Author URI: http://web-argument.com/
9
*/
10
11
define('GMSC_PLUGIN_DIR', WP_PLUGIN_DIR."/".dirname(plugin_basename(__FILE__)));
12
define('GMSC_PLUGIN_URL', WP_PLUGIN_URL."/".dirname(plugin_basename(__FILE__)));
13
- define('GMSHC_VERSION_CHECK','2.1');
14
15
require(GMSC_PLUGIN_DIR."/include/functions.php");
16
require(GMSC_PLUGIN_DIR."/include/class.gmshc_point.php");
@@ -25,12 +26,19 @@ function get_gmshc_options ($default = false){
25
$gmshc_default = array(
26
'zoom' => '10',
27
'width' => '450',
28
- 'height' => '450',
29
'language' => 'en',
30
'windowhtml' => gmshc_defaul_windowhtml(),
31
'icons' => array(),
32
'default_icon' => GMSC_PLUGIN_URL.'/images/icons/marker.png',
33
- 'version' => '2.1.2'
34
);
35
36
@@ -41,7 +49,7 @@ function get_gmshc_options ($default = false){
41
42
$options = get_option('gmshc_op');
43
if (isset($options)){
44
- if (isset($options['version'])) {
45
$chk_version = version_compare(GMSHC_VERSION_CHECK,$options['version']);
46
if ($chk_version == 0) return $options;
47
else if ($chk_version > 0) $options = $gmshc_default;
@@ -66,8 +74,8 @@ function gmshc_head() {
66
$gmshc_header .= "<script src=\"http://maps.google.com/maps/api/js?sensor=false";
67
if(isset($language))
68
$gmshc_header .= "&language=".$language;
69
- $gmshc_header .="\" type=\"text/javascript\"></script>\n";
70
- $gmshc_header .= "<script type=\"text/javascript\" src=\"".GMSC_PLUGIN_URL."/js/gmshc-render.js\"></script>\n";
71
$gmshc_header .= "\n<!-- /Google Map Shortcode Version ".$options['version']."-->\n";
72
73
print($gmshc_header);
@@ -76,6 +84,153 @@ function gmshc_head() {
76
77
add_action('wp_head', 'gmshc_head');
78
79
/**
80
* Google Map SC Editor Button
81
*/
@@ -115,9 +270,17 @@ function gmshc_tab_process(){
115
$add_point = isset($_REQUEST['add_point']) ? $_REQUEST['add_point'] : '';
116
$del_point = isset($_REQUEST['delp']) ? $_REQUEST['delp'] : '';
117
$update_point = isset($_REQUEST['update']) ? $_REQUEST['update'] : '';
118
$width = isset($_REQUEST['width']) ? $_REQUEST['width'] : $options['width'];
119
$height = isset($_REQUEST['height']) ? $_REQUEST['height'] : $options['height'];
120
- $zoom = isset($_REQUEST['zoom']) ? $_REQUEST['zoom'] : $options['zoom'];
121
122
$address_list = isset($_REQUEST['addr']) ? gmshc_stripslashes_deep($_REQUEST['addr']) : "";
123
$title_list = isset($_REQUEST['title']) ? gmshc_stripslashes_deep($_REQUEST['title']) : "";
@@ -131,7 +294,7 @@ function gmshc_tab_process(){
131
132
if (!empty($add_point)) {
133
$new_point = new GMSHC_Point();
134
- if($new_point -> create_point($address,"",$title,$description,$icon,$selected_thumbnail,$post_id)){
135
$post_points -> add_point($new_point);
136
}
137
else
@@ -157,30 +320,23 @@ function gmshc_tab_process(){
157
<link href="<?php echo GMSC_PLUGIN_URL ?>/styles/gmshc-admin-styles.css" rel="stylesheet" type="text/css"/>
158
159
<div style="width:620px; margin:10px auto">
160
161
<form action="#" method="post">
162
- <textarea name = "post_data" id="post_data" style="display:none"><?php echo $post_points->post_data ?></textarea>
163
- <table width="620" border="0" cellspacing="10" cellpadding="10">
164
<tr>
165
<td colspan="2">
166
- <h3><?php _e("Map Dimensions"); ?></h3>
167
- </td>
168
- </tr>
169
- <tr>
170
- <td align="right"><?php _e("Width"); ?></td>
171
- <td valign="top"><input name="width" type="text" id="width" size="10" value = "<?php echo $width ?>"/></td>
172
- </tr>
173
- <tr>
174
- <td align="right"><?php _e("Height"); ?></td>
175
- <td valign="top"><input name="height" type="text" id="height" size="10" value = "<?php echo $height ?>" /></td>
176
- </tr>
177
- <tr>
178
- <td align="right"><?php _e("Zoom"); ?></td>
179
- <td valign="top"><input name="zoom" type="text" id="zoom" size="10" value = "<?php echo $zoom ?>" /></td>
180
- </tr>
181
- <tr>
182
- <td colspan="2">
183
- <h3><?php _e("Add New Point"); ?></h3>
184
</td>
185
</tr>
186
<tr>
@@ -219,7 +375,7 @@ function gmshc_tab_process(){
219
if (count($thumbnail_list) > 0) {
220
?>
221
<div class="gmshc_label">
222
- <strong><?php _e("Thumbnail: "); ?></strong><?php _e("Select by clicking on the images"); ?>
223
</div>
224
<div id="gmshc_thumb_cont">
225
<input type="hidden" name="selected_thumbnail" value="<?php echo $default_icon ?>" id="selected_thumbnail" />
@@ -236,10 +392,88 @@ function gmshc_tab_process(){
236
<?php } ?>
237
<p align="left"><a class="button" href = "?post_id=<?php echo $post_id ?>&type=image" title="Upload Images"><?php _e("Upload Images") ?></a></p>
238
</td>
239
- </tr>
240
</table>
241
242
- <p><input class="button-primary" value="<?php _e("Add Point") ?>" name="add_point" type="submit"></p>
243
244
<?php
245
if ( count($post_points -> points) > 0 ){
@@ -294,10 +528,10 @@ function gmshc_tab_process(){
294
</tbody>
295
</table>
296
297
- <p><input class="button-primary" value="<?php _e("Insert Map"); ?>" type="button" id="insert_map"> <a class="button" href="#gmshc_map" id="gmshc_show" show="<?php _e("Show Map") ?>" hide="<?php _e("Hide Map") ?>"><?php _e("Show Map") ?></a></p>
298
</div>
299
<div id="gmshc_map" style="height:1px; overflow:hidden;">
300
- <?php echo do_shortcode("[google-map-sc id=".$post_id." width=600 height=420]"); ?>
301
</div>
302
<br />
303
<?php } ?>
@@ -307,136 +541,6 @@ function gmshc_tab_process(){
307
<?php
308
}
309
310
- /**
311
- * Default Open Window Html
312
- *
313
- * Allows a plugin to replace the html that would otherwise be returned. The
314
- * filter is 'gmshc_get_windowhtml' and passes the point.
315
-
316
- * add_filter('gmshc_defaul_windowhtml','default_html',1,2);
317
- *
318
- * function default_html($windowhtml,$point){
319
- * return "this is the address".$point->address;
320
- * }
321
- */
322
- function gmshc_defaul_windowhtml(){
323
-
324
- $defaul_gmshc_windowhtml = "";
325
- $output = apply_filters('gmshc_defaul_windowhtml',$defaul_gmshc_windowhtml);
326
-
327
- if ( $output != '' )
328
- return $output;
329
-
330
- $defaul_gmshc_windowhtml = "<div style='margin:0; padding:0px; height:125px; width:%width%; overflow:hidden; font-size:11px; clear:both; line-height:13px;'>\n";
331
- $defaul_gmshc_windowhtml .= "<div style='float:left; width:200px'>\n";
332
- $defaul_gmshc_windowhtml .= "<a class='title' href='%link%' style='clear:both; display:block; font-size:12px; line-height: 18px; font-weight:bold;'>%title%</a>\n";
333
- $defaul_gmshc_windowhtml .= "<div><strong style='font-size:9px'>%address%</strong></div>\n";
334
- $defaul_gmshc_windowhtml .= "<div style='font-size:10px'>%description%</div>\n";
335
- $defaul_gmshc_windowhtml .= "<a href='%link%' style='font-size:11px; float:left; display:block'>more &raquo;</a>\n";
336
- $defaul_gmshc_windowhtml .= "<img src='".GMSC_PLUGIN_URL."/images/open.jpg' style='float: right; margin-right:5px'/> \n";
337
- $defaul_gmshc_windowhtml .= "<a href='%open_map%' target='_blank' style='font-size:11px; float: right; display:block;'>Open Map</a>\n";
338
- $defaul_gmshc_windowhtml .= "</div>\n";
339
- $defaul_gmshc_windowhtml .= "<div style='float:left'>%thubnail%</div>\n";
340
- $defaul_gmshc_windowhtml .= "</div>\n";
341
-
342
- return $defaul_gmshc_windowhtml;
343
-
344
- }
345
-
346
- /**
347
- * The Sortcode
348
- */
349
-
350
- add_shortcode('google-map-sc', 'gmshc_sc');
351
-
352
- function gmshc_sc($atts) {
353
-
354
- global $post;
355
- $options = get_gmshc_options();
356
-
357
- $width = $options['width'];
358
- $height = $options['height'];
359
- $zoom = $options['zoom'];
360
- $icon = $options['default_icon'];
361
- $language = $options['language'];
362
-
363
- // First Point in the post
364
- $address_meta = get_post_meta($post -> ID, 'google-map-sc-address');
365
- $point_meta = get_post_meta($post -> ID, 'google-map-sc-latlng');
366
-
367
- $the_address = isset($address_meta[0]) ? $address_meta[0] : '';
368
- $point = isset($point_meta[0]) ? $point_meta[0] : '';
369
- $the_items = array();
370
-
371
- extract(shortcode_atts(array(
372
- 'address' => '',
373
- 'title' =>'',
374
- 'description' => '',
375
- 'icon' => $icon,
376
- 'thumbnail' => '',
377
- 'id' => '',
378
- 'cat' => '',
379
- 'zoom' => $zoom,
380
- 'width' => $width,
381
- 'height' => $height,
382
- 'language' => $language
383
- ), $atts));
384
-
385
- $map_points = array();
386
-
387
- // When address is set
388
- if (!empty($address)) {
389
-
390
- //create single point object id = -1
391
- $new_point = new GMSHC_Point();
392
- if($new_point -> create_point($address,"",$title,$description,$icon,$thumbnail,-1)) $map_points[0]=$new_point;
393
-
394
- // When id is set
395
- } else if (!empty($id)) {
396
- $post_points = new GMSHC_Post_Map();
397
- $post_points -> create_post_map($id);
398
- if (count($post_points -> points) > 0) $map_points = $post_points->points;
399
-
400
- } else if ($cat != '') {
401
-
402
- $categories = split (",",$cat);
403
- $j = 0;
404
-
405
- $post_obj = get_posts(array('category__in'=>$categories,'numberposts'=>-1));
406
- foreach ($post_obj as $post_item) {
407
- //create points object by cat
408
- $post_points = new GMSHC_Post_Map();
409
- $post_points -> create_post_map($post_item->ID);
410
- if (count($post_points->points) >0) {
411
- foreach ($post_points->points as $point) {
412
- if (count($post_points -> points) > 0) array_push($map_points,$point);
413
- }
414
- }
415
- }
416
-
417
- } else {
418
-
419
- //create points for the current post_id
420
-
421
- $post_points = new GMSHC_Post_Map();
422
- $post_points -> create_post_map($post->ID);
423
- $map_points = $post_points->points;
424
-
425
- }
426
-
427
- //Map Point array filled
428
-
429
- if ( count($map_points) > 0 ) {
430
-
431
- //Generate Map form points, width, height, zoom
432
-
433
- return gmshc_generate_map($map_points, $width, $height, $zoom);
434
- }
435
- else return __("There is not points to locate on the map");
436
- }
437
-
438
-
439
-
440
/**
441
* Settings
442
*/
@@ -471,6 +575,8 @@ function gmshc_options_page() {
471
<div class="wrap">
472
473
<h2><?php _e("Google Map Shortcode Settings") ?></h2>
474
475
<?php
476
@@ -478,19 +584,28 @@ function gmshc_options_page() {
478
479
$newoptions['width'] = isset($_POST['width'])?$_POST['width']:$options['width'];
480
$newoptions['height'] = isset($_POST['height'])?$_POST['height']:$options['height'];
481
$newoptions['zoom'] = isset($_POST['zoom'])?$_POST['zoom']:$options['zoom'];
482
$newoptions['language'] = isset($_POST['language'])?$_POST['language']:$options['language'];
483
$newoptions['windowhtml'] = isset($_POST['windowhtml'])? $_POST['windowhtml']:$options['windowhtml'];
484
485
$newoptions['default_icon'] = isset($_POST['default_icon'])?$_POST['default_icon']:$options['default_icon'];
486
$newoptions['icons'] = $options['icons'];
487
488
- $newoptions['version'] = GMSHC_VERSION_CHECK;
489
-
490
if ( $options != $newoptions ) {
491
$options = $newoptions;
492
update_option('gmshc_op', $options);
493
- }
494
495
}
496
@@ -499,8 +614,8 @@ function gmshc_options_page() {
499
$options['windowhtml'] = gmshc_defaul_windowhtml();
500
update_option('gmshc_op', $options);
501
502
- }
503
-
504
$upload_icons = $options['icons'];
505
506
if(isset($_POST['upload'])) {
@@ -526,72 +641,129 @@ function gmshc_options_page() {
526
527
$width = $options['width'];
528
$height = $options['height'];
529
$zoom = $options['zoom'];
530
$language = $options['language'];
531
$windowhtml = $options['windowhtml'];
532
$default_icon = $options['default_icon'];
533
-
534
?>
535
536
<form method="POST" name="options" target="_self" enctype="multipart/form-data">
537
538
- <h3><?php _e("Maps Parameters") ?></h3>
539
540
- <p><?php _e("The shortcode attributes overwrite these options.") ?></p>
541
542
- <table width="80%%" border="0" cellspacing="10" cellpadding="0">
543
<tr>
544
- <td colspan="2"><strong><?php _e("Dimensions") ?></strong></td>
545
- </tr>
546
- <tr>
547
- <td width="60" align="right" height="40"><?php _e("Width") ?></td>
548
<td><input name="width" type="text" size="6" value="<?php echo $width ?>" /></td>
549
</tr>
550
<tr>
551
- <td align="right"><?php _e("Height") ?></td>
552
<td><input name="height" type="text" size="6" value="<?php echo $height ?>" /></td>
553
</tr>
554
<tr>
555
- <td align="right"><?php _e("Zoom") ?></td>
556
- <td><input name="zoom" type="text" size="6" value="<?php echo $zoom ?>" /></td>
557
</tr>
558
<tr>
559
- <td colspan="2"><strong><?php _e("Select Default Icon") ?></strong></td>
560
- </tr>
561
- <tr>
562
- <td align="right" valign="top" colspan="2">
563
-
564
- <?php gmshc_deploy_icons(); ?>
565
-
566
- </td>
567
- </tr>
568
<tr>
569
- <td align="left" valign="top" colspan="2">
570
- <?php _e("To include new icons just specify the file location:") ?><br />
571
- <input type="file" name="datafile" size="40" /> <input type="submit" name="upload" value="Upload" class="button" />
572
- </td>
573
- </tr>
574
<tr>
575
- <td colspan="2"><strong><?php _e("Language") ?></strong></td>
576
- </tr>
577
<tr>
578
- <td align="right" valign="top"><?php _e("Select") ?>
579
- </td>
580
<td>
581
<?php
582
$lang_array = array(
583
- "zh" => __("Chinese"),
584
- "nl" => __("Dutch"),
585
- "en" => __("English"),
586
- "fr" => __("French"),
587
- "de" => __("German"),
588
- "it" => __("Italian"),
589
- "pl" => __("Polish"),
590
- "ja" => __("Japanese"),
591
- "es" => __("Spanish"),
592
- "ca" => __("Catalan"),
593
- "gl" => __("Galego"),
594
- "eu" => __("Euskara")
595
596
);
597
?>
@@ -601,7 +773,47 @@ function gmshc_options_page() {
601
<?php } ?>
602
</select>
603
</td>
604
- </tr>
605
</table>
606
607
<p class="submit">
@@ -610,50 +822,53 @@ function gmshc_options_page() {
610
611
<h3 style="padding-top:30px; margin-top:30px; border-top:1px solid #CCCCCC;"><?php _e("Info Windows") ?></h3>
612
613
- <p><?php _e("This is the html inside of the Map Info Window opened after clicking on the markers.") ?></p>
614
615
<div id="gmshc_html">
616
- <textarea name="windowhtml" cols="50" rows="12" id="windowhtml">
617
- <?php
618
- if (empty($windowhtml)) echo gmshc_defaul_windowhtml();
619
- else {
620
- echo str_replace("\\", "",$windowhtml);
621
- }
622
- ?>
623
- </textarea>
624
<div id="gmshc_previews">
625
- <strong><?php _e("Previews") ?></strong>
626
<div id="gmshc_html_previews">
627
<?php echo gmshc_defaul_windowhtml(); ?>
628
</div>
629
</div>
630
</div>
631
632
- <p><?php _e("You can include the following tags.") ?></p>
633
- <table width="80%%" border="0" cellspacing="10" cellpadding="0">
634
<tr>
635
<td width="60" align="right"><strong>%title%</strong></td>
636
- <td><?php _e("The title of your post") ?></td>
637
</tr>
638
<tr>
639
<td align="right"><strong>%link%</strong></td>
640
- <td><?php _e("The link to your post") ?></td>
641
</tr>
642
<tr>
643
<td align="right"><strong>%thubnail%</strong></td>
644
- <td><?php _e("The thubnail of the last image attached to your post") ?></td>
645
</tr>
646
<tr>
647
<td align="right"><strong>%description%</strong></td>
648
- <td><?php _e("The excerpt of your post") ?></td>
649
</tr>
650
<tr>
651
<td align="right"><strong>%excerpt%</strong></td>
652
- <td><?php _e("The excerpt of your post") ?></td>
653
</tr>
654
<tr>
655
<td align="right"><strong>%address%</strong></td>
656
- <td><?php _e("The address of this point in the map") ?></td>
657
</tr>
658
<tr>
659
<td align="right"><strong>%open_map%</strong></td>
@@ -666,26 +881,13 @@ function gmshc_options_page() {
666
</table>
667
668
669
- <p class="submit">
670
- <input type="submit" name="Submit" value="Update" class="button-primary" /><input type="submit" name="Use_Default" value="<?php _e("Restore Default Html") ?>"/>
671
- </p>
672
-
673
- <h3 style="padding-top:30px; margin-top:30px; border-top:1px solid #CCCCCC;"><?php _e("How to Use") ?></h3>
674
- <p><?php _e("You can include a Google Map Shortcode everywhere") ?></p>
675
-
676
- <p><?php _e("In your post using: ") ?><strong>[google-map-sc option = "option value"]</strong></p>
677
- <p><?php _e("In your theme files using: ") ?><strong> echo do_shortcode ('[google-map-sc option = "option value"]') </strong></p>
678
-
679
-
680
- <h3 style="padding-top:30px; margin-top:30px; border-top:1px solid #CCCCCC;"><?php _e("Feedback") ?></h3>
681
-
682
- <p><?php _e('For more details and examples visite the <a href="http://web-argument.com/2011/07/18/google-map-shortcode-plugin-version-2-1">Plugin Page</a>. All the comments are welcome.') ?></p>
683
-
684
-
685
<p class="submit">
686
<input type="submit" name="Submit" value="Update" class="button-primary" /><input type="submit" name="Restore_Default" value="<?php _e("Restore Default") ?>" class="button" />
687
</p>
688
</form>
689
</div>
690
691
@@ -701,5 +903,26 @@ return array_merge($tabs, $newtab);
701
702
add_filter('media_upload_tabs', 'gmshc_media_menu');
703
704
705
?>
3
Plugin Name: Google Map Shortcode
4
Plugin URI: http://web-argument.com/google-map-shortcode-2-0-total-solution/
5
Description: Include Google Map in your blogs with just one click.
6
+ Version: 2.2
7
Author: Alain Gonzalez
8
Author URI: http://web-argument.com/
9
*/
10
11
define('GMSC_PLUGIN_DIR', WP_PLUGIN_DIR."/".dirname(plugin_basename(__FILE__)));
12
define('GMSC_PLUGIN_URL', WP_PLUGIN_URL."/".dirname(plugin_basename(__FILE__)));
13
+ define('GMSHC_VERSION_CURRENT','2.2');
14
+ define('GMSHC_VERSION_CHECK','2.2');
15
16
require(GMSC_PLUGIN_DIR."/include/functions.php");
17
require(GMSC_PLUGIN_DIR."/include/class.gmshc_point.php");
26
$gmshc_default = array(
27
'zoom' => '10',
28
'width' => '450',
29
+ 'height' => '450',
30
+ 'margin' => '10',
31
+ 'align' => 'center',
32
'language' => 'en',
33
'windowhtml' => gmshc_defaul_windowhtml(),
34
'icons' => array(),
35
'default_icon' => GMSC_PLUGIN_URL.'/images/icons/marker.png',
36
+ 'interval' => 5000,
37
+ 'focus' => '0',
38
+ 'type' => 'ROADMAP',
39
+ 'animate' => true,
40
+ 'focus_type' => 'open',
41
+ 'version' => GMSHC_VERSION_CURRENT
42
);
43
44
49
50
$options = get_option('gmshc_op');
51
if (isset($options)){
52
+ if (isset($options['version'])) {
53
$chk_version = version_compare(GMSHC_VERSION_CHECK,$options['version']);
54
if ($chk_version == 0) return $options;
55
else if ($chk_version > 0) $options = $gmshc_default;
74
$gmshc_header .= "<script src=\"http://maps.google.com/maps/api/js?sensor=false";
75
if(isset($language))
76
$gmshc_header .= "&language=".$language;
77
+ $gmshc_header .="\" type=\"text/javascript\"></script>\n";
78
+ $gmshc_header .= "<script type=\"text/javascript\" src=\"".GMSC_PLUGIN_URL."/js/gmshc.2.2.js\"></script>\n";
79
$gmshc_header .= "\n<!-- /Google Map Shortcode Version ".$options['version']."-->\n";
80
81
print($gmshc_header);
84
85
add_action('wp_head', 'gmshc_head');
86
87
+ /**
88
+ * Default Open Window Html
89
+ *
90
+ * Allows a plugin to replace the html that would otherwise be returned. The
91
+ * filter is 'gmshc_get_windowhtml' and passes the point.
92
+
93
+ * add_filter('gmshc_defaul_windowhtml','default_html',1,2);
94
+ *
95
+ * function default_html($windowhtml,$point){
96
+ * return "this is the address".$point->address;
97
+ * }
98
+ */
99
+ function gmshc_defaul_windowhtml(){
100
+
101
+ $defaul_gmshc_windowhtml = "";
102
+ $output = apply_filters('gmshc_defaul_windowhtml',$defaul_gmshc_windowhtml);
103
+
104
+ if ( $output != '' )
105
+ return $output;
106
+
107
+ $defaul_gmshc_windowhtml = "<div style='margin:0; padding:0px; height:125px; width:%width%; overflow:hidden; font-size:11px; clear:both; line-height:13px;'>\n";
108
+ $defaul_gmshc_windowhtml .= "<div style='float:left; width:200px'>\n";
109
+ $defaul_gmshc_windowhtml .= "<a class='title' href='%link%' style='clear:both; display:block; font-size:12px; line-height: 18px; font-weight:bold;'>%title%</a>\n";
110
+ $defaul_gmshc_windowhtml .= "<div><strong style='font-size:9px'>%address%</strong></div>\n";
111
+ $defaul_gmshc_windowhtml .= "<div style='font-size:10px'>%description%</div>\n";
112
+ $defaul_gmshc_windowhtml .= "<a href='%link%' style='font-size:11px; float:left; display:block'>more &raquo;</a>\n";
113
+ $defaul_gmshc_windowhtml .= "<img src='".GMSC_PLUGIN_URL."/images/open.jpg' style='float: right; margin-right:5px'/> \n";
114
+ $defaul_gmshc_windowhtml .= "<a href='%open_map%' target='_blank' style='font-size:11px; float: right; display:block;'>Open Map</a>\n";
115
+ $defaul_gmshc_windowhtml .= "</div>\n";
116
+ $defaul_gmshc_windowhtml .= "<div style='float:left'><a title='%link%' href='%link%'>%thubnail%</div></a>\n";
117
+ $defaul_gmshc_windowhtml .= "</div>\n";
118
+
119
+ return $defaul_gmshc_windowhtml;
120
+
121
+ }
122
+
123
+ /**
124
+ * The Sortcode
125
+ *
126
+ */
127
+ add_shortcode('google-map-sc', 'gmshc_sc');
128
+
129
+ function gmshc_sc($atts) {
130
+
131
+ global $post;
132
+ $options = get_gmshc_options();
133
+
134
+ $width = $options['width'];
135
+ $height = $options['height'];
136
+ $margin = $options['margin'];
137
+ $align = $options['align'];
138
+
139
+ $zoom = $options['zoom'];
140
+ $icon = $options['default_icon'];
141
+ $language = $options['language'];
142
+ $type = $options['type'];
143
+ $interval = $options['interval'];
144
+ $focus = $options['focus'];
145
+ $animate = $options['animate'];
146
+ $focus_type = $options['focus_type'];
147
+
148
+ // First Point in the post
149
+ $address_meta = get_post_meta($post -> ID, 'google-map-sc-address');
150
+ $point_meta = get_post_meta($post -> ID, 'google-map-sc-latlng');
151
+
152
+ $the_address = isset($address_meta[0]) ? $address_meta[0] : '';
153
+ $point = isset($point_meta[0]) ? $point_meta[0] : '';
154
+ $the_items = array();
155
+
156
+ $final_atts = shortcode_atts(array(
157
+ 'address' => '',
158
+ 'title' =>'',
159
+ 'description' => '',
160
+ 'icon' => $icon,
161
+ 'thumbnail' => '',
162
+ 'id' => '',
163
+ 'cat' => '',
164
+ 'zoom' => $zoom,
165
+ 'width' => $width,
166
+ 'height' => $height,
167
+ 'margin' => $margin,
168
+ 'align' => $align,
169
+ 'language' => $language,
170
+ 'type' => $type,
171
+ 'interval' => $interval,
172
+ 'focus' => $focus,
173
+ 'animate' => $animate,
174
+ 'focus_type' => $focus_type,
175
+ 'canvas' => ''
176
+ ), $atts);
177
+ extract($final_atts);
178
+
179
+ $map_points = array();
180
+
181
+ // When address is set
182
+ if (!empty($address)) {
183
+
184
+ //create single point object id = -1
185
+ $new_point = new GMSHC_Point();
186
+ if($new_point -> create_point($address,"",$title,$description,$icon,$thumbnail,-1,true)) $map_points[0]=$new_point;
187
+
188
+ // When id is set
189
+ } else if (!empty($id)) {
190
+ $post_points = new GMSHC_Post_Map();
191
+ $post_points -> create_post_map($id);
192
+ if ($post_points->points_number > 0) $map_points = $post_points->points;
193
+
194
+ } else if ($cat != '') {
195
+
196
+ $categories = split (",",$cat);
197
+ $j = 0;
198
+
199
+ $post_obj = get_posts(array('category__in'=>$categories,'numberposts'=>-1));
200
+ foreach ($post_obj as $post_item) {
201
+ //create points object by cat
202
+ $post_points = new GMSHC_Post_Map();
203
+
204
+ $post_points -> create_post_map($post_item->ID);
205
+ if ($post_points->points_number >0) {
206
+ foreach ($post_points->points as $point) {
207
+ array_push($map_points,$point);
208
+ }
209
+ }
210
+ }
211
+
212
+ } else {
213
+
214
+ //create points for the current post_id
215
+ $post_points = new GMSHC_Post_Map();
216
+ $post_points -> create_post_map($post->ID);
217
+ $map_points = $post_points->points;
218
+
219
+ }
220
+
221
+ //Map Point array filled
222
+ if ( count($map_points) > 0 ) {
223
+
224
+ //Generate Map form points
225
+ $output = gmshc_generate_map($map_points, $final_atts);
226
+ } else {
227
+ $output = __("There is not points to locate on the map");
228
+ }
229
+
230
+ return $output;
231
+ }
232
+
233
+
234
/**
235
* Google Map SC Editor Button
236
*/
270
$add_point = isset($_REQUEST['add_point']) ? $_REQUEST['add_point'] : '';
271
$del_point = isset($_REQUEST['delp']) ? $_REQUEST['delp'] : '';
272
$update_point = isset($_REQUEST['update']) ? $_REQUEST['update'] : '';
273
+
274
$width = isset($_REQUEST['width']) ? $_REQUEST['width'] : $options['width'];
275
$height = isset($_REQUEST['height']) ? $_REQUEST['height'] : $options['height'];
276
+ $margin = isset($_REQUEST['margin']) ? $_REQUEST['margin'] : $options['margin'];
277
+ $align = isset($_REQUEST['align']) ? $_REQUEST['align'] : $options['align'];
278
+
279
+ $zoom = isset($_REQUEST['zoom']) ? $_REQUEST['zoom'] : $options['zoom'];
280
+ $type = isset($_REQUEST['type']) ? $_REQUEST['type'] : $options['type'];
281
+
282
+ $focus = isset($_REQUEST['focus']) ? $_REQUEST['focus'] : $options['focus'];
283
+ $focus_type = isset($_REQUEST['focus_type']) ? $_REQUEST['focus_type'] : $options['focus_type'];
284
285
$address_list = isset($_REQUEST['addr']) ? gmshc_stripslashes_deep($_REQUEST['addr']) : "";
286
$title_list = isset($_REQUEST['title']) ? gmshc_stripslashes_deep($_REQUEST['title']) : "";
294
295
if (!empty($add_point)) {
296
$new_point = new GMSHC_Point();
297
+ if($new_point -> create_point($address,"",$title,$description,$icon,$selected_thumbnail,$post_id,true)){
298
$post_points -> add_point($new_point);
299
}
300
else
320
<link href="<?php echo GMSC_PLUGIN_URL ?>/styles/gmshc-admin-styles.css" rel="stylesheet" type="text/css"/>
321
322
<div style="width:620px; margin:10px auto">
323
+
324
+ <?php echo gmshc_plugin_menu(); ?>
325
326
<form action="#" method="post">
327
+ <input id="default_width" type="hidden" value="<?php echo $width ?>"/>
328
+ <input id="default_height" type="hidden" value="<?php echo $height ?>"/>
329
+ <input id="default_margin" type="hidden" value="<?php echo $margin ?>"/>
330
+ <input id="default_align" type="hidden" value="<?php echo $align ?>"/>
331
+ <input id="default_zoom" type="hidden" value="<?php echo $zoom ?>"/>
332
+ <input id="default_focus" type="hidden" value="<?php echo $focus ?>"/>
333
+ <input id="default_focus_type" type="hidden" value="<?php echo $focus_type ?>"/>
334
+ <input id="default_type" type="hidden" value="<?php echo $type ?>"/>
335
+
336
+ <table width="620" border="0" cellspacing="5" cellpadding="5">
337
<tr>
338
<td colspan="2">
339
+ <h3 class="gmshc_editor"><?php _e("Add New Point"); ?></h3>
340
</td>
341
</tr>
342
<tr>
375
if (count($thumbnail_list) > 0) {
376
?>
377
<div class="gmshc_label">
378
+ <?php _e("Select the thumbnail by clicking on the images"); ?>
379
</div>
380
<div id="gmshc_thumb_cont">
381
<input type="hidden" name="selected_thumbnail" value="<?php echo $default_icon ?>" id="selected_thumbnail" />
392
<?php } ?>
393
<p align="left"><a class="button" href = "?post_id=<?php echo $post_id ?>&type=image" title="Upload Images"><?php _e("Upload Images") ?></a></p>
394
</td>
395
+ </tr>
396
+ <?php if ($post_points->points_number > 0) { ?>
397
+ <tr>
398
+ <td colspan="2">
399
+ <h3 class="gmshc_editor"><?php _e("Map Configuration"); ?></h3>
400
+ </td>
401
+ </tr>
402
+ <tr>
403
+ <td align="right"><?php _e("Width"); ?></td>
404
+ <td valign="top"><input name="width" type="text" id="width" size="10" value = "<?php echo $width ?>"/></td>
405
+ </tr>
406
+ <tr>
407
+ <td align="right"><?php _e("Height"); ?></td>
408
+ <td valign="top"><input name="height" type="text" id="height" size="10" value = "<?php echo $height ?>" /></td>
409
+ </tr>
410
+ <tr>
411
+ <td align="right"><strong><?php _e("Margin") ?></strong></td>
412
+ <td><input name="margin" id="margin" type="text" size="6" value="<?php echo $margin ?>" /></td>
413
+ </tr>
414
+ <tr>
415
+ <td align="right"><strong><?php _e("Align") ?></strong></td>
416
+ <td>
417
+ <input name="align" type="radio" id="aleft" value="left" <?php echo ($align == "left" ? "checked = 'checked'" : "") ?> /> <?php _e("left") ?>
418
+ <input name="align" type="radio" id="acenter" value="center" <?php echo ($align == "center" ? "checked = 'checked'" : "") ?> /> <?php _e("center") ?>
419
+ <input name="align" type="radio" id="aright" value="right" <?php echo ($align == "right" ? "checked = 'checked'" : "") ?> /> <?php _e("right") ?>
420
+ </tr>
421
+ <tr>
422
+ <td align="right"><?php _e("Zoom") ?></td>
423
+ <td>
424
+ <select name="zoom" id="zoom">
425
+ <?php for ($i = 0; $i <= 20; $i ++){ ?>
426
+ <option value="<?php echo $i ?>" <?php echo ($i == $zoom ? "selected" : "") ?> ><?php echo $i ?></option>
427
+ <?php } ?>
428
+ </select>
429
+ </tr>
430
+ <tr>
431
+ <td align="right"><?php _e("Maps Type") ?></td>
432
+ <td>
433
+ <select name="type" id="type">
434
+ <option value="ROADMAP" <?php if ($type == "ROADMAP") echo "selected" ?>><?php _e("ROADMAP - Displays a normal street map") ?></option>
435
+ <option value="SATELLITE" <?php if ($type == "SATELLITE") echo "selected" ?>><?php _e("SATELLITE - Displays satellite images") ?></option>
436
+ <option value="TERRAIN" <?php if ($type == "TERRAIN") echo "selected" ?>><?php _e("TERRAIN - Displays maps with physical features such as terrain and vegetation") ?></option>
437
+ <option value="HYBRID" <?php if ($type == "HYBRID") echo "selected" ?>><?php _e("HYBRID - Displays a transparent layer of major streets on satellite images") ?></option>
438
+ </select>
439
+ </td>
440
+ </tr>
441
+ <tr>
442
+ <td align="right"><?php _e("Focus") ?></td>
443
+ <td>
444
+ <select name="focus" id="focus">
445
+ <option value="0" <?php if ($focus == 0) echo "selected" ?>><?php _e("None") ?></option>
446
+ <?php if ($post_points->points_number > 1) { ?>
447
+ <option value="all" <?php if ($focus == "all") echo "selected" ?>><?php _e("All") ?></option>
448
+ <?php } ?>
449
+ <?php for ($i = 1; $i <= $post_points->points_number; $i ++){ ?>
450
+ <?php $number = $i; ?>
451
+ <option value="<?php echo $number ?>" <?php if ($focus == $number) echo "selected" ?>><?php echo $number ?></option>
452
+ <?php } ?>
453
+ </select>
454
+ <em><?php _e("Select the point to be focused after loading the map") ?></em>
455
+ </td>
456
+ </tr>
457
+ <tr>
458
+ <td align="right" valign="top"><?php _e("Focus Type") ?></td>
459
+ <td>
460
+ <select name="focus_type" id="focus_type">
461
+ <option value="open" <?php echo ($focus_type == "open" ? "selected" : "") ?> ><?php _e("Open Markers") ?></option>
462
+ <option value="center" <?php echo ($focus_type == "center" ? "selected" : "") ?> ><?php _e("Center Markers") ?></option>
463
+ </select>
464
+ </td>
465
+ </tr>
466
+ <?php } ?>
467
</table>
468
469
+ <p>
470
+ <input class="button-primary" value="<?php _e("Add Point") ?>" name="add_point" type="submit">
471
+ <?php if ($post_points->points_number > 0) { ?>
472
+ <input class="button-primary insert_map" value="<?php _e('Insert Map'); ?>" type="button" \>
473
+ <?php echo $post_points->points_number.__(" Points Added") ?>
474
+ <?php } ?>
475
+
476
+ </p>
477
478
<?php
479
if ( count($post_points -> points) > 0 ){
528
</tbody>
529
</table>
530
531
+ <p><input class="button-primary insert_map" value="<?php _e("Insert Map"); ?>" type="button" \> <a class="button" href="#gmshc_map" id="gmshc_show" show="<?php _e("Show Map") ?>" hide="<?php _e("Hide Map") ?>"><?php _e("Show Map") ?></a></p>
532
</div>
533
<div id="gmshc_map" style="height:1px; overflow:hidden;">
534
+ <?php echo do_shortcode("[google-map-sc id=".$post_id." width=600 height=420 type=".$type." focus=".$focus."]"); ?>
535
</div>
536
<br />
537
<?php } ?>
541
<?php
542
}
543
544
/**
545
* Settings
546
*/
575
<div class="wrap">
576
577
<h2><?php _e("Google Map Shortcode Settings") ?></h2>
578
+
579
+ <?php echo gmshc_plugin_menu(); ?>
580
581
<?php
582
584
585
$newoptions['width'] = isset($_POST['width'])?$_POST['width']:$options['width'];
586
$newoptions['height'] = isset($_POST['height'])?$_POST['height']:$options['height'];
587
+ $newoptions['margin'] = isset($_POST['margin'])?$_POST['margin']:$options['margin'];
588
+ $newoptions['align'] = isset($_POST['align'])?$_POST['align']:$options['align'];
589
+
590
$newoptions['zoom'] = isset($_POST['zoom'])?$_POST['zoom']:$options['zoom'];
591
$newoptions['language'] = isset($_POST['language'])?$_POST['language']:$options['language'];
592
+ $newoptions['type'] = isset($_POST['type'])?$_POST['type']:$options['type'];
593
+ $newoptions['interval'] = isset($_POST['interval'])?$_POST['interval']:$options['interval'];
594
+ $newoptions['focus'] = isset($_POST['focus'])?$_POST['focus']:"0";
595
+ $newoptions['animate'] = isset($_POST['animate'])?$_POST['animate']:false;
596
+ $newoptions['focus_type'] = isset($_POST['focus_type'])?$_POST['focus_type']:"open";
597
+
598
$newoptions['windowhtml'] = isset($_POST['windowhtml'])? $_POST['windowhtml']:$options['windowhtml'];
599
600
$newoptions['default_icon'] = isset($_POST['default_icon'])?$_POST['default_icon']:$options['default_icon'];
601
$newoptions['icons'] = $options['icons'];
602
603
+ $newoptions['version'] = $options['version'];
604
+
605
if ( $options != $newoptions ) {
606
$options = $newoptions;
607
update_option('gmshc_op', $options);
608
+ }
609
610
}
611
614
$options['windowhtml'] = gmshc_defaul_windowhtml();
615
update_option('gmshc_op', $options);
616
617
+ }
618
+
619
$upload_icons = $options['icons'];
620
621
if(isset($_POST['upload'])) {
641
642
$width = $options['width'];
643
$height = $options['height'];
644
+ $margin = $options['margin'];
645
+ $align = $options['align'];
646
+
647
$zoom = $options['zoom'];
648
$language = $options['language'];
649
+ $type = $options['type'];
650
+
651
+ $interval = $options['interval'];
652
+ $focus = $options['focus'];
653
+ $animate = $options['animate'];
654
+ $focus_type = $options['focus_type'];
655
+
656
$windowhtml = $options['windowhtml'];
657
$default_icon = $options['default_icon'];
658
+
659
?>
660
661
<form method="POST" name="options" target="_self" enctype="multipart/form-data">
662
663
+ <h3><?php _e("Maps Default Configuration") ?></h3>
664
665
+ <p><?php _e("The shortcode attributes overwrites these options.") ?></p>
666
667
+ <table width="80%" border="0" cellspacing="10" cellpadding="0">
668
<tr>
669
+ <td width="200" align="right" height="40"><strong><?php _e("Width") ?></strong></td>
670
<td><input name="width" type="text" size="6" value="<?php echo $width ?>" /></td>
671
</tr>
672
<tr>
673
+ <td align="right"><strong><?php _e("Height") ?></strong></td>
674
<td><input name="height" type="text" size="6" value="<?php echo $height ?>" /></td>
675
</tr>
676
<tr>
677
+ <td align="right"><strong><?php _e("Margin") ?></strong></td>
678
+ <td><input name="margin" type="text" size="6" value="<?php echo $margin ?>" /></td>
679
</tr>
680
<tr>
681
+ <td align="right"><strong><?php _e("Align") ?></strong></td>
682
+ <td>
683
+ <input name="align" type="radio" value="left" <?php echo ($align == "left" ? "checked = 'checked'" : "") ?> /> <?php _e("left") ?>
684
+ <input name="align" type="radio" value="center" <?php echo ($align == "center" ? "checked = 'checked'" : "") ?> /> <?php _e("center") ?>
685
+ <input name="align" type="radio" value="right" <?php echo ($align == "right" ? "checked = 'checked'" : "") ?> /> <?php _e("right") ?>
686
+ </tr>
687
<tr>
688
+ <td align="right"><strong><?php _e("Zoom") ?></strong></td>
689
+ <td>
690
+ <select name="zoom" id="zoom">
691
+ <?php for ($i = 0; $i <= 20; $i ++){ ?>
692
+ <option value="<?php echo $i ?>" <?php echo ($i == $zoom ? "selected" : "") ?> ><?php echo $i ?></option>
693
+ <?php } ?>
694
+ </select>
695
+ </tr>
696
<tr>
697
+ <td align="right"><strong><?php _e("Maps Default Type") ?></strong></td>
698
+ <td>
699
+ <select name="type">
700
+ <option value="ROADMAP" <?php if ($type == "ROADMAP") echo "selected" ?>><?php _e("ROADMAP - Displays a normal street map") ?></option>
701
+ <option value="SATELLITE" <?php if ($type == "SATELLITE") echo "selected" ?>><?php _e("SATELLITE - Displays satellite images") ?></option>
702
+ <option value="TERRAIN" <?php if ($type == "TERRAIN") echo "selected" ?>><?php _e("TERRAIN - Displays maps with physical features such as terrain and vegetation") ?></option>
703
+ <option value="HYBRID" <?php if ($type == "HYBRID") echo "selected" ?>><?php _e("HYBRID - Displays a transparent layer of major streets on satellite images") ?></option>
704
+ </select>
705
+ </td>
706
+ </tr>
707
<tr>
708
+ <td align="right" valign="top"><strong><?php _e("Select Language") ?></strong></td>
709
<td>
710
<?php
711
$lang_array = array(
712
+ "ar"=>__("ARABIC"),
713
+ "eu"=>__("BASQUE"),
714
+ "bg"=>__("BULGARIAN"),
715
+ "bn"=>__("BENGALI"),
716
+ "ca"=>__("CATALAN"),
717
+ "cs"=>__("CZECH"),
718
+ "da"=>__("DANISH"),
719
+ "de"=>__("GERMAN"),
720
+ "el"=>__("GREEK"),
721
+ "en"=>__("ENGLISH"),
722
+ "en-AU"=>__("ENGLISH (AUSTRALIAN)"),
723
+ "en-GB"=>__("ENGLISH (GREAT BRITAIN)"),
724
+ "es"=>__("SPANISH"),
725
+ "eu"=>__("BASQUE"),
726
+ "fa"=>__("FARSI"),
727
+ "fi"=>__("FINNISH"),
728
+ "fil"=>__("FILIPINO"),
729
+ "fr"=>__("FRENCH"),
730
+ "gl"=>__("GALICIAN"),
731
+ "gu"=>__("GUJARATI"),
732
+ "hi"=>__("HINDI"),
733
+ "hr"=>__("CROATIAN"),
734
+ "hu"=>__("HUNGARIAN"),
735
+ "id"=>__("INDONESIAN"),
736
+ "it"=>__("ITALIAN"),
737
+ "iw"=>__("HEBREW"),
738
+ "ja"=>__("JAPANESE"),
739
+ "kn"=>__("KANNADA"),
740
+ "ko"=>__("KOREAN"),
741
+ "lt"=>__("LITHUANIAN"),
742
+ "lv"=>__("LATVIAN"),
743
+ "ml"=>__("MALAYALAM"),
744
+ "mr"=>__("MARATHI"),
745
+ "nl"=>__("DUTCH"),
746
+ "no"=>__("NORWEGIAN"),
747
+ "or"=>__("ORIYA"),
748
+ "pl"=>__("POLISH"),
749
+ "pt"=>__("PORTUGUESE"),
750
+ "pt-BR"=>__("PORTUGUESE (BRAZIL)"),
751
+ "pt-PT"=>__("PORTUGUESE (PORTUGAL)"),
752
+ "ro"=>__("ROMANIAN"),
753
+ "ru"=>__("RUSSIAN"),
754
+ "sk"=>__("SLOVAK"),
755
+ "sl"=>__("SLOVENIAN"),
756
+ "sr"=>__("SERBIAN"),
757
+ "sv"=>__("SWEDISH"),
758
+ "tl"=>__("TAGALOG"),
759
+ "ta"=>__("TAMIL"),
760
+ "te"=>__("TELUGU"),
761
+ "th"=>__("THAI"),
762
+ "tr"=>__("TURKISH"),
763
+ "uk"=>__("UKRAINIAN"),
764
+ "vi"=>__("VIETNAMESE"),
765
+ "zh-CN"=>__("CHINESE (SIMPLIFIED)"),
766
+ "zh-TW"=>__("CHINESE (TRADITIONAL)")
767
768
);
769
?>
773
<?php } ?>
774
</select>
775
</td>
776
+ </tr>
777
+ <tr>
778
+ <td align="right" valign="top"><strong><?php _e("Circle") ?></strong></td>
779
+
780
+ <td><input name="focus" type="checkbox" value="all" <?php if ($focus == "all") echo "checked = \"checked\"" ?> /> <?php _e(" Check if you want to focus all the map's points automatically with an interval of <br /><br />") ?><input name="interval" type="text" size="6" value="<?php echo $interval ?>" /> <?php _e("milliseconds.") ?></td>
781
+ </tr>
782
+ <tr>
783
+ <td align="right" valign="top"> <strong><?php _e("Focus Type") ?></strong></td>
784
+ <td>
785
+ <select name="focus_type" id="focus_type">
786
+ <option value="open" <?php echo ($focus_type == "open" ? "selected" : "") ?> ><?php _e("Open Markers") ?></option>
787
+ <option value="center" <?php echo ($focus_type == "center" ? "selected" : "") ?> ><?php _e("Center Markers") ?></option>
788
+ </select>
789
+ </td>
790
+ </tr>
791
+ <tr>
792
+ <td align="right" valign="top"> <strong><?php _e("Animation") ?></strong></td>
793
+ <td><input name="animate" type="checkbox" value="true" <?php if ($animate) echo "checked = \"checked\"" ?> /> <?php _e(" Check if you want to animate the markes.") ?></td>
794
+ </tr>
795
+ </table>
796
+
797
+ <p class="submit">
798
+ <input type="submit" name="Submit" value="Update" class="button-primary" />
799
+ </p>
800
+
801
+ <h3 style="padding-top:30px; margin-top:30px; border-top:1px solid #CCCCCC;"><?php _e("Markers") ?></h3>
802
+
803
+ <table width="80%" border="0" cellspacing="10" cellpadding="0">
804
+ <tr>
805
+ <td align="right" valign="top" colspan="2">
806
+
807
+ <?php gmshc_deploy_icons(); ?>
808
+
809
+ </td>
810
+ </tr>
811
+ <tr>
812
+ <td align="left" valign="top" colspan="2">
813
+ <?php _e("To include new icons just specify the file location:") ?><br />
814
+ <input type="file" name="datafile" size="40" /> <input type="submit" name="upload" value="Upload" class="button" />
815
+ </td>
816
+ </tr>
817
</table>
818
819
<p class="submit">
822
823
<h3 style="padding-top:30px; margin-top:30px; border-top:1px solid #CCCCCC;"><?php _e("Info Windows") ?></h3>
824
825
+ <p><?php _e("This is the html of the Info Window opened from the markers.") ?></p>
826
827
<div id="gmshc_html">
828
<div id="gmshc_previews">
829
+ <p><strong><?php _e("Previews") ?></strong></p>
830
<div id="gmshc_html_previews">
831
<?php echo gmshc_defaul_windowhtml(); ?>
832
</div>
833
</div>
834
+ <div id="gmshc_html_cont">
835
+ <p><strong><?php _e("Custom Html") ?></strong></p>
836
+ <textarea name="windowhtml" cols="60" rows="12" id="windowhtml">
837
+ <?php
838
+ if (empty($windowhtml)) echo gmshc_defaul_windowhtml();
839
+ else {
840
+ echo str_replace("\\", "",$windowhtml);
841
+ }
842
+ ?>
843
+ </textarea>
844
+ </div>
845
</div>
846
847
+ <p><?php _e("The following tags can be used.") ?></p>
848
+ <table width="80%" border="0" cellspacing="10" cellpadding="0">
849
<tr>
850
<td width="60" align="right"><strong>%title%</strong></td>
851
+ <td><?php _e("Custom title of the point") ?></td>
852
</tr>
853
<tr>
854
<td align="right"><strong>%link%</strong></td>
855
+ <td><?php _e("Permanet Link of the post where the point is attached") ?></td>
856
</tr>
857
<tr>
858
<td align="right"><strong>%thubnail%</strong></td>
859
+ <td><?php _e("Thubnail attached to the point") ?></td>
860
</tr>
861
<tr>
862
<td align="right"><strong>%description%</strong></td>
863
+ <td><?php _e("Description of the point") ?></td>
864
</tr>
865
<tr>
866
<td align="right"><strong>%excerpt%</strong></td>
867
+ <td><?php _e("Excerpt of the post where the point is attached") ?></td>
868
</tr>
869
<tr>
870
<td align="right"><strong>%address%</strong></td>
871
+ <td><?php _e("The address of this point") ?></td>
872
</tr>
873
<tr>
874
<td align="right"><strong>%open_map%</strong></td>
881
</table>
882
883
884
<p class="submit">
885
<input type="submit" name="Submit" value="Update" class="button-primary" /><input type="submit" name="Restore_Default" value="<?php _e("Restore Default") ?>" class="button" />
886
</p>
887
</form>
888
+
889
+ <?php echo gmshc_plugin_menu(); ?>
890
+
891
</div>
892
893
903
904
add_filter('media_upload_tabs', 'gmshc_media_menu');
905
906
+ function gmshc_plugin_menu(){
907
+
908
+ $links_arr = array(
909
+ array("text"=>__("Plugin Page"),"url"=>"http://web-argument.com/google-map-shortcode-wordpress-plugin/"),
910
+ array("text"=>__("How To Use"),"url"=>"http://web-argument.com/google-map-shortcode-how-to-use/"),
911
+ array("text"=>__("Shortcode Reference"),"url"=>"http://web-argument.com/google-map-shortcode-reference/"),
912
+ array("text"=>__("Examples"),"url"=>"http://web-argument.com/google-map-shortcode-wordpress-plugin/#examples"),
913
+ array("text"=>__("Donate"),"url"=>"https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=support%40web%2dargument%2ecom&lc=US&item_name=Web%2dArgument%2ecom&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted")
914
+ );
915
+
916
+ $output = "<p align='center' style='font-size:14px;'>";
917
+
918
+ foreach ($links_arr as $link){
919
+ $output .= "<a href=".$link['url']." target='_blank'>".$link['text']."</a> &nbsp; ";
920
+ }
921
+
922
+ $output .= "</p>";
923
+
924
+ return $output;
925
+
926
+ }
927
928
?>
images/icons/apple.png ADDED
Binary file
images/icons/bar.png ADDED
Binary file
images/icons/beautifulview.png ADDED
Binary file
images/icons/castle-2.png ADDED
Binary file
images/icons/chicken.png ADDED
Binary file
images/icons/cinema.png ADDED
Binary file
images/icons/coffee.png ADDED
Binary file
images/icons/cruiseship.png ADDED
Binary file
images/icons/deer.png ADDED
Binary file
images/icons/dogs_leash.png ADDED
Binary file
images/icons/field.png ADDED
Binary file
images/icons/hiking.png ADDED
Binary file
images/icons/hotel_0star.png ADDED
Binary file
images/icons/iceskating.png ADDED
Binary file
images/icons/information.png ADDED
Binary file
images/icons/jazzclub.png ADDED
Binary file
images/icons/love_date.png ADDED
Binary file
images/icons/notvisited.png ADDED
Binary file
images/icons/nursery.png ADDED
Binary file
images/icons/peace.png ADDED
Binary file
images/icons/pin.png ADDED
Binary file
images/icons/playground.png ADDED
Binary file
images/icons/snowy.png ADDED
Binary file
images/icons/sunny.png ADDED
Binary file
images/icons/teahouse.png ADDED
Binary file
images/icons/temple-2.png ADDED
Binary file
images/icons/watermill.png ADDED
Binary file
images/icons/yoga.png ADDED
Binary file
images/icons/zoo.png ADDED
Binary file
images/icons/zoom.png ADDED
Binary file
include/class.gmshc_point.php CHANGED
@@ -1,7 +1,7 @@
1
<?php
2
/**
3
* Google Map Shortcode
4
- * Version: 2.1
5
* Author: Alain Gonzalez
6
* Author URI: http://web-argument.com/
7
*/
@@ -16,7 +16,7 @@ class GMSHC_Point {
16
var $thumbnail;
17
var $post_id;
18
19
- function create_point($address,$ltlg,$title,$description,$icon,$thumbnail,$post_id,$check = true){
20
21
if(empty($address)) return false;
22
if ($check) {
1
<?php
2
/**
3
* Google Map Shortcode
4
+ * Version: 2.2
5
* Author: Alain Gonzalez
6
* Author URI: http://web-argument.com/
7
*/
16
var $thumbnail;
17
var $post_id;
18
19
+ function create_point($address,$ltlg,$title,$description,$icon,$thumbnail,$post_id,$check = false){
20
21
if(empty($address)) return false;
22
if ($check) {
include/class.gmshc_post_points.php CHANGED
@@ -1,7 +1,7 @@
1
<?php
2
/**
3
* Google Map Shortcode
4
- * Version: 2.1
5
* Author: Alain Gonzalez
6
* Author URI: http://web-argument.com/
7
*/
@@ -11,6 +11,7 @@ class GMSHC_Post_Map
11
var $post_id;
12
var $points = array();
13
var $post_data;
14
15
function create_post_map($id) {
16
$this->post_id = $id;
@@ -42,7 +43,7 @@ class GMSHC_Post_Map
42
$point = array();
43
foreach ($address_list as $id => $address){
44
$new_point = new GMSHC_Point();
45
- if($new_point->create_point($address,$ltlg_list[$id],$title_list[$id],$desc_list[$id],$icon_list[$id],$thumb_list[$id],$this->post_id,false)) {
46
array_push($new_points_array,$new_point);
47
}
48
else return false;
@@ -60,6 +61,7 @@ class GMSHC_Post_Map
60
61
function load_data(){
62
$this->points = gmshc_get_points($this->post_id);
63
$this->post_data = get_post_meta($this->post_id,'google-map-sc',true);
64
}
65
1
<?php
2
/**
3
* Google Map Shortcode
4
+ * Version: 2.2
5
* Author: Alain Gonzalez
6
* Author URI: http://web-argument.com/
7
*/
11
var $post_id;
12
var $points = array();
13
var $post_data;
14
+ var $points_number;
15
16
function create_post_map($id) {
17
$this->post_id = $id;
43
$point = array();
44
foreach ($address_list as $id => $address){
45
$new_point = new GMSHC_Point();
46
+ if($new_point->create_point($address,$ltlg_list[$id],$title_list[$id],$desc_list[$id],$icon_list[$id],$thumb_list[$id],$this->post_id)) {
47
array_push($new_points_array,$new_point);
48
}
49
else return false;
61
62
function load_data(){
63
$this->points = gmshc_get_points($this->post_id);
64
+ $this->points_number = count($this->points);
65
$this->post_data = get_post_meta($this->post_id,'google-map-sc',true);
66
}
67
include/functions.php CHANGED
@@ -1,40 +1,84 @@
1
<?php
2
/**
3
* Google Map Shortcode
4
- * Version: 2.1
5
* Author: Alain Gonzalez
6
* Author URI: http://web-argument.com/
7
*/
8
9
- function gmshc_generate_map($map_points, $width, $height, $zoom) {
10
11
- $canvas = "canvas_".wp_generate_password(4, false);
12
-
13
- $output ='<div id="'.$canvas.'" class = "gmsc" style="width:'.$width.'px; height:'.$height.'px; margin:10px auto"></div>';
14
$output .= "<script type=\"text/javascript\">\n";
15
-
16
- $output .= "var map_".$canvas.";\n";
17
$output .= "var map_points_".$canvas." = new Array();\n";
18
19
$i = 0;
20
21
- foreach ($map_points as $point){
22
23
- list($lat,$long) = explode(",",$point->ltlg);
24
$output .= "map_points_".$canvas."[".$i."] = \n";
25
$output .= "{\"address\":\"".$point->address."\",\n";
26
$output .= "\"lat\":\"".$lat."\",\n";
27
- $output .= "\"long\":\"".$long."\",\n";
28
$output .= "\"info\":\"".gmshc_get_windowhtml($point)."\",\n";
29
$output .= "\"icon\":\"".$point->icon."\"};\n";
30
$i ++;
31
32
}
33
- $output .= "addLoadEvent(function(){\n";
34
- $output .= "gmshc_render(\"".$canvas."\",map_points_".$canvas.", ".$zoom.");\n";
35
- $output .= "});\n";
36
- $output .= "</script>\n";
37
-
38
return $output;
39
}
40
@@ -42,14 +86,6 @@ function gmshc_generate_map($map_points, $width, $height, $zoom) {
42
/**
43
* Get the html info
44
*
45
- * Allows a plugin to replace the html that would otherwise be returned. The
46
- * filter is 'gmshc_get_windowhtml' and passes the point.
47
-
48
- * add_filter('gmshc_get_windowhtml','default_html',1,2);
49
- *
50
- * function default_html($windowhtml,$point){
51
- * return "this is the address".$point->address;
52
- * }
53
*/
54
55
function gmshc_get_windowhtml(&$point) {
@@ -67,7 +103,7 @@ function gmshc_get_windowhtml(&$point) {
67
$point_title = $point->title;
68
if (($point->post_id) > 0) $point_link = get_permalink($point->post_id);
69
else $point_link = "";
70
- $point_img_url = ($point->thumbnail != "")? $point->thumbnail : gmshc_post_thumb($point->post_id);
71
$point_excerpt = gmshc_get_excerpt($post_id);
72
$point_description = ($point->description != "") ? $point->description : $point_excerpt;
73
$point_address = $point->address;
@@ -119,21 +155,18 @@ function gmshc_all_post_thumb($the_parent){
119
endforeach;
120
endif;
121
122
- return $images_url;
123
-
124
}
125
126
-
127
-
128
/**
129
* Get the thumbnail from post
130
*/
131
- function gmshc_post_thumb($the_parent){
132
133
if( function_exists('has_post_thumbnail') && has_post_thumbnail($the_parent)) {
134
$thumbnail_id = get_post_thumbnail_id( $the_parent );
135
if(!empty($thumbnail_id))
136
- $img = wp_get_attachment_image_src( $thumbnail_id, 'thumbnail' );
137
} else {
138
$attachments = get_children( array(
139
'post_parent' => $the_parent,
@@ -144,12 +177,11 @@ function gmshc_post_thumb($the_parent){
144
'numberposts' => 1) );
145
if($attachments == true) :
146
foreach($attachments as $id => $attachment) :
147
- $img = wp_get_attachment_image_src($id, 'thumbnail');
148
endforeach;
149
endif;
150
}
151
- if (isset($img[0])) return $img[0];
152
-
153
}
154
155
/**
@@ -204,8 +236,8 @@ function gmshc_deploy_icons(){
204
}
205
}
206
?>
207
- <div class="gmshc_label">
208
- <strong><?php _e("Marker: "); ?></strong><?php _e("Select by clicking on the images"); ?>
209
</div>
210
<div id="gmshc_icon_cont">
211
<input type="hidden" name="default_icon" value="<?php echo $default_icon ?>" id="default_icon" />
1
<?php
2
/**
3
* Google Map Shortcode
4
+ * Version: 2.2
5
* Author: Alain Gonzalez
6
* Author URI: http://web-argument.com/
7
*/
8
9
+ /**
10
+ * Generating Map
11
+ *
12
+ */
13
+ function gmshc_generate_map($map_points, $atts) {
14
15
+ extract($atts);
16
+ if ($canvas == "") $canvas = "canvas_".wp_generate_password(4, false);
17
+
18
+ $output ='<div id="'.$canvas.'" class = "gmsc" style="width:'.$width.'px; height:'.$height.'px; ';
19
+ switch ($align) {
20
+ case "left" :
21
+ $output .= 'float:left; margin:'.$margin.'px;"';
22
+ break;
23
+ case "right" :
24
+ $output .= 'float:right; margin:'.$margin.'px;"';
25
+ break;
26
+ case "center" :
27
+ $output .= 'clear:both; overflow:hidden; margin:'.$margin.'px auto;"';
28
+ break;
29
+ }
30
+
31
+ $output .= "></div>";
32
$output .= "<script type=\"text/javascript\">\n";
33
$output .= "var map_points_".$canvas." = new Array();\n";
34
35
$i = 0;
36
37
+ foreach ($map_points as $point){
38
+
39
+ $post_categories = wp_get_post_categories( $point->post_id );
40
+ $terms = implode(",",$post_categories);
41
42
+ list($lat,$lng) = explode(",",$point->ltlg);
43
$output .= "map_points_".$canvas."[".$i."] = \n";
44
$output .= "{\"address\":\"".$point->address."\",\n";
45
$output .= "\"lat\":\"".$lat."\",\n";
46
+ $output .= "\"lng\":\"".$lng."\",\n";
47
$output .= "\"info\":\"".gmshc_get_windowhtml($point)."\",\n";
48
+ $output .= "\"cat\":\"".$terms."\",\n";
49
$output .= "\"icon\":\"".$point->icon."\"};\n";
50
$i ++;
51
52
}
53
+
54
+ $output .= "var options_".$canvas." = {\n";
55
+ $output .= "'zoom':".$zoom.",\n";
56
+ $output .= "'markers':map_points_".$canvas.",\n";
57
+ $output .= "'mapContainer':'".$canvas."',\n";
58
+ $output .= "'focusType':'".$focus_type."',\n";
59
+ $output .= "'type':'".$type."',\n";
60
+
61
+ switch ($focus) {
62
+ case "all" :
63
+ $output .= "'circle':true,\n";
64
+ break;
65
+ case "0" :
66
+ break;
67
+ default:
68
+ $output .= "'focusPoint':".($focus-1).",\n";
69
+ }
70
+
71
+ $output .= "'animateMarkers':".$animate.",\n";
72
+ $output .= "'interval':'".$interval."'\n";
73
+ $output .= "};\n";
74
+
75
+ $output .= "var map_".$canvas." = new gmshc.Map(options_".$canvas.");\n";
76
+ $output .= "var trigger_".$canvas." = function(){map_".$canvas.".init()};\n";
77
+ $output .= "gmshc.addLoadEvent(trigger_".$canvas.");\n";
78
+ $output .= "</script>\n";
79
+
80
+ $output = apply_filters('gmshc_generate_map',$output,$map_points,$atts);
81
+
82
return $output;
83
}
84
86
/**
87
* Get the html info
88
*
89
*/
90
91
function gmshc_get_windowhtml(&$point) {
103
$point_title = $point->title;
104
if (($point->post_id) > 0) $point_link = get_permalink($point->post_id);
105
else $point_link = "";
106
+ $point_img_url = ($point->thumbnail != "")? $point->thumbnail : gmshc_post_img($point->post_id);
107
$point_excerpt = gmshc_get_excerpt($post_id);
108
$point_description = ($point->description != "") ? $point->description : $point_excerpt;
109
$point_address = $point->address;
155
endforeach;
156
endif;
157
158
+ return $images_url;
159
}
160
161
/**
162
* Get the thumbnail from post
163
*/
164
+ function gmshc_post_img($the_parent,$size = 'thumbnail'){
165
166
if( function_exists('has_post_thumbnail') && has_post_thumbnail($the_parent)) {
167
$thumbnail_id = get_post_thumbnail_id( $the_parent );
168
if(!empty($thumbnail_id))
169
+ $img = wp_get_attachment_image_src( $thumbnail_id, $size );
170
} else {
171
$attachments = get_children( array(
172
'post_parent' => $the_parent,
177
'numberposts' => 1) );
178
if($attachments == true) :
179
foreach($attachments as $id => $attachment) :
180
+ $img = wp_get_attachment_image_src($id, $size);
181
endforeach;
182
endif;
183
}
184
+ if (isset($img[0])) return $img[0];
185
}
186
187
/**
236
}
237
}
238
?>
239
+ <div class="gmshc_label">
240
+ <?php _e("Select the marker by clicking on the images"); ?>
241
</div>
242
<div id="gmshc_icon_cont">
243
<input type="hidden" name="default_icon" value="<?php echo $default_icon ?>" id="default_icon" />
js/gmshc-admin.js CHANGED
@@ -19,11 +19,9 @@
19
$(this).css({"border":"solid #ffffff 1px"})
20
});
21
22
- $("#insert_map").click(function(){
23
-
24
gmshc_add_map();
25
- parent.tb_remove();
26
-
27
});
28
29
$("#gmshc_show").click(function(){
@@ -36,7 +34,15 @@
36
mapDiv.height("440");
37
mapBtn.text(mapBtn.attr("hide"));
38
}
39
- });
40
41
gmshc_update_editor_custom_field();
42
@@ -51,24 +57,65 @@
51
}
52
53
function gmshc_add_map(){
54
- var width = $("#width").val();
55
- var height = $("#height").val();
56
- var zoom = $("#zoom").val();
57
-
58
- str = "[google-map-sc";
59
- if (width != '')
60
- str += " width="+width;
61
- if (height != '')
62
- str += " height="+height;
63
- if (zoom != '')
64
- str += " zoom="+zoom;
65
- str +="]";
66
-
67
var win = window.dialogArguments || opener || parent || top;
68
win.send_to_editor(str);
69
70
}
71
72
function gmshc_update_editor_custom_field(){
73
var mapData = $("#post_data").val();
74
jQueryParent = parent.jQuery;
19
$(this).css({"border":"solid #ffffff 1px"})
20
});
21
22
+ $(".insert_map").click(function(){
23
gmshc_add_map();
24
+ parent.tb_remove();
25
});
26
27
$("#gmshc_show").click(function(){
34
mapDiv.height("440");
35
mapBtn.text(mapBtn.attr("hide"));
36
}
37
+ });
38
+
39
+ $("#windowhtml").change(function(){
40
+ $("#gmshc_html_previews").html($(this).val());
41
+ });
42
+
43
+ var winHtml = $("#windowhtml").val();
44
+
45
+ $("#windowhtml").val($.trim(winHtml));
46
47
gmshc_update_editor_custom_field();
48
57
}
58
59
function gmshc_add_map(){
60
+
61
+ var str = gmshc_generate_sc();
62
var win = window.dialogArguments || opener || parent || top;
63
win.send_to_editor(str);
64
65
}
66
67
+ function gmshc_generate_sc(){
68
+
69
+ var width = $("#width").val();
70
+ var defaultWidth = $("#default_width").val();
71
+
72
+ var height = $("#height").val();
73
+ var defaultHeight = $("#default_height").val();
74
+
75
+ var margin = $("#margin").val();
76
+ var defaultMargin = $("#default_margin").val();
77
+
78
+ var align = "";
79
+ if($("#aleft").is(':checked')) align = "left";
80
+ else if($("#acenter").is(':checked')) align = "center";
81
+ else if ($("#aright").is(':checked')) align = "right";
82
+
83
+ var defaultAlign = $("#default_align").val();
84
+
85
+ var zoom = $("#zoom").val();
86
+ var defaultZoom = $("#default_zoom").val();
87
+
88
+ var type = $("#type").val();
89
+ var defaultType = $("#default_type").val();
90
+
91
+ var focusPoint = $("#focus").val();
92
+ var defaultFocusPoint = $("#default_focus").val();
93
+
94
+ var focusType = $("#focus_type").val();
95
+ var defaultFocusType= $("#default_focus_type").val();
96
+
97
+ str = "[google-map-sc";
98
+ if (width != defaultWidth)
99
+ str += " width=\""+width+"\"";
100
+ if (height != defaultHeight)
101
+ str += " height=\""+height+"\"";
102
+ if (margin != defaultMargin)
103
+ str += " margin=\""+margin+"\"";
104
+ if (align != defaultAlign)
105
+ str += " align=\""+align+"\"";
106
+ if (zoom != defaultZoom)
107
+ str += " zoom=\""+zoom+"\"";
108
+ if(type != defaultType)
109
+ str += " type=\""+type+"\"";
110
+ if(focusPoint != defaultFocusPoint)
111
+ str += " focus=\""+focusPoint+"\"";
112
+ if(focusType != defaultFocusType)
113
+ str += " focus_type=\""+focusType+"\"";
114
+ str +="]";
115
+
116
+ return str;
117
+ }
118
+
119
function gmshc_update_editor_custom_field(){
120
var mapData = $("#post_data").val();
121
jQueryParent = parent.jQuery;
js/gmshc-render.js DELETED
@@ -1,65 +0,0 @@
1
- /**
2
- * Google Map Shortcode
3
- * Version: 2.1
4
- * Author: Alain Gonzalez
5
- * Author URI: http://web-argument.com/
6
- */
7
-
8
- function gmshc_render(id,GMpointsArray,zoom) {
9
-
10
- var myOptions = {
11
- zoom: zoom,
12
- center: new google.maps.LatLng(GMpointsArray[0].lat,GMpointsArray[0].long),
13
- mapTypeId: google.maps.MapTypeId.ROADMAP
14
- }
15
- var map = new google.maps.Map(document.getElementById(id),myOptions);
16
-
17
- gmshc_placing(map,GMpointsArray);
18
-
19
- }
20
-
21
- function gmshc_placing (map, locations){
22
-
23
- //var infowindow;
24
-
25
- for (var i = 0; i < locations.length; i++){
26
-
27
- var location = locations[i];
28
-
29
- var marker = new google.maps.Marker({
30
- position: new google.maps.LatLng(location.lat, location.long),
31
- map: map,
32
- icon: new google.maps.MarkerImage(location.icon),
33
- title:location.address
34
- });
35
-
36
-
37
- gmshc_addListener(map, marker, location.info);
38
-
39
- }
40
- }
41
-
42
-
43
- function gmshc_addListener(map, marker, info){
44
-
45
- var infowindow = new google.maps.InfoWindow({
46
- maxWidth:340,
47
- content: info
48
- });
49
-
50
- google.maps.event.addListener(marker, 'click', function() { infowindow.open(map,marker); });
51
-
52
- }
53
-
54
- function addLoadEvent(func) {
55
- var oldonload = window.onload;
56
- if (typeof window.onload != 'function') {
57
- window.onload = func;
58
- }
59
- else {
60
- window.onload = function() {
61
- oldonload();
62
- func();
63
- }
64
- }
65
- }
js/gmshc.2.2.js ADDED
@@ -0,0 +1,277 @@
1
+ /**
2
+ * Google Map Shortcode
3
+ * Version: 2.2
4
+ * Author: Alain Gonzalez
5
+ * Author URI: http://web-argument.com/
6
+ */
7
+
8
+ var gmshc = {};
9
+
10
+ (function(){
11
+
12
+ gmshc.Map = function(settings){
13
+
14
+ this.markers = settings.markers;
15
+ this.mapContainer = document.getElementById(settings.mapContainer);
16
+ this.zoom = (typeof settings.zoom != "undefined")? settings.zoom : 10;
17
+ this.type = (typeof settings.type != "undefined")? settings.type : "ROADMAP";
18
+ this.circle = (typeof settings.circle != "undefined")? settings.circle : false;
19
+ this.interval = (typeof settings.interval != "undefined")? settings.interval : 4000;
20
+ this.afterTilesLoadedCallback = (typeof settings.afterTilesLoadedCallback != "undefined")? settings.afterTilesLoadedCallback : null;
21
+ this.focusPoint = (typeof settings.focusPoint != "undefined")? settings.focusPoint : null;
22
+ this.focusType = (typeof settings.focusType != "undefined")? settings.focusType : "open"; //center
23
+ this.animateMarkers = (typeof settings.animateMarkers != "undefined")? settings.animateMarkers : true;
24
+ this.afterOpenCallback = (typeof settings.afterOpenCallback != "undefined")? settings.afterOpenCallback : null;
25
+ this.afterCircle = (typeof settings.afterCircle != "undefined")? settings.afterCircle : null;
26
+
27
+ this.map = null;
28
+ this.markersObj = [];
29
+ this.infowindowObj = [];
30
+ this.intervalId = null;
31
+ this.openItem = 0;
32
+ this.openWindow = null;
33
+ this.pointsNumber = this.markers.length;
34
+ this.userInfoWindowOpen = false;
35
+ this.disableMap = false;
36
+
37
+ };
38
+
39
+ gmshc.Map.prototype.init = function() {
40
+
41
+ var firstLat = this.markers[0].lat;
42
+ var firstLong = this.markers[0].lng;
43
+ var firstLatLng = new google.maps.LatLng(firstLat, firstLong);
44
+
45
+ this.map = new google.maps.Map(this.mapContainer, {
46
+ zoom: this.zoom,
47
+ center: firstLatLng,
48
+ mapTypeId: google.maps.MapTypeId[this.type]
49
+ });
50
+
51
+ var map = this.map;
52
+ var avgLat = 0;
53
+ var avgLng = 0;
54
+
55
+ if(this.afterTilesLoadedCallback != null) {
56
+ google.maps.event.addListener(map, 'tilesloaded', this.afterTilesLoadedCallback);
57
+ }
58
+
59
+ for (var i = 0; i < this.pointsNumber; i++){
60
+
61
+ var location = this.markers[i];
62
+ var animate = (this.animateMarkers)? google.maps.Animation.DROP : null;
63
+ var marker = new google.maps.Marker({
64
+ position: new google.maps.LatLng(location.lat, location.lng),
65
+ map: map,
66
+ icon: new google.maps.MarkerImage(location.icon),
67
+ animation: animate,
68
+ title:location.address
69
+ });
70
+
71
+ marker.cat = location.cat;
72
+ this.markersObj.push(marker);
73
+
74
+ var infowindow = new google.maps.InfoWindow({
75
+ maxWidth:340,
76
+ content: location.info
77
+ });
78
+ this.infowindowObj.push(marker);
79
+
80
+ var closure_1 = this.Bind(this.openInfoWindow(infowindow, marker));
81
+ google.maps.event.addListener(marker, 'click', closure_1);
82
+
83
+ var closure_3 = this.Bind(this.MarkerMouseOverHandler(marker));
84
+ google.maps.event.addListener(marker, 'mouseover', closure_3);
85
+
86
+ var closure_5 = this.Bind(this.MarkerMouseOutHandler(marker));
87
+ google.maps.event.addListener(marker, 'mouseout', closure_5);
88
+
89
+ var closure_6 = this.Bind(this.MapMouseOverHandler());
90
+ google.maps.event.addListener(map,'mouseover',closure_6);
91
+
92
+ var closure_7 = this.Bind(this.MapMouseOutHandler());
93
+ google.maps.event.addListener(map,'mouseout',closure_7);
94
+
95
+ // Sum up all lat/lng to calculate center all points.
96
+ avgLat += Number(location.lat);
97
+ avgLng += Number(location.lng);
98
+ }
99
+
100
+ // Center map.
101
+ this.map.setCenter(new google.maps.LatLng(
102
+ avgLat / this.pointsNumber, avgLng / this.pointsNumber));
103
+
104
+ if(this.circle) this.Play();
105
+ if(this.focusPoint != null) {
106
+ if (this.focusType == "center") this.Center(this.focusPoint);
107
+ else this.Open(this.focusPoint);
108
+ }
109
+
110
+ };
111
+
112
+ gmshc.Map.prototype.openInfoWindow = function(infoWindow, marker) {
113
+ return function() {
114
+ if (this.openWindow != null) {
115
+ this.openWindow.close();
116
+ this.userInfoWindowOpen = false;
117
+ }
118
+ if (typeof user == "undefined") user = false;
119
+
120
+ this.openWindow = infoWindow;
121
+ infoWindow.open(this.map, marker);
122
+ var closure_4 = this.Bind(this.CloseInfoWindow(infoWindow));
123
+ google.maps.event.addListener(infoWindow, 'closeclick', closure_4);
124
+ this.userInfoWindowOpen = true;
125
+ if(this.afterOpenCallback != null) this.afterOpenCallback(marker);
126
+ };
127
+ };
128
+
129
+ gmshc.Map.prototype.CloseInfoWindow = function(infoWindow) {
130
+ return function() {
131
+ this.userInfoWindowOpen = false;
132
+ this.disableMap = false;
133
+ }
134
+ };
135
+
136
+ gmshc.Map.prototype.Rotate = function(){
137
+ var visibles = this.Visibles();
138
+ if (!visibles) {
139
+ return;
140
+ }
141
+ if (this.disableMap) return;
142
+ if (this.openItem >= this.markersObj.length) this.openItem = 0;
143
+ if (this.markersObj[this.openItem].getVisible()){
144
+ if (this.focusType == "center"){
145
+ if (this.userInfoWindowOpen) return;
146
+ var location = this.markers[this.openItem];
147
+ this.map.setCenter(new google.maps.LatLng(location.lat, location.lng));
148
+ if (this.animateMarkers) {
149
+ this.StopAllAnimations();
150
+ this.ToggleAnimation(this.markersObj[this.openItem],"BOUNCE");
151
+ }
152
+ } else {
153
+ google.maps.event.trigger(this.markersObj[this.openItem],'click');
154
+ }
155
+ if(this.afterCircle != null) this.afterCircle(this.markersObj[this.openItem], this.openItem);
156
+ this.openItem ++;
157
+ } else {
158
+ this.openItem ++;
159
+ this.Rotate();
160
+ }
161
+
162
+ return;
163
+ };
164
+
165
+ gmshc.Map.prototype.Visibles = function(){
166
+ for (var i = 0; i < this.markersObj.length; i++){
167
+ if (this.markersObj[i].getVisible()) return true;
168
+ }
169
+ };
170
+
171
+ gmshc.Map.prototype.ToggleAnimation = function(marker,type) {
172
+ marker.setAnimation(google.maps.Animation[type]);
173
+ };
174
+
175
+ gmshc.Map.prototype.StopAllAnimations = function(){
176
+ for (var i = 0; i < this.markersObj.length; i++){
177
+ this.markersObj[i].setAnimation(null);
178
+ }
179
+ };
180
+
181
+ gmshc.Map.prototype.Play = function(){
182
+ if (!this.circle) this.circle = true;
183
+ if ( this.pointsNumber > 1 ) {
184
+ var closure_2 = this.Bind(this.Rotate);
185
+ this.intervalId = setInterval(closure_2, this.interval);
186
+ } else {
187
+ this.Open(0);
188
+ }
189
+ };
190
+
191
+ gmshc.Map.prototype.Stop = function(){
192
+ if (this.circle) this.circle = false;
193
+ clearInterval(this.intervalId);
194
+ };
195
+
196
+ gmshc.Map.prototype.Open = function(point){
197
+ if (this.disableMap) return;
198
+ if (this.markersObj[point].getVisible())
199
+ google.maps.event.trigger(this.markersObj[point],'click');
200
+ };
201
+
202
+ gmshc.Map.prototype.Center = function(point){
203
+ if (this.disableMap) return;
204
+ if (this.markersObj[point].getVisible()) {
205
+ if(this.openWindow != null) this.openWindow.close();
206
+ var location = this.markers[point];
207
+ this.map.setCenter(new google.maps.LatLng(location.lat, location.lng));
208
+ if (this.animateMarkers != null) {
209
+ this.StopAllAnimations();
210
+ this.ToggleAnimation(this.markersObj[point],"BOUNCE");
211
+ }
212
+ }
213
+ };
214
+
215
+ gmshc.Map.prototype.ShowMarkers = function(cat,display){
216
+ if(this.openWindow != null) this.openWindow.close();
217
+ for (var i = 0; i < this.pointsNumber; i++){
218
+ var catList = this.markersObj[i].cat;
219
+ var catArray = catList.split(",");
220
+ for (var j = 0; j < catArray.length; j++){
221
+ if (Number(catArray[j]) == cat)
222
+ this.markersObj[i].setVisible(display);
223
+ }
224
+ }
225
+ };
226
+
227
+ gmshc.Map.prototype.MarkerMouseOverHandler = function(marker) {
228
+ return function() {
229
+ this.disableMap = true;
230
+ if (marker.getAnimation() != null) {
231
+ marker.setAnimation(null);
232
+ }
233
+ }
234
+ };
235
+
236
+ gmshc.Map.prototype.MarkerMouseOutHandler = function(marker) {
237
+ return function() {
238
+ if (!this.userInfoWindowOpen) this.disableMap = false;
239
+ }
240
+ };
241
+
242
+
243
+ gmshc.Map.prototype.MapMouseOverHandler = function(){
244
+ return function(){
245
+ this.disableMap = true;
246
+ }
247
+ }
248
+
249
+ gmshc.Map.prototype.MapMouseOutHandler = function(){
250
+ return function(){
251
+ this.disableMap = false;
252
+ }
253
+ }
254
+
255
+ gmshc.Map.prototype.Bind = function( Method ){
256
+ var _this = this;
257
+ return(
258
+ function(){
259
+ return( Method.apply( _this, arguments ) );
260
+ }
261
+ );
262
+ };
263
+
264
+ gmshc.addLoadEvent = function(func) {
265
+ var oldonload = window.onload;
266
+ if (typeof window.onload != 'function') {
267
+ window.onload = func;
268
+ }
269
+ else {
270
+ window.onload = function() {
271
+ oldonload();
272
+ func();
273
+ }
274
+ }
275
+ };
276
+
277
+ })();
readme.txt CHANGED
@@ -1,45 +1,38 @@
1
=== Google Map Shortcode ===
2
- Contributors: Alaingg
3
- Donate link: http://web-argument.com/2011/07/18/google-map-shortcode-plugin-version-2-1/
4
- Tags: google map, shortcode, map, categories, widget, post map, point, marker, list, location, address, images
5
Requires at least: 2.5
6
Tested up to: 3.2.1
7
- Stable tag: 2.1.2
8
-
9
- Real Friendly integration of Google Map instances into your blogs. Allows displaying multiple maps on your pages.
10
11
== Description ==
12
-
13
This plugin allows you to include instances of Google Map in your blogs with a simple editor button. You can insert maps everywhere: in your theme files, posts and pages. The points can include custom title, description, marker and thumbnail.
14
15
Special Features:
16
17
- * Editor button allows to include points and maps.
18
* Custom markers allowed.
19
* Based on Google Maps Javascript API Version 3.
20
* Faster and more applicable to mobile devices.
21
- * Open Google Map in new window - included to the html windows.
22
- * Post ID include as shortcode parameter.
23
- * Map in multiple languages.
24
- * Multiples points in a single map.
25
- * Multiples maps in a single page.
26
- * Show post-points under categories.
27
- * Allows to insert maps everywhere.
28
* The window box opened display part of the content of your posts like: post title, thumbnails, excerpt or a custom title description and thumbnail.
29
* You can customize the html of the info window box on the settings.
30
- * The shortcode allows different options to customize your maps like: initial zoom, width, height, categories, post ID, specific address, marker and thumbnail.
31
-
32
- For more details and examples visit the <a href="http://web-argument.com/2011/07/18/google-map-shortcode-plugin-version-2-1/">plugin page</a>.
33
34
== Installation ==
35
36
- 1. Upload 'Google Map Short Code' folder to the '/wp-content/plugins/' directory.
37
2. Activate the plugin through the 'Plugins' menu in WordPress.
38
- 3. Go to the Google Map Shortcode Options page under settings and save your prefered options.
39
- 4. Using the Google Map editor button insert the address and add the map into your posts/pages.
40
-
41
- == How to use ==
42
- Visit <a href="http://web-argument.com/2011/07/20/google-map-shortcode-how-to-use/">Google Map Shortcode - How to use</a>
43
44
== Screenshots ==
45
@@ -51,6 +44,14 @@ Visit <a href="http://web-argument.com/2011/07/20/google-map-shortcode-how-to-us
51
52
== Changelog ==
53
54
= 2.1.2 =
55
* Preview map added on the map editor panel.
56
@@ -83,6 +84,14 @@ Visit <a href="http://web-argument.com/2011/07/20/google-map-shortcode-how-to-us
83
* New custom field included in order to cache the Latitude and Longitude and avoid extra Google Geocoder requests.
84
* More than one point per post fixed.
85
86
- = 1.0.0 =
87
- * Initial release.
88
1
=== Google Map Shortcode ===
2
+ Contributors: alaingg
3
+ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=support%40web%2dargument%2ecom&lc=US&item_name=Web%2dArgument%2ecom&currency_code=USD&bn=PP%2dDonationsBF%3abtn_donate_SM%2egif%3aNonHosted
4
+ Tags: google maps, shortcode, map, maps, categories, widget, post map, point, marker, list, location, address, images, geocoder, google maps, animation
5
Requires at least: 2.5
6
Tested up to: 3.2.1
7
+ Stable tag: 2.2
8
9
+ Real Friendly integration of Google Map instances into your blogs. The plugin allows to display multiple maps on your pages.
10
== Description ==
11
This plugin allows you to include instances of Google Map in your blogs with a simple editor button. You can insert maps everywhere: in your theme files, posts and pages. The points can include custom title, description, marker and thumbnail.
12
13
+ [Plugin Page](http://web-argument.com/google-map-shortcode-wordpress-plugin/) | [Shortcode References](http://web-argument.com/google-map-shortcode-reference/) | [How To Use](http://web-argument.com/google-map-shortcode-how-to-use/) | [Examples](http://web-argument.com/google-map-shortcode-wordpress-plugin/#examples)
14
+
15
Special Features:
16
17
+ * The Editor button allows to include points and maps.
18
* Custom markers allowed.
19
* Based on Google Maps Javascript API Version 3.
20
* Faster and more applicable to mobile devices.
21
+ * Open Google Map in new window.
22
+ * Maps in multiple languages.
23
+ * Allows to deploy multiples maps in a single page.
24
+ * Points under post categories can be included.
25
+ * Allows to insert maps into the content and theme files.
26
* The window box opened display part of the content of your posts like: post title, thumbnails, excerpt or a custom title description and thumbnail.
27
* You can customize the html of the info window box on the settings.
28
+ * The plugin is based on Wordpress shortcode and allows many options like: initial zoom, width, height, categories, post ID, specific address, marker and thumbnail.
29
30
== Installation ==
31
32
+ 1. Upload 'Google Map Shortcode' folder to the '/wp-content/plugins/' directory.
33
2. Activate the plugin through the 'Plugins' menu in WordPress.
34
+ 3. Go to the Google Map Shortcode Options page under settings and save your preferred options.
35
+ 4. Using the Google Map editor button insert the address and add the map into your posts/pages.
36
37
== Screenshots ==
38
44
45
== Changelog ==
46
47
+ = 2.2 =
48
+ * Map type added.
49
+ * Marker animation option added.
50
+ * Focus option added.
51
+ * Maps marging and aligment added.
52
+ * Performance improved.
53
+ * More map languages included
54
+
55
= 2.1.2 =
56
* Preview map added on the map editor panel.
57
84
* New custom field included in order to cache the Latitude and Longitude and avoid extra Google Geocoder requests.
85
* More than one point per post fixed.
86
87
+ = 1.0.0 =
88
+ * Initial release.
89
+
90
+ == Upgrade Notice ==
91
92
+ = 2.2 =
93
+ This new version includes markers focus and animations and improves the performance.
94
+ __Note:__ Before upgrade save the custom HTML info because the new version will overwrite it.
95
+
96
+ == How to use ==
97
+ Visit the [How To Use](http://web-argument.com/google-map-shortcode-how-to-use/) section.
styles/gmshc-admin-styles.css CHANGED
@@ -6,11 +6,12 @@
6
*/
7
8
#gmshc_icon_cont {
9
- width:560px;
10
- height:88px;
11
float:left;
12
- overflow:auto;
13
- padding:5px
14
}
15
16
#gmshc_thumb_cont {
@@ -56,8 +57,9 @@
56
overflow:hidden;
57
}
58
59
- #gmshc_html textarea {
60
float:left;
61
}
62
63
#gmshc_previews {
@@ -69,4 +71,9 @@
69
#gmshc_html_previews {
70
border:solid 1px #CCC;
71
padding:10px;
72
}
6
*/
7
8
#gmshc_icon_cont {
9
+ width:578px;
10
+ height:126px;
11
float:left;
12
+ overflow-y:auto;
13
+ padding:2px;
14
+ border:solid #CCC 1px;
15
}
16
17
#gmshc_thumb_cont {
57
overflow:hidden;
58
}
59
60
+ #gmshc_html_cont{
61
float:left;
62
+ margin-left:20px;
63
}
64
65
#gmshc_previews {
71
#gmshc_html_previews {
72
border:solid 1px #CCC;
73
padding:10px;
74
+ }
75
+
76
+ h3.gmshc_editor{
77
+ padding:5px;
78
+ margin:0;
79
}