MapPress Easy Google Maps - Version 2.47.6

Version Description

  • Added: prevent javascript caching when upgrading from free to Pro
  • Added: enable gzip compression for AJAX data (depends on server settings)
  • Added: 'compatibility' setting to prevent loading maps API by other plugins/themes
  • Added: new layout with POIs on left. Use settings or [mashup layout="left"] for a single map
  • Added: shortcode 'center' can be a place or 'user' to geolocate, for example: [mashup center="new york"] or [mashup center="user"]
  • Changed: mashup query updated to improve performance
  • Changed: faster excerpts for mashup POIs
  • Changed: Pro update settings are now enabled by default
  • Changed: automatic centering zooms out less whenever possible (viewport padding reduced to zero)
  • Changed: clickableIcons defaulted to false (prevent clicks on Google landmarks)
  • Changed: removed extra code for xhtml validity checkers
  • Changed: updates to directions and template 'map-directions.php'
  • Changed: detection for Jetpack infinite scroll improved
Download this release

Release Info

Developer chrisvrichardson
Plugin Icon 128x128 MapPress Easy Google Maps
Version 2.47.6
Comparing to
See all releases

Code changes from version 2.47.5 to 2.47.6

css/mappress.css CHANGED
@@ -49,37 +49,37 @@
49
  /* Canvas */
50
  .mapp-canvas {
51
  height: 100%;
52
- margin: 0px; /* Plugin overrides, for map alignment */
53
  overflow: hidden !important;
54
  padding: 0px !important;
 
55
  word-wrap: normal; /* 2013 sets break-word, which interferes w/Google copyright in IE only */
56
  }
57
 
58
  .mapp-canvas img {
59
  background-color: transparent !important;
60
- max-width: 99999px !important; /* Some themes have max-width/max-height set, and some phones can't accept max-width: auto. */
 
 
61
  max-height: none !important;
62
- visibility: inherit !important;
63
- padding: 0px !important;
64
  margin: 0px !important;
65
- box-shadow: none !important; /* 2012 adds box shadow to all images */
66
- border-radius: 0px !important; /* 2012 adds border-radius to all images */
67
  }
68
 
69
- /* Loading dialog box */
70
  .mapp-dialog {
71
  background-color: white;
72
- border: 1px solid gray;
73
- border-radius: 5px;
74
- display: none;
75
- left: 50%;
76
- padding: 10px 10px 10px 0px;
77
  position: absolute;
78
- top: 29px;
79
- transform: translateX(-50%);
80
  z-index: 1;
81
  }
82
 
 
83
  .mapp-dialog .mapp-spinner {
84
  display: inline-block;
85
  }
@@ -96,17 +96,22 @@
96
  overflow: hidden;
97
  }
98
 
99
-
100
- .mapp-header .mapp-filters-toggle {
101
- line-height: 34px;
 
 
102
  margin-left: 5px;
103
- padding-left: 10px;
 
 
 
104
  }
105
 
106
  .mapp-search-wrapper {
107
- max-width: 450px;
108
  padding: 2px;
109
  }
 
110
  /*
111
  -----------------------------------------------------------------------------------
112
  Search
@@ -242,7 +247,7 @@
242
  /* Override theme link styles */
243
  .mapp-iw a, .mapp-iw a:link, .mapp-iw a:active, .mapp-iw a:visited, .mapp-iw a:hover {
244
  border: none !important;
245
- box-shadow: none; /* 2016 */
246
  color: #4272db !important;
247
  text-decoration: none !important;
248
  }
@@ -259,8 +264,7 @@
259
 
