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