260
  .mapp-ib {
261
  background-color: white;
262
- border: 1px solid lightgray;
263
- box-shadow: 1px 1px 1px #888;
264
  box-sizing: border-box;
265
  display: none;
266
  outline: none;
@@ -283,7 +287,6 @@
283
  border-left: 10px solid transparent;
284
  border-right: 10px solid transparent;
285
  border-bottom: none;
286
- filter: drop-shadow(1px 1px 1px #888);
287
  margin-left: -10px;
288
  margin-top: -2px;
289
  padding: 0;
@@ -312,19 +315,6 @@
312
  z-index: 1;
313
  }
314
 
315
- .mapp-inline .mapp-list .mapp-items {
316
- border-top: 1px solid lightgray;
317
- max-height: 300px;
318
- }
319
-
320
- .mapp-left .mapp-list {
321
- border-right: 1px solid lightgray;
322
- float: left;
323
- height: 100%;
324
- max-width: 250px;
325
- width: 35%;
326
- }
327
-
328
  .mapp-list .mapp-items {
329
  height: 100%;
330
  overflow: auto;
@@ -390,6 +380,69 @@
390
  color: black;
391
  }
392
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
393
 
394
  /*
395
  -----------------------------------------------------------------------------------
@@ -431,7 +484,7 @@
431
  margin: 10px 0 0px 0 ;
432
  }
433
 
434
- .mapp-dir-saddr, .mapp-dir-daddr {
435
  width: 80% ;
436
  line-height: normal ;
437
  }
@@ -449,30 +502,6 @@
449
  .mapp-dir-a { width: 24px; height: 24px; background-position: 0px -140px; }
450
  .mapp-dir-b { width: 24px; height: 24px; background-position: 0px -71px; }
451
 
452
-
453
- /*
454
- -----------------------------------------------------------------------------------
455
- Views
456
- -----------------------------------------------------------------------------------
457
- */
458
-
459
- .mapp-view-filters .mapp-filters {
460
- display: block;
461
- }
462
-
463
- .mapp-view-menu .mapp-menu {
464
- display: block;
465
- }
466
-
467
- .mapp-view-directions .mapp-directions {
468
- display: block;
469
- }
470
-
471
- .mapp-view-directions .mapp-list {
472
- display: none;
473
- }
474
-
475
-
476
  /*
477
  -----------------------------------------------------------------------------------
478
  Custom controls
@@ -580,7 +609,6 @@
580
  color: black;
581
  }
582
 
583
- /* Icons */
584
  img.mapp-icon {
585
  max-width: 24px !important; /* 2012 tries to override */
586
  max-height: 24px;
@@ -588,7 +616,6 @@ img.mapp-icon {
588
  box-shadow: none !important; /* 2012 applies box shadow to all images */
589
  }
590
 
591
- /* Error messages, e.g. invalid address */
592
  .mapp-error {
593
  background-color: #ffebe8;
594
  margin: 0;
@@ -609,12 +636,10 @@ img.mapp-icon {
609
  cursor: pointer;
610
  }
611
 
612
- /* Max-size element */
613
  .mapp-max {
614
  width: 100%;
615
  }
616
 
617
- /* Caret */
618
  .mapp-caret:after {
619
  content: "";
620
  display: inline-block;
49
  /* Canvas */
50
  .mapp-canvas {
51
  height: 100%;
52
+ margin: 0px;
53
  overflow: hidden !important;
54
  padding: 0px !important;
55
+ position: relative; /* Need for initial dialog position */
56
  word-wrap: normal; /* 2013 sets break-word, which interferes w/Google copyright in IE only */
57
  }
58
 
59
  .mapp-canvas img {
60
  background-color: transparent !important;
61
+ box-shadow: none !important; /* 2012 */
62
+ border-radius: 0px !important; /* 2012 */
63
+ max-width: 99999px !important; /* Themes have max-width/max-height set, and some phones can't accept max-width: auto. */
64
  max-height: none !important;
 
 
65
  margin: 0px !important;
66
+ padding: 0px !important;
67
+ visibility: inherit !important;
68
  }
69
 
 
70
  .mapp-dialog {
71
  background-color: white;
72
+ color: black;
73
+ min-height: 40px;
74
+ opacity: .95;
75
+ padding: 10px;
 
76
  position: absolute;
77
+ text-align: center;
78
+ top: 0; left: 0; right: 0;
79
  z-index: 1;
80
  }
81
 
82
+
83
  .mapp-dialog .mapp-spinner {
84
  display: inline-block;
85
  }
96
  overflow: hidden;
97
  }
98
 
99
+ .mapp-header-button {
100
+ border-left: 1px solid lightgray;
101
+ cursor: pointer;
102
+ float: right;
103
+ line-height: 40px;
104
  margin-left: 5px;
105
+ min-width: 70px;
106
+ padding: 0 5px 0 5px;
107
+ text-align: center;
108
+ text-transform: uppercase;
109
  }
110
 
111
  .mapp-search-wrapper {
 
112
  padding: 2px;
113
  }
114
+
115
  /*
116
  -----------------------------------------------------------------------------------
117
  Search
247
  /* Override theme link styles */
248
  .mapp-iw a, .mapp-iw a:link, .mapp-iw a:active, .mapp-iw a:visited, .mapp-iw a:hover {
249
  border: none !important;
250
+ box-shadow: none !important; /* 2016, 2017 */
251
  color: #4272db !important;
252
  text-decoration: none !important;
253
  }
264
 
265
  .mapp-ib {
266
  background-color: white;
267
+ box-shadow: 1px 1px 1px 1px #888;
 
268
  box-sizing: border-box;
269
  display: none;
270
  outline: none;
287
  border-left: 10px solid transparent;
288
  border-right: 10px solid transparent;
289
  border-bottom: none;
 
290
  margin-left: -10px;
291
  margin-top: -2px;
292
  padding: 0;
315
  z-index: 1;
316
  }
317
 
 
 
 
 
 
 
 
 
 
 
 
 
 
318
  .mapp-list .mapp-items {
319
  height: 100%;
320
  overflow: auto;
380
  color: black;
381
  }
382
 
383
+ .mapp-list .mapp-msg {
384
+ text-align: center;
385
+ }
386
+
387
+ /*
388
+ -----------------------------------------------------------------------------------
389
+ layouts
390
+ -----------------------------------------------------------------------------------
391
+ */
392
+
393
+ .mapp-left .mapp-list {
394
+ border-right: 1px solid lightgray;
395
+ float: left;
396
+ height: 100%;
397
+ max-width: 45%;
398
+ width: 250px;
399
+ }
400
+
401
+ .mapp-left.mapp-mini .mapp-list {
402
+ display: none !important; /* Override editor */
403
+ }
404
+
405
+ .mapp-inline .mapp-list .mapp-items {
406
+ border-top: 1px solid lightgray;
407
+ max-height: 300px;
408
+ }
409
+
410
+ /*
411
+ -----------------------------------------------------------------------------------
412
+ Views
413
+ -----------------------------------------------------------------------------------
414
+ */
415
+
416
+ .mapp-view-filters .mapp-filters {
417
+ display: block;
418
+ }
419
+
420
+ .mapp-view-menu .mapp-menu {
421
+ display: block;
422
+ }
423
+
424
+ .mapp-view-directions .mapp-directions {
425
+ display: block;
426
+ }
427
+
428
+ .mapp-view-directions .mapp-list {
429
+ display: none;
430
+ }
431
+
432
+ .mapp-left [data-mapp-action="view-map"] { display: none; }
433
+ .mapp-left.mapp-view-list [data-mapp-action="view-list"] { display: none; }
434
+ .mapp-left.mapp-view-list [data-mapp-action="view-map"] { display: block; }
435
+
436
+ .mapp-view-mini .mapp-list {
437
+ display: none;
438
+ }
439
+
440
+ .mapp-view-list .mapp-list {
441
+ display: block;
442
+ width: 100%;
443
+ max-width: none;
444
+ }
445
+
446
 
447
  /*
448
  -----------------------------------------------------------------------------------
484
  margin: 10px 0 0px 0 ;
485
  }
486
 
487
+ .mapp-dir-addr {
488
  width: 80% ;
489
  line-height: normal ;
490
  }
502
  .mapp-dir-a { width: 24px; height: 24px; background-position: 0px -140px; }
503
  .mapp-dir-b { width: 24px; height: 24px; background-position: 0px -71px; }
504
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
505
  /*
506
  -----------------------------------------------------------------------------------
507
  Custom controls
609
  color: black;
610
  }
611
 
 
612
  img.mapp-icon {
613
  max-width: 24px !important; /* 2012 tries to override */
614
  max-height: 24px;
616
  box-shadow: none !important; /* 2012 applies box shadow to all images */
617
  }
618
 
 
619
  .mapp-error {
620
  background-color: #ffebe8;
621
  margin: 0;
636
  cursor: pointer;
637
  }
638
 
 
639
  .mapp-max {
640
  width: 100%;
641
  }
642
 
 
643
  .mapp-caret:after {
644
  content: "";
645
  display: inline-block;
css/mappress_admin.css CHANGED
@@ -149,6 +149,11 @@ tr:hover > td > .mapp-m-actions {
149
  Settings
150
  -----------------------------------------------------------------------------------
151
  */
 
 
 
 
 
152
  .mapp-settings-screen label {
153
  margin-right: 10px;
154
  white-space: nowrap;
149
  Settings
150
  -----------------------------------------------------------------------------------
151
  */
152
+
153
+ .mapp-settings-screen #mapp0 {
154
+ max-width: 600px;
155
+ }
156
+
157
  .mapp-settings-screen label {
158
  margin-right: 10px;
159
  white-space: nowrap;
forms/dummy.js ADDED
File without changes
js/mappress.min.js CHANGED
@@ -1 +1 @@
1
- var mapp=window.mapp||{};+function(n){mapp.Map=function(t,r){function v(n,t){n=n.split(" ");for(var i=0;i<n.length;i++)google.maps.event.addListener(u,n[i],t)}function y(){var i,t;n("[data-mapp-type]",e.menu).removeClass("mapp-active");n('[data-mapp-type="'+u.getMapTypeId()+'"]',e.menu).addClass("mapp-active");for(layer in s)i=!!s[layer].getMap(),n('[data-mapp-layer="'+layer+'"]',e.menu).toggleClass("mapp-active",i);t=!!(f.center&&f.zoom);n('[data-mapp-action="viewport-set"]',e.menu).toggle(!t);n('[data-mapp-action="viewport-reset"]',e.menu).toggle(t)}function p(){var n=mappl10n.options.styles,i=mappl10n.options.style,r=["roadmap","satellite","terrain","hybrid"],t;if(i&&typeof n[i]!="undefined"&&u.setOptions({styles:n[i]}),f.editable){for(t in n)u.mapTypes.set(t,new google.maps.StyledMapType(n[t],{name:t})),r.push(t);u.setOptions({mapTypeControlOptions:{mapTypeIds:r,position:google.maps.ControlPosition.TOP_RIGHT,style:google.maps.MapTypeControlStyle.DROPDOWN_MENU}})}else typeof n[f.mapTypeId]!="undefined"&&u.setOptions({styles:n[f.mapTypeId]})}function w(){e.controls.children("[data-mapp-position]").each(function(){var t=n(this).attr("data-mapp-position"),i;t=t?google.maps.ControlPosition[t]:google.maps.ControlPosition.TOP_RIGHT;i=n(this);i.get(0).index=0;u.controls[t].push(i.get(0))})}function b(){var e,i,t,r;for(s={traffic:new google.maps.TrafficLayer,bicycling:new google.maps.BicyclingLayer,transit:new google.maps.TransitLayer},e=n.makeArray(f.layers),i=0;i<e.length;i++)t=n.trim(e[i]),r=t.split(".").pop(),s[t]?l(t):r=="kml"||r=="kmz"?s[t]=new google.maps.KmlLayer({map:u,preserveViewport:!0,url:t}):r=="json"&&(s[t]=new google.maps.Data({map:u}).loadGeoJson(t))}function l(t,i){n.each(["traffic","bicycling","transit"],function(n,t){s[t].setMap(null)});t&&(i=typeof i=="undefined"?s[t].getMap()==null:i,s[t].setMap(i?u:null))}function a(t,i){var r=n.inArray(t,["roadmap","satellite","terrain","hybrid"])!=-1;i=typeof i!="undefined"?i:!(u.getMapTypeId()==t);t=f.editable?i&&(r||typeof mappl10n.options.styles[t]!="undefined")?t:"roadmap":r?t:"roadmap";u.setMapTypeId(t)}this.defaults={center:null,editable:null,geolocate:null,height:null,initialOpenDirections:null,initialOpenInfo:null,layers:null,mapid:null,mapTypeId:null,metaKey:null,minZoom:null,name:null,pois:null,postid:null,query:null,title:null,width:null,zoom:null};this.iw=null;this.places=null;this.poi=null;this.settings=r?r:{};var f=this,h=null,e={},u=null,s={},o=[],c;_.extend(this,this.defaults,_.pick(t,_.keys(this.defaults)),_.pick(this.settings,_.keys(this.defaults)));this.display=function(){if(e.layout=n("#"+this.name),n.each(["canvas","controls","dialog","directions","filters","list","menu","search"],function(t,i){e[i]=n(".mapp-"+i,e.layout)}),!e.canvas.length)return mapp.lib.log("MapPress: Missing map name or container for map: "+this.name);u=new google.maps.Map(e.canvas.get(0),{mapTypeId:"roadmap",zoom:1});var t={backgroundColor:"transparent",fullscreenControl:!1,keyboardShortcuts:!1,mapTypeControl:!0,mapTypeControlOptions:{position:google.maps.ControlPosition.TOP_RIGHT,style:google.maps.MapTypeControlStyle.DROPDOWN_MENU},minZoom:this.minZoom?parseInt(this.minZoom):0,scaleControl:!0,scrollwheel:!1,streetViewControl:!this.editable&&!this.query};u.setOptions(t);p();w();b();a(this.mapTypeId,!0);e.search.length&&(this.places=new mapp.Places(n(".mapp-places",e.search),{map:f}),f.editable||google.maps.event.addListener(this.places,"search",function(n){f.search(n)}));e.layout.on("click","[data-mapp-action]",function(t){var i=n(this).attr("data-mapp-action");t.preventDefault();f.action(i,n(this).attr("data-mapp-"+i),n(this))});e.filters.on("change",function(){f.ajaxQuery(u.getBounds())});v("click drag",function(){f.closeInfoWindow()});e.layout.on("click",function(t){var i=n(t.target),r=i.attr("data-mapp-action");i==e.filters||r=="filters-toggle"||i.closest(e.filters).length||f.toggleView("filters",!1);i==e.menu||r=="menu-toggle"||i.closest(e.menu).length||f.toggleView("menu",!1)});if(n(window).resize(function(){f.resize()}),this.iw=mappl10n.options.iwType=="ib"||this.editable?new mapp.InfoBox(this):new google.maps.InfoWindow,this.query){this.geolocate?this.places.parse("geolocate"):this.ajaxQuery();return}google.maps.event.addListenerOnce(u,"idle",function(){f.initCenter()});this.setPois(this.pois)};this.load=function(n){_.extend(this,this.defaults,_.pick(n,_.keys(this.defaults)),_.pick(this.settings,_.keys(this.defaults)));f.resize();a(this.mapTypeId,!0);this.toggleView("menu",!1);l();this.poiSelect(null);this.setPois(this.pois);this.places&&this.places.set("");f.recenter();google.maps.event.trigger(this,"load")};this.action=function(t,i,r){switch(t){case"center":this.toggleView("menu",!1);this.closeInfoWindow();this.recenter();break;case"dir":this.openDirections(null,this.poi);break;case"dir-from":this.openDirections(this.poi,null);break;case"filters-reset":e.filters.find(":input").each(function(){this.type=="checkbox"||this.type=="radio"?n(this).prop("checked",!1):n(this).val("")});this.ajaxQuery(u.getBounds());break;case"filters-toggle":this.toggleView("filters");break;case"geolocate":this.places.geolocate();break;case"layer":l(i);this.toggleView("menu",!1);break;case"menu-toggle":this.toggleView("menu");break;case"open":var f=r.attr("data-mapp-poi");this.openInfoWindow(o[f]);break;case"show":e.layout.show();this.resize();this.initCenter();break;case"viewport-set":this.center=u.getCenter().toJSON();this.zoom=u.getZoom();this.toggleView("menu",!1);break;case"viewport-reset":this.center=null;this.zoom=null;this.toggleView("menu",!1);this.recenter();break;default:return!0}};this.closeInfoWindow=function(){this.iw.close();this.poiSelect(null)};this.openDirections=function(n,t){var i=n?n.getAddress():"",r=t?t.getAddress():"";h||(h=new mapp.Directions(e.directions,{map:f,directions:mappl10n.options.directions}));h.open(i,r)};this.poiSelect=function(t){if(this.poi=t,n("[data-mapp-poi]",e.list).removeClass("mapp-selected"),t){var r=n.inArray(t,o),i=n('[data-mapp-poi="'+r+'"]',e.list);i.addClass("mapp-selected");mapp.lib.scrollTo(e.list,i);c++;t.setZIndex(c)}};this.getMap=function(){return u};this.renderList=function(){this.editable&&(e.list.html(mapp.lib.template("poi-list",{pois:o})),google.maps.event.trigger(this,"render-list"))};this.getPois=function(){return o};this.addPoi=function(n){o.unshift(n);n.setMap(this);f.renderList();this.poiSelect(n)};this.removePoi=function(t){var i=n.inArray(t,o);i!=-1&&(o[i].setMap(null),o.splice(i,1),f.renderList())};this.resetPois=function(){for(i=0;i<o.length;i++)o[i].setMap(null);o=[];c=google.maps.Marker.MAX_ZINDEX};this.setPois=function(n){var t,i;if(this.resetPois(),n){for(t=0;t<n.length;t++)i=new mapp.Poi(n[t]),o.push(i),i.setMap(this),i.setZIndex(c+n.length-1-t);c+=n.length-1}this.renderList()};this.sortPois=function(n){for(var r,t=Array(),i=0;i<n.length;i++){if(r=parseInt(n[i]),isNaN(r))return!1;t.push(o[r])}if(t.length!=o.length)return!1;o=t;this.renderList()};this.openInfoWindow=function(n,t){if(h&&h.close(),this.iw.close(),this.poiSelect(n),!this.editable){if((mappl10n.options.mashupClick=="post"||mappl10n.options.mashupClick=="postnew")&&n.postid&&n.url){mappl10n.options.mashupClick=="post"?window.location.assign(n.url):window.open(n.url);return}this.iw.setContent(n.html)}google.maps.event.addListenerOnce(this.iw,"domready",function(){google.maps.event.trigger(f,"poidomready",n)});google.maps.event.trigger(f,"open",n);var i=new google.maps.MVCObject;i.setValues({position:n.getPosition(t),anchorPoint:n.getAnchorPoint(t)});this.iw.open(u,i)};this.togglePois=function(n){n=!!n;for(var t=0;t<o.length;t++)o[t].setVisible(n)};this.toggleView=function(n,t){t=typeof t=="undefined"?!e.layout.hasClass("mapp-view-"+n):t;e.layout.toggleClass("mapp-view-"+n,t);n=="menu"&&t&&y();n=="directions"&&this.resize()};this.resize=function(){var n=u.getCenter();google.maps.event.trigger(u,"resize");u.setCenter(n);return};this.initCenter=function(){var n=o.length?o[0]:null;google.maps.event.addListenerOnce(u,"idle",function(){if(f.initialOpenDirections){f.openDirections(null,n);return}n&&f.initialOpenInfo&&n.open()});this.recenter()};this.recenter=function(){var t=!this.query&&this.center?new google.maps.LatLng(this.center.lat,this.center.lng):null,i=!this.query&&this.zoom&&parseInt(this.zoom)?parseInt(this.zoom):null,n,r;if(this.center&&this.center.lat==0&&this.center.lng==0&&(t=null),t){u.setCenter(t);u.setZoom(i?i:1);return}if(o.length==0){u.setCenter(new google.maps.LatLng(0,0));u.setZoom(1);return}if(o.length==1){o[0].center(i);return}for(bounds=new google.maps.LatLngBounds,n=0;n<o.length;n++)r=o[n].getBounds(),bounds=r?bounds.union(r):bounds.extend(o[n].getPosition());u.fitBounds(bounds)};this.toJSON=function(){var n;for(this.pois=[],n=0;n<o.length;n++)this.pois.push(o[n].toJSON());return{center:this.center,height:this.height,mapid:this.mapid,mapTypeId:u.getMapTypeId(),metaKey:this.metaKey,pois:this.pois,title:this.title,width:this.width,zoom:this.zoom}};this.ajaxSave=function(n){var t=JSON.stringify(this),i=!this.mapid||!this.postid?mappl10n.options.postid:this.postid;mapp.lib.ajax({type:"POST",data:{action:"mapp_save",map:t,postid:i},callback:function(t){t.status=="OK"&&(f.mapid=t.data.mapid,n(t.data),google.maps.event.trigger(f,"save"))}})}};mapp.Map.ajaxCreate=function(n,t){mapp.lib.ajax({type:"GET",data:{action:"mapp_create"},callback:function(i){if(i.status=="OK"){var r=new mapp.Map(i.data.map,n);t(r)}}})};mapp.Map.ajaxGet=function(n,t,i){mapp.lib.ajax({type:"GET",data:{action:"mapp_get",mapid:n},callback:function(n){if(n.status=="OK"){var r=new mapp.Map(n.data.map,t);i(r)}}})};mapp.Map.ajaxDelete=function(n,t){mapp.lib.ajax({type:"POST",data:{action:"mapp_delete",mapid:n},callback:function(n){n.status=="OK"&&t&&t()}})}}(jQuery);mapp=window.mapp||{};+function(n){mapp.Directions=function(t,i){function h(t,i,o){var c=n(".mapp-travelmode-on > span",r).hasClass("mapp-dir-walk")?google.maps.DirectionsTravelMode.WALKING:n(".mapp-travelmode-on > span",r).hasClass("mapp-dir-transit")?google.maps.DirectionsTravelMode.TRANSIT:n(".mapp-travelmode-on > span",r).hasClass("mapp-dir-bike")?google.maps.DirectionsTravelMode.BICYCLING:google.maps.DirectionsTravelMode.DRIVING;var l={travelMode:c,transitOptions:{departureTime:null},provideRouteAlternatives:!0,origin:t,destination:i},h=n(".mapp-dir-renderer",r).get(0);n(".mapp-dir-renderer",r).empty();s||(s=new google.maps.DirectionsService);s.route(l,function(n,t){switch(t){case google.maps.DirectionsStatus.OK:f.opts.map.togglePois(!1);u?(u.setDirections(n),u.setMap(e),u.setPanel(h)):u=new google.maps.DirectionsRenderer({map:e,panel:h,directions:n,hideRouteList:!1,draggable:!0});break;case google.maps.DirectionsStatus.NOT_FOUND:alert(mappl10n.dir_error);break;case google.maps.DirectionsStatus.ZERO_RESULTS:alert(mappl10n.dir_error);break;default:alert(mappl10n.dir_error+t)}o()})}this.opts=n.extend({map:null,directions:null},i);var r=n(t),e,o,u,s,f=this;e=this.opts.map.getMap();o=new mapp.Geocoder(e);r.on("keydown",function(t){t.which==13?(f.getDirections(n(".mapp-dir-saddr",r).val(),n(".mapp-dir-daddr",r).val()),t.preventDefault()):t.which==27&&f.close()});r.on("click","[data-mapp-action]",function(t){var h=n(this).attr("data-mapp-action"),i,u,e,s;t.preventDefault();switch(h){case"dir-cancel":f.close();break;case"dir-get":f.getDirections();break;case"dir-google":i=n(".mapp-dir-saddr",r).val();u=n(".mapp-dir-daddr",r).val();f.openGoogle(i,u);f.close();break;case"dir-myloc":o.geolocate(function(t){t?n(".mapp-dir-saddr",r).val(t.coords.latitude+", "+t.coords.longitude):alert(mappl10n.no_geolocate)});break;case"dir-swap":e=n(".mapp-dir-daddr",r).val();s=n(".mapp-dir-saddr",r).val();n(".mapp-dir-saddr",r).val(e);n(".mapp-dir-daddr",r).val(s)}});this.open=function(t,i){if(this.opts.directions=="google"){this.openGoogle(t,i);return}this.opts.map.toggleView("directions",!0);n(".mapp-dir-saddr",r).val(t);n(".mapp-dir-daddr",r).val(i);n(".mapp-dir-get",r).focus();n(".mapp-dir-saddr",r).focus()};this.close=function(){this.opts.map.toggleView("directions",!1);u&&(u.setPanel(null),u.getMap()&&(u.setMap(null),this.opts.map.togglePois(!0)))};this.getDirections=function(){this.opts.map.closeInfoWindow();n(".mapp-spinner",r).show();var t=n(".mapp-dir-saddr",r),i=n(".mapp-dir-daddr",r),u=n(".mapp-dir-saddr-err",r),f=n(".mapp-dir-daddr-err",r);o.geocodeField(t,u,function(t){o.geocodeField(i,f,function(i){t&&i?h(t,i,function(){n(".mapp-spinner",r).hide();return}):n(".mapp-spinner",r).hide()})})};this.printDirections=function(){var i,t=n(".mapp-travelmode-on > span",r);i=t.hasClass("mapp-dir-walk")?"w":t.hasClass("mapp-dir-bike")?"b":t.hasClass("mapp-dir-transit")?"r":"d";this.openGoogle(n(".mapp-dir-saddr",r).val(),n(".mapp-dir-daddr",r).val(),i)};this.openGoogle=function(n,t,i){var r=mappl10n.options.directionsServer;r.toLowerCase().indexOf("http")==-1&&(r="https://"+r);r+="?saddr="+encodeURIComponent(n);r+="&daddr="+encodeURIComponent(t);i&&(r+="&dirflg="+i);window.open(r)}}}(jQuery);mapp=window.mapp||{};mapp.Geocoder=function(n){function r(n,t){jQuery(n).removeClass("mapp-error");jQuery(t).hide()}function u(n,t,i){jQuery(n).addClass("mapp-error");jQuery(t).html(i);jQuery(t).show()}var t,f,i=this;f=n;this.geocode=function(i,r){typeof i=="string"&&i.substring(0,1)=="("&&(split=i.replace(/\(|\)/g,"").split(","),i=new google.maps.LatLng(split[0],split[1]));var u=i instanceof google.maps.LatLng?{location:i}:{address:i,region:mappl10n.options.country,bounds:n.getBounds()};t||(t=new google.maps.Geocoder);t.geocode(u,function(n,t){if(n){for(var i=0;i<n.length;i++)n[i].formatted_address==""&&n.splice(i,1);r(n[0],t)}else r(null,t)})};this.geolocate=function(n){if(!navigator||!navigator.geolocation)return null;navigator.geolocation.getCurrentPosition(function(t){n(t)},function(){n(null)},{timeout:1e4,enableHighAccuracy:!0,maximumAge:3e4})};this.stringToLatLng=function(n){var t=n.split(",",2),i=Number(t[0]),r=Number(t[1]);return isNaN(i)||isNaN(r)?!1:new google.maps.LatLng(i,r)};this.geocodeField=function(n,t,i){r(n,t);checkAddress(n,t,jQuery(n).val(),function(r){if(!r){u(n,t,mappl10n.no_address);i(null);return}if(r&&r.formatted_address){jQuery(n).val(r.formatted_address);i(r.formatted_address);return}i(r);return})};this.autocompleteField=function(n,t,f,e,o){jQuery(n).keypress(function(i){i.which==13&&(checkAddress(n,t,jQuery(n).val(),o),i.preventDefault())});jQuery(f).click(function(){return checkAddress(n,t,jQuery(n).val(),o),!1});jQuery(e).click(function(){return r(n,t),i.geolocate(function(i){if(i){var r="("+i.coords.latitude+", "+i.coords.longitude+")";jQuery(n).val("");checkAddress(n,t,r,o)}else u(n,t,mappl10n.no_geolocate);return}),!1})};checkAddress=function(n,t,f,e){if(r(n,t),f=jQuery.trim(f),f==""){e(null);return}var o=i.stringToLatLng(f);if(o){e(o);return}if(f.substring(0,4)=="http"){e(f);return}i.geocode(f,function(i,r){if(!i||r!=google.maps.GeocoderStatus.OK){u(n,t,mappl10n.no_address);e(null);return}e(i);return})}};mapp.Geocoder.parseAddress=function(n){return!n||n==""?{firstLine:"",secondLine:""}:(n.lastIndexOf(", USA")>0||n.lastIndexOf(", United States")>0)&&(n.lastIndexOf(", USA")>0&&(n=n.slice(0,n.lastIndexOf(", USA"))),n.lastIndexOf(", United States")>0&&(n=n.slice(0,n.lastIndexOf(", United States"))),n.indexOf(",")==n.lastIndexOf(","))?{firstLine:n,secondLine:""}:n.indexOf(",")==-1?{firstLine:n,secondLine:""}:{firstLine:n.slice(0,n.indexOf(",")),secondLine:n.slice(n.indexOf(", ")+2)}};mapp=window.mapp||{};mapp.Icons={};mapp.Icons.get=function(){return"https://maps.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png"};mapp.Icons.getUrl=function(){return"https://maps.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png"};mapp=window.mapp||{};+function(n){mapp.InfoBox=function(t,i){var f=n.extend({disableAutoPan:!1,border:20},i),u=null,r=null,e=null,o=this;r=n('<div class="mapp-ib" tabindex="0">').appendTo(t.getMap().getDiv());e=n('<div class="mapp-ib-tip">').appendTo(t.getMap().getDiv());jQuery(window).resize(function(){o.close()});r.on("keydown",function(n){n.which==27&&o.close()});r.on("click",".mapp-close",function(){o.close()});this.getContent=function(){return r};this.setContent=function(n){r.empty().append(n)};this.open=function(n,t){u=t;this.setMap(n)};this.onAdd=function(){r.show();e.show();var t=n(":input",r);t.length?t.first().focus():r.focus();google.maps.event.trigger(o,"domready")};this.draw=function(){var l=this.getMap(),c=this.getProjection().fromLatLngToContainerPixel(u.position),t={width:n(l.getDiv()).width(),height:n(l.getDiv()).height()},v=n(".mapp-ib-body",r);if(!f.disableAutoPan){r.css({"max-height":"9999px",left:0,bottom:0,top:"auto",right:"auto"});var s=r.outerWidth(!0),h=r.outerHeight(!0),a=e.outerHeight(!0),i=c.x,o=c.y;i+s/2>t.width&&(i=t.width-s/2);i-s/2<0&&(i=s/2);o-h+u.anchorPoint.y-a<f.border&&(o=h-u.anchorPoint.y+f.border+a);o>t.height&&(o=t.height);l.panBy(c.x-i,c.y-o);h>t.height+u.anchorPoint.y-2*f.border&&(h=t.height+u.anchorPoint.y-2*f.border,r.css({"max-height":h+2}));r.css({left:i-s/2,bottom:t.height-o-u.anchorPoint.y+a});e.css({left:i,bottom:t.height-o-u.anchorPoint.y})}};this.close=function(){r.is(":visible")&&(this.setMap(null),google.maps.event.trigger(this,"closed"))};this.onRemove=function(){r.empty();r.hide();e.hide()}};mapp.InfoBox.prototype=new google.maps.OverlayView}(jQuery);mapp=window.mapp||{};+function(n){if(mapp.lib={ajax:function(t){var r=this,u,i;if(n.extend({type:"GET",cache:!1,data:null,spinner:null,callback:n.noop},t),t.cache)for(typeof mapp.lib.ajax.cache=="undefined"&&(mapp.lib.ajax.cache=[]),u=JSON.stringify(t.data),i=0;i<mapp.lib.ajax.cache.length;i++)if(mapp.lib.ajax.cache[i].hash==u){t.callback(mapp.lib.ajax.cache[i].response);return}return t.spinner&&t.spinner.show(),n.ajax({type:t.type,cache:!1,url:mappl10n.options.ajaxurl,data:t.data,success:function(n,i,u){if(t.spinner&&t.spinner.hide(),n.output){r.alert("AJAX Error\r\n"+n.output);return}if(n.status=="OK"){t.cache&&mapp.lib.ajax.cache.push({hash:JSON.stringify(t.data),response:n});t.callback&&t.callback(n,u);return}var f=typeof n=="object"?n.status:n;r.alert("AJAX ERROR\r\nResponse="+f+" TextStatus="+i+"\r\nResponseText="+u.responseText)},error:function(n,i,u){(t.spinner&&t.spinner.hide(),i!="cancel")&&typeof u!="undefined"&&u!=""&&r.alert("AJAX ERROR\r\nTextStatus="+i+"\r\nError="+u+"\r\nResponseText="+n.responseText)}})},alert:function(n){mappl10n.options.admin||mappl10n.options.debug?alert(n):window.console&&console.error(n)},jqVersionCheck:function(t){if(typeof n=="undefined"||typeof t=="undefined")return!1;for(t=t.split("."),v=n.fn.jquery.split("."),i=0;i<t.length;i++){var r=parseInt(t[i]),u=typeof v[i]!="undefined"?parseInt(v[i]):0;if(u!=r)return u>r}return!0},log:function(n){window.console&&console.error(n)},scrollTo:function(n,t){if(n&&t&&n.length&&t.length){var i=n.scrollTop(),u=n.height(),r=i+t.position().top,f=r+t.outerHeight(!0);r<i?n.scrollTop(r):f>i+u&&n.scrollTop(f-u)}},template:function(t,i){if(mapp.lib.templates=mapp.lib.templates?mapp.lib.templates:{},!mapp.lib.templates[t]){var r=mappl10n.options.templates?mappl10n.options.template[t]:n("#mapp-tmpl-"+t).html();if(r)mapp.lib.templates[t]=_.template(r.replace(/[\n\r\t]/g,""),null,{evaluate:/<#([\s\S]+?)#>/g,interpolate:/\{\{\{([\s\S]+?)\}\}\}/g,escape:/\{\{([^\}]+?)\}\}(?!\})/g});else return""}return mapp.lib.templates[t](i)}},typeof google=="undefined")return mapp.lib.alert("ERROR: Google Maps API not loaded");if(!mappl10n.options.apiKey)return mapp.lib.alert("ERROR: Google Maps API Key missing, please check MapPress settings and FAQ");n(document).ready(function(){n('script[src*="https://maps.googleapis.com/maps/api/js?v=3"]').length>1&&mapp.lib.alert("ERROR: Google Maps API key loaded multiple times, please see MapPress FAQ.")});mapp.lib.jqVersionCheck("1.7")||mapp.lib.alert("jQuery version is too old: "+n.fn.jquery);n("body").on("tabsactivate tabsshow",function(t,i){var r=i.newPanel?i.newPanel:i.panel;r&&n(".mapp-layout",r).each(function(){var i=n(this).attr("id"),t=window[i];t.resize();t.initCenter()})})}(jQuery);mapp=window.mapp||{};+function(n){mapp.Places=function(t,i){var u=this,r;if(this.sel=n(t),this.opts=n.extend({map:null,types:[]},i),r=n('<div style="display:none">').appendTo("body"),this.placesService=new google.maps.places.PlacesService(r.get(0)),this.autocompleteService=new google.maps.places.AutocompleteService,this.sel.length){this.opts.types||(this.opts.types=[]);this.autocomplete=new google.maps.places.Autocomplete(this.sel.get(0),{types:this.opts.types});this.autocomplete.bindTo("bounds",this.opts.map.getMap());this.sel.on("keydown",function(n){n.which==13&&n.preventDefault()});google.maps.event.addListener(this.autocomplete,"place_changed",function(){u.parse(this.getPlace())})}};mapp.Places.prototype={parse:function(t){var u,i=this,r,f;if(this.error(!1),r=t&&t.name?n.trim(t.name):n.trim(t),!r)return this.error(!0);if(r=="geolocate")return this.geolocate();if(r.substring(0,4)=="http"){google.maps.event.trigger(i,"search",r);return}if(t&&t.geometry){t.formatted_address&&this.set(t.formatted_address);google.maps.event.trigger(i,"search",t);return}if(f=this.parseLatLng(t),f){google.maps.event.trigger(i,"search",f);return}this.autocompleteService.getPlacePredictions({input:r,types:this.opts.types,bounds:this.opts.map.getMap().getBounds()},function(n,t){if(t!="OK"||n==null||n.length==0)return i.error(!0);u=typeof n[0].description!="undefined"?n[0].description:null;i.placesService.getDetails({placeId:n[0].place_id},function(n,t){if(t!="OK"||!n||!n.geometry)return i.error(!0);u=u?u:n.formatted_address;i.set(u);google.maps.event.trigger(i,"search",n)})})},parseLatLng:function(t){var r,i;return t instanceof google.maps.LatLng?t:t&&t.lat&&t.lng?new google.maps.LatLng(t.lat,t.lng):(r=t&&t.name?n.trim(t.name):n.trim(t),i=r.split(","),i.length==2&&!isNaN(i[0])&&!isNaN(i[1]))?new google.maps.LatLng(i[0],i[1]):null},geolocate:function(){var n=this;if(!navigator||!navigator.geolocation){alert(mappl10n.no_geolocate);return}navigator.geolocation.getCurrentPosition(function(t){n.set("");google.maps.event.trigger(n,"search",new google.maps.LatLng(t.coords.latitude,t.coords.longitude))},function(){alert(mappl10n.no_geolocate)},{timeout:1e4,enableHighAccuracy:!0,maximumAge:3e4})},set:function(n){n=n.replace(", United States of America","").replace(", USA","").replace(", United States","");this.sel.val(n);this.error(!1)},get:function(){return n.trim(this.sel.val())},focus:function(){this.sel.focus()},error:function(n){this.sel.toggleClass("mapp-error",!!n)},destroy:function(){this.autocomplete.unbindAll();google.maps.event.clearInstanceListeners(this.sel.get(0))}}}(jQuery);mapp=window.mapp||{};+function(n){mapp.Poi=function(t){var f,e,r,s,i,u,h,o;if(this.defaults={address:null,body:null,html:null,iconid:null,kml:null,map:null,overlay:null,postid:null,title:"",url:null,type:null,viewport:null},n.extend(this,this.defaults,t),t&&t.correctedAddress&&(this.address=t.correctedAddress),t.viewport&&t.viewport.sw&&t.viewport.ne&&(f=new google.maps.LatLng(t.viewport.sw.lat,t.viewport.sw.lng),e=new google.maps.LatLng(t.viewport.ne.lat,t.viewport.ne.lng),this.viewport=f.lat()==0&&f.lng()==0&&e.lat()==0&&e.lng()==0?null:new google.maps.LatLngBounds(f,e)),r=[],s=[],!t.overlay)switch(this.type){case"polygon":if(t.poly&&t.poly.paths)for(i=0;i<t.poly.paths.length;i++){for(r=[],u=0;u<t.poly.paths[i].length;u++)r.push(new google.maps.LatLng(t.poly.paths[i][u].lat,t.poly.paths[i][u].lng));s.push(new google.maps.MVCArray(r))}this.overlay=new google.maps.Polygon({paths:new google.maps.MVCArray(s)});this.setColors(t.poly);break;case"polyline":if(t.poly&&t.poly.path)for(i=0;i<t.poly.path.length;i++)r.push(new google.maps.LatLng(t.poly.path[i].lat,t.poly.path[i].lng));this.overlay=new google.maps.Polyline({path:new google.maps.MVCArray(r)});this.setColors(t.poly);break;case"circle":o=new google.maps.LatLng(t.point.lat,t.point.lng);this.overlay=new google.maps.Circle({center:o,radius:parseFloat(t.poly.radius)});this.setColors(t.poly);break;case"rectangle":this.overlay=new google.maps.Rectangle({bounds:this.viewport});this.setColors(t.poly);break;case"kml":h=t.kml&&t.kml.url?t.kml.url:"";this.overlay=new google.maps.KmlLayer(h,{preserveViewport:!0,suppressInfoWindows:!0});break;case"":default:o=new google.maps.LatLng(t.point.lat,t.point.lng);this.overlay=new google.maps.Marker({position:o})}};mapp.Poi.prototype={toJSON:function(){var n={address:this.address,body:this.body,correctedAddress:this.address,iconid:this.iconid,point:null,poly:null,title:this.title,type:this.type,viewport:null},r=this.getPosition(),t,i;if(n.point={lat:r.lat(),lng:r.lng()},t=this.viewport?this.viewport:this.getBounds(),t&&(n.viewport={sw:{lat:t.getSouthWest().lat(),lng:t.getSouthWest().lng()},ne:{lat:t.getNorthEast().lat(),lng:t.getNorthEast().lng()}}),this.type=="kml"&&(n.kml={url:this.overlay.getUrl()}),this.isPoly()){n.poly=this.getColors();switch(this.type){case"circle":n.poly.radius=this.overlay.getRadius();break;case"polyline":n.poly.path=[];this.overlay.getPath().forEach(function(t){n.poly.path.push({lat:t.lat(),lng:t.lng()})});break;case"polygon":n.poly.paths=[];this.overlay.getPaths().forEach(function(t){var i=[];t.forEach(function(n){i.push({lat:n.lat(),lng:n.lng()})});n.poly.paths.push(i)});break;case"rectangle":i=this.overlay.getBounds();n.viewport={sw:{lat:i.getSouthWest().lat(),lng:i.getSouthWest().lng()},ne:{lat:i.getNorthEast().lat(),lng:i.getNorthEast().lng()}}}}return n},setMap:function(t){var i=this;if(google.maps.event.clearInstanceListeners(this.overlay),t==null){this.overlay.setMap(null);return}this.type=="kml"&&(google.maps.event.addListener(this.overlay,"defaultviewport_changed",function(){i.viewport=i.overlay.getDefaultViewport()}),google.maps.event.addListener(this.overlay,"status_changed",function(){var n=i.overlay.getStatus();n!="OK"&&mappl10n.ajaxErrors&&alert(mappl10n.kml_error+":"+n)}));this.map=t;this.overlay.setMap(t.getMap());this.setEditable(this.map.editable);this.setIcon(this.iconid);this.type||this.overlay.setTitle(n("<div>").html(this.title).text());google.maps.event.addListener(this.overlay,"click",function(n){i.open(n)})},setEditable:function(n){var t=this;this.type!="kml"&&(this.overlay.setDraggable(n),this.isPoly()&&this.overlay.setEditable(n),google.maps.event.clearListeners(this.overlay,"rightclick"),google.maps.event.clearListeners(this.overlay,"dragstart"),n&&(google.maps.event.addListener(this.overlay,"dragstart",function(){t.viewport=null;t.map.closeInfoWindow()}),(this.type=="polygon"||this.type=="polyline")&&google.maps.event.addListener(this.overlay,"rightclick",function(n){n.vertex!=null&&t.overlay.getPath().getLength()>2&&t.overlay.getPath().removeAt(n.vertex)})))},getZIndex:function(){return this.type?this.overlay.zIndex:this.overlay.getZIndex()},setZIndex:function(n){this.type?this.overlay.zIndex=n:this.overlay.setZIndex(n)},setIcon:function(n){this.type||typeof mapp.Icons=="undefined"||(this.overlay.setIcon(null),this.overlay.setIcon(mapp.Icons.get(n)),this.iconid=n)},setVisible:function(n){typeof this.overlay.setVisible!="undefined"&&this.overlay.setVisible(n)},setColors:function(n){var i={};for(var t in{strokeColor:"",strokeOpacity:"",strokeWeight:"",fillColor:"",fillOpacity:""})n&&typeof n[t]!="undefined"&&(i[t]=n[t]);this.overlay.setOptions(i)},getColors:function(){var t={};for(var n in{strokeColor:"",strokeOpacity:"",strokeWeight:"",fillColor:"",fillOpacity:""})typeof this.overlay[n]!="undefined"&&(t[n]=this.overlay[n]);return t},center:function(n){var t=this.map.getMap(),i=this.getBounds();if(typeof n=="number"){t.setCenter(this.getPosition());t.setZoom(n);return}i?(t.fitBounds(i),t.setCenter(this.getPosition())):(t.setCenter(this.getPosition()),t.setZoom(parseInt(mappl10n.options.poiZoom)))},open:function(n){this.map.openInfoWindow(this,n)},isPoly:function(){return jQuery.inArray(this.type,["polyline","polygon","circle","rectangle"])!=-1},getBounds:function(){var n;if(!this.map.editable&&this.viewport)return this.viewport;switch(this.type){case"polyline":n=new google.maps.LatLngBounds;this.overlay.getPath().forEach(function(t){n.extend(t)});break;case"polygon":n=new google.maps.LatLngBounds;this.overlay.getPaths().forEach(function(t){t.forEach(function(t){n.extend(t)})});break;case"rectangle":case"circle":n=this.overlay.getBounds();break;case"kml":n=this.overlay.getDefaultViewport();n=n?n:this.viewport;break;default:return this.viewport?this.viewport:null}return n},getPosition:function(n){if(!this.type)return this.overlay.getPosition();if(this.type=="kml"&&n&&n.latLng)return n.latLng;var t=this.getBounds();return t?t.getCenter():new google.maps.LatLng(0,0)},click:function(){google.maps.event.trigger(this.overlay,"click")},getAddress:function(){return this.address?this.address:this.type=="kml"?this.kml.url:this.getPosition().toUrlValue()},getAnchorPoint:function(n){return this.type=="kml"?n&&n.pixelOffset?new google.maps.Point(n.pixelOffset.width,n.pixelOffset.height):new google.maps.Point(0,0):this.type?new google.maps.Point(0,0):typeof this.overlay.anchorPoint!="undefined"?this.overlay.anchorPoint:new google.maps.Point(0,-32)}}}(jQuery);mapp=window.mapp||{};mapp.widgets={};+function(){mapp.load=function(){if(typeof mapp!="undefined"&&mapp.data)while(mapp.data.length){var n=mapp.data.pop();window[n.name]=new mapp.Map(n);window[n.name].display()}}}(jQuery);typeof mapp.Media!="undefined"?window.mappEditor=new mapp.Media:mapp.load()
1
+ var mapp=window.mapp||{};+function(n){mapp.Map=function(t,r){function a(n,t){n=n.split(" ");for(var i=0;i<n.length;i++)google.maps.event.addListener(u,n[i],t)}function y(){var i,t;n("[data-mapp-type]",f.menu).removeClass("mapp-active");n('[data-mapp-type="'+u.getMapTypeId()+'"]',f.menu).addClass("mapp-active");for(layer in s)i=!!s[layer].getMap(),n('[data-mapp-layer="'+layer+'"]',f.menu).toggleClass("mapp-active",i);t=!!(e.center&&e.zoom);n('[data-mapp-action="viewport-set"]',f.menu).toggle(!t);n('[data-mapp-action="viewport-reset"]',f.menu).toggle(t)}function p(){var n=mappl10n.options.styles,i=mappl10n.options.style,r=["roadmap","satellite","terrain","hybrid"],t;if(i&&typeof n[i]!="undefined"&&u.setOptions({styles:n[i]}),e.editable){for(t in n)u.mapTypes.set(t,new google.maps.StyledMapType(n[t],{name:t})),r.push(t);u.setOptions({mapTypeControlOptions:{mapTypeIds:r,position:google.maps.ControlPosition.TOP_RIGHT,style:google.maps.MapTypeControlStyle.DROPDOWN_MENU}})}else typeof n[e.mapTypeId]!="undefined"&&u.setOptions({styles:n[e.mapTypeId]})}function w(){f.controls.children("[data-mapp-position]").each(function(){var t=n(this).attr("data-mapp-position"),i;t=t?google.maps.ControlPosition[t]:google.maps.ControlPosition.TOP_RIGHT;i=n(this);i.get(0).index=0;u.controls[t].push(i.get(0))})}function b(){var f,i,t,r;for(s={traffic:new google.maps.TrafficLayer,bicycling:new google.maps.BicyclingLayer,transit:new google.maps.TransitLayer},f=n.makeArray(e.layers),i=0;i<f.length;i++)t=n.trim(f[i]),r=t.split(".").pop(),s[t]?l(t):r=="kml"||r=="kmz"?s[t]=new google.maps.KmlLayer({map:u,preserveViewport:!0,url:t}):r=="json"&&(s[t]=new google.maps.Data({map:u}).loadGeoJson(t))}function l(t,i){n.each(["traffic","bicycling","transit"],function(n,t){s[t].setMap(null)});t&&(i=typeof i=="undefined"?s[t].getMap()==null:i,s[t].setMap(i?u:null))}function v(t,i){var r=n.inArray(t,["roadmap","satellite","terrain","hybrid"])!=-1;i=typeof i!="undefined"?i:!(u.getMapTypeId()==t);t=e.editable?i&&(r||typeof mappl10n.options.styles[t]!="undefined")?t:"roadmap":r?t:"roadmap";u.setMapTypeId(t)}this.defaults={center:null,editable:null,height:null,initialOpenDirections:null,initialOpenInfo:null,layers:null,mapid:null,mapTypeId:null,metaKey:null,minZoom:null,name:null,pois:null,postid:null,query:null,title:null,width:null,zoom:null};this.iw=null;this.places=null;this.poi=null;this.settings=r?r:{};var e=this,h=null,f={},u=null,s={},o=[],c;_.extend(this,this.defaults,_.pick(t,_.keys(this.defaults)),_.pick(this.settings,_.keys(this.defaults)));this.display=function(){if(f.layout=n("#"+this.name),n.each(["canvas","controls","directions","filters","list","menu","search"],function(t,i){f[i]=n(".mapp-"+i,f.layout)}),!f.canvas.length)return mapp.lib.log("MapPress: Missing map name or container for map: "+this.name);u=new google.maps.Map(f.canvas.get(0),{mapTypeId:"roadmap",zoom:1});var t={backgroundColor:"transparent",clickableIcons:!1,fullscreenControl:!1,keyboardShortcuts:!1,mapTypeControl:!0,mapTypeControlOptions:{position:google.maps.ControlPosition.TOP_RIGHT,style:google.maps.MapTypeControlStyle.DROPDOWN_MENU},minZoom:this.minZoom?parseInt(this.minZoom):0,scaleControl:!0,scrollwheel:!1,streetViewControl:!this.editable&&!this.query};u.setOptions(t);p();w();b();v(this.mapTypeId,!0);this.toggleView("mini",f.layout.width()<450);this.places=new mapp.Places(n(".mapp-places",f.search),{map:e});e.editable||google.maps.event.addListener(this.places,"search",function(n){e.search(n)});f.layout.on("click","[data-mapp-action]",function(t){var i=n(this).attr("data-mapp-action");t.preventDefault();e.action(i,n(this).attr("data-mapp-"+i),n(this))});f.filters.on("change",function(){e.ajaxQuery(u.getBounds())});a("click drag",function(){e.closeInfoWindow()});n("body").on("click",function(t){var i=n(t.target),r=i.attr("data-mapp-action");i==f.filters||r=="filters-toggle"||i.closest(f.filters).length||e.toggleView("filters",!1);i==f.menu||r=="menu-toggle"||i.closest(f.menu).length||e.toggleView("menu",!1)});n(window).resize(_.throttle(function(){e.resize()},500));this.iw=mappl10n.options.iwType=="ib"||this.editable?new mapp.InfoBox(this):new google.maps.InfoWindow;google.maps.event.addListenerOnce(u,"idle",function(){var n=o.length?o[0]:null;e.initialOpenDirections?e.openDirections(null,n):n&&e.initialOpenInfo&&n.open()});mappl10n.options.search&&google.maps.event.addListenerOnce(u,"tilesloaded",function(){google.maps.event.addListenerOnce(u,"idle",function(){a("dragend zoom_changed",function(){e.ajaxQuery(u.getBounds())})})});this.setPois(this.pois);this.center?this.places.parse(this.center):this.query?this.ajaxQuery():this.recenter()};this.load=function(n){_.extend(this,this.defaults,n,this.settings);v(this.mapTypeId,!0);this.toggleView("menu",!1);l();this.closeInfoWindow();this.setPois(this.pois);this.places.set("");google.maps.event.trigger(this,"load")};this.action=function(t,i,r){switch(t){case"center":this.toggleView("menu",!1);this.closeInfoWindow();this.recenter();break;case"dir":this.openDirections(null,this.poi);break;case"dir-from":this.openDirections(this.poi,null);break;case"filters-reset":f.filters.find(":input").each(function(){this.type=="checkbox"||this.type=="radio"?n(this).prop("checked",!1):n(this).val("")});this.ajaxQuery(u.getBounds());break;case"filters-toggle":this.toggleView("filters");break;case"geolocate":this.places.geolocate(function(n){e.search(n)});break;case"layer":l(i);this.toggleView("menu",!1);break;case"menu-toggle":this.toggleView("menu");break;case"open":var s=r.attr("data-mapp-poi");this.openInfoWindow(o[s]);break;case"show":f.layout.show();this.resize();this.initCenter();break;case"view-map":this.toggleView("list",!1);break;case"view-list":this.toggleView("list",!0);break;case"viewport-set":this.center=u.getCenter().toJSON();this.zoom=u.getZoom();this.toggleView("menu",!1);break;case"viewport-reset":this.center=null;this.zoom=null;this.toggleView("menu",!1);this.recenter();break;default:return!0}};this.dialog=function(t,i){t?(f.canvas.append("<div class='mapp-dialog'>"+t+"<\/div>"),i&&(clearTimeout(this.dialog.fade),this.dialog.fade=setTimeout(function(){e.dialog(null)},3e3))):n(".mapp-dialog",f.canvas).remove()};this.closeInfoWindow=function(){this.iw.close();this.poiSelect(null)};this.openDirections=function(n,t){var i=n?n.getAddress():"",r=t?t.getAddress():"";h||(h=new mapp.Directions(f.directions,e));h.open(i,r)};this.poiSelect=function(t){if(n("[data-mapp-poi]",f.list).removeClass("mapp-selected"),t){var r=n.inArray(t,o),i=n('[data-mapp-poi="'+r+'"]',f.list);i.addClass("mapp-selected");mapp.lib.scrollTo(f.list,i);t.setZIndex(++c)}this.poi=t};this.getMap=function(){return u};this.renderList=function(){this.editable&&(f.list.html(mapp.lib.template("poi-list",{pois:o})),google.maps.event.trigger(this,"render-list"))};this.getPois=function(){return o};this.addPoi=function(n){o.unshift(n);n.setMap(this);e.renderList();this.poiSelect(n)};this.removePoi=function(t){var i=n.inArray(t,o);i!=-1&&(o[i].setMap(null),o.splice(i,1),e.renderList())};this.resetPois=function(){for(i=0;i<o.length;i++)o[i].setMap(null);o=[];c=google.maps.Marker.MAX_ZINDEX};this.setPois=function(n){var t,i;if(this.resetPois(),n){for(t=0;t<n.length;t++)i=new mapp.Poi(n[t]),o.push(i),i.setMap(this),i.setZIndex(c+n.length-1-t);c+=n.length-1}this.renderList()};this.sortPois=function(n){for(var r,t=Array(),i=0;i<n.length;i++){if(r=parseInt(n[i]),isNaN(r))return!1;t.push(o[r])}if(t.length!=o.length)return!1;o=t;this.renderList()};this.openInfoWindow=function(n,t){if(h&&h.close(),this.iw.close(),this.poiSelect(n),(mappl10n.options.mashupClick=="post"||mappl10n.options.mashupClick=="postnew")&&n.postid&&n.url){mappl10n.options.mashupClick=="post"?window.location.assign(n.url):window.open(n.url);return}this.editable||this.iw.setContent(n.html);google.maps.event.addListenerOnce(this.iw,"domready",function(){google.maps.event.trigger(e,"poidomready",n)});google.maps.event.trigger(e,"open",n);var i=new google.maps.MVCObject;i.setValues({position:n.getPosition(t),anchorPoint:n.getAnchorPoint(t)});this.iw.open(u,i)};this.togglePois=function(n){n=!!n;for(var t=0;t<o.length;t++)o[t].setVisible(n)};this.toggleView=function(n,t){t=typeof t=="undefined"?!f.layout.hasClass("mapp-view-"+n):t;f.layout.toggleClass("mapp-view-"+n,t);n=="menu"&&t&&y();n=="directions"&&this.resize()};this.resize=function(){var n=u.getCenter();google.maps.event.trigger(u,"resize");u.setCenter(n);this.toggleView("mini",f.layout.width()<450);return};this.recenter=function(){var i=!this.query&&this.center&&this.center.lat&&this.center.lng?new google.maps.LatLng(this.center.lat,this.center.lng):null,n=!this.query&&this.zoom&&parseInt(this.zoom)?parseInt(this.zoom):null,t,r;if(this.center&&this.center.lat==0&&this.center.lng==0&&(i=null),i){u.setCenter(i);u.setZoom(n?n:1);return}if(o.length==0){u.setCenter(new google.maps.LatLng(0,0));u.setZoom(n?n:1);return}if(o.length==1){o[0].center(n);return}for(bounds=new google.maps.LatLngBounds,t=0;t<o.length;t++)r=o[t].getBounds(),bounds=r?bounds.union(r):bounds.extend(o[t].getPosition());u.fitBounds(bounds,0)};this.toJSON=function(){var n;for(this.pois=[],n=0;n<o.length;n++)this.pois.push(o[n].toJSON());return{center:this.center,height:this.height,mapid:this.mapid,mapTypeId:u.getMapTypeId(),metaKey:this.metaKey,pois:this.pois,title:this.title,width:this.width,zoom:this.zoom}};this.ajaxSave=function(n){var t=JSON.stringify(this),i=!this.mapid||!this.postid?mappl10n.options.postid:this.postid;mapp.lib.ajax({type:"POST",data:{action:"mapp_save",map:t,postid:i},callback:function(t){t.status=="OK"&&(e.mapid=t.data.mapid,n(t.data),google.maps.event.trigger(e,"save"))}})}};mapp.Map.ajaxCreate=function(n,t){mapp.lib.ajax({type:"GET",data:{action:"mapp_create"},callback:function(i){if(i.status=="OK"){var r=new mapp.Map(i.data.map,n);t(r)}}})};mapp.Map.ajaxGet=function(n,t,i){mapp.lib.ajax({type:"GET",data:{action:"mapp_get",mapid:n},callback:function(n){if(n.status=="OK"){var r=new mapp.Map(n.data.map,t);i(r)}}})};mapp.Map.ajaxDelete=function(n,t){mapp.lib.ajax({type:"POST",data:{action:"mapp_delete",mapid:n},callback:function(n){n.status=="OK"&&t&&t()}})}}(jQuery);mapp=window.mapp||{};+function(n){mapp.Directions=function(t,i){this.sel=n(t);this.map=i;this.directionsRenderer=null;this.directionsService=null;this.placesService=null;var r=this;this.sel.on("keydown",function(n){n.which==13?(r.getDirections(),n.preventDefault()):n.which==27&&r.close()});this.sel.on("click","[data-mapp-action]",function(t){var f=n(this).attr("data-mapp-action"),i=n(".mapp-dir-daddr",r.sel).val(),u=n(".mapp-dir-saddr",r.sel).val();t.preventDefault();switch(f){case"dir-cancel":r.close();break;case"dir-get":r.getDirections();break;case"dir-google":r.openGoogle(u,i);r.close();break;case"dir-myloc":r.map.places.geolocate(function(t){n(".mapp-dir-saddr",r.sel).val(t.name);r.getDirections()});break;case"dir-swap":n(".mapp-dir-saddr",r.sel).val(i);n(".mapp-dir-daddr",r.sel).val(u);r.getDirections()}});this.open=function(t,i){if(mappl10n.options.directions=="google"){this.openGoogle(t,i);return}this.map.toggleView("directions",!0);n(".mapp-dir-addr",this.sel).removeClass("mapp-error");n(".mapp-dir-saddr",this.sel).val(t);n(".mapp-dir-daddr",this.sel).val(i);n(".mapp-dir-get",this.sel).focus();n(".mapp-dir-saddr",this.sel).focus()};this.close=function(){this.map.toggleView("directions",!1);this.directionsRenderer&&(this.directionsRenderer.setPanel(null),this.directionsRenderer.getMap()&&(this.directionsRenderer.setMap(null),this.map.togglePois(!0)))};this.getDirections=function(){var t;this.map.closeInfoWindow();n(".mapp-spinner",this.sel).css("visibility","visible");this.directionsService=this.directionsService?this.directionsService:new google.maps.DirectionsService;this.directionsRenderer=this.directionsRenderer?this.directionsRenderer:new google.maps.DirectionsRenderer({hideRouteList:!1,draggable:!0});this.placesService=this.placesService?this.placesService:new google.maps.places.PlacesService(this.map.getMap());n(".mapp-dir-renderer",this.sel).empty();t={travelMode:google.maps.DirectionsTravelMode.DRIVING,provideRouteAlternatives:!0,origin:n(".mapp-dir-saddr",this.sel).val(),destination:n(".mapp-dir-daddr",this.sel).val()};this.directionsService.route(t,function(t,i){(n(".mapp-spinner",r.sel).css("visibility","hidden"),n(".mapp-dir-addr",r.sel).removeClass("mapp-error"),n.each(t.geocoded_waypoints,function(t,i){n(".mapp-dir-addr",r.sel).eq(t).toggleClass("mapp-error",i.geocoder_status!="OK");i.place_id&&r.placesService.getDetails({placeId:i.place_id},function(i,u){if(u=="OK"){var f=i.formatted_address.replace(", USA","");f.indexOf(i.name)===-1&&(f=i.name+", "+f);n(".mapp-dir-addr",r.sel).eq(t).val(f)}})}),n(".mapp-dir-addr.mapp-error").length)||(i==google.maps.DirectionsStatus.OK?(r.map.togglePois(!1),r.directionsRenderer.setOptions({directions:t,map:r.map.getMap(),panel:n(".mapp-dir-renderer",r.sel).get(0)})):alert(mappl10n.dir_error+i))})};this.openGoogle=function(n,t){var i=mappl10n.options.directionsServer;i.toLowerCase().indexOf("http")==-1&&(i="https://"+i);i+="?saddr="+encodeURIComponent(n);i+="&daddr="+encodeURIComponent(t);window.open(i)}}}(jQuery);mapp=window.mapp||{};mapp.Icons={};mapp.Icons.get=function(){return"https://maps.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png"};mapp.Icons.getUrl=function(){return"https://maps.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png"};mapp=window.mapp||{};+function(n){mapp.InfoBox=function(t,i){var f=n.extend({border:20,disableAutoPan:!1},i),u=null,r=null,e=null,o=this;r=n('<div class="mapp-ib" tabindex="0">').appendTo(t.getMap().getDiv());e=n('<div class="mapp-ib-tip">').appendTo(t.getMap().getDiv());jQuery(window).resize(function(){o.close()});r.on("keydown",function(n){n.which==27&&o.close()});r.on("click",".mapp-close",function(){o.close()});this.getContent=function(){return r};this.setContent=function(n){r.empty().append(n)};this.open=function(n,t){u=t;this.setMap(n)};this.onAdd=function(){r.show();e.show();var t=n(":input",r);t.length?t.first().focus():r.focus();google.maps.event.trigger(o,"domready")};this.draw=function(){var l=this.getMap(),c=this.getProjection().fromLatLngToContainerPixel(u.position),t={width:n(l.getDiv()).width(),height:n(l.getDiv()).height()},v=n(".mapp-ib-body",r);if(!f.disableAutoPan){r.css({"max-height":"9999px",left:0,bottom:0,top:"auto",right:"auto"});var s=r.outerWidth(!0),h=r.outerHeight(!0),a=e.outerHeight(!0),i=c.x,o=c.y;i+s/2>t.width&&(i=t.width-s/2);i-s/2<0&&(i=s/2);o-h+u.anchorPoint.y-a<f.border&&(o=h-u.anchorPoint.y+f.border+a);o>t.height&&(o=t.height);l.panBy(c.x-i,c.y-o);h>t.height+u.anchorPoint.y-2*f.border&&(h=t.height+u.anchorPoint.y-2*f.border,r.css({"max-height":h+2}));r.css({left:i-s/2,bottom:t.height-o-u.anchorPoint.y+a});e.css({left:i,bottom:t.height-o-u.anchorPoint.y})}};this.close=function(){r.is(":visible")&&(this.setMap(null),google.maps.event.trigger(this,"closed"))};this.onRemove=function(){r.empty();r.hide();e.hide()}};mapp.InfoBox.prototype=new google.maps.OverlayView}(jQuery);mapp=window.mapp||{};+function(n){if(mapp.lib={ajax:function(t){var r=this,u,i;if(n.extend({type:"GET",cache:!1,data:null,spinner:null,callback:n.noop},t),t.cache)for(typeof mapp.lib.ajax.cache=="undefined"&&(mapp.lib.ajax.cache=[]),u=JSON.stringify(t.data),i=0;i<mapp.lib.ajax.cache.length;i++)if(mapp.lib.ajax.cache[i].hash==u){t.callback(mapp.lib.ajax.cache[i].response);return}return t.spinner&&t.spinner.show(),n.ajax({type:t.type,cache:!1,url:mappl10n.options.ajaxurl,data:t.data,success:function(n,i,u){if(t.spinner&&t.spinner.hide(),n.output){r.alert("AJAX Error\r\n"+n.output);return}if(n.status=="OK"){t.cache&&mapp.lib.ajax.cache.push({hash:JSON.stringify(t.data),response:n});t.callback&&t.callback(n,u);return}var f=typeof n=="object"?n.status:n;r.alert("AJAX ERROR\r\nResponse="+f+" TextStatus="+i+"\r\nResponseText="+u.responseText)},error:function(n,i,u){(t.spinner&&t.spinner.hide(),i!="cancel")&&typeof u!="undefined"&&u!=""&&r.alert("AJAX ERROR\r\nTextStatus="+i+"\r\nError="+u+"\r\nResponseText="+n.responseText)}})},alert:function(n){mappl10n.options.admin||mappl10n.options.debug?alert(n):window.console&&console.error(n)},jqVersionCheck:function(t){if(typeof n=="undefined"||typeof t=="undefined")return!1;for(t=t.split("."),v=n.fn.jquery.split("."),i=0;i<t.length;i++){var r=parseInt(t[i]),u=typeof v[i]!="undefined"?parseInt(v[i]):0;if(u!=r)return u>r}return!0},log:function(n){window.console&&console.error(n)},scrollTo:function(n,t){if(n&&t&&n.length&&t.length){var i=n.scrollTop(),u=n.height(),r=i+t.position().top,f=r+t.outerHeight(!0);r<i?n.scrollTop(r):f>i+u&&n.scrollTop(f-u)}},template:function(t,i){if(mapp.lib.templates=mapp.lib.templates?mapp.lib.templates:{},!mapp.lib.templates[t]){var r=mappl10n.options.templates?mappl10n.options.template[t]:n("#mapp-tmpl-"+t).html();if(r)mapp.lib.templates[t]=_.template(r.replace(/[\n\r\t]/g,""),null,{evaluate:/<#([\s\S]+?)#>/g,interpolate:/\{\{\{([\s\S]+?)\}\}\}/g,escape:/\{\{([^\}]+?)\}\}(?!\})/g});else return""}return mapp.lib.templates[t](i)}},typeof google=="undefined")return mapp.lib.alert("ERROR: Google Maps API not loaded");if(!mappl10n.options.apiKey)return mapp.lib.alert("ERROR: Google Maps API Key missing, please check MapPress settings and FAQ");n(document).ready(function(){n('script[src*="https://maps.googleapis.com/maps/api/js?v=3"]').length>1&&mapp.lib.alert("ERROR: Google Maps API key loaded multiple times, please see MapPress FAQ.")});mapp.lib.jqVersionCheck("1.7")||mapp.lib.alert("jQuery version is too old: "+n.fn.jquery);n("body").on("tabsactivate tabsshow",function(t,i){var r=i.newPanel?i.newPanel:i.panel;r&&n(".mapp-layout",r).each(function(){var i=n(this).attr("id"),t=window[i];t.resize();t.initCenter()})})}(jQuery);mapp=window.mapp||{};+function(n){mapp.Places=function(t,i){var u=this,r;if(this.sel=n(t),this.opts=n.extend({map:null,types:[]},i),r=n('<div style="display:none">').appendTo("body"),this.placesService=new google.maps.places.PlacesService(r.get(0)),this.autocompleteService=new google.maps.places.AutocompleteService,this.sel.length){this.autocomplete=new google.maps.places.Autocomplete(this.sel.get(0),{types:this.opts.types});this.autocomplete.bindTo("bounds",this.opts.map.getMap());this.sel.on("keydown",function(n){n.which==13&&n.preventDefault()});google.maps.event.addListener(this.autocomplete,"place_changed",function(){u.parse(this.getPlace())})}};mapp.Places.prototype={parse:function(t){var u,i=this,r,e,f;if(this.error(!1),r=t&&t.name?n.trim(t.name):n.trim(t),!r)return this.error(!0);if(r=="user"){this.geolocate(function(n){google.maps.event.trigger(i,"search",n)});return}if(r.substring(0,4)=="http"){google.maps.event.trigger(i,"search",r);return}if(t&&t.geometry){t.formatted_address&&this.set(t.formatted_address);google.maps.event.trigger(i,"search",t);return}if(e=this.parseLatLng(t),e){google.maps.event.trigger(i,"search",e);return}f=this.opts.map.getMap().getBounds();f=f?f:new google.maps.LatLngBounds(new google.maps.LatLng(85,-180),new google.maps.LatLng(-85,180));this.autocompleteService.getPlacePredictions({input:r,types:this.opts.types,bounds:f},function(n,t){if(t!="OK"||n==null||n.length==0)return i.error(!0);u=typeof n[0].description!="undefined"?n[0].description:null;i.placesService.getDetails({placeId:n[0].place_id},function(n,t){if(t!="OK"||!n||!n.geometry)return i.error(!0);u=u?u:n.formatted_address;i.set(u);google.maps.event.trigger(i,"search",n)})})},parseLatLng:function(t){var i,u,r;return t instanceof google.maps.LatLng?i=t:t&&t.lat&&t.lng?i=new google.maps.LatLng(t.lat,t.lng):(u=t&&t.name?n.trim(t.name):n.trim(t),r=u.split(","),r.length!=2||isNaN(r[0])||isNaN(r[1])||(i=new google.maps.LatLng(r[0],r[1]))),i?{name:i.toUrlValue(),geometry:{location:i}}:null},geolocate:function(n){var t=this;if(!navigator||!navigator.geolocation){alert(mappl10n.no_geolocate);return}navigator.geolocation.getCurrentPosition(function(i){t.set("");var r=new google.maps.LatLng(i.coords.latitude,i.coords.longitude);n({name:r.toUrlValue(),geometry:{location:r}})},function(n){var t=n&&n.message?" : "+n.message:"";alert(mappl10n.no_geolocate+t)},{timeout:15e3,enableHighAccuracy:!0,maximumAge:3e4})},set:function(n){n=n.replace(", United States of America","").replace(", USA","").replace(", United States","");this.sel.val(n);this.error(!1)},get:function(){return n.trim(this.sel.val())},focus:function(){this.sel.focus()},error:function(n){this.sel.toggleClass("mapp-error",!!n)},destroy:function(){this.autocomplete.unbindAll();google.maps.event.clearInstanceListeners(this.sel.get(0))}}}(jQuery);mapp=window.mapp||{};+function(n){mapp.Poi=function(t){var f,e,r,s,i,u,h,o;if(this.defaults={address:null,body:null,html:null,iconid:null,kml:null,map:null,overlay:null,postid:null,title:"",url:null,type:null,viewport:null},n.extend(this,this.defaults,t),t&&t.correctedAddress&&(this.address=t.correctedAddress),t.viewport&&t.viewport.sw&&t.viewport.ne&&(f=new google.maps.LatLng(t.viewport.sw.lat,t.viewport.sw.lng),e=new google.maps.LatLng(t.viewport.ne.lat,t.viewport.ne.lng),this.viewport=f.lat()==0&&f.lng()==0&&e.lat()==0&&e.lng()==0?null:new google.maps.LatLngBounds(f,e)),r=[],s=[],!t.overlay)switch(this.type){case"polygon":if(t.poly&&t.poly.paths)for(i=0;i<t.poly.paths.length;i++){for(r=[],u=0;u<t.poly.paths[i].length;u++)r.push(new google.maps.LatLng(t.poly.paths[i][u].lat,t.poly.paths[i][u].lng));s.push(new google.maps.MVCArray(r))}this.overlay=new google.maps.Polygon({paths:new google.maps.MVCArray(s)});this.setColors(t.poly);break;case"polyline":if(t.poly&&t.poly.path)for(i=0;i<t.poly.path.length;i++)r.push(new google.maps.LatLng(t.poly.path[i].lat,t.poly.path[i].lng));this.overlay=new google.maps.Polyline({path:new google.maps.MVCArray(r)});this.setColors(t.poly);break;case"circle":o=new google.maps.LatLng(t.point.lat,t.point.lng);this.overlay=new google.maps.Circle({center:o,radius:parseFloat(t.poly.radius)});this.setColors(t.poly);break;case"rectangle":this.overlay=new google.maps.Rectangle({bounds:this.viewport});this.setColors(t.poly);break;case"kml":h=t.kml&&t.kml.url?t.kml.url:"";this.overlay=new google.maps.KmlLayer(h,{preserveViewport:!0,suppressInfoWindows:!0});break;case"":default:o=new google.maps.LatLng(t.point.lat,t.point.lng);this.overlay=new google.maps.Marker({position:o})}};mapp.Poi.prototype={toJSON:function(){var n={address:this.address,body:this.body,correctedAddress:this.address,iconid:this.iconid,point:null,poly:null,title:this.title,type:this.type,viewport:null},r=this.getPosition(),t,i;if(n.point={lat:r.lat(),lng:r.lng()},t=this.viewport?this.viewport:this.getBounds(),t&&(n.viewport={sw:{lat:t.getSouthWest().lat(),lng:t.getSouthWest().lng()},ne:{lat:t.getNorthEast().lat(),lng:t.getNorthEast().lng()}}),this.type=="kml"&&(n.kml={url:this.overlay.getUrl()}),this.isPoly()){n.poly=this.getColors();switch(this.type){case"circle":n.poly.radius=this.overlay.getRadius();break;case"polyline":n.poly.path=[];this.overlay.getPath().forEach(function(t){n.poly.path.push({lat:t.lat(),lng:t.lng()})});break;case"polygon":n.poly.paths=[];this.overlay.getPaths().forEach(function(t){var i=[];t.forEach(function(n){i.push({lat:n.lat(),lng:n.lng()})});n.poly.paths.push(i)});break;case"rectangle":i=this.overlay.getBounds();n.viewport={sw:{lat:i.getSouthWest().lat(),lng:i.getSouthWest().lng()},ne:{lat:i.getNorthEast().lat(),lng:i.getNorthEast().lng()}}}}return n},setMap:function(t){var i=this;if(google.maps.event.clearInstanceListeners(this.overlay),t==null){this.overlay.setMap(null);return}this.type=="kml"&&(google.maps.event.addListener(this.overlay,"defaultviewport_changed",function(){i.viewport=i.overlay.getDefaultViewport()}),google.maps.event.addListener(this.overlay,"status_changed",function(){var n=i.overlay.getStatus();n!="OK"&&mappl10n.ajaxErrors&&alert(mappl10n.kml_error+":"+n)}));this.map=t;this.overlay.setMap(t.getMap());this.setEditable(this.map.editable);this.setIcon(this.iconid);this.type||this.overlay.setTitle(n("<div>").html(this.title).text());google.maps.event.addListener(this.overlay,"click",function(n){i.open(n)})},setEditable:function(n){var t=this;this.type!="kml"&&(this.overlay.setDraggable(n),this.isPoly()&&this.overlay.setEditable(n),google.maps.event.clearListeners(this.overlay,"rightclick"),google.maps.event.clearListeners(this.overlay,"dragstart"),n&&(google.maps.event.addListener(this.overlay,"dragstart",function(){t.viewport=null;t.map.closeInfoWindow()}),(this.type=="polygon"||this.type=="polyline")&&google.maps.event.addListener(this.overlay,"rightclick",function(n){n.vertex!=null&&t.overlay.getPath().getLength()>2&&t.overlay.getPath().removeAt(n.vertex)})))},setZIndex:function(n){this.overlay.set("zIndex",n)},select:function(){},setIcon:function(n){this.type||typeof mapp.Icons=="undefined"||(this.overlay.setIcon(null),this.overlay.setIcon(mapp.Icons.get(n)),this.iconid=n)},setVisible:function(n){typeof this.overlay.setVisible!="undefined"&&this.overlay.setVisible(n)},setColors:function(n){var i={};for(var t in{strokeColor:"",strokeOpacity:"",strokeWeight:"",fillColor:"",fillOpacity:""})n&&typeof n[t]!="undefined"&&(i[t]=n[t]);this.overlay.setOptions(i)},getColors:function(){var t={};for(var n in{strokeColor:"",strokeOpacity:"",strokeWeight:"",fillColor:"",fillOpacity:""})typeof this.overlay[n]!="undefined"&&(t[n]=this.overlay[n]);return t},center:function(t){var i=this.map.getMap(),u=this.getBounds(),r,t;if(typeof t=="number"){i.setCenter(this.getPosition());i.setZoom(t);return}if(!u){i.setCenter(this.getPosition());i.setZoom(parseInt(mappl10n.options.poiZoom));return}r=u.getNorthEast().lng()-u.getSouthWest().lng();r<0&&(r+=360);t=Math.round(Math.log(n(i.getDiv()).width()*360/r/256)/Math.LN2);i.setCenter(this.getPosition());i.setZoom(t)},open:function(n){this.map.openInfoWindow(this,n)},isPoly:function(){return jQuery.inArray(this.type,["polyline","polygon","circle","rectangle"])!=-1},getBounds:function(){var n;switch(this.type){case"polyline":n=new google.maps.LatLngBounds;this.overlay.getPath().forEach(function(t){n.extend(t)});break;case"polygon":n=new google.maps.LatLngBounds;this.overlay.getPaths().forEach(function(t){t.forEach(function(t){n.extend(t)})});break;case"rectangle":case"circle":n=this.overlay.getBounds();break;case"kml":n=this.overlay.getDefaultViewport();n=n?n:this.viewport;break;default:return this.viewport}return n},getPosition:function(n){if(!this.type)return this.overlay.getPosition();if(this.type=="kml"&&n&&n.latLng)return n.latLng;var t=this.getBounds();return t?t.getCenter():new google.maps.LatLng(0,0)},click:function(){google.maps.event.trigger(this.overlay,"click")},getAddress:function(){return this.address?this.address:this.type=="kml"?this.kml.url:this.getPosition().toUrlValue()},getAnchorPoint:function(n){return this.type=="kml"?n&&n.pixelOffset?new google.maps.Point(n.pixelOffset.width,n.pixelOffset.height):new google.maps.Point(0,0):this.type?new google.maps.Point(0,0):typeof this.overlay.anchorPoint!="undefined"?this.overlay.anchorPoint:new google.maps.Point(0,-32)}}}(jQuery);mapp=window.mapp||{};mapp.widgets={};+function(){mapp.load=function(){if(typeof mapp!="undefined"&&mapp.data)while(mapp.data.length){var n=mapp.data.pop();window[n.name]=new mapp.Map(n);window[n.name].display()}}}(jQuery);typeof mapp.Media!="undefined"?window.mappEditor=new mapp.Media:mapp.load()
languages/mappress-google-maps-for-wordpress.pot CHANGED
@@ -1,14 +1,14 @@
1
- # Copyright (C) 2017 MapPress Easy Google Maps
2
  # This file is distributed under the same license as the MapPress Easy Google Maps package.
3
  msgid ""
4
  msgstr ""
5
- "Project-Id-Version: MapPress Easy Google Maps 2.47.5\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/mappress-google-maps-for-wordpress\n"
7
- "POT-Creation-Date: 2017-11-03 16:16:33+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
- "PO-Revision-Date: 2017-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
@@ -37,7 +37,7 @@ msgid "Cancel"
37
  msgstr ""
38
 
39
  #: forms/map_editor.php:51 languages/texts.php:46 mappress_controls.php:102
40
- #: mappress_map.php:599
41
  msgid "Delete"
42
  msgstr ""
43
 
@@ -57,7 +57,8 @@ msgstr ""
57
  msgid "Map Title"
58
  msgstr ""
59
 
60
- #: forms/map_media.php:20 languages/texts.php:51 mappress_map.php:604
 
61
  msgid "Untitled"
62
  msgstr ""
63
 
@@ -65,7 +66,7 @@ msgstr ""
65
  msgid "Display Size"
66
  msgstr ""
67
 
68
- #: forms/map_media.php:39 languages/texts.php:19 mappress_map.php:598
69
  msgid "Insert into post"
70
  msgstr ""
71
 
@@ -97,43 +98,43 @@ msgstr ""
97
  msgid "Size"
98
  msgstr ""
99
 
100
- #: languages/texts.php:20 mappress.php:140
101
  msgid "Version"
102
  msgstr ""
103
 
104
- #: languages/texts.php:21 mappress.php:148
105
  msgid "Documentation"
106
  msgstr ""
107
 
108
- #: languages/texts.php:22 mappress.php:149
109
  msgid "Support"
110
  msgstr ""
111
 
112
- #: languages/texts.php:23 mappress.php:151
113
  msgid "Upgrade to MapPress Pro"
114
  msgstr ""
115
 
116
- #: languages/texts.php:24 mappress.php:422
117
  msgid "MapPress database tables are missing. Please deactivate the plugin and activate it again to fix this."
118
  msgstr ""
119
 
120
- #: languages/texts.php:25 mappress.php:427
121
  msgid "WARNING: MapPress now requires WordPress 3.2 or higher. Please upgrade before using MapPress."
122
  msgstr ""
123
 
124
- #: languages/texts.php:26 mappress.php:432
125
  msgid "WARNING: MapPress is not compfatible with the WP-Geo plugin. Please deactivate or uninstall WP-Geo before using MapPress."
126
  msgstr ""
127
 
128
- #: languages/texts.php:27 mappress.php:439
129
  msgid "A Google Maps API key is required"
130
  msgstr ""
131
 
132
- #: languages/texts.php:28 mappress.php:439
133
  msgid "Please update your"
134
  msgstr ""
135
 
136
- #: languages/texts.php:29 mappress.php:439
137
  msgid "MapPress Settings"
138
  msgstr ""
139
 
@@ -149,7 +150,7 @@ msgstr ""
149
  msgid "One of the addresses could not be found."
150
  msgstr ""
151
 
152
- #: languages/texts.php:33 mappress.php:568
153
  msgid "Google cannot return directions between those addresses. There is no route between them or the routing information is not available."
154
  msgstr ""
155
 
@@ -157,11 +158,11 @@ msgstr ""
157
  msgid "Unknown error, unable to return directions. Status code = "
158
  msgstr ""
159
 
160
- #: languages/texts.php:35 mappress_poi.php:122 mappress_settings.php:88
161
  msgid "Directions"
162
  msgstr ""
163
 
164
- #: languages/texts.php:36 mappress.php:569
165
  msgid "Error reading KML file"
166
  msgstr ""
167
 
@@ -169,11 +170,11 @@ msgstr ""
169
  msgid "Loading..."
170
  msgstr ""
171
 
172
- #: languages/texts.php:38 mappress.php:570
173
  msgid "No matching address"
174
  msgstr ""
175
 
176
- #: languages/texts.php:39 mappress.php:571
177
  msgid "Unable to get your location"
178
  msgstr ""
179
 
@@ -185,7 +186,7 @@ msgstr ""
185
  msgid "Transit"
186
  msgstr ""
187
 
188
- #: languages/texts.php:42 pro/mappress_pro_settings.php:237
189
  #: pro/mappress_widget.php:94
190
  msgid "Zoom"
191
  msgstr ""
@@ -202,11 +203,11 @@ msgstr ""
202
  msgid "Click to change"
203
  msgstr ""
204
 
205
- #: languages/texts.php:47 mappress.php:572
206
  msgid "Delete this POI?"
207
  msgstr ""
208
 
209
- #: languages/texts.php:48 mappress.php:573
210
  msgid "Delete this map?"
211
  msgstr ""
212
 
@@ -214,7 +215,7 @@ msgstr ""
214
  msgid "Please save the map first"
215
  msgstr ""
216
 
217
- #: languages/texts.php:50 mappress.php:574
218
  msgid "Shape"
219
  msgstr ""
220
 
@@ -222,15 +223,15 @@ msgstr ""
222
  msgid "New"
223
  msgstr ""
224
 
225
- #: languages/texts.php:53 mappress_map.php:179
226
  msgid "Map not found"
227
  msgstr ""
228
 
229
- #: languages/texts.php:54 mappress_map.php:597
230
  msgid "Edit"
231
  msgstr ""
232
 
233
- #: languages/texts.php:55 mappress_map.php:452
234
  msgid "Show map"
235
  msgstr ""
236
 
@@ -254,11 +255,11 @@ msgstr ""
254
  msgid "Directions from"
255
  msgstr ""
256
 
257
- #: languages/texts.php:61 mappress_settings.php:81
258
  msgid "Basic Settings"
259
  msgstr ""
260
 
261
- #: languages/texts.php:62 mappress_settings.php:83
262
  msgid "Post types"
263
  msgstr ""
264
 
@@ -306,15 +307,15 @@ msgstr ""
306
  msgid "Map links"
307
  msgstr ""
308
 
309
- #: languages/texts.php:74 mappress_settings.php:87
310
  msgid "Map alignment"
311
  msgstr ""
312
 
313
- #: languages/texts.php:75 mappress_settings.php:92 mappress_settings.php:220
314
  msgid "Open first POI"
315
  msgstr ""
316
 
317
- #: languages/texts.php:76 mappress_settings.php:90
318
  msgid "POI Settings"
319
  msgstr ""
320
 
@@ -326,39 +327,39 @@ msgstr ""
326
  msgid "Tooltips"
327
  msgstr ""
328
 
329
- #: languages/texts.php:79 mappress_settings.php:91
330
  msgid "Default zoom"
331
  msgstr ""
332
 
333
- #: languages/texts.php:80 mappress_settings.php:95
334
  msgid "Mashups"
335
  msgstr ""
336
 
337
- #: languages/texts.php:81 mappress_settings.php:96
338
  msgid "Icons"
339
  msgstr ""
340
 
341
- #: languages/texts.php:82 mappress_settings.php:97
342
  msgid "Styled Maps"
343
  msgstr ""
344
 
345
- #: languages/texts.php:83 mappress_settings.php:98
346
  msgid "Geocoding"
347
  msgstr ""
348
 
349
- #: languages/texts.php:84 mappress_settings.php:102
350
  msgid "Localization"
351
  msgstr ""
352
 
353
- #: languages/texts.php:85 mappress_settings.php:103 mappress_settings.php:224
354
  msgid "Language"
355
  msgstr ""
356
 
357
- #: languages/texts.php:86 mappress_settings.php:104
358
  msgid "Country"
359
  msgstr ""
360
 
361
- #: languages/texts.php:87 mappress_settings.php:105
362
  msgid "Directions server"
363
  msgstr ""
364
 
@@ -366,15 +367,15 @@ msgstr ""
366
  msgid "Directions units"
367
  msgstr ""
368
 
369
- #: languages/texts.php:89 mappress_settings.php:107
370
  msgid "Miscellaneous"
371
  msgstr ""
372
 
373
- #: languages/texts.php:90 mappress_settings.php:108
374
  msgid "Map sizes"
375
  msgstr ""
376
 
377
- #: languages/texts.php:91 mappress_settings.php:109
378
  msgid "Scripts"
379
  msgstr ""
380
 
@@ -394,16 +395,16 @@ msgstr ""
394
  msgid "Recenter maps when window is resized"
395
  msgstr ""
396
 
397
- #: languages/texts.php:96 mappress_settings.php:175
398
- #: pro/mappress_pro_settings.php:109
399
  msgid "more info"
400
  msgstr ""
401
 
402
- #: languages/texts.php:97 mappress_settings.php:176
403
  msgid "Required to display maps"
404
  msgstr ""
405
 
406
- #: languages/texts.php:98 mappress_settings.php:211 mappress_settings.php:214
407
  msgid "Output scripts in footer"
408
  msgstr ""
409
 
@@ -451,7 +452,7 @@ msgstr ""
451
  msgid "Use a specific %s for map controls and geocoding"
452
  msgstr ""
453
 
454
- #: languages/texts.php:110 mappress_settings.php:164
455
  msgid "Default"
456
  msgstr ""
457
 
@@ -539,15 +540,15 @@ msgstr ""
539
  msgid "Hybrid"
540
  msgstr ""
541
 
542
- #: languages/texts.php:132 mappress_settings.php:197
543
  msgid "Google"
544
  msgstr ""
545
 
546
- #: languages/texts.php:133 mappress_settings.php:198
547
  msgid "Inline"
548
  msgstr ""
549
 
550
- #: languages/texts.php:134 mappress_settings.php:183 mappress_settings.php:199
551
  msgid "None"
552
  msgstr ""
553
 
@@ -571,27 +572,27 @@ msgstr ""
571
  msgid "Default alignment"
572
  msgstr ""
573
 
574
- #: languages/texts.php:140 mappress_settings.php:165
575
  msgid "Center"
576
  msgstr ""
577
 
578
- #: languages/texts.php:141 mappress_settings.php:166
579
  msgid "Left"
580
  msgstr ""
581
 
582
- #: languages/texts.php:142 mappress_settings.php:167
583
  msgid "Right"
584
  msgstr ""
585
 
586
- #: languages/texts.php:143 mappress_settings.php:232
587
  msgid "Default zoom for POIs entered by lat/lng"
588
  msgstr ""
589
 
590
- #: languages/texts.php:144 mappress_settings.php:181
591
  msgid "Top of post"
592
  msgstr ""
593
 
594
- #: languages/texts.php:145 mappress_settings.php:182
595
  msgid "Bottom of post"
596
  msgstr ""
597
 
@@ -603,7 +604,7 @@ msgstr ""
603
  msgid "Load %s"
604
  msgstr ""
605
 
606
- #: languages/texts.php:148 mappress_settings.php:242
607
  msgid "Default size"
608
  msgstr ""
609
 
@@ -627,11 +628,11 @@ msgstr ""
627
  msgid "%s on WordPress.org"
628
  msgstr ""
629
 
630
- #: languages/texts.php:154 mappress_settings.php:276
631
  msgid "Thanks for your support!"
632
  msgstr ""
633
 
634
- #: languages/texts.php:155 mappress_settings.php:283
635
  msgid "Easy Google Maps"
636
  msgstr ""
637
 
@@ -639,19 +640,19 @@ msgstr ""
639
  msgid "Like this plugin?"
640
  msgstr ""
641
 
642
- #: languages/texts.php:157 mappress_settings.php:295
643
  msgid "Sample Map"
644
  msgstr ""
645
 
646
- #: languages/texts.php:158 mappress_settings.php:317
647
  msgid "Save Changes"
648
  msgstr ""
649
 
650
- #: languages/texts.php:159 mappress_settings.php:318
651
  msgid "Reset Defaults"
652
  msgstr ""
653
 
654
- #: languages/texts.php:160 mappress.php:134
655
  msgid "Settings"
656
  msgstr ""
657
 
@@ -696,11 +697,11 @@ msgid "POI list"
696
  msgstr ""
697
 
698
  #: languages/texts.php:171 pro/mappress_pro_settings.php:20
699
- #: pro/mappress_pro_settings.php:25
700
  msgid "InfoWindow type"
701
  msgstr ""
702
 
703
- #: languages/texts.php:172 pro/mappress_pro_settings.php:27
704
  msgid "Default icon"
705
  msgstr ""
706
 
@@ -708,7 +709,7 @@ msgstr ""
708
  msgid "Custom icons directory"
709
  msgstr ""
710
 
711
- #: languages/texts.php:174 pro/mappress_pro_settings.php:29
712
  msgid "Icon scaling"
713
  msgstr ""
714
 
@@ -736,23 +737,23 @@ msgstr ""
736
  msgid "Thumbnail Size"
737
  msgstr ""
738
 
739
- #: languages/texts.php:181 pro/mappress_pro_settings.php:30
740
  msgid "Automatic icons"
741
  msgstr ""
742
 
743
- #: languages/texts.php:182 pro/mappress_pro_settings.php:38
744
  msgid "Styled maps"
745
  msgstr ""
746
 
747
- #: languages/texts.php:183 pro/mappress_pro_settings.php:39
748
  msgid "Default style"
749
  msgstr ""
750
 
751
- #: languages/texts.php:184 pro/mappress_pro_settings.php:41
752
  msgid "Geocoding fields"
753
  msgstr ""
754
 
755
- #: languages/texts.php:185 pro/mappress_pro_settings.php:43
756
  msgid "Force resize"
757
  msgstr ""
758
 
@@ -761,24 +762,24 @@ msgid "Optional - for geocoding only"
761
  msgstr ""
762
 
763
  #: languages/texts.php:187 pro/mappress_filter.php:83
764
- #: pro/mappress_filter.php:131 pro/mappress_pro_settings.php:122
765
  msgid "Post type"
766
  msgstr ""
767
 
768
- #: languages/texts.php:188 pro/mappress_pro_settings.php:168
769
  msgid "Key"
770
  msgstr ""
771
 
772
- #: languages/texts.php:189 pro/mappress_pro_settings.php:129
773
  msgid "Value"
774
  msgstr ""
775
 
776
- #: languages/texts.php:190 pro/mappress_pro_settings.php:129
777
- #: pro/mappress_pro_settings.php:237
778
  msgid "Icon"
779
  msgstr ""
780
 
781
- #: languages/texts.php:191 pro/mappress_pro_settings.php:259
782
  msgid "Show a list of POIs under each map"
783
  msgstr ""
784
 
@@ -818,15 +819,15 @@ msgstr ""
818
  msgid "Go directly to the post"
819
  msgstr ""
820
 
821
- #: languages/texts.php:201 pro/mappress_pro_settings.php:199
822
  msgid "Google InfoWindow"
823
  msgstr ""
824
 
825
- #: languages/texts.php:202 pro/mappress_pro_settings.php:200
826
  msgid "InfoBox"
827
  msgstr ""
828
 
829
- #: languages/texts.php:203 pro/mappress_pro_settings.php:308
830
  msgid "Show featured image thumbnails in mashup POIs"
831
  msgstr ""
832
 
@@ -850,11 +851,11 @@ msgstr ""
850
  msgid "Enter JSON for %s from Google's %s"
851
  msgstr ""
852
 
853
- #: languages/texts.php:209 pro/mappress_pro_settings.php:283
854
  msgid "Style name"
855
  msgstr ""
856
 
857
- #: languages/texts.php:210 pro/mappress_pro_settings.php:269
858
  msgid "No styles have been defined yet"
859
  msgstr ""
860
 
@@ -882,19 +883,19 @@ msgstr ""
882
  msgid "Address Line 6"
883
  msgstr ""
884
 
885
- #: languages/texts.php:217 pro/mappress_pro_settings.php:237
886
  msgid "Latitude"
887
  msgstr ""
888
 
889
- #: languages/texts.php:218 pro/mappress_pro_settings.php:237
890
  msgid "Longitude"
891
  msgstr ""
892
 
893
- #: languages/texts.php:219 pro/mappress_pro_settings.php:237
894
  msgid "Title"
895
  msgstr ""
896
 
897
- #: languages/texts.php:220 pro/mappress_pro_settings.php:237
898
  msgid "Body"
899
  msgstr ""
900
 
@@ -902,12 +903,12 @@ msgstr ""
902
  msgid "Map Zoom"
903
  msgstr ""
904
 
905
- #: languages/texts.php:222 pro/mappress_widget.php:110
906
  msgid "Map"
907
  msgstr ""
908
 
909
  #: languages/texts.php:223 pro/mappress_filter.php:118
910
- #: pro/mappress_pro_settings.php:242
911
  msgid "Custom Field"
912
  msgstr ""
913
 
@@ -915,15 +916,15 @@ msgstr ""
915
  msgid "Overwrite existing maps when updating"
916
  msgstr ""
917
 
918
- #: languages/texts.php:225 pro/mappress_pro_settings.php:183
919
  msgid "Permanently resize existing maps"
920
  msgstr ""
921
 
922
- #: languages/texts.php:226 pro/mappress_pro_settings.php:185
923
  msgid "from %s to %s"
924
  msgstr ""
925
 
926
- #: languages/texts.php:227 pro/mappress_pro_settings.php:186
927
  msgid "Force Resize"
928
  msgstr ""
929
 
@@ -1023,70 +1024,82 @@ msgstr ""
1023
  msgid "Chris Richardson"
1024
  msgstr ""
1025
 
1026
- #: mappress_map.php:99
1027
- msgid "Insert Map"
 
 
 
 
 
 
 
 
1028
  msgstr ""
1029
 
1030
- #: mappress_map.php:423 pro/mappress_pro_settings.php:32
1031
  msgid "Filter"
1032
  msgstr ""
1033
 
1034
- #: mappress_settings.php:79
 
 
 
 
1035
  msgid "License"
1036
  msgstr ""
1037
 
1038
- #: mappress_settings.php:82
1039
  msgid "Google API key"
1040
  msgstr ""
1041
 
1042
- #: mappress_settings.php:84
1043
  msgid "Automatic display"
1044
  msgstr ""
1045
 
1046
- #: mappress_settings.php:99
1047
- msgid "Google Server API key"
1048
  msgstr ""
1049
 
1050
- #: mappress_settings.php:190
1051
  msgid "Country code"
1052
  msgstr ""
1053
 
1054
- #: mappress_settings.php:192
1055
  msgid "%s for searching"
1056
  msgstr ""
1057
 
1058
- #: mappress_settings.php:212
 
 
 
 
1059
  msgid "Disabled because Jetpack Infinite Scroll is active"
1060
  msgstr ""
1061
 
1062
- #: mappress_settings.php:215
1063
  msgid "disable if maps are output using AJAX"
1064
  msgstr ""
1065
 
1066
- #: mappress_settings.php:226
1067
  msgid "%s for map controls"
1068
  msgstr ""
1069
 
1070
- #: mappress_settings.php:242
1071
  msgid "Width (px or %)"
1072
  msgstr ""
1073
 
1074
- #: mappress_settings.php:242
1075
  msgid "Height (px)"
1076
  msgstr ""
1077
 
1078
- #: mappress_settings.php:273
1079
  msgid "rate it 5 Stars"
1080
  msgstr ""
1081
 
1082
- #: mappress_settings.php:275
1083
  msgid "Please %s on WordPress.org."
1084
  msgstr ""
1085
 
1086
- #: mappress_settings.php:300
1087
- msgid "MapPress"
1088
- msgstr ""
1089
-
1090
  #: pro/mappress_filter.php:118
1091
  msgid "Taxonomy"
1092
  msgstr ""
@@ -1104,122 +1117,138 @@ msgid "Beta versions"
1104
  msgstr ""
1105
 
1106
  #: pro/mappress_pro_settings.php:23
 
 
 
 
1107
  msgid "Sort"
1108
  msgstr ""
1109
 
1110
- #: pro/mappress_pro_settings.php:28
1111
  msgid "Icon directory"
1112
  msgstr ""
1113
 
1114
- #: pro/mappress_pro_settings.php:33
1115
  msgid "POI content"
1116
  msgstr ""
1117
 
1118
- #: pro/mappress_pro_settings.php:34
1119
  msgid "POI click"
1120
  msgstr ""
1121
 
1122
- #: pro/mappress_pro_settings.php:35
1123
  msgid "Thumbnails"
1124
  msgstr ""
1125
 
1126
- #: pro/mappress_pro_settings.php:36
1127
  msgid "Thumbnail size"
1128
  msgstr ""
1129
 
1130
- #: pro/mappress_pro_settings.php:42
1131
  msgid "Overwrite"
1132
  msgstr ""
1133
 
1134
  #: pro/mappress_pro_settings.php:44
 
 
 
 
1135
  msgid "Automatic updates"
1136
  msgstr ""
1137
 
1138
- #: pro/mappress_pro_settings.php:110
1139
  msgid "API key secured by IP address for geocoding (optional)"
1140
  msgstr ""
1141
 
1142
- #: pro/mappress_pro_settings.php:144
1143
  msgid "Enable settings for automatic updates"
1144
  msgstr ""
1145
 
1146
- #: pro/mappress_pro_settings.php:148
1147
  msgid "Enable updates for beta versions"
1148
  msgstr ""
1149
 
1150
- #: pro/mappress_pro_settings.php:161
1151
  msgid "Checkboxes"
1152
  msgstr ""
1153
 
1154
- #: pro/mappress_pro_settings.php:161
1155
  msgid "Select"
1156
  msgstr ""
1157
 
1158
- #: pro/mappress_pro_settings.php:168
1159
  msgid "Format"
1160
  msgstr ""
1161
 
1162
- #: pro/mappress_pro_settings.php:206
 
 
 
 
 
 
 
 
1163
  msgid "Enter license to enable automatic updates"
1164
  msgstr ""
1165
 
1166
- #: pro/mappress_pro_settings.php:216
1167
  msgid "Communication error, please try again later"
1168
  msgstr ""
1169
 
1170
- #: pro/mappress_pro_settings.php:218
1171
  msgid "Active"
1172
  msgstr ""
1173
 
1174
- #: pro/mappress_pro_settings.php:220
1175
  msgid "License is invalid or expired"
1176
  msgstr ""
1177
 
1178
- #: pro/mappress_pro_settings.php:224
1179
  msgid "POI title + body"
1180
  msgstr ""
1181
 
1182
- #: pro/mappress_pro_settings.php:224
1183
  msgid "Post title + excerpt"
1184
  msgstr ""
1185
 
1186
- #: pro/mappress_pro_settings.php:229
1187
  msgid "Open POI"
1188
  msgstr ""
1189
 
1190
- #: pro/mappress_pro_settings.php:229
1191
  msgid "Open post"
1192
  msgstr ""
1193
 
1194
- #: pro/mappress_pro_settings.php:229
1195
  msgid "Open post in new tab"
1196
  msgstr ""
1197
 
1198
- #: pro/mappress_pro_settings.php:236
1199
  msgid "Address line "
1200
  msgstr ""
1201
 
1202
- #: pro/mappress_pro_settings.php:242
1203
  msgid "Map Field"
1204
  msgstr ""
1205
 
1206
- #: pro/mappress_pro_settings.php:255
1207
  msgid "Overwrite maps when posts are saved"
1208
  msgstr ""
1209
 
1210
- #: pro/mappress_pro_settings.php:263
1211
  msgid "Sort POI list by title"
1212
  msgstr ""
1213
 
1214
- #: pro/mappress_pro_settings.php:278
1215
  msgid "Styled Maps Wizard"
1216
  msgstr ""
1217
 
1218
- #: pro/mappress_pro_settings.php:279
1219
  msgid "JSON from Google's %s"
1220
  msgstr ""
1221
 
1222
- #: pro/mappress_pro_settings.php:300
1223
  msgid "or "
1224
  msgstr ""
1225
 
@@ -1258,10 +1287,6 @@ msgstr ""
1258
  #: templates/map-filters.php:10
1259
  msgid "Reset"
1260
  msgstr ""
1261
-
1262
- #: templates/map.php:7
1263
- msgid "Loading"
1264
- msgstr ""
1265
  #. Plugin Name of the plugin/theme
1266
  msgid "MapPress Easy Google Maps"
1267
  msgstr ""
1
+ # Copyright (C) 2018 MapPress Easy Google Maps
2
  # This file is distributed under the same license as the MapPress Easy Google Maps package.
3
  msgid ""
4
  msgstr ""
5
+ "Project-Id-Version: MapPress Easy Google Maps 2.47.6\n"
6
  "Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/mappress-google-maps-for-wordpress\n"
7
+ "POT-Creation-Date: 2018-03-06 20:39:30+00:00\n"
8
  "MIME-Version: 1.0\n"
9
  "Content-Type: text/plain; charset=UTF-8\n"
10
  "Content-Transfer-Encoding: 8bit\n"
11
+ "PO-Revision-Date: 2018-MO-DA HO:MI+ZONE\n"
12
  "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
13
  "Language-Team: LANGUAGE <LL@li.org>\n"
14
 
37
  msgstr ""
38
 
39
  #: forms/map_editor.php:51 languages/texts.php:46 mappress_controls.php:102
40
+ #: mappress_map.php:586
41
  msgid "Delete"
42
  msgstr ""
43
 
57
  msgid "Map Title"
58
  msgstr ""
59
 
60
+ #: forms/map_media.php:20 languages/texts.php:51 mappress.php:583
61
+ #: mappress_map.php:591
62
  msgid "Untitled"
63
  msgstr ""
64
 
66
  msgid "Display Size"
67
  msgstr ""
68
 
69
+ #: forms/map_media.php:39 languages/texts.php:19 mappress_map.php:585
70
  msgid "Insert into post"
71
  msgstr ""
72
 
98
  msgid "Size"
99
  msgstr ""
100
 
101
+ #: languages/texts.php:20 mappress.php:155
102
  msgid "Version"
103
  msgstr ""
104
 
105
+ #: languages/texts.php:21 mappress.php:163
106
  msgid "Documentation"
107
  msgstr ""
108
 
109
+ #: languages/texts.php:22 mappress.php:164
110
  msgid "Support"
111
  msgstr ""
112
 
113
+ #: languages/texts.php:23 mappress.php:166
114
  msgid "Upgrade to MapPress Pro"
115
  msgstr ""
116
 
117
+ #: languages/texts.php:24 mappress.php:437
118
  msgid "MapPress database tables are missing. Please deactivate the plugin and activate it again to fix this."
119
  msgstr ""
120
 
121
+ #: languages/texts.php:25 mappress.php:442
122
  msgid "WARNING: MapPress now requires WordPress 3.2 or higher. Please upgrade before using MapPress."
123
  msgstr ""
124
 
125
+ #: languages/texts.php:26 mappress.php:447
126
  msgid "WARNING: MapPress is not compfatible with the WP-Geo plugin. Please deactivate or uninstall WP-Geo before using MapPress."
127
  msgstr ""
128
 
129
+ #: languages/texts.php:27 mappress.php:454
130
  msgid "A Google Maps API key is required"
131
  msgstr ""
132
 
133
+ #: languages/texts.php:28 mappress.php:454
134
  msgid "Please update your"
135
  msgstr ""
136
 
137
+ #: languages/texts.php:29 mappress.php:454
138
  msgid "MapPress Settings"
139
  msgstr ""
140
 
150
  msgid "One of the addresses could not be found."
151
  msgstr ""
152
 
153
+ #: languages/texts.php:33 mappress.php:574
154
  msgid "Google cannot return directions between those addresses. There is no route between them or the routing information is not available."
155
  msgstr ""
156
 
158
  msgid "Unknown error, unable to return directions. Status code = "
159
  msgstr ""
160
 
161
+ #: languages/texts.php:35 mappress_poi.php:85 mappress_settings.php:90
162
  msgid "Directions"
163
  msgstr ""
164
 
165
+ #: languages/texts.php:36 mappress.php:575
166
  msgid "Error reading KML file"
167
  msgstr ""
168
 
170
  msgid "Loading..."
171
  msgstr ""
172
 
173
+ #: languages/texts.php:38 mappress.php:578
174
  msgid "No matching address"
175
  msgstr ""
176
 
177
+ #: languages/texts.php:39 mappress.php:579
178
  msgid "Unable to get your location"
179
  msgstr ""
180
 
186
  msgid "Transit"
187
  msgstr ""
188
 
189
+ #: languages/texts.php:42 pro/mappress_pro_settings.php:248
190
  #: pro/mappress_widget.php:94
191
  msgid "Zoom"
192
  msgstr ""
203
  msgid "Click to change"
204
  msgstr ""
205
 
206
+ #: languages/texts.php:47 mappress.php:580
207
  msgid "Delete this POI?"
208
  msgstr ""
209
 
210
+ #: languages/texts.php:48 mappress.php:581
211
  msgid "Delete this map?"
212
  msgstr ""
213
 
215
  msgid "Please save the map first"
216
  msgstr ""
217
 
218
+ #: languages/texts.php:50 mappress.php:582
219
  msgid "Shape"
220
  msgstr ""
221
 
223
  msgid "New"
224
  msgstr ""
225
 
226
+ #: languages/texts.php:53 mappress_map.php:172
227
  msgid "Map not found"
228
  msgstr ""
229
 
230
+ #: languages/texts.php:54 mappress_map.php:584
231
  msgid "Edit"
232
  msgstr ""
233
 
234
+ #: languages/texts.php:55 mappress_map.php:442
235
  msgid "Show map"
236
  msgstr ""
237
 
255
  msgid "Directions from"
256
  msgstr ""
257
 
258
+ #: languages/texts.php:61 mappress_settings.php:83
259
  msgid "Basic Settings"
260
  msgstr ""
261
 
262
+ #: languages/texts.php:62 mappress_settings.php:87
263
  msgid "Post types"
264
  msgstr ""
265
 
307
  msgid "Map links"
308
  msgstr ""
309
 
310
+ #: languages/texts.php:74 mappress_settings.php:89
311
  msgid "Map alignment"
312
  msgstr ""
313
 
314
+ #: languages/texts.php:75 mappress_settings.php:94 mappress_settings.php:225
315
  msgid "Open first POI"
316
  msgstr ""
317
 
318
+ #: languages/texts.php:76 mappress_settings.php:92
319
  msgid "POI Settings"
320
  msgstr ""
321
 
327
  msgid "Tooltips"
328
  msgstr ""
329
 
330
+ #: languages/texts.php:79 mappress_settings.php:93
331
  msgid "Default zoom"
332
  msgstr ""
333
 
334
+ #: languages/texts.php:80 mappress_settings.php:97
335
  msgid "Mashups"
336
  msgstr ""
337
 
338
+ #: languages/texts.php:81 mappress_settings.php:98
339
  msgid "Icons"
340
  msgstr ""
341
 
342
+ #: languages/texts.php:82 mappress_settings.php:99
343
  msgid "Styled Maps"
344
  msgstr ""
345
 
346
+ #: languages/texts.php:83 mappress_settings.php:100
347
  msgid "Geocoding"
348
  msgstr ""
349
 
350
+ #: languages/texts.php:84 mappress_settings.php:103
351
  msgid "Localization"
352
  msgstr ""
353
 
354
+ #: languages/texts.php:85 mappress_settings.php:104 mappress_settings.php:229
355
  msgid "Language"
356
  msgstr ""
357
 
358
+ #: languages/texts.php:86 mappress_settings.php:105
359
  msgid "Country"
360
  msgstr ""
361
 
362
+ #: languages/texts.php:87 mappress_settings.php:106
363
  msgid "Directions server"
364
  msgstr ""
365
 
367
  msgid "Directions units"
368
  msgstr ""
369
 
370
+ #: languages/texts.php:89 mappress_settings.php:108
371
  msgid "Miscellaneous"
372
  msgstr ""
373
 
374
+ #: languages/texts.php:90 mappress_settings.php:111
375
  msgid "Map sizes"
376
  msgstr ""
377
 
378
+ #: languages/texts.php:91 mappress_settings.php:110
379
  msgid "Scripts"
380
  msgstr ""
381
 
395
  msgid "Recenter maps when window is resized"
396
  msgstr ""
397
 
398
+ #: languages/texts.php:96 mappress_settings.php:176
399
+ #: pro/mappress_pro_settings.php:112
400
  msgid "more info"
401
  msgstr ""
402
 
403
+ #: languages/texts.php:97 mappress_settings.php:177
404
  msgid "Required to display maps"
405
  msgstr ""
406
 
407
+ #: languages/texts.php:98 mappress_settings.php:216 mappress_settings.php:219
408
  msgid "Output scripts in footer"
409
  msgstr ""
410
 
452
  msgid "Use a specific %s for map controls and geocoding"
453
  msgstr ""
454
 
455
+ #: languages/texts.php:110 mappress_settings.php:166
456
  msgid "Default"
457
  msgstr ""
458
 
540
  msgid "Hybrid"
541
  msgstr ""
542
 
543
+ #: languages/texts.php:132 mappress_settings.php:202
544
  msgid "Google"
545
  msgstr ""
546
 
547
+ #: languages/texts.php:133 mappress_settings.php:203
548
  msgid "Inline"
549
  msgstr ""
550
 
551
+ #: languages/texts.php:134 mappress_settings.php:184 mappress_settings.php:204
552
  msgid "None"
553
  msgstr ""
554
 
572
  msgid "Default alignment"
573
  msgstr ""
574
 
575
+ #: languages/texts.php:140 mappress_settings.php:167
576
  msgid "Center"
577
  msgstr ""
578
 
579
+ #: languages/texts.php:141 mappress_settings.php:168
580
  msgid "Left"
581
  msgstr ""
582
 
583
+ #: languages/texts.php:142 mappress_settings.php:169
584
  msgid "Right"
585
  msgstr ""
586
 
587
+ #: languages/texts.php:143 mappress_settings.php:237
588
  msgid "Default zoom for POIs entered by lat/lng"
589
  msgstr ""
590
 
591
+ #: languages/texts.php:144 mappress_settings.php:182
592
  msgid "Top of post"
593
  msgstr ""
594
 
595
+ #: languages/texts.php:145 mappress_settings.php:183
596
  msgid "Bottom of post"
597
  msgstr ""
598
 
604
  msgid "Load %s"
605
  msgstr ""
606
 
607
+ #: languages/texts.php:148 mappress_settings.php:247
608
  msgid "Default size"
609
  msgstr ""
610
 
628
  msgid "%s on WordPress.org"
629
  msgstr ""
630
 
631
+ #: languages/texts.php:154 mappress_settings.php:281
632
  msgid "Thanks for your support!"
633
  msgstr ""
634
 
635
+ #: languages/texts.php:155 mappress_settings.php:288
636
  msgid "Easy Google Maps"
637
  msgstr ""
638
 
640
  msgid "Like this plugin?"
641
  msgstr ""
642
 
643
+ #: languages/texts.php:157 mappress_settings.php:300
644
  msgid "Sample Map"
645
  msgstr ""
646
 
647
+ #: languages/texts.php:158 mappress_settings.php:322
648
  msgid "Save Changes"
649
  msgstr ""
650
 
651
+ #: languages/texts.php:159 mappress_settings.php:323
652
  msgid "Reset Defaults"
653
  msgstr ""
654
 
655
+ #: languages/texts.php:160 mappress.php:149
656
  msgid "Settings"
657
  msgstr ""
658
 
697
  msgstr ""
698
 
699
  #: languages/texts.php:171 pro/mappress_pro_settings.php:20
700
+ #: pro/mappress_pro_settings.php:26
701
  msgid "InfoWindow type"
702
  msgstr ""
703
 
704
+ #: languages/texts.php:172 pro/mappress_pro_settings.php:28
705
  msgid "Default icon"
706
  msgstr ""
707
 
709
  msgid "Custom icons directory"
710
  msgstr ""
711
 
712
+ #: languages/texts.php:174 pro/mappress_pro_settings.php:30
713
  msgid "Icon scaling"
714
  msgstr ""
715
 
737
  msgid "Thumbnail Size"
738
  msgstr ""
739
 
740
+ #: languages/texts.php:181 pro/mappress_pro_settings.php:31
741
  msgid "Automatic icons"
742
  msgstr ""
743
 
744
+ #: languages/texts.php:182 pro/mappress_pro_settings.php:39
745
  msgid "Styled maps"
746
  msgstr ""
747
 
748
+ #: languages/texts.php:183 pro/mappress_pro_settings.php:40
749
  msgid "Default style"
750
  msgstr ""
751
 
752
+ #: languages/texts.php:184 pro/mappress_pro_settings.php:42
753
  msgid "Geocoding fields"
754
  msgstr ""
755
 
756
+ #: languages/texts.php:185 pro/mappress_pro_settings.php:46
757
  msgid "Force resize"
758
  msgstr ""
759
 
762
  msgstr ""
763
 
764
  #: languages/texts.php:187 pro/mappress_filter.php:83
765
+ #: pro/mappress_filter.php:131 pro/mappress_pro_settings.php:125
766
  msgid "Post type"
767
  msgstr ""
768
 
769
+ #: languages/texts.php:188 pro/mappress_pro_settings.php:171
770
  msgid "Key"
771
  msgstr ""
772
 
773
+ #: languages/texts.php:189 pro/mappress_pro_settings.php:132
774
  msgid "Value"
775
  msgstr ""
776
 
777
+ #: languages/texts.php:190 pro/mappress_pro_settings.php:132
778
+ #: pro/mappress_pro_settings.php:248
779
  msgid "Icon"
780
  msgstr ""
781
 
782
+ #: languages/texts.php:191 pro/mappress_pro_settings.php:270
783
  msgid "Show a list of POIs under each map"
784
  msgstr ""
785
 
819
  msgid "Go directly to the post"
820
  msgstr ""
821
 
822
+ #: languages/texts.php:201 pro/mappress_pro_settings.php:202
823
  msgid "Google InfoWindow"
824
  msgstr ""
825
 
826
+ #: languages/texts.php:202 pro/mappress_pro_settings.php:203
827
  msgid "InfoBox"
828
  msgstr ""
829
 
830
+ #: languages/texts.php:203 pro/mappress_pro_settings.php:319
831
  msgid "Show featured image thumbnails in mashup POIs"
832
  msgstr ""
833
 
851
  msgid "Enter JSON for %s from Google's %s"
852
  msgstr ""
853
 
854
+ #: languages/texts.php:209 pro/mappress_pro_settings.php:294
855
  msgid "Style name"
856
  msgstr ""
857
 
858
+ #: languages/texts.php:210 pro/mappress_pro_settings.php:280
859
  msgid "No styles have been defined yet"
860
  msgstr ""
861
 
883
  msgid "Address Line 6"
884
  msgstr ""
885
 
886
+ #: languages/texts.php:217 pro/mappress_pro_settings.php:248
887
  msgid "Latitude"
888
  msgstr ""
889
 
890
+ #: languages/texts.php:218 pro/mappress_pro_settings.php:248
891
  msgid "Longitude"
892
  msgstr ""
893
 
894
+ #: languages/texts.php:219 pro/mappress_pro_settings.php:248
895
  msgid "Title"
896
  msgstr ""
897
 
898
+ #: languages/texts.php:220 pro/mappress_pro_settings.php:248
899
  msgid "Body"
900
  msgstr ""
901
 
903
  msgid "Map Zoom"
904
  msgstr ""
905
 
906
+ #: languages/texts.php:222 mappress_map.php:446 pro/mappress_widget.php:110
907
  msgid "Map"
908
  msgstr ""
909
 
910
  #: languages/texts.php:223 pro/mappress_filter.php:118
911
+ #: pro/mappress_pro_settings.php:253
912
  msgid "Custom Field"
913
  msgstr ""
914
 
916
  msgid "Overwrite existing maps when updating"
917
  msgstr ""
918
 
919
+ #: languages/texts.php:225 pro/mappress_pro_settings.php:186
920
  msgid "Permanently resize existing maps"
921
  msgstr ""
922
 
923
+ #: languages/texts.php:226 pro/mappress_pro_settings.php:188
924
  msgid "from %s to %s"
925
  msgstr ""
926
 
927
+ #: languages/texts.php:227 pro/mappress_pro_settings.php:189
928
  msgid "Force Resize"
929
  msgstr ""
930
 
1024
  msgid "Chris Richardson"
1025
  msgstr ""
1026
 
1027
+ #: mappress.php:576
1028
+ msgid "Loading"
1029
+ msgstr ""
1030
+
1031
+ #: mappress.php:577
1032
+ msgid "%d results shown. Zoom in to see more."
1033
+ msgstr ""
1034
+
1035
+ #: mappress_map.php:93 mappress_settings.php:305
1036
+ msgid "MapPress"
1037
  msgstr ""
1038
 
1039
+ #: mappress_map.php:418 pro/mappress_pro_settings.php:33
1040
  msgid "Filter"
1041
  msgstr ""
1042
 
1043
+ #: mappress_map.php:447
1044
+ msgid "List"
1045
+ msgstr ""
1046
+
1047
+ #: mappress_settings.php:81
1048
  msgid "License"
1049
  msgstr ""
1050
 
1051
+ #: mappress_settings.php:84
1052
  msgid "Google API key"
1053
  msgstr ""
1054
 
1055
+ #: mappress_settings.php:88
1056
  msgid "Automatic display"
1057
  msgstr ""
1058
 
1059
+ #: mappress_settings.php:109
1060
+ msgid "Compatiblity"
1061
  msgstr ""
1062
 
1063
+ #: mappress_settings.php:191
1064
  msgid "Country code"
1065
  msgstr ""
1066
 
1067
+ #: mappress_settings.php:193
1068
  msgid "%s for searching"
1069
  msgstr ""
1070
 
1071
+ #: mappress_settings.php:197
1072
+ msgid "Avoid conflicts with other plugins/themes that load the Google Maps API"
1073
+ msgstr ""
1074
+
1075
+ #: mappress_settings.php:217
1076
  msgid "Disabled because Jetpack Infinite Scroll is active"
1077
  msgstr ""
1078
 
1079
+ #: mappress_settings.php:220
1080
  msgid "disable if maps are output using AJAX"
1081
  msgstr ""
1082
 
1083
+ #: mappress_settings.php:231
1084
  msgid "%s for map controls"
1085
  msgstr ""
1086
 
1087
+ #: mappress_settings.php:247
1088
  msgid "Width (px or %)"
1089
  msgstr ""
1090
 
1091
+ #: mappress_settings.php:247
1092
  msgid "Height (px)"
1093
  msgstr ""
1094
 
1095
+ #: mappress_settings.php:278
1096
  msgid "rate it 5 Stars"
1097
  msgstr ""
1098
 
1099
+ #: mappress_settings.php:280
1100
  msgid "Please %s on WordPress.org."
1101
  msgstr ""
1102
 
 
 
 
 
1103
  #: pro/mappress_filter.php:118
1104
  msgid "Taxonomy"
1105
  msgstr ""
1117
  msgstr ""
1118
 
1119
  #: pro/mappress_pro_settings.php:23
1120
+ msgid "POI list layout"
1121
+ msgstr ""
1122
+
1123
+ #: pro/mappress_pro_settings.php:24
1124
  msgid "Sort"
1125
  msgstr ""
1126
 
1127
+ #: pro/mappress_pro_settings.php:29
1128
  msgid "Icon directory"
1129
  msgstr ""
1130
 
1131
+ #: pro/mappress_pro_settings.php:34
1132
  msgid "POI content"
1133
  msgstr ""
1134
 
1135
+ #: pro/mappress_pro_settings.php:35
1136
  msgid "POI click"
1137
  msgstr ""
1138
 
1139
+ #: pro/mappress_pro_settings.php:36
1140
  msgid "Thumbnails"
1141
  msgstr ""
1142
 
1143
+ #: pro/mappress_pro_settings.php:37
1144
  msgid "Thumbnail size"
1145
  msgstr ""
1146
 
1147
+ #: pro/mappress_pro_settings.php:43
1148
  msgid "Overwrite"
1149
  msgstr ""
1150
 
1151
  #: pro/mappress_pro_settings.php:44
1152
+ msgid "Google Server API key"
1153
+ msgstr ""
1154
+
1155
+ #: pro/mappress_pro_settings.php:47
1156
  msgid "Automatic updates"
1157
  msgstr ""
1158
 
1159
+ #: pro/mappress_pro_settings.php:113
1160
  msgid "API key secured by IP address for geocoding (optional)"
1161
  msgstr ""
1162
 
1163
+ #: pro/mappress_pro_settings.php:147
1164
  msgid "Enable settings for automatic updates"
1165
  msgstr ""
1166
 
1167
+ #: pro/mappress_pro_settings.php:151
1168
  msgid "Enable updates for beta versions"
1169
  msgstr ""
1170
 
1171
+ #: pro/mappress_pro_settings.php:164
1172
  msgid "Checkboxes"
1173
  msgstr ""
1174
 
1175
+ #: pro/mappress_pro_settings.php:164
1176
  msgid "Select"
1177
  msgstr ""
1178
 
1179
+ #: pro/mappress_pro_settings.php:171
1180
  msgid "Format"
1181
  msgstr ""
1182
 
1183
+ #: pro/mappress_pro_settings.php:210
1184
+ msgid "Below map"
1185
+ msgstr ""
1186
+
1187
+ #: pro/mappress_pro_settings.php:211
1188
+ msgid "Left of map"
1189
+ msgstr ""
1190
+
1191
+ #: pro/mappress_pro_settings.php:217
1192
  msgid "Enter license to enable automatic updates"
1193
  msgstr ""
1194
 
1195
+ #: pro/mappress_pro_settings.php:227
1196
  msgid "Communication error, please try again later"
1197
  msgstr ""
1198
 
1199
+ #: pro/mappress_pro_settings.php:229
1200
  msgid "Active"
1201
  msgstr ""
1202
 
1203
+ #: pro/mappress_pro_settings.php:231
1204
  msgid "License is invalid or expired"
1205
  msgstr ""
1206
 
1207
+ #: pro/mappress_pro_settings.php:235
1208
  msgid "POI title + body"
1209
  msgstr ""
1210
 
1211
+ #: pro/mappress_pro_settings.php:235
1212
  msgid "Post title + excerpt"
1213
  msgstr ""
1214
 
1215
+ #: pro/mappress_pro_settings.php:240
1216
  msgid "Open POI"
1217
  msgstr ""
1218
 
1219
+ #: pro/mappress_pro_settings.php:240
1220
  msgid "Open post"
1221
  msgstr ""
1222
 
1223
+ #: pro/mappress_pro_settings.php:240
1224
  msgid "Open post in new tab"
1225
  msgstr ""
1226
 
1227
+ #: pro/mappress_pro_settings.php:247
1228
  msgid "Address line "
1229
  msgstr ""
1230
 
1231
+ #: pro/mappress_pro_settings.php:253
1232
  msgid "Map Field"
1233
  msgstr ""
1234
 
1235
+ #: pro/mappress_pro_settings.php:266
1236
  msgid "Overwrite maps when posts are saved"
1237
  msgstr ""
1238
 
1239
+ #: pro/mappress_pro_settings.php:274
1240
  msgid "Sort POI list by title"
1241
  msgstr ""
1242
 
1243
+ #: pro/mappress_pro_settings.php:289
1244
  msgid "Styled Maps Wizard"
1245
  msgstr ""
1246
 
1247
+ #: pro/mappress_pro_settings.php:290
1248
  msgid "JSON from Google's %s"
1249
  msgstr ""
1250
 
1251
+ #: pro/mappress_pro_settings.php:311
1252
  msgid "or "
1253
  msgstr ""
1254
 
1287
  #: templates/map-filters.php:10
1288
  msgid "Reset"
1289
  msgstr ""
 
 
 
 
1290
  #. Plugin Name of the plugin/theme
1291
  msgid "MapPress Easy Google Maps"
1292
  msgstr ""
languages/texts.php CHANGED
@@ -250,14 +250,18 @@ __("MapPress Easy Google Maps");
250
  __("http://www.wphostreviews.com/mappress");
251
  __("MapPress makes it easy to insert Google Maps in WordPress posts and pages.");
252
  __("Chris Richardson");
253
- __("Insert Map");
 
 
254
  __("Filter");
 
255
  __("License");
256
  __("Google API key");
257
  __("Automatic display");
258
- __("Google Server API key");
259
  __("Country code");
260
  __("%s for searching");
 
261
  __("Disabled because Jetpack Infinite Scroll is active");
262
  __("disable if maps are output using AJAX");
263
  __("%s for map controls");
@@ -265,11 +269,11 @@ __("Width (px or %)");
265
  __("Height (px)");
266
  __("rate it 5 Stars");
267
  __("Please %s on WordPress.org.");
268
- __("MapPress");
269
  __("Taxonomy");
270
  __("Post field");
271
  __("MapPress license key");
272
  __("Beta versions");
 
273
  __("Sort");
274
  __("Icon directory");
275
  __("POI content");
@@ -277,6 +281,7 @@ __("POI click");
277
  __("Thumbnails");
278
  __("Thumbnail size");
279
  __("Overwrite");
 
280
  __("Automatic updates");
281
  __("API key secured by IP address for geocoding (optional)");
282
  __("Enable settings for automatic updates");
@@ -284,6 +289,8 @@ __("Enable updates for beta versions");
284
  __("Checkboxes");
285
  __("Select");
286
  __("Format");
 
 
287
  __("Enter license to enable automatic updates");
288
  __("Communication error, please try again later");
289
  __("Active");
@@ -309,7 +316,6 @@ __("Clear center/zoom");
309
  __("Google Maps");
310
  __("Done");
311
  __("Reset");
312
- __("Loading");
313
  __("MapPress Easy Google Maps");
314
  __("http://www.wphostreviews.com/mappress");
315
  __("MapPress makes it easy to insert Google Maps in WordPress posts and pages.");
250
  __("http://www.wphostreviews.com/mappress");
251
  __("MapPress makes it easy to insert Google Maps in WordPress posts and pages.");
252
  __("Chris Richardson");
253
+ __("Loading");
254
+ __("%d results shown. Zoom in to see more.");
255
+ __("MapPress");
256
  __("Filter");
257
+ __("List");
258
  __("License");
259
  __("Google API key");
260
  __("Automatic display");
261
+ __("Compatiblity");
262
  __("Country code");
263
  __("%s for searching");
264
+ __("Avoid conflicts with other plugins/themes that load the Google Maps API");
265
  __("Disabled because Jetpack Infinite Scroll is active");
266
  __("disable if maps are output using AJAX");
267
  __("%s for map controls");
269
  __("Height (px)");
270
  __("rate it 5 Stars");
271
  __("Please %s on WordPress.org.");
 
272
  __("Taxonomy");
273
  __("Post field");
274
  __("MapPress license key");
275
  __("Beta versions");
276
+ __("POI list layout");
277
  __("Sort");
278
  __("Icon directory");
279
  __("POI content");
281
  __("Thumbnails");
282
  __("Thumbnail size");
283
  __("Overwrite");
284
+ __("Google Server API key");
285
  __("Automatic updates");
286
  __("API key secured by IP address for geocoding (optional)");
287
  __("Enable settings for automatic updates");
289
  __("Checkboxes");
290
  __("Select");
291
  __("Format");
292
+ __("Below map");
293
+ __("Left of map");
294
  __("Enter license to enable automatic updates");
295
  __("Communication error, please try again later");
296
  __("Active");
316
  __("Google Maps");
317
  __("Done");
318
  __("Reset");
 
319
  __("MapPress Easy Google Maps");
320
  __("http://www.wphostreviews.com/mappress");
321
  __("MapPress makes it easy to insert Google Maps in WordPress posts and pages.");
mappress.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: MapPress Easy Google Maps
4
  Plugin URI: http://www.wphostreviews.com/mappress
5
  Author URI: http://www.wphostreviews.com/mappress
6
  Description: MapPress makes it easy to insert Google Maps in WordPress posts and pages.
7
- Version: 2.47.5
8
  Author: Chris Richardson
9
  Text Domain: mappress-google-maps-for-wordpress
10
  Thanks to all the translators and to Matthias Stasiak for his wonderful icons (http://code.google.com/p/google-maps-icons/)
@@ -34,13 +34,14 @@ if (is_dir(dirname( __FILE__ ) . '/pro')) {
34
  }
35
 
36
  class Mappress {
37
- const VERSION = '2.47.5';
38
 
39
  static
40
  $baseurl,
41
  $basename,
42
  $basedir,
43
  $debug,
 
44
  $options,
45
  $pages,
46
  $pro,
@@ -66,9 +67,6 @@ class Mappress {
66
  add_shortcode('mappress', array(__CLASS__, 'shortcode_map'));
67
  add_action('admin_notices', array(__CLASS__, 'admin_notices'));
68
 
69
- // Post hooks
70
- add_action('deleted_post', array(__CLASS__, 'deleted_post'));
71
-
72
  // Filter to automatically add maps to post/page content
73
  add_filter('the_content', array(__CLASS__, 'the_content'), 2);
74
 
@@ -88,11 +86,28 @@ class Mappress {
88
  add_action('widgets_init', create_function('', 'return register_widget("Mappress_Widget");'));
89
  }
90
 
 
 
 
 
 
 
91
  // Slow heartbeat
92
  if (self::$debug)
93
  add_filter( 'heartbeat_settings', array(__CLASS__, 'heartbeat_settings'));
94
  }
95
 
 
 
 
 
 
 
 
 
 
 
 
96
  static function heartbeat_settings( $settings ) {
97
  $settings['minimalInterval'] = 600;
98
  return $settings;
@@ -156,18 +171,11 @@ class Mappress {
156
  static function ajax_response($status, $data=null) {
157
  $output = trim(ob_get_clean()); // Ignore whitespace, any other output is an error
158
  header( "Content-Type: application/json" );
 
159
  $response = json_encode(array('status' => $status, 'output' => $output, 'data' => $data));
160
  die ($response);
161
  }
162
 
163
- /**
164
- * When a post is deleted, delete its map assignments
165
- *
166
- */
167
- static function deleted_post($postid) {
168
- Mappress_Map::delete_post_map($postid);
169
- }
170
-
171
  static function admin_menu() {
172
  // Settings
173
  $settings = (self::$pro) ? new Mappress_Pro_Settings() : new Mappress_Settings();
@@ -277,6 +285,7 @@ class Mappress {
277
  return;
278
 
279
  $atts = self::scrub_atts($atts);
 
280
  return self::get_mashup($atts);
281
  }
282
 
@@ -299,7 +308,7 @@ class Mappress {
299
 
300
  // If using query 'current' then create a static map for current posts
301
  if (empty($mashup->query))
302
- $mashup->pois = Mappress_Query::get_pois($wp_query->posts);
303
 
304
  // If 'hideEmpty' is set, try to suppress the map if there are no POIs
305
  if ($mashup->hideEmpty) {
@@ -391,6 +400,12 @@ class Mappress {
391
  // Check if upgrade is needed
392
  $current_version = get_option('mappress_version');
393
 
 
 
 
 
 
 
394
  // Convert meta key settings
395
  if ($current_version < '2.45') {
396
  $old = (object) get_option('mappress_options');
@@ -464,15 +479,6 @@ class Mappress {
464
  // Shortcode attributes are lowercase so convert everything to lowercase
465
  $atts = array_change_key_case($atts);
466
 
467
- // Center
468
- if (isset($atts['center'])) {
469
- $latlng = explode(',', $atts['center']);
470
- if (count($latlng) == 2)
471
- $atts['center'] = array('lat' => $latlng[0], 'lng' => $latlng[1]);
472
- else
473
- unset($atts['center']);
474
- }
475
-
476
  // Explode layers
477
  if (isset($atts['layers'])) {
478
  $atts['layers'] = explode(',', $atts['layers']);
@@ -507,20 +513,19 @@ class Mappress {
507
  }
508
 
509
  static function load($type = null) {
510
- static $loaded;
511
-
512
- if ($loaded)
513
  return;
514
- $loaded = true;
515
 
516
  $dev = self::dev();
517
- $version = self::VERSION;
518
  $footer = self::footer();
519
 
520
- $apiversion = ($dev) ? 'v=3.exp' : 'v=3';
521
  $apikey = "&key=" . self::get_api_keys()->browser;
522
  $libstring = ($type == 'editor') ? '&libraries=places,drawing' : '&libraries=places';
523
 
 
524
  // Directories
525
  $min = ($dev) ? "" : ".min";
526
  $js = ($dev) ? "http://localhost/$dev/wp-content/plugins/mappress-google-maps-for-wordpress/src" : self::$baseurl . '/js';
@@ -540,7 +545,7 @@ class Mappress {
540
  // mappress.js includes loader, so must come after editor
541
  wp_enqueue_script('mappress', $js . "/mappress$min.js", array('jquery', 'underscore'), $version, $footer);
542
 
543
- if (!$min) {
544
  foreach(array('directions', 'geocoding', 'icons', 'infobox', 'lib', 'places', 'poi', 'widgets', 'loader') as $script)
545
  wp_enqueue_script($script, $js . "/mappress_{$script}.js", null, $version, $footer);
546
  }
@@ -549,7 +554,8 @@ class Mappress {
549
  }
550
 
551
  static function footer() {
552
- return (is_admin() || self::$options->footer && !get_option('infinite_scroll'));
 
553
  }
554
 
555
  static function dev() {
@@ -567,18 +573,21 @@ class Mappress {
567
  $l10n = array(
568
  'dir_error' => __('Google cannot return directions between those addresses. There is no route between them or the routing information is not available.', 'mappress-google-maps-for-wordpress'),
569
  'kml_error' => __('Error reading KML file', 'mappress-google-maps-for-wordpress'),
 
 
570
  'no_address' => __('No matching address', 'mappress-google-maps-for-wordpress'),
571
  'no_geolocate' => __('Unable to get your location', 'mappress-google-maps-for-wordpress'),
572
  'delete_prompt' => __('Delete this POI?', 'mappress-google-maps-for-wordpress'),
573
  'delete_map_prompt' => __('Delete this map?', 'mappress-google-maps-for-wordpress'),
574
- 'shape' => __('Shape', 'mappress-google-maps-for-wordpress')
 
575
  );
576
 
577
  // Globals
578
  $l10n['options'] = array(
579
  'admin' => current_user_can('administrator'),
580
  'ajaxurl' => admin_url('admin-ajax.php'),
581
- 'apiKey' => self::get_api_keys()->browser,
582
  'debug' => Mappress::$debug,
583
  'iconsUrl' => (self::$pro) ? Mappress_Icons::$icons_url : null,
584
  'postid' => ($post) ? $post->ID : null,
@@ -626,6 +635,15 @@ class Mappress {
626
  }
627
  }
628
 
 
 
 
 
 
 
 
 
 
629
  /**
630
  * Get template.
631
  */
@@ -634,12 +652,8 @@ class Mappress {
634
  $map = (isset($args['map'])) ? $args['map'] : null;
635
  $poi = (isset($args['poi'])) ? $args['poi'] : null;
636
 
637
- $template_name .= ".php";
638
- $template_file = locate_template($template_name, false);
639
- if (!self::$pro || is_admin() || empty($template_file))
640
- $template_file = Mappress::$basedir . "/templates/$template_name";
641
-
642
- if (file_exists($template_file))
643
  require($template_file);
644
  else
645
  echo "Invalid template: $template_name";
4
  Plugin URI: http://www.wphostreviews.com/mappress
5
  Author URI: http://www.wphostreviews.com/mappress
6
  Description: MapPress makes it easy to insert Google Maps in WordPress posts and pages.
7
+ Version: 2.47.6
8
  Author: Chris Richardson
9
  Text Domain: mappress-google-maps-for-wordpress
10
  Thanks to all the translators and to Matthias Stasiak for his wonderful icons (http://code.google.com/p/google-maps-icons/)
34
  }
35
 
36
  class Mappress {
37
+ const VERSION = '2.47.6';
38
 
39
  static
40
  $baseurl,
41
  $basename,
42
  $basedir,
43
  $debug,
44
+ $loaded,
45
  $options,
46
  $pages,
47
  $pro,
67
  add_shortcode('mappress', array(__CLASS__, 'shortcode_map'));
68
  add_action('admin_notices', array(__CLASS__, 'admin_notices'));
69
 
 
 
 
70
  // Filter to automatically add maps to post/page content
71
  add_filter('the_content', array(__CLASS__, 'the_content'), 2);
72
 
86
  add_action('widgets_init', create_function('', 'return register_widget("Mappress_Widget");'));
87
  }
88
 
89
+ // Remove API loaded by other plugins
90
+ if (self::$options->deregister) {
91
+ add_action('wp_print_footer_scripts', array(__CLASS__, 'deregister'), -1); // wp_print_scripts for header
92
+ add_action('wp_print_scripts', array(__CLASS__, 'deregister'), -1);
93
+ }
94
+
95
  // Slow heartbeat
96
  if (self::$debug)
97
  add_filter( 'heartbeat_settings', array(__CLASS__, 'heartbeat_settings'));
98
  }
99
 
100
+ static function deregister() {
101
+ if (self::$loaded) {
102
+ $wps = wp_scripts();
103
+ foreach($wps->registered as $registered) {
104
+ if (stripos($registered->src, 'maps.googleapis.com') !== false && stripos($registered->handle, 'mappress') === false) {
105
+ $registered->src = self::$baseurl . '/forms/dummy.js';
106
+ }
107
+ }
108
+ }
109
+ }
110
+
111
  static function heartbeat_settings( $settings ) {
112
  $settings['minimalInterval'] = 600;
113
  return $settings;
171
  static function ajax_response($status, $data=null) {
172
  $output = trim(ob_get_clean()); // Ignore whitespace, any other output is an error
173
  header( "Content-Type: application/json" );
174
+ ob_start('ob_gzhandler');
175
  $response = json_encode(array('status' => $status, 'output' => $output, 'data' => $data));
176
  die ($response);
177
  }
178
 
 
 
 
 
 
 
 
 
179
  static function admin_menu() {
180
  // Settings
181
  $settings = (self::$pro) ? new Mappress_Pro_Settings() : new Mappress_Settings();
285
  return;
286
 
287
  $atts = self::scrub_atts($atts);
288
+
289
  return self::get_mashup($atts);
290
  }
291
 
308
 
309
  // If using query 'current' then create a static map for current posts
310
  if (empty($mashup->query))
311
+ $mashup->pois = Mappress_Query::get_pois($wp_query);
312
 
313
  // If 'hideEmpty' is set, try to suppress the map if there are no POIs
314
  if ($mashup->hideEmpty) {
400
  // Check if upgrade is needed
401
  $current_version = get_option('mappress_version');
402
 
403
+ // Enable Pro update by default
404
+ if ($current_version < '2.47.6') {
405
+ Mappress::$options->autoupdate = true;
406
+ Mappress::$options->save();
407
+ }
408
+
409
  // Convert meta key settings
410
  if ($current_version < '2.45') {
411
  $old = (object) get_option('mappress_options');
479
  // Shortcode attributes are lowercase so convert everything to lowercase
480
  $atts = array_change_key_case($atts);
481
 
 
 
 
 
 
 
 
 
 
482
  // Explode layers
483
  if (isset($atts['layers'])) {
484
  $atts['layers'] = explode(',', $atts['layers']);
513
  }
514
 
515
  static function load($type = null) {
516
+ if (self::$loaded)
 
 
517
  return;
518
+ self::$loaded = true;
519
 
520
  $dev = self::dev();
521
+ $version = (self::$pro) ? self::VERSION . 'PRO' : self::VERSION;
522
  $footer = self::footer();
523
 
524
+ $apiversion = ($dev) ? 'v=3' : 'v=3'; // 3.exp removed, too many bugs in 3.32
525
  $apikey = "&key=" . self::get_api_keys()->browser;
526
  $libstring = ($type == 'editor') ? '&libraries=places,drawing' : '&libraries=places';
527
 
528
+
529
  // Directories
530
  $min = ($dev) ? "" : ".min";
531
  $js = ($dev) ? "http://localhost/$dev/wp-content/plugins/mappress-google-maps-for-wordpress/src" : self::$baseurl . '/js';
545
  // mappress.js includes loader, so must come after editor
546
  wp_enqueue_script('mappress', $js . "/mappress$min.js", array('jquery', 'underscore'), $version, $footer);
547
 
548
+ if ($dev) {
549
  foreach(array('directions', 'geocoding', 'icons', 'infobox', 'lib', 'places', 'poi', 'widgets', 'loader') as $script)
550
  wp_enqueue_script($script, $js . "/mappress_{$script}.js", null, $version, $footer);
551
  }
554
  }
555
 
556
  static function footer() {
557
+ $infinite = class_exists( 'Jetpack' ) && Jetpack::is_module_active( 'infinite-scroll' );
558
+ return (is_admin() || self::$options->footer && !$infinite);
559
  }
560
 
561
  static function dev() {
573
  $l10n = array(
574
  'dir_error' => __('Google cannot return directions between those addresses. There is no route between them or the routing information is not available.', 'mappress-google-maps-for-wordpress'),
575
  'kml_error' => __('Error reading KML file', 'mappress-google-maps-for-wordpress'),
576
+ 'loading' => "<span class='mapp-spinner'></span>" . __('Loading', 'mappress-google-maps-for-wordpress'),
577
+ 'more' => __('%d results shown. Zoom in to see more.', 'mappress-google-maps-for-wordpress'),
578
  'no_address' => __('No matching address', 'mappress-google-maps-for-wordpress'),
579
  'no_geolocate' => __('Unable to get your location', 'mappress-google-maps-for-wordpress'),
580
  'delete_prompt' => __('Delete this POI?', 'mappress-google-maps-for-wordpress'),
581
  'delete_map_prompt' => __('Delete this map?', 'mappress-google-maps-for-wordpress'),
582
+ 'shape' => __('Shape', 'mappress-google-maps-for-wordpress'),
583
+ 'untitled' => __('Untitled', 'mappress-google-maps-for-wordpress')
584
  );
585
 
586
  // Globals
587
  $l10n['options'] = array(
588
  'admin' => current_user_can('administrator'),
589
  'ajaxurl' => admin_url('admin-ajax.php'),
590
+ 'apiKey' => (self::get_api_keys()->browser) ? true : false,
591
  'debug' => Mappress::$debug,
592
  'iconsUrl' => (self::$pro) ? Mappress_Icons::$icons_url : null,
593
  'postid' => ($post) ? $post->ID : null,
635
  }
636
  }
637
 
638
+ static function locate_template($template_name) {
639
+ $template_name .= ".php";
640
+ $template_file = locate_template($template_name, false);
641
+ if (!self::$pro || is_admin() || empty($template_file))
642
+ $template_file = Mappress::$basedir . "/templates/$template_name";
643
+
644
+ return $template_file;
645
+ }
646
+
647
  /**
648
  * Get template.
649
  */
652
  $map = (isset($args['map'])) ? $args['map'] : null;
653
  $poi = (isset($args['poi'])) ? $args['poi'] : null;
654
 
655
+ $template_file = self::locate_template($template_name);
656
+ if ($template_file)
 
 
 
 
657
  require($template_file);
658
  else
659
  echo "Invalid template: $template_name";
mappress_map.php CHANGED
@@ -3,9 +3,7 @@ class Mappress_Map extends Mappress_Obj {
3
  var $alignment,
4
  $center,
5
  $editable,
6
- $embed,
7
  $filter,
8
- $geolocate,
9
  $height,
10
  $hideEmpty,
11
  $initialOpenDirections,
@@ -31,9 +29,13 @@ class Mappress_Map extends Mappress_Obj {
31
  return array('mapid', 'center', 'height', 'mapTypeId', 'metaKey', 'pois', 'title', 'width', 'zoom');
32
  }
33
 
34
- function __construct($atts=null) {
 
 
 
 
35
 
36
- // Update with defaults, then any passed atts
37
  $this->update(Mappress::$options);
38
  $this->update($atts);
39
 
@@ -42,22 +44,14 @@ class Mappress_Map extends Mappress_Obj {
42
  if (is_array($poi))
43
  $this->pois[$index] = new Mappress_Poi($poi);
44
  }
45
-
46
- // Set default size if no width/height specified
47
- if (!$this->width || !$this->height) {
48
- $i = (int) Mappress::$options->size;
49
- if (isset(Mappress::$options->sizes[$i])) {
50
- $size = Mappress::$options->sizes[$i];
51
- $this->width = ($this->width) ? $this->width : $size['width'];
52
- $this->height = ($this->height) ? $this->height : $size['height'];
53
- }
54
- }
55
  }
56
 
57
  static function register() {
58
  global $wpdb;
59
 
60
  // Ajax
 
 
61
  add_action('wp_ajax_mapp_create', array(__CLASS__, 'ajax_create'));
62
  add_action('wp_ajax_mapp_get', array(__CLASS__, 'ajax_get'));
63
  add_action('wp_ajax_mapp_save', array(__CLASS__, 'ajax_save'));
@@ -96,12 +90,11 @@ class Mappress_Map extends Mappress_Obj {
96
  static function media_button($editor_id) {
97
  if ($editor_id == 'content') {
98
  echo '<button type="button" class="button" id="mapp-pick-button">';
99
- echo '<span class="wp-media-buttons-icon dashicons dashicons-location-alt"></span> ' . __('Insert Map', 'mappress-google-maps-for-wordpress') . '</button>';
100
  }
101
  }
102
 
103
  static function add_meta_boxes() {
104
- // Add editing meta box to standard & custom post types
105
  foreach(Mappress::$options->postTypes as $post_type)
106
  add_meta_box('mappress', 'MapPress', array(__CLASS__, 'meta_box'), $post_type, 'normal', 'high');
107
  }
@@ -114,13 +107,13 @@ class Mappress_Map extends Mappress_Obj {
114
 
115
  static function find($args) {
116
  global $wpdb;
117
- $args = (object) wp_parse_args($args, array('type' => 'post', 'page' => 1, 'page_size' => 20, 'postid' => null, 'search' => null));
118
 
119
  $posts_table = $wpdb->prefix . 'mappress_posts';
120
 
121
  $where = ($args->type == 'post') ? $wpdb->prepare("WHERE postid=%d", $args->postid) : $wpdb->prepare("WHERE postid<>%d", $args->postid);
122
 
123
- if ($args->search)
124
  $where .= $wpdb->prepare(" AND $wpdb->posts.post_title LIKE %s", '%' . $args->search . '%');
125
 
126
  $limit = sprintf(" LIMIT %d, %d", ($args->page - 1) * $args->page_size, $args->page_size);
@@ -133,11 +126,11 @@ class Mappress_Map extends Mappress_Obj {
133
  foreach($rows as $row) {
134
  $map = self::get($row->mapid, 'raw');
135
  $results[] = array(
136
- 'mapid' => $row->mapid,
137
  'postid' => $row->ID,
138
  'post_title' => $row->post_title,
139
  'can_edit' => current_user_can('edit_post', $row->ID),
140
- 'mapdata' => $map
141
  );
142
  }
143
 
@@ -354,28 +347,26 @@ class Mappress_Map extends Mappress_Obj {
354
 
355
  $html = Mappress::get_template('map', array('map' => $this));
356
  $script = "mapp.data.push( " . json_encode($this) . " ); \r\nif (typeof mapp.load != 'undefined') { mapp.load(); };";
357
-
358
- // WP 4.5: queue maps for XHTML compatibility
359
- if (function_exists('wp_add_inline_script') && Mappress::footer() && (!defined('DOING_AJAX') || !DOING_AJAX)) {
360
- wp_add_inline_script('mappress', "//<![CDATA[\r\n" . $script . "\r\n//]]>");
361
- } else {
362
- $html .= Mappress::script($script);
363
- }
364
-
365
  return $html;
366
  }
367
 
368
  function width() {
369
- return ( stripos($this->width, 'px') || strpos($this->width, '%')) ? $this->width : $this->width. 'px';
 
 
370
  }
371
 
372
  function height() {
373
- if (stristr($this->height, ':')) {
374
- $parts = explode(':', $this->height);
 
 
 
375
  if (count($parts) == 2 && $parts[0] > 0)
376
  return round((100 * $parts[1] / $parts[0]), 2) . '%';
377
  }
378
- return ( stripos($this->height, 'px') || strpos($this->height, '%')) ? $this->height : $this->height. 'px';
379
  }
380
 
381
  function check($part) {
@@ -388,7 +379,7 @@ class Mappress_Map extends Mappress_Obj {
388
  return !$this->editable && $this->query && $this->filter;
389
 
390
  case 'header' :
391
- return $this->query && ($this->check('filters') || $this->check('search'));
392
 
393
  case 'list-inline' :
394
  return $this->poiList && $this->layout != 'left';
@@ -401,6 +392,10 @@ class Mappress_Map extends Mappress_Obj {
401
 
402
  case 'show' :
403
  return $this->hidden;
 
 
 
 
404
  }
405
  return true;
406
  }
@@ -420,7 +415,7 @@ class Mappress_Map extends Mappress_Obj {
420
  break;
421
 
422
  case 'filters-toggle' :
423
- $html = "<div class='mapp-caret mapp-button mapp-filters-toggle' data-mapp-action='filters-toggle'>" . __('Filter', 'mappress-google-maps-for-wordpress') . "</div>";
424
  break;
425
 
426
  case 'layout-class' :
@@ -435,11 +430,6 @@ class Mappress_Map extends Mappress_Obj {
435
  case 'layout-style' :
436
  $w = $this->width();
437
  $html = "width: $w;";
438
-
439
- if ($this->embed) {
440
- $h = $this->height();
441
- $html .= " height: $h;";
442
- }
443
  break;
444
 
445
  case 'list-inline' :
@@ -452,13 +442,14 @@ class Mappress_Map extends Mappress_Obj {
452
  $html = sprintf("<a href='#' data-mapp-action='show'>%s</a>", __('Show map', 'mappress-google-maps-for-wordpress'));
453
  break;
454
 
 
 
 
 
 
455
  case 'wrapper-style' :
456
- if ($this->embed)
457
- $html = '';
458
- else {
459
  $h = $this->height();
460
- $html = (stristr($h, '%')) ? "padding-bottom: $h;" : "height: $h";
461
- }
462
  break;
463
  }
464
 
@@ -475,15 +466,11 @@ class Mappress_Map extends Mappress_Obj {
475
  foreach($this->pois as $poi)
476
  $poi->map($this);
477
 
478
- // Prepare the pois
479
- foreach($this->pois as $poi)
480
- $poi->prepare();
481
-
482
  // Sort the pois
483
  if (Mappress::$options->sort && !isset($this->query['orderby']))
484
  $this->sort_pois();
485
 
486
- // Set the HTML for each POI (comes *after* sort because links embed POI list position)
487
  foreach($this->pois as $poi)
488
  $poi->set_html();
489
 
3
  var $alignment,
4
  $center,
5
  $editable,
 
6
  $filter,
 
7
  $height,
8
  $hideEmpty,
9
  $initialOpenDirections,
29
  return array('mapid', 'center', 'height', 'mapTypeId', 'metaKey', 'pois', 'title', 'width', 'zoom');
30
  }
31
 
32
+ function to_json() {
33
+ // Use same keys as sleep
34
+ $result = array_intersect_key(get_object_vars($this), array_flip($this->__sleep()));
35
+ return $result;
36
+ }
37
 
38
+ function __construct($atts=null) {
39
  $this->update(Mappress::$options);
40
  $this->update($atts);
41
 
44
  if (is_array($poi))
45
  $this->pois[$index] = new Mappress_Poi($poi);
46
  }
 
 
 
 
 
 
 
 
 
 
47
  }
48
 
49
  static function register() {
50
  global $wpdb;
51
 
52
  // Ajax
53
+ add_action('deleted_post', array(__CLASS__, 'delete_post_map'));
54
+
55
  add_action('wp_ajax_mapp_create', array(__CLASS__, 'ajax_create'));
56
  add_action('wp_ajax_mapp_get', array(__CLASS__, 'ajax_get'));
57
  add_action('wp_ajax_mapp_save', array(__CLASS__, 'ajax_save'));
90
  static function media_button($editor_id) {
91
  if ($editor_id == 'content') {
92
  echo '<button type="button" class="button" id="mapp-pick-button">';
93
+ echo '<span class="wp-media-buttons-icon dashicons dashicons-location"></span> ' . __('MapPress', 'mappress-google-maps-for-wordpress') . '</button>';
94
  }
95
  }
96
 
97
  static function add_meta_boxes() {
 
98
  foreach(Mappress::$options->postTypes as $post_type)
99
  add_meta_box('mappress', 'MapPress', array(__CLASS__, 'meta_box'), $post_type, 'normal', 'high');
100
  }
107
 
108
  static function find($args) {
109
  global $wpdb;
110
+ $args = (object) wp_parse_args($args, array('type' => 'post', 'page' => 1, 'page_size' => 20, 'postid' => null, 'title' => null));
111
 
112
  $posts_table = $wpdb->prefix . 'mappress_posts';
113
 
114
  $where = ($args->type == 'post') ? $wpdb->prepare("WHERE postid=%d", $args->postid) : $wpdb->prepare("WHERE postid<>%d", $args->postid);
115
 
116
+ if ($args->type == 'all' && $args->title)
117
  $where .= $wpdb->prepare(" AND $wpdb->posts.post_title LIKE %s", '%' . $args->search . '%');
118
 
119
  $limit = sprintf(" LIMIT %d, %d", ($args->page - 1) * $args->page_size, $args->page_size);
126
  foreach($rows as $row) {
127
  $map = self::get($row->mapid, 'raw');
128
  $results[] = array(
129
+ 'id' => $row->mapid,
130
  'postid' => $row->ID,
131
  'post_title' => $row->post_title,
132
  'can_edit' => current_user_can('edit_post', $row->ID),
133
+ 'mapdata' => $map->to_json()
134
  );
135
  }
136
 
347
 
348
  $html = Mappress::get_template('map', array('map' => $this));
349
  $script = "mapp.data.push( " . json_encode($this) . " ); \r\nif (typeof mapp.load != 'undefined') { mapp.load(); };";
350
+ $html .= Mappress::script($script);
 
 
 
 
 
 
 
351
  return $html;
352
  }
353
 
354
  function width() {
355
+ $default = (object) Mappress::$options->sizes[Mappress::$options->size];
356
+ $width = ($this->width) ? $this->width : $default->width;
357
+ return ( stripos($width, 'px') || strpos($width, '%')) ? $width : $width. 'px';
358
  }
359
 
360
  function height() {
361
+ $default = (object) Mappress::$options->sizes[Mappress::$options->size];
362
+ $height = ($this->height) ? $this->height : $default->height;
363
+
364
+ if (stristr($height, ':')) {
365
+ $parts = explode(':', $height);
366
  if (count($parts) == 2 && $parts[0] > 0)
367
  return round((100 * $parts[1] / $parts[0]), 2) . '%';
368
  }
369
+ return ( stripos($height, 'px') || strpos($height, '%')) ? $height : $height. 'px';
370
  }
371
 
372
  function check($part) {
379
  return !$this->editable && $this->query && $this->filter;
380
 
381
  case 'header' :
382
+ return $this->query && ($this->poiList || $this->check('filters') || $this->check('search'));
383
 
384
  case 'list-inline' :
385
  return $this->poiList && $this->layout != 'left';
392
 
393
  case 'show' :
394
  return $this->hidden;
395
+
396
+ case 'view-toggles' :
397
+ return $this->layout == 'left';
398
+
399
  }
400
  return true;
401
  }
415
  break;
416
 
417
  case 'filters-toggle' :
418
+ $html = "<div class='mapp-caret mapp-header-button mapp-filters-toggle' data-mapp-action='filters-toggle'>" . __('Filter', 'mappress-google-maps-for-wordpress') . "</div>";
419
  break;
420
 
421
  case 'layout-class' :
430
  case 'layout-style' :
431
  $w = $this->width();
432
  $html = "width: $w;";
 
 
 
 
 
433
  break;
434
 
435
  case 'list-inline' :
442
  $html = sprintf("<a href='#' data-mapp-action='show'>%s</a>", __('Show map', 'mappress-google-maps-for-wordpress'));
443
  break;
444
 
445
+ case 'view-toggles' :
446
+ $html = sprintf("<div class='mapp-header-button' data-mapp-action='view-map'>%s</div>", __('Map', 'mappress-google-maps-for-wordpress'));
447
+ $html .= sprintf("<div class='mapp-header-button' data-mapp-action='view-list'>%s</div>", __('List', 'mappress-google-maps-for-wordpress'));
448
+ break;
449
+
450
  case 'wrapper-style' :
 
 
 
451
  $h = $this->height();
452
+ $html = (stristr($h, '%')) ? "padding-bottom: $h;" : "height: $h";
 
453
  break;
454
  }
455
 
466
  foreach($this->pois as $poi)
467
  $poi->map($this);
468
 
 
 
 
 
469
  // Sort the pois
470
  if (Mappress::$options->sort && !isset($this->query['orderby']))
471
  $this->sort_pois();
472
 
473
+ // Set html
474
  foreach($this->pois as $poi)
475
  $poi->set_html();
476
 
mappress_poi.php CHANGED
@@ -6,16 +6,14 @@ class Mappress_Poi extends Mappress_Obj {
6
  $iconid,
7
  $point = array('lat' => 0, 'lng' => 0),
8
  $poly,
 
9
  $kml,
 
10
  $title = '',
11
  $type,
 
12
  $viewport; // array('sw' => array('lat' => 0, 'lng' => 0), 'ne' => array('lat' => 0, 'lng' => 0))
13
 
14
- // Not saved
15
- var $postid,
16
- $url;
17
-
18
-
19
  function __sleep() {
20
  return array('address', 'body', 'correctedAddress', 'iconid', 'point', 'poly', 'kml', 'title', 'type', 'viewport');
21
  }
@@ -73,46 +71,11 @@ class Mappress_Poi extends Mappress_Obj {
73
  function set_html() {
74
  global $post;
75
  $html = Mappress::get_template('map-poi', array('poi' => $this));
76
- $html = apply_filters('mappress_poi_html', $html, $this);
77
  $this->html = $html;
78
  }
79
 
80
- /**
81
- * Prepare poi for output
82
- */
83
- function prepare() {
84
- global $post;
85
-
86
- // Only mashup POIs need to be modified
87
- if (!$this->postid)
88
- return;
89
-
90
- $map = $this->map();
91
-
92
- // Set title
93
- if (Mappress::$options->mashupBody == 'post') {
94
- $post = get_post($this->postid);
95
- $this->title = $post->post_title;
96
- }
97
-
98
- // Set body
99
- if (Mappress::$options->mashupBody == 'post') {
100
- $post = get_post($this->postid);
101
- if ($post) {
102
- $old_post = clone $post;
103
- setup_postdata($post);
104
- $this->body = get_the_excerpt();
105
- $post = $old_post;
106
- setup_postdata($post);
107
- }
108
- }
109
-
110
- // Set URL
111
- $this->url = get_permalink($this->postid);
112
- }
113
-
114
  function part($part) {
115
- $map = $this->map();
116
  switch($part) {
117
  case 'body' :
118
  $html = $this->body;
@@ -127,12 +90,7 @@ class Mappress_Poi extends Mappress_Obj {
127
  break;
128
 
129
  case 'thumbnail' :
130
- $html = '';
131
- if ($this->postid && Mappress::$options->thumbs) {
132
- $size = (Mappress::$options->thumbSize) ? Mappress::$options->thumbSize : null;
133
- $style = (Mappress::$options->thumbWidth && Mappress::$options->thumbHeight) ? sprintf("width: %spx; height : %spx;", Mappress::$options->thumbWidth, Mappress::$options->thumbHeight) : null;
134
- $html = sprintf("<a href='%s'>%s</a>", $this->url, get_the_post_thumbnail($this->postid, $size, array('style' => $style)));
135
- }
136
  break;
137
 
138
  case 'title' :
@@ -150,29 +108,21 @@ class Mappress_Poi extends Mappress_Obj {
150
 
151
 
152
  /**
153
- * Get a post excerpt for a poi
154
- * Uses the WP get_the_excerpt(), which requires postdata to be set up.
155
- *
156
- * @param mixed $postid
157
  */
158
- function get_post_excerpt() {
159
- global $post;
160
-
161
- $post = get_post($this->postid);
162
- if (empty($this->postid) || empty($post))
163
- return "";
164
-
165
- $old_post = ($post) ? clone $post : null;
166
- setup_postdata($post);
167
- $html = get_the_excerpt();
168
-
169
- // wp_reset_postdata() may not work with other plugins so use the cloned copy instead
170
- if ($old_post) {
171
- $post = $old_post;
172
- setup_postdata($post);
173
- }
174
 
175
- return $html;
 
 
 
176
  }
177
  }
178
  ?>
6
  $iconid,
7
  $point = array('lat' => 0, 'lng' => 0),
8
  $poly,
9
+ $postid,
10
  $kml,
11
+ $thumbnail,
12
  $title = '',
13
  $type,
14
+ $url,
15
  $viewport; // array('sw' => array('lat' => 0, 'lng' => 0), 'ne' => array('lat' => 0, 'lng' => 0))
16
 
 
 
 
 
 
17
  function __sleep() {
18
  return array('address', 'body', 'correctedAddress', 'iconid', 'point', 'poly', 'kml', 'title', 'type', 'viewport');
19
  }
71
  function set_html() {
72
  global $post;
73
  $html = Mappress::get_template('map-poi', array('poi' => $this));
74
+ $html = apply_filters('mappress_poi_html', $html, $this);
75
  $this->html = $html;
76
  }
77
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
  function part($part) {
 
79
  switch($part) {
80
  case 'body' :
81
  $html = $this->body;
90
  break;
91
 
92
  case 'thumbnail' :
93
+ $html = sprintf("<a href='%s'>%s</a>", $this->url, $this->thumbnail);
 
 
 
 
 
94
  break;
95
 
96
  case 'title' :
108
 
109
 
110
  /**
111
+ * Fast excerpt for a poi
 
 
 
112
  */
113
+ function get_post_excerpt($post) {
114
+ // Fast excerpts: similar to wp_trim_excerpt() in formatting.php, but without (slow) call to get_the_content()
115
+ $text = ($post->post_excerpt) ? $post->post_excerpt : $post->post_content;
116
+ $text = strip_shortcodes($text);
117
+ $excerpt_length = 55;
118
+ $excerpt_more = apply_filters( 'excerpt_more', ' ' . '[&hellip;]' );
119
+ return wp_trim_words( $text, $excerpt_length, $excerpt_more );
120
+ }
 
 
 
 
 
 
 
 
121
 
122
+ function get_thumbnail($post) {
123
+ $size = (Mappress::$options->thumbSize) ? Mappress::$options->thumbSize : null;
124
+ $style = (Mappress::$options->thumbWidth && Mappress::$options->thumbHeight) ? sprintf("width: %spx; height : %spx;", Mappress::$options->thumbWidth, Mappress::$options->thumbHeight) : null;
125
+ return get_the_post_thumbnail($post, $size, array('style' => $style)); // Slow due to get_post_thumbnail_id()
126
  }
127
  }
128
  ?>
mappress_settings.php CHANGED
@@ -5,7 +5,7 @@
5
  class Mappress_Options extends Mappress_Obj {
6
  var $alignment,
7
  $autoicons,
8
- $autoupdate,
9
  $apiKey,
10
  $apiKeyServer,
11
  $autodisplay = 'top',
@@ -13,16 +13,18 @@ class Mappress_Options extends Mappress_Obj {
13
  $country,
14
  $css = true,
15
  $defaultIcon,
 
16
  $directions = 'google',
17
  $directionsServer = 'https://maps.google.com',
18
  $filter,
19
  $footer = true,
20
- $geolocate,
21
  $iconScale,
22
  $initialOpenInfo,
23
  $iwType = 'iw',
24
  $language,
 
25
  $license,
 
26
  $mashupBody = 'poi',
27
  $mashupClick = 'poi',
28
  $metaKeys = array(),
@@ -80,10 +82,10 @@ class Mappress_Settings {
80
 
81
  $this->add_section('basic', __('Basic Settings', 'mappress-google-maps-for-wordpress'));
82
  $this->add_field('apiKey', __('Google API key', 'mappress-google-maps-for-wordpress'), 'basic');
83
- $this->add_field('postTypes', __('Post types', 'mappress-google-maps-for-wordpress'), 'basic');
84
- $this->add_field('autodisplay', __('Automatic display', 'mappress-google-maps-for-wordpress'), 'basic');
85
 
86
  $this->add_section('maps', __('Map Settings', 'mappress-google-maps-for-wordpress'));
 
 
87
  $this->add_field('alignment', __('Map alignment', 'mappress-google-maps-for-wordpress'), 'maps');
88
  $this->add_field('directions', __('Directions', 'mappress-google-maps-for-wordpress'), 'maps');
89
 
@@ -96,7 +98,6 @@ class Mappress_Settings {
96
  $this->add_section('icons', __('Icons', 'mappress-google-maps-for-wordpress'));
97
  $this->add_section('styles', __('Styled Maps', 'mappress-google-maps-for-wordpress'));
98
  $this->add_section('geocoding', __('Geocoding', 'mappress-google-maps-for-wordpress'));
99
- $this->add_field('apiKeyServer', __('Google Server API key', 'mappress-google-maps-for-wordpress'), 'geocoding');
100
  }
101
 
102
  $this->add_section('l10n', __('Localization', 'mappress-google-maps-for-wordpress'));
@@ -105,8 +106,9 @@ class Mappress_Settings {
105
  $this->add_field('directionsServer', __('Directions server', 'mappress-google-maps-for-wordpress'), 'l10n');
106
 
107
  $this->add_section('misc', __('Miscellaneous', 'mappress-google-maps-for-wordpress'));
108
- $this->add_field('sizes', __('Map sizes', 'mappress-google-maps-for-wordpress'), 'misc');
109
  $this->add_field('footer', __('Scripts', 'mappress-google-maps-for-wordpress'), 'misc');
 
110
  }
111
 
112
  function add_section($section, $title) {
@@ -167,7 +169,6 @@ class Mappress_Settings {
167
  'right' => __('Right', 'mappress-google-maps-for-wordpress')
168
  );
169
  echo Mappress_Controls::radios($name, $alignments, $this->options->alignment);
170
- return;
171
  }
172
 
173
  function set_api_key($name) {
@@ -192,6 +193,10 @@ class Mappress_Settings {
192
  echo ' ' . sprintf(__('%s for searching', 'mappress-google-maps-for-wordpress'), $cctld_link);
193
  }
194
 
 
 
 
 
195
  function set_directions($name) {
196
  $directions_types = array(
197
  'google' => __('Google', 'mappress-google-maps-for-wordpress'),
@@ -207,7 +212,7 @@ class Mappress_Settings {
207
 
208
  function set_footer($name) {
209
  // Disable if jetpack infinite scroll is used
210
- if (get_option('infinite_scroll')) {
211
  echo Mappress_Controls::checkmark($name, false, __('Output scripts in footer', 'mappress-google-maps-for-wordpress'), array('disabled' => true));
212
  printf("<br/><i>%s</i>", __('Disabled because Jetpack Infinite Scroll is active', 'mappress-google-maps-for-wordpress'));
213
  } else {
@@ -284,7 +289,7 @@ class Mappress_Settings {
284
  "point" => array('lat' => 37.774095, 'lng' => -122.418731)
285
  ));
286
  $pois = array($poi);
287
- $map = new Mappress_Map(array('alignment' => 'default', 'width' => '50%', 'height' => 200, 'pois' => $pois, 'zoom' => 4));
288
  echo $map->display();
289
  }
290
 
5
  class Mappress_Options extends Mappress_Obj {
6
  var $alignment,
7
  $autoicons,
8
+ $autoupdate = true,
9
  $apiKey,
10
  $apiKeyServer,
11
  $autodisplay = 'top',
13
  $country,
14
  $css = true,
15
  $defaultIcon,
16
+ $deregister,
17
  $directions = 'google',
18
  $directionsServer = 'https://maps.google.com',
19
  $filter,
20
  $footer = true,
 
21
  $iconScale,
22
  $initialOpenInfo,
23
  $iwType = 'iw',
24
  $language,
25
+ $layout = 'inline',
26
  $license,
27
+ $maxPois = 75,
28
  $mashupBody = 'poi',
29
  $mashupClick = 'poi',
30
  $metaKeys = array(),
82
 
83
  $this->add_section('basic', __('Basic Settings', 'mappress-google-maps-for-wordpress'));
84
  $this->add_field('apiKey', __('Google API key', 'mappress-google-maps-for-wordpress'), 'basic');
 
 
85
 
86
  $this->add_section('maps', __('Map Settings', 'mappress-google-maps-for-wordpress'));
87
+ $this->add_field('postTypes', __('Post types', 'mappress-google-maps-for-wordpress'), 'maps');
88
+ $this->add_field('autodisplay', __('Automatic display', 'mappress-google-maps-for-wordpress'), 'maps');
89
  $this->add_field('alignment', __('Map alignment', 'mappress-google-maps-for-wordpress'), 'maps');
90
  $this->add_field('directions', __('Directions', 'mappress-google-maps-for-wordpress'), 'maps');
91
 
98
  $this->add_section('icons', __('Icons', 'mappress-google-maps-for-wordpress'));
99
  $this->add_section('styles', __('Styled Maps', 'mappress-google-maps-for-wordpress'));
100
  $this->add_section('geocoding', __('Geocoding', 'mappress-google-maps-for-wordpress'));
 
101
  }
102
 
103
  $this->add_section('l10n', __('Localization', 'mappress-google-maps-for-wordpress'));
106
  $this->add_field('directionsServer', __('Directions server', 'mappress-google-maps-for-wordpress'), 'l10n');
107
 
108
  $this->add_section('misc', __('Miscellaneous', 'mappress-google-maps-for-wordpress'));
109
+ $this->add_field('deregister', __('Compatiblity', 'mappress-google-maps-for-wordpress'), 'misc');
110
  $this->add_field('footer', __('Scripts', 'mappress-google-maps-for-wordpress'), 'misc');
111
+ $this->add_field('sizes', __('Map sizes', 'mappress-google-maps-for-wordpress'), 'misc');
112
  }
113
 
114
  function add_section($section, $title) {
169
  'right' => __('Right', 'mappress-google-maps-for-wordpress')
170
  );
171
  echo Mappress_Controls::radios($name, $alignments, $this->options->alignment);
 
172
  }
173
 
174
  function set_api_key($name) {
193
  echo ' ' . sprintf(__('%s for searching', 'mappress-google-maps-for-wordpress'), $cctld_link);
194
  }
195
 
196
+ function set_deregister($name) {
197
+ echo Mappress_Controls::checkmark($name, $this->options->deregister, __('Avoid conflicts with other plugins/themes that load the Google Maps API', 'mappress-google-maps-for-wordpress'));
198
+ }
199
+
200
  function set_directions($name) {
201
  $directions_types = array(
202
  'google' => __('Google', 'mappress-google-maps-for-wordpress'),
212
 
213
  function set_footer($name) {
214
  // Disable if jetpack infinite scroll is used
215
+ if (class_exists( 'Jetpack' ) && Jetpack::is_module_active( 'infinite-scroll' )) {
216
  echo Mappress_Controls::checkmark($name, false, __('Output scripts in footer', 'mappress-google-maps-for-wordpress'), array('disabled' => true));
217
  printf("<br/><i>%s</i>", __('Disabled because Jetpack Infinite Scroll is active', 'mappress-google-maps-for-wordpress'));
218
  } else {
289
  "point" => array('lat' => 37.774095, 'lng' => -122.418731)
290
  ));
291
  $pois = array($poi);
292
+ $map = new Mappress_Map(array('alignment' => 'default', 'width' => '100%', 'height' => 200, 'pois' => $pois, 'zoom' => 4));
293
  echo $map->display();
294
  }
295
 
readme.txt CHANGED
@@ -4,7 +4,7 @@ Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_i
4
  Tags: google maps,google,map,maps,easy,poi,mapping,mapper,gps,lat,lon,latitude,longitude,geocoder,geocoding,georss,geo rss,geo,v3,marker,mashup,mash,api,v3,buddypress,mashup,geo,wp-geo,geo mashup,simplemap,simple,wpml
5
  Requires at least: 3.5
6
  Tested up to: 4.9
7
- Stable tag: 2.47.5
8
 
9
  MapPress is the most popular and easiest way to create great-looking Google Maps and driving directions in your blog.
10
 
@@ -86,6 +86,21 @@ Please see the plugin documentation pages:
86
 
87
  == Changelog ==
88
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  = 2.47.5 =
90
  * Added: filter labels can now include an icon in braces, for example [blue-dot]
91
  * Added: filter 'mappress_query_filter' for post-query filtering
4
  Tags: google maps,google,map,maps,easy,poi,mapping,mapper,gps,lat,lon,latitude,longitude,geocoder,geocoding,georss,geo rss,geo,v3,marker,mashup,mash,api,v3,buddypress,mashup,geo,wp-geo,geo mashup,simplemap,simple,wpml
5
  Requires at least: 3.5
6
  Tested up to: 4.9
7
+ Stable tag: 2.47.6
8
 
9
  MapPress is the most popular and easiest way to create great-looking Google Maps and driving directions in your blog.
10
 
86
 
87
  == Changelog ==
88
 
89
+ = 2.47.6 =
90
+ * Added: prevent javascript caching when upgrading from free to Pro
91
+ * Added: enable gzip compression for AJAX data (depends on server settings)
92
+ * Added: 'compatibility' setting to prevent loading maps API by other plugins/themes
93
+ * Added: new layout with POIs on left. Use settings or [mashup layout="left"] for a single map
94
+ * Added: shortcode 'center' can be a place or 'user' to geolocate, for example: [mashup center="new york"] or [mashup center="user"]
95
+ * Changed: mashup query updated to improve performance
96
+ * Changed: faster excerpts for mashup POIs
97
+ * Changed: Pro update settings are now enabled by default
98
+ * Changed: automatic centering zooms out less whenever possible (viewport padding reduced to zero)
99
+ * Changed: clickableIcons defaulted to false (prevent clicks on Google landmarks)
100
+ * Changed: removed extra code for xhtml validity checkers
101
+ * Changed: updates to directions and template 'map-directions.php'
102
+ * Changed: detection for Jetpack infinite scroll improved
103
+
104
  = 2.47.5 =
105
  * Added: filter labels can now include an icon in braces, for example [blue-dot]
106
  * Added: filter 'mappress_query_filter' for post-query filtering
templates/map-directions.php CHANGED
@@ -5,13 +5,13 @@
5
  <?php endif; ?>
6
  <div>
7
  <span class='mapp-dir-a'></span>
8
- <input class='mapp-dir-saddr' tabindex='1'/>
9
  <span data-mapp-action='dir-swap' class='mapp-dir-arrows'></span>
10
  </div>
11
 
12
  <div>
13
  <span class='mapp-dir-b'></span>
14
- <input class='mapp-dir-daddr' tabindex='2'/>
15
  </div>
16
 
17
  <div class='mapp-dir-toolbar'>
5
  <?php endif; ?>
6
  <div>
7
  <span class='mapp-dir-a'></span>
8
+ <input class='mapp-dir-addr mapp-dir-saddr' tabindex='1'/>
9
  <span data-mapp-action='dir-swap' class='mapp-dir-arrows'></span>
10
  </div>
11
 
12
  <div>
13
  <span class='mapp-dir-b'></span>
14
+ <input class='mapp-dir-addr mapp-dir-daddr' tabindex='2'/>
15
  </div>
16
 
17
  <div class='mapp-dir-toolbar'>
templates/map-header.php CHANGED
@@ -1,5 +1,6 @@
1
  <div class='mapp-header'>
2
  <div class='mapp-search-wrapper'>
 
3
  <?php echo $map->part('filters-toggle');?>
4
  <?php echo $map->part('search'); ?>
5
  </div>
1
  <div class='mapp-header'>
2
  <div class='mapp-search-wrapper'>
3
+ <?php echo $map->part('view-toggles');?>
4
  <?php echo $map->part('filters-toggle');?>
5
  <?php echo $map->part('search'); ?>
6
  </div>
templates/map-list.php CHANGED
@@ -1,6 +1,6 @@
1
  <div class='mapp-list'>
2
  <div class='mapp-items'>
3
- <?php foreach($map->pois as $i => $poi) : ?>
4
  <?php if ($poi->type == 'kml') continue; ?>
5
  <div class='mapp-item' data-mapp-action='open' data-mapp-poi='<?php echo $i;?>'>
6
  <div class="mapp-icon"><?php echo $poi->part('icon');?></div>
1
  <div class='mapp-list'>
2
  <div class='mapp-items'>
3
+ <?php foreach( (array) $map->pois as $i => $poi) : ?>
4
  <?php if ($poi->type == 'kml') continue; ?>
5
  <div class='mapp-item' data-mapp-action='open' data-mapp-poi='<?php echo $i;?>'>
6
  <div class="mapp-icon"><?php echo $poi->part('icon');?></div>
templates/map.php CHANGED
@@ -4,7 +4,6 @@
4
  <div class='mapp-main'>
5
  <?php echo $map->part('list-left'); ?>
6
  <div class="mapp-canvas"></div>
7
- <div class="mapp-dialog"><span class="mapp-spinner"></span><?php echo __('Loading', 'mappress-google-maps-for-wordpress'); ?></div>
8
  <?php echo $map->part('filters'); ?>
9
  <?php echo $map->part('controls'); ?>
10
  </div>
4
  <div class='mapp-main'>
5
  <?php echo $map->part('list-left'); ?>
6
  <div class="mapp-canvas"></div>
 
7
  <?php echo $map->part('filters'); ?>
8
  <?php echo $map->part('controls'); ?>
9
  </div>