Version Description
- Fixed: ajax error when opening map for edit
Download this release
Release Info
Developer | chrisvrichardson |
Plugin | MapPress Easy Google Maps |
Version | 2.52.1 |
Comparing to | |
See all releases |
Code changes from version 2.50.11 to 2.52.1
- forms/media.php +9 -11
- js/mappress.min.js +1 -1
- js/mappress_editor.min.js +1 -1
- languages/mappress-google-maps-for-wordpress.pot +62 -62
- languages/texts.php +7 -7
- mappress.php +488 -492
- mappress_map.php +23 -44
- readme.txt +14 -4
- templates/map-directions.php +1 -1
- templates/map-search.php +1 -1
forms/media.php
CHANGED
@@ -9,7 +9,8 @@
|
|
9 |
<option value='post'><?php _e('This post', 'mappress-google-maps-for-wordpress');?></option>
|
10 |
<option value='all'><?php _e('All posts', 'mappress-google-maps-for-wordpress');?></option>
|
11 |
</select>
|
12 |
-
<input type='text' size="15" class='mapp-media-search' placeholder='<?php _e('
|
|
|
13 |
</div>
|
14 |
<div class='mapp-list mapp-media-list'></div>
|
15 |
</div>
|
@@ -55,8 +56,8 @@
|
|
55 |
|
56 |
<script type='text/template' id='mapp-tmpl-media-list'>
|
57 |
<div class='mapp-items'>
|
58 |
-
<# _.forEach(
|
59 |
-
<div class='mapp-item' data-mapp-media='edit' data-mapp-mapid='{{ item.mapid }}'>
|
60 |
|
61 |
<# if (type == 'all') { #>
|
62 |
<# if (item.post_title) { #>{{ item.post_title }}<# } else { #><?php _e('Untitled', 'mappress-google-maps-for-wordpress');?><# } #>
|
@@ -66,21 +67,18 @@
|
|
66 |
<# if (item.map_title) { #>{{ item.map_title }}<# } else { #><?php _e('Untitled', 'mappress-google-maps-for-wordpress');?><# } #>
|
67 |
|
68 |
<div class='mapp-actions'>
|
69 |
-
<a href='#' data-mapp-media='edit'><?php _e('Edit', 'mappress-google-maps-for-wordpress');?></a> |
|
70 |
-
<a href='#' data-mapp-media='insert'><?php _e('Insert into post', 'mappress-google-maps-for-wordpress');?></a> |
|
71 |
-
<a href='#' data-mapp-media='remove'><?php _e('Delete', 'mappress-google-maps-for-wordpress');?></a>
|
72 |
</div>
|
73 |
</div>
|
74 |
<# }); #>
|
75 |
</div>
|
76 |
<div class='mapp-list-footer'>
|
77 |
-
<# if (
|
78 |
<?php _e('No maps found', 'mappress-google-maps-for-wordpress');?>
|
79 |
<# } #>
|
80 |
-
|
81 |
-
<input type='button' class='button' data-mapp-media='more' value='<?php _e('Load More', 'mappress-google-maps-for-wordpress');?>'>
|
82 |
-
<span class='spinner'></span>
|
83 |
-
<# } #>
|
84 |
</div>
|
85 |
</div>
|
86 |
</script>
|
9 |
<option value='post'><?php _e('This post', 'mappress-google-maps-for-wordpress');?></option>
|
10 |
<option value='all'><?php _e('All posts', 'mappress-google-maps-for-wordpress');?></option>
|
11 |
</select>
|
12 |
+
<input type='text' size="15" class='mapp-media-search' placeholder='<?php _e('Filter by title', 'mappress-google-maps-for-wordpress');?>'>
|
13 |
+
<span class='spinner'></span>
|
14 |
</div>
|
15 |
<div class='mapp-list mapp-media-list'></div>
|
16 |
</div>
|
56 |
|
57 |
<script type='text/template' id='mapp-tmpl-media-list'>
|
58 |
<div class='mapp-items'>
|
59 |
+
<# _.forEach(items, function(item, i) { #>
|
60 |
+
<div class='mapp-item' data-mapp-media-list='edit' data-mapp-mapid='{{ item.mapid }}'>
|
61 |
|
62 |
<# if (type == 'all') { #>
|
63 |
<# if (item.post_title) { #>{{ item.post_title }}<# } else { #><?php _e('Untitled', 'mappress-google-maps-for-wordpress');?><# } #>
|
67 |
<# if (item.map_title) { #>{{ item.map_title }}<# } else { #><?php _e('Untitled', 'mappress-google-maps-for-wordpress');?><# } #>
|
68 |
|
69 |
<div class='mapp-actions'>
|
70 |
+
<a href='#' data-mapp-media-list='edit'><?php _e('Edit', 'mappress-google-maps-for-wordpress');?></a> |
|
71 |
+
<a href='#' data-mapp-media-list='insert'><?php _e('Insert into post', 'mappress-google-maps-for-wordpress');?></a> |
|
72 |
+
<a href='#' data-mapp-media-list='remove'><?php _e('Delete', 'mappress-google-maps-for-wordpress');?></a>
|
73 |
</div>
|
74 |
</div>
|
75 |
<# }); #>
|
76 |
</div>
|
77 |
<div class='mapp-list-footer'>
|
78 |
+
<# if (items.length == 0) { #>
|
79 |
<?php _e('No maps found', 'mappress-google-maps-for-wordpress');?>
|
80 |
<# } #>
|
81 |
+
{{{more}}}
|
|
|
|
|
|
|
82 |
</div>
|
83 |
</div>
|
84 |
</script>
|
js/mappress.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var mapp=window.mapp||{};+function(n){mapp.Map=function(n,t){this.defaults={center:null,editable:null,height:null,initialOpenDirections:null,initialOpenInfo:null,layers:null,mapid:null,mapTypeId:null,metaKey:null,mapOpts:null,name:null,pois:null,postid:null,query:null,sel:null,title:null,width:null,zoom:null};this.highlight=null;this.iw=null;this.places=null;this.poi=null;this.settings=t?t:{};this.templates=null;this.dir_=null;this.div={};this.layers_={};this.map_=null;this.pois_=[];this.xhr_;this.zindex_=0;_.extend(this,this.defaults,n,this.settings)};mapp.Map.prototype={display:function(){var t=this,i;if(this.div.layout=this.sel?n(".mapp-layout",this.sel):n("#"+this.name+"-layout"),n.each(["canvas","controls","dialog","directions","filters","iw","list","menu","search"],function(i,r){t.div[r]=n(".mapp-"+r,t.div.layout)}),this.sanity()===!0){this.templates=this.editable?{loop:"edit-loop",item:"edit-item",popup:"edit-popup"}:this.query?{loop:"map-loop",item:"mashup-item",popup:"mashup-popup"}:{loop:"map-loop",item:"map-item",popup:"map-popup"};mappl10n.options.engine=="leaflet"?(i=_.extend({attribution:'Map data © <a href="https://openstreetmap.org">OpenStreetMap<\/a>',minZoom:0,scrollWheelZoom:!1,worldCopyJump:!0,zoomControl:null},this.mapOpts),i.minZoom=isNaN(parseInt(i.minZoom))?0:parseInt(i.minZoom),this.map_=new L.Map(this.div.canvas.get(0),i),L.control.zoom({position:"bottomright",zoomInTitle:"",zoomOutTitle:""}).addTo(this.map_),this.iw=L.popup(),this.iw.setContent(this.div.iw.get(0))):(this.map_=new google.maps.Map(this.div.canvas.get(0),{mapTypeId:"roadmap",zoom:1}),i=_.extend({backgroundColor:"transparent",clickableIcons:!1,fullscreenControl:!1,keyboardShortcuts:!1,mapTypeControl:!0,mapTypeControlOptions:{position:google.maps.ControlPosition.TOP_RIGHT,style:google.maps.MapTypeControlStyle.DROPDOWN_MENU},minZoom:0,scaleControl:!0,scrollwheel:!1,streetViewControl:!this.editable&&!this.query},this.mapOpts),i.minZoom=isNaN(parseInt(i.minZoom))?0:parseInt(i.minZoom),this.map_.setOptions(i),this.iw=mappl10n.options.iwType=="ib"||this.editable?new mapp.InfoBox(this):new google.maps.InfoWindow,this.iw.setContent(this.div.iw.get(0)),this.addLayers());this.addStyles();this.addControls();this.addMenu();this.setMapTypeId(this.mapTypeId,!0);this.places=new mapp.Places(n(".mapp-places",this.div.search),{map:t});n(this.places).on("search.mapp",function(n,i){t.search(i)});this.addEvents("click drag",function(){t.close()});this.toggleView("mini",this.div.layout.width()<mappl10n.options.mini);this.div.layout.on("click","[data-mapp-action]",function(i){var r=n(this).attr("data-mapp-action");i.preventDefault();t.action(r,n(this).attr("data-mapp-"+r),n(this))});this.div.filters.on("change",function(){t.ajaxQuery()});n(window).resize(function(){t.resize()});this.places.parse(this.center,function(n){t.center=n&&n.geometry&&n.geometry.location?{lat:n.geometry.location.lat,lng:n.geometry.location.lng}:null;t.query?t.ajaxQuery(function(){t.initCenter()}):(t.setPois(t.pois),t.initCenter())})}},initCenter:function(){var n=this;this.recenter();this.renderList();this.query&&mappl10n.options.search&&!this.editable&&this.addSearchMove();mappl10n.options.engine=="leaflet"?this.initOpen():mapp.event.addListenerOnce(n.map_,"idle",function(){n.initOpen()})},initOpen:function(){var n=this.pois_.length?this.pois_[0]:null;this.initialOpenDirections?this.openDirections(null,n):n&&this.initialOpenInfo&&n.open()},search:function(n){var i,t,f,u,r;n&&n.geometry&&(i=n.geometry.location?n.geometry.location:null,t=n.geometry.viewport?n.geometry.viewport:null,mappl10n.options.engine=="leaflet"?(f=new L.LatLng(i.lat,i.lng),r=f.toBounds(mappl10n.options.radius*1e3)):(u=new google.maps.Circle({center:i,radius:mappl10n.options.radius*1e3}),r=t?new google.maps.LatLngBounds(new google.maps.LatLng(t.sw.lat,t.sw.lng),new google.maps.LatLng(t.ne.lat,t.ne.lng)).union(u.getBounds()):u.getBounds()),this.fitBounds(r),this.setView(i))},load:function(n){_.extend(this,this.defaults,n,this.settings);this.setMapTypeId(this.mapTypeId,!0);this.setPois(this.pois);this.recenter()},action:function(t,i,r){var f=this,u;switch(t){case"center":this.toggleView("menu",!1);this.close();this.recenter();break;case"dir":this.openDirections(null,this.poi);break;case"dir-from":this.openDirections(this.poi,null);break;case"filters-reset":this.div.filters.find(":input").each(function(){this.type=="checkbox"||this.type=="radio"?n(this).prop("checked",!1):n(this).val("")});this.ajaxQuery();break;case"filters-toggle":this.toggleView("filters");break;case"geolocate":this.places.geolocate(function(n){f.search(n)});break;case"layer":this.toggleLayer(i);this.toggleView("menu",!1);break;case"menu-toggle":this.toggleView("menu");break;case"open":u=r.attr("data-mapp-poi");this.open(this.pois_[u]);break;case"show":this.div.layout.show();this.resize();this.initCenter();break;case"view-map":this.toggleView("list",!1);break;case"view-list":this.toggleView("list",!0);break;default:return!0}},dialog:function(n,t){var i=this;n?(this.div.dialog.html(n),this.div.dialog.show(),t&&(clearTimeout(this.dialog.fade),this.dialog.fade=setTimeout(function(){i.dialog(null)},4e3))):this.div.dialog.hide()},addEvents:function(n,t){n=n.split(" ");for(var i=0;i<n.length;i++)mapp.event.addListener(this.map_,n[i],t)},close:function(){mappl10n.options.engine=="leaflet"?this.map_.closePopup():this.iw.close();this.select(null);n(this).triggerHandler("mapp.close")},openDirections:function(n,t){var i=n?n.getAddress():"",r=t?t.getAddress():"";this.dir_||(this.dir_=new mapp.Directions(this.div.directions,this));this.dir_.open(i,r)},sanity:function(){if(!this.div.canvas.length)return mapp.lib.log("MapPress: Missing map name or container for map: "+this.name);if(mappl10n.options.autoupdate==="tc")return mapp.lib.log("Maps API missing (800001)");if(typeof _=="undefined")return mapp.lib.alert("ERROR: underscore.js not loaded. Check cacheing / optimizing plugins.");if(mappl10n.options.engine=="leaflet"){if(typeof L=="undefined")return mapp.lib.alert("ERROR: Unable to load Leaflet")}else{if(typeof google=="undefined")return mapp.lib.alert("ERROR: Google Maps API not loaded");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.")})}return!0},select:function(t){if(n("[data-mapp-poi]",this.div.list).removeClass("mapp-selected"),t){var r=n.inArray(t,this.pois_),i=n('[data-mapp-poi="'+r+'"]',this.div.list);i.addClass("mapp-selected");mapp.lib.scrollTo(this.div.list,i);t.setZIndex(++this.zindex_)}this.poi=t},setHighlight:function(n){this.highlight&&(mappl10n.options.engine=="leaflet"?this.highlight.remove():this.highlight.setMap(null));n&&(mappl10n.options.engine=="leaflet"?this.highlight=new L.Marker(n.getPosition()).addTo(this.map_):(this.highlight=new google.maps.Marker({position:n.getPosition()}),this.highlight.setMap(this.map_)))},getMap:function(){return this.map_},renderList:function(){var i=this.getBounds(),r=0,u=this,t;if(!this.editable)for(t=0;t<this.pois_.length;t++)this.pois_[t].visible=this.pois_[t].type!="kml",this.query&&i&&!i.contains(this.pois_[t].getPosition())&&(this.pois_[t].visible=!1),r+=this.pois_[t].visible;this.div.list.html(mapp.lib.template(this.templates.loop,{map:this,pois:this.pois_,count:r}));this.editable&&n(".mapp-items",u.sel).sortable({axis:"y",cursor:"move",delay:200,update:function(){u.sortPois(n(this).sortable("toArray",{attribute:"data-mapp-poi"}))}})},getPois:function(){return this.pois_},insertPoi:function(n){var t=this;this.pois_.unshift(n);n.setMap(this);t.renderList();this.select(n)},removePoi:function(t){var r=this,i=n.inArray(t,this.pois_);i!=-1&&(this.pois_[i].setMap(null),this.pois_.splice(i,1),r.renderList())},resetPois:function(){for(i=0;i<this.pois_.length;i++)this.pois_[i].setMap(null);this.pois_=[];this.zindex_=0},setPois:function(n){var t,i;if(this.resetPois(),n){for(t=0;t<n.length;t++)i=new mapp.Poi(n[t]),this.pois_.push(i),i.id=this.pois_.length-1,i.setMap(this),i.setZIndex(this.zindex_+n.length-1-t);this.zindex_+=n.length-1}this.renderList()},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(this.pois_[r])}if(t.length!=this.pois_.length)return!1;this.pois_=t;this.renderList()},open:function(t,i){if(this.close(),this.select(t),mappl10n.options.mashupClick!="poi"&&t.postid&&t.url){window.open(t.url);return}if(this.toggleView("list",!1),this.div.iw.html(t.render("popup")),mappl10n.options.engine=="leaflet")this.iw.setLatLng(t.getPosition()),this.iw.options.offset=t.getAnchorPoint(),this.map_.openPopup(this.iw);else{var r=new google.maps.MVCObject;r.setValues({position:t.getPosition(i),anchorPoint:t.getAnchorPoint(i)});this.iw.open(this.map_,r)}n(this).triggerHandler("mapp.open",t)},renderMenu:function(){var t=this;for(layer in this.layers_)this.layers_[layer].getMap()&&n('[data-mapp-layer="'+layer+'"]',this.div.layout).addClass("mapp-active")},addStyles:function(){var u=this,l,f,r,i;if(mappl10n.options.engine=="leaflet"){if(this.editable){for(l=[],f=L.control.layers(),r=0;r<mappl10n.options.baseLayers.length;r++){var o=mappl10n.options.baseLayers[r],s=mappl10n.options.providers[o.provider],h=n.extend({},s,o);f.addBaseLayer(L.tileLayer(s.url,h),h.label)}mappl10n.options.baseLayers.length>1&&f.addTo(this.map_)}this.map_.on("baselayerchange",function(n){u.mapTypeId=n.layer.options.name})}else{var t=mappl10n.options.styles?mappl10n.options.styles:[],e=mappl10n.options.style,c=["roadmap","satellite","terrain","hybrid"];if(e&&typeof t[e]!="undefined"&&this.map_.setOptions({styles:t[e]}),this.editable){for(i in t)this.map_.mapTypes.set(i,new google.maps.StyledMapType(t[i],{name:i})),c.push(i);this.map_.setOptions({mapTypeControlOptions:{mapTypeIds:c,position:google.maps.ControlPosition.TOP_RIGHT,style:google.maps.MapTypeControlStyle.DROPDOWN_MENU}})}else this.mapTypeId&&typeof t[this.mapTypeId]!="undefined"&&this.map_.setOptions({styles:t[this.mapTypeId]});mapp.event.addListener(this.map_,"maptypeid_changed",function(){u.mapTypeId=u.map_.getMapTypeId()})}},addControls:function(){var n=this;this.div.controls.html(mapp.lib.template("map-controls",{map:this}))},addLayers:function(){var u,i,t,r;for(this.layers_={traffic:new google.maps.TrafficLayer,bicycling:new google.maps.BicyclingLayer,transit:new google.maps.TransitLayer},u=n.makeArray(this.layers),i=0;i<u.length;i++)t=n.trim(u[i]),r=t.split(".").pop(),this.layers_[t]?this.toggleLayer(t):r=="kml"||r=="kmz"?this.layers_[t]=new google.maps.KmlLayer({map:this.map_,preserveViewport:!0,url:t}):r=="json"&&(this.layers_[t]=new google.maps.Data({map:this.map_}).loadGeoJson(t))},addMenu:function(){var t=this;n("body").on("click",function(i){var r=n(i.target),u=r.attr("data-mapp-action");r==t.div.filters||u=="filters-toggle"||r.closest(t.div.filters).length||t.toggleView("filters",!1);r==t.div.menu||u=="menu-toggle"||r.closest(t.div.menu).length||t.toggleView("menu",!1)})},toggleLayer:function(t,i){var r=this;i=typeof i!="undefined"?i:this.layers_[t].getMap()==null;n.each(["traffic","bicycling","transit"],function(n,t){r.layers_[t].setMap(null)});i&&this.layers_[t].setMap(this.map_)},togglePois:function(n){n=!!n;for(var t=0;t<this.pois_.length;t++)this.pois_[t].setVisible(n)},toggleView:function(n,t){t=typeof t=="undefined"?!this.div.layout.hasClass("mapp-view-"+n):t;this.div.layout.toggleClass("mapp-view-"+n,t);n=="menu"&&t&&this.renderMenu();n=="directions"&&(this.close(),this.resize())},resize:function(){var n=this.getCenter();this.toggleView("mini",this.div.layout.width()<mappl10n.options.mini);mappl10n.options.engine=="leaflet"?this.map_.invalidateSize():mapp.event.trigger(this.map_,"resize");n&&this.setView(n)},recenter:function(){var t=this.center&&this.center.lat&&this.center.lng?this.center:null,n=this.zoom&&parseInt(this.zoom)?parseInt(this.zoom):null,i,r;if(t&&!n&&this.query){this.search({geometry:{location:{lat:t.lat,lng:t.lng}}});return}if(t){this.setView(t,n?n:1);return}if(this.pois_.length==0){this.setView({lat:0,lng:0},n?n:1);return}if(this.pois_.length==1){this.pois_[0].center(n);return}for(bounds=mappl10n.options.engine=="leaflet"?new L.LatLngBounds:new google.maps.LatLngBounds,i=0;i<this.pois_.length;i++)r=this.pois_[i].getBounds(),bounds=r?mappl10n.options.engine=="leaflet"?bounds.extend(r):bounds.union(r):bounds.extend(this.pois_[i].getPosition());n?this.setView(bounds.getCenter().toJSON(),n):this.fitBounds(bounds)},toJSON:function(){var n;for(this.pois=[],n=0;n<this.pois_.length;n++)this.pois.push(this.pois_[n].toJSON());return{center:this.center,height:this.height,mapid:this.mapid,mapTypeId:this.mapTypeId,metaKey:this.metaKey,pois:this.pois,title:this.title,width:this.width,zoom:this.zoom}},ajaxSave:function(n){var t=this,i=JSON.stringify(this),r=!this.mapid||!this.postid?mappl10n.options.postid:this.postid;mapp.lib.ajax({type:"POST",data:{action:"mapp_save",map:i,postid:r},callback:function(i){i.status=="OK"&&(t.mapid=i.data.mapid,n(i.data))}})},fitBounds:function(n,t){var t=mappl10n.options.engine=="leaflet"&&t?{paddingTopLeft:[t.left,t.top],paddingBottomRight:[t.right,t.bottom]}:t;return this.map_.fitBounds(n,t)},getBounds:function(){try{return this.map_.getBounds()}catch(n){return null}},getCenter:function(){try{return this.map_.getCenter()}catch(n){return null}},getMapTypeId:function(n){return mappl10n.options.engine=="leaflet"?"roadmap":this.map_.getMapTypeId(n)},setMapTypeId:function(t){var s=this,i,r,e,u,o,f;if(mappl10n.options.engine=="leaflet")for(this.map_.eachLayer(function(n){s.map_.removeLayer(n)}),t=!this.editable&&mappl10n.options.style&&t=="streets"?mappl10n.options.style:t,t=_.findIndex(mappl10n.options.baseLayers,{name:t})>=0?t:mappl10n.options.baseLayers[0].name,i=0;i<mappl10n.options.baseLayers.length;i++)r=mappl10n.options.baseLayers[i],e=mappl10n.options.providers[r.provider],r.name==t&&(u=n.extend({},e,r),o=L.tileLayer(u.url,u),o.addTo(this.map_));else f=n.inArray(t,["roadmap","satellite","terrain","hybrid"])!=-1,t=this.editable?f||typeof mappl10n.options.styles[t]!="undefined"?t:"roadmap":f?t:"roadmap",this.map_.setMapTypeId(t)},setView:function(n,t,i){mappl10n.options.engine=="leaflet"?(t==null&&(t=this.map_.getZoom()?this.map_.getZoom():0),this.map_.setView(n,t,i)):(n&&this.map_.setCenter(n),t&&this.map_.setZoom(parseInt(t)))}};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 i=n(this).attr("data-mapp-action"),u=n(".mapp-dir-daddr",r.sel).val(),f=n(".mapp-dir-saddr",r.sel).val();t.preventDefault();switch(i){case"dir-cancel":r.close();break;case"dir-get":r.getDirections();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(u);n(".mapp-dir-daddr",r.sel).val(f);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(){this.map.close();this.openGoogle(n(".mapp-dir-saddr",this.sel).val(),n(".mapp-dir-daddr",this.sel).val());return};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.geocoders={};+function(){mapp.geocoders.Algolia=function(n){this.map=n;this.places=algoliasearch.initPlaces()};mapp.geocoders.Algolia.prototype={geocode:function(n,t){var i=this;this.getPredictions(n,function(i){i&&i.hits.length?t({formatted_address:i.hits[0].locale_names[0],name:n,geometry:{location:{lat:i.hits[0]._geoloc.lat,lng:i.hits[0]._geoloc.lng}}}):t(null)})},getDetails:function(n,t){t({formatted_address:n.value,name:n.name,geometry:{location:n.latlng}})},getPredictions:function(n,t){this.places.search({query:n,language:mappl10n.options.language},function(n,i){n||!i?t(null):t(i)})}}}(jQuery);+function(n){mapp.geocoders.Google=function(t){this.map=t;this.token=null;this.types=this.map.editable?null:["geocode"];var i=n('<div style="display:none">').appendTo("body");this.placesService=new google.maps.places.PlacesService(i.get(0));this.autocompleteService=new google.maps.places.AutocompleteService;i.remove()};mapp.geocoders.Google.prototype={geocode:function(t,i){var r=this;this.getPredictions(t,function(t){t&&n.isArray(t)?r.getDetails(t[0],function(n){i(n)}):i(null)})},getDetails:function(n,t){this.token=this.token?this.token:new google.maps.places.AutocompleteSessionToken;this.token=null;var i={placeId:n.place_id,sessionToken:this.token};this.placesService.getDetails(i,function(n,i){if(i=="OK"&&n&&n.geometry){if(n.geometry.location&&(n.geometry.location=n.geometry.location.toJSON()),n.geometry.viewport){var r=n.geometry.viewport.toJSON();n.geometry.viewport={sw:{lat:r.south,lng:r.west},ne:{lat:r.north,lng:r.east}}}t(n)}else t(null)})},getPredictions:function(n,t){var i,r;this.token=this.token?this.token:new google.maps.places.AutocompleteSessionToken;i=this.map.getMap().getBounds();i=i?i:new google.maps.LatLngBounds(new google.maps.LatLng(85,-180),new google.maps.LatLng(-85,180));r={input:n,bounds:i,sessionToken:this.token,types:this.types};this.autocompleteService.getPlacePredictions(r,function(n,i){i=="OK"&&n&&n.length?t(n):(i==google.maps.places.PlacesServiceStatus.REQUEST_DENIED?alert("Google Maps API Key error: please enable the Places API in the Google Developer Console."):i==google.maps.places.PlacesServiceStatus.OVER_QUERY_LIMIT&&alert("Google Maps API Key has exceeded its query limit"),t(null))})}}}(jQuery);mapp=window.mapp||{};mapp.Icons={};mapp.Icons.get=function(){var n="https://maps.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png";return mappl10n.options.engine=="leaflet"?L.icon({iconUrl:n,iconAnchor:[16,32],iconSize:[32,32],popupAnchor:[0,-32]}):{url:n}};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},i),u=null,r=null,o,e=this;r=n('<div class="mapp-ib-wrapper" tabindex="0"><div class="mapp-ib" tabindex="0"><\/div><div class="mapp-ib-tip"><\/div><\/div>').appendTo(t.getMap().getDiv());jQuery(window).resize(function(){e.close()});r.on("keydown",function(n){n.which==27&&e.close()});r.on("click",".mapp-close",function(){e.close()});this.getContent=function(){return n(".mapp-ib",r)};this.setContent=function(t){n(".mapp-ib",r).empty().append(t)};this.open=function(n,t){u=t;this.setMap(n)};this.onAdd=function(){o=!1;var t=n(":input",r);r.show();t.length?t.first().focus():r.focus();google.maps.event.trigger(e,"domready")};this.draw=function(){var l=this.getMap(),a=n(".mapp-ib-body",r),s=this.getProjection().fromLatLngToContainerPixel(u.position),t,h,c,i,e;o||(o=!0,t={width:n(":first-child",l.getDiv()).width(),height:n(":first-child",l.getDiv()).height()},r.css({"max-height":"9999px",left:0,bottom:0,top:"auto",right:"auto"}),h=r.outerWidth(!0),c=r.outerHeight(!0),c>t.height+u.anchorPoint.y-2*f.border&&(c=t.height+u.anchorPoint.y-2*f.border,r.css({"max-height":c+2})),i=s.x,e=s.y,i+h/2>t.width&&(i=t.width-h/2),i-h/2<0&&(i=h/2),e-c+u.anchorPoint.y<f.border&&(e=c-u.anchorPoint.y+f.border),e>t.height&&(e=t.height),(s.x-i||s.y-e)&&l.panBy(s.x-i,s.y-e),r.css({left:i-h/2,bottom:t.height-e-u.anchorPoint.y}))};this.close=function(){r.is(":visible")&&(this.setMap(null),google.maps.event.trigger(this,"closed"))};this.onRemove=function(){r.hide()}};mappl10n.options.engine!="leaflet"&&(mapp.InfoBox.prototype=new google.maps.OverlayView)}(jQuery);mapp=window.mapp||{};+function(n){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)}};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).find(".mapp-canvas").attr("id"),t=window[i];t.resize();t.recenter()})})}(jQuery);+function(){mappl10n.options.engine=="leaflet"&&(L.LatLng.prototype.toJSON=function(){return{lat:this.lat,lng:this.lng}},L.LatLngBounds.prototype.toJSON=function(){return{south:this.getSouth(),west:this.getWest(),north:this.getNorth(),east:this.getEast()}},L.LatLng.prototype.toUrlValue=function(){return Math.round(this.lat*1e6)/1e6+", "+Math.round(this.lng*1e6)/1e6});mapp.event={addListener:function(n,t,i){if(mappl10n.options.engine=="leaflet")n.on(t,i);else google.maps.event.addListener(n,t,i)},addListenerOnce:function(n,t,i){if(mappl10n.options.engine=="leaflet")n.once(t,i);else google.maps.event.addListenerOnce(n,t,i)},clearInstanceListeners:function(n){mappl10n.options.engine=="leaflet"?n.off():google.maps.event.clearInstanceListeners(n)},clearListeners:function(n,t){mappl10n.options.engine=="leaflet"?n.off(t):google.maps.event.clearListeners(n,"rightclick")},trigger:function(n,t,i){mappl10n.options.engine=="leaflet"?n.fire(t,i):google.maps.event.trigger(n,t,i)}}}(jQuery);mapp=window.mapp||{};jQuery.fn.AlgoliaAutocomplete=jQuery.fn.autocomplete.noConflict();+function(n){mapp.Places=function(t,i){var r=this;this.sel=n(t);this.opts=n.extend({map:null},i);this.geocoder=mappl10n.options.engine=="leaflet"?new mapp.geocoders.Algolia(this.opts.map):new mapp.geocoders.Google(this.opts.map);this.sel.on("keydown",function(t){if(t.which==13){t.preventDefault();var i=r.parseLatLng(r.sel.val());i&&(n(r).triggerHandler("search.mapp",i),r.sel.AlgoliaAutocomplete("close"),t.stopImmediatePropagation())}});this.autocomplete();this.sel.focus()};mapp.Places.prototype={parse:function(t,i){var f=this,u=t&&t.name?n.trim(t.name):n.trim(t),r;if(!u){i(null);return}if(u=="user"){this.geolocate(function(n){i(n)});return}if(t&&t.geometry){i(t);return}if(r=this.parseLatLng(t),r){i(r);return}this.geocoder.geocode(t,function(n){i(n)})},parseLatLng:function(t){var i,e,r,u,f;return t.lat&&t.lng?i=t:(e=t&&t.name?n.trim(t.name):n.trim(t),r=e.split(","),r.length==2&&(u=parseFloat(r[0]),f=parseFloat(r[1]),isNaN(u)||isNaN(f)||(i={lat:u,lng:f}))),i?{name:i.lat+", "+i.lng,geometry:{location:i}}:null},geolocate:function(n){var t=this;if(!navigator||!navigator.geolocation){alert(mappl10n.no_geolocate);return}navigator.geolocation.getCurrentPosition(function(t){var i={lat:t.coords.latitude,lng:t.coords.longitude};n({name:i.lat+", "+i.lng,geometry:{location:i}})},function(t){var i=t&&t.message?" : "+t.message:"";alert(mappl10n.no_geolocate+i);n(null)},{timeout:15e3,enableHighAccuracy:!0,maximumAge:3e4})},autocomplete:function(){var t=this,r,i,u;this.sel.on("autocomplete:selected",function(i,r){t.geocoder.getDetails(r,function(i){t.parse(i,function(i){i&&n(t).triggerHandler("search.mapp",i)})})});r={empty:'<div class="list-group search-results-dropdown"><div class="list-group-item">'+mappl10n.no_results+"<\/div><\/div>",header:'<div class="list-group search-results-dropdown">'};mappl10n.options.engine=="leaflet"?(i={algoliasearch:algoliasearch,templates:r},mappl10n.options.country&&(i.countries=[mappl10n.options.country]),mappl10n.options.language&&(i.language=mappl10n.options.language),u=placesAutocompleteDataset(i)):u={display:"description",source:function(n,i){t.geocoder.getPredictions(n,function(n){matches=n;i(matches)})},templates:r};this.sel.AlgoliaAutocomplete({autoselect:!0,cssClasses:{prefix:"mapp-aa"},debug:!1,hint:!0,highlight:!0,minLength:1},u)}}}(jQuery);mapp=window.mapp||{};+function(n){mapp.Poi=function(t){var u,f,r,o,i,e,h,s;if(this.defaults={address:null,body: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),mappl10n.options.engine=="leaflet"&&this.isPoly()&&(this.type=null),t.viewport&&t.viewport.sw&&t.viewport.ne&&(u=t.viewport.sw,f=t.viewport.ne,this.viewport=mappl10n.options.engine=="leaflet"?new L.LatLngBounds(L.latLng(u.lat,u.lng),L.latLng(f.lat,f.lng)):new google.maps.LatLngBounds(new google.maps.LatLng(u.lat,u.lng),new google.maps.LatLng(f.lat,f.lng))),r=[],o=[],!t.overlay)switch(this.type){case"polygon":if(t.poly&&t.poly.paths)for(i=0;i<t.poly.paths.length;i++){for(r=[],e=0;e<t.poly.paths[i].length;e++)r.push(new google.maps.LatLng(t.poly.paths[i][e].lat,t.poly.paths[i][e].lng));o.push(new google.maps.MVCArray(r))}this.overlay=new google.maps.Polygon({paths:new google.maps.MVCArray(o)});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":h=new google.maps.LatLng(t.point.lat,t.point.lng);this.overlay=new google.maps.Circle({center:h,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":s=t.kml&&t.kml.url?t.kml.url:"";this.overlay=mappl10n.options.engine=="leaflet"?omnivore.kml(s):new google.maps.KmlLayer(s,{preserveViewport:!0,suppressInfoWindows:!0});break;case"":default:this.overlay=mappl10n.options.engine=="leaflet"?L.marker([t.point.lat,t.point.lng]):new google.maps.Marker({position:new google.maps.LatLng(t.point.lat,t.point.lng)})}t.type||this.setIcon(t.iconid)};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},u=this.getPosition(),i,t,r;if(n.point=u.toJSON(),i=this.viewport?this.viewport:this.getBounds(),i&&(t=i.toJSON(),n.viewport={sw:{lat:t.south,lng:t.west},ne:{lat:t.north,lng:t.east}}),this.type=="kml"&&(n.kml=this.kml),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(t.toJSON())});break;case"polygon":n.poly.paths=[];this.overlay.getPaths().forEach(function(t){var i=[];t.forEach(function(n){i.push(n.toJSON())});n.poly.paths.push(i)});break;case"rectangle":r=this.overlay.getBounds();n.viewport={sw:r.getSouthWest().toJSON(),ne:r.getNorthEast().toJSON()}}}return n},setMap:function(t){var i=this;if(this.map=t,mapp.event.clearInstanceListeners(this.overlay),t==null){mappl10n.options.engine=="leaflet"?this.overlay.remove():this.overlay.setMap(null);return}this.type=="kml"&&(mappl10n.options.engine=="leaflet"?(mapp.event.addListenerOnce(this.overlay,"ready",function(){i.viewport=i.overlay.getBounds()}),mapp.event.addListenerOnce(this.overlay,"error",function(){alert(mappl10n.kml_error)})):(mapp.event.addListener(this.overlay,"defaultviewport_changed",function(){i.viewport=i.overlay.getDefaultViewport()}),mapp.event.addListener(this.overlay,"status_changed",function(){var n=i.overlay.getStatus();n!="OK"&&mappl10n.ajaxErrors&&alert(mappl10n.kml_error+":"+n)})));mapp.event.addListener(this.overlay,"click",function(n){i.open(n)});this.setTitle(n("<div>").html(this.title).text());this.setEditable(this.map.editable);mappl10n.options.engine=="leaflet"?this.overlay.addTo(t.getMap()):this.overlay.setMap(t.getMap())},setEditable:function(n){var t=this;this.type!="kml"&&(mappl10n.options.engine=="leaflet"?this.overlay.options.draggable=n:this.overlay.setDraggable(n),this.isPoly()&&this.overlay.setEditable(n),mapp.event.clearListeners(this.overlay,"rightclick"),mapp.event.clearListeners(this.overlay,"dragstart"),n&&(mapp.event.addListener(this.overlay,"dragstart",function(){t.viewport=null;t.map.close()}),(this.type=="polygon"||this.type=="polyline")&&mapp.event.addListener(this.overlay,"rightclick",function(n){n.vertex!=null&&t.overlay.getPath().getLength()>2&&t.overlay.getPath().removeAt(n.vertex)})))},setTitle:function(n){this.type||(mappl10n.options.engine=="leaflet"?this.overlay.title=n:this.overlay.setTitle(n))},setZIndex:function(n){mappl10n.options.engine=="leaflet"?this.type||this.overlay.setZIndexOffset(n):this.overlay.set("zIndex",n)},setIcon:function(n){this.type||typeof mapp.Icons=="undefined"||(this.iconid=n,mappl10n.options.engine=="leaflet"?this.overlay.setIcon(mapp.Icons.get(n)):(this.overlay.setIcon(null),this.overlay.setIcon(mapp.Icons.get(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)},setTemplateColors:function(n,t,i){var r=this.type=="polyline"?{strokeColor:n,strokeOpacity:t/100,strokeWeight:i}:{fillColor:n,fillOpacity:t/100,strokeColor:n,strokeWeight:i,strokeOpacity:1};this.setColors(r)},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},getTemplateColors:function(){var n=this.getColors();return this.type=="polyline"?{color:n.strokeColor,opacity:n.strokeOpacity*100,weight:n.strokeWeight}:{color:n.fillColor,opacity:n.fillOpacity*100,weight:n.strokeWeight}},center:function(n){var t=this.getBounds();if(typeof n=="number"){this.map.setView(this.getPosition(),n);return}if(!t){this.map.setView(this.getPosition(),parseInt(mappl10n.options.poiZoom));return}this.map.fitBounds(t);this.map.setView(this.getPosition(),n)},open:function(n){this.map.open(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=mappl10n.options.engine=="leaflet"?this.overlay.getBounds().isValid()?this.overlay.getBounds():null:this.overlay.getDefaultViewport();n=n?n:this.viewport;break;default:return this.viewport}return n},getPosition:function(n){if(!this.type)return mappl10n.options.engine=="leaflet"?this.overlay.getLatLng():this.overlay.getPosition();if(this.type=="kml"&&n&&n.latLng)return n.latLng;var t=this.getBounds();return t?t.getCenter():mappl10n.options.engine=="leaflet"?new L.latLng(0,0):new google.maps.LatLng(0,0)},getAddress:function(){return this.address?this.address:this.type=="kml"?this.kml.url:this.getPosition().toUrlValue()},getAnchorPoint:function(n){var t=this.isPoly()?"poly":this.type;switch(t){case"kml":return mappl10n.options.engine=="leaflet"?[0,0]:n&&n.pixelOffset?new google.maps.Point(n.pixelOffset.width,n.pixelOffset.height):new google.maps.Point(0,0);case"poly":return mappl10n.options.engine=="leaflet"?[0,0]:new google.maps.Point(0,0);default:return mappl10n.options.engine=="leaflet"?this.overlay.options.icon.options.popupAnchor?this.overlay.options.icon.options.popupAnchor:[0,-32]:typeof this.overlay.anchorPoint!="undefined"?this.overlay.anchorPoint:new google.maps.Point(0,-32)}},render:function(n){return this.icon=mapp.Icons.getUrl(this.iconid),mapp.lib.template(this.map.templates[n],{poi:this,colors:this.getTemplateColors()})}}}(jQuery);mapp=window.mapp||{};mapp.widgets={};+function(n){mapp.widgets.Grid=function(t,i){this.el=n(t);this.options=jQuery.extend({action:null,sortable:!1},i);var r=this;this.table=n("table",this.el);this.template=n("script",this.el).html().replace(new RegExp("'","g"),'"');this.el.on("click",function(t){var u=n(t.target),i=u.attr("data-mapp-action");i&&(r[i](t),t.preventDefault())})};mapp.widgets.Grid.prototype={add:function(){this.table.show();var t=n(this.template).appendTo(this.table);n(":input:eq(0)",t).focus()},remove:function(t){var i=n(t.target).closest("tr").remove();n("tbody > tr",this.table).length||this.table.hide()}}}(jQuery);+function(n){mapp.widgets.Popup=function(t,i){var r,u;if(this.activeToggle=null,this.content=t,this.el=null,r=this,this.options=n.extend({max:!1,modal:!1,position:null,toggle:null},i),this.options.modal?this.el=this.content.addClass("mapp-popup-fixed"):(this.el=n('<div class="mapp-popup">'),this.setContent(t)),this.el.attr("tabindex",0),this.options.max&&this.el.addClass("mapp-popup-max"),this.el.hide(),!this.options.modal)n(document).on("click.mapp.popup",function(t){n.contains(r.el.get(0),t.target)||r.el.get(0)==t.target||r.close()});if(this.options.toggle){u=typeof this.options.toggle=="string"?this.options.toggle:this.options.toggle.selector;n(document).on("click",u,function(t){r.activeToggle=n(this);r.open();t.stopPropagation()})}this.el.on("click",".mapp-close",function(){r.close()});this.el.on("keydown",function(n){n.which==27&&r.close()});return this};mapp.widgets.Popup.prototype={close:function(){this.el&&this.el.is(":visible")&&(this.backdrop&&(this.backdrop.remove(),n("body").removeClass("mapp-popup-modal")),this.el.hide(),this.activeToggle&&this.activeToggle.focus(),this.el.trigger("closed.mapp.popup"))},open:function(){var t=this;this.options.modal||this.el.parent().length||this.el.appendTo("body");this.el.show();this.options.modal?(this.backdrop=n('<div class="mapp-popup-backdrop"><\/div>'),this.el.after(this.backdrop),n("body").addClass("mapp-popup-modal")):this.el.position(n.extend({my:"center bottom",at:"center top-5",of:this.activeToggle,collision:"flipfit"},this.options.position));this.el.focus();this.el.trigger("open.mapp.popup")},setContent:function(n){this.el.empty();this.el.append('<span class="mapp-close">').append(n)},toggle:function(){this.el.is(":visible")?this.close():this.open()}}}(jQuery);+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(n,t){this.defaults={center:null,editable:null,height:null,initialOpenDirections:null,initialOpenInfo:null,layers:null,mapid:null,mapTypeId:null,metaKey:null,mapOpts:null,name:null,pois:null,postid:null,query:null,sel:null,title:null,width:null,zoom:null};this.highlight=null;this.iw=null;this.places=null;this.poi=null;this.settings=t?t:{};this.templates=null;this.dir_=null;this.div={};this.layers_={};this.map_=null;this.pois_=[];this.xhr_;this.zindex_=0;_.extend(this,this.defaults,n,this.settings)};mapp.Map.prototype={display:function(){var t=this,i;if(this.div.layout=this.sel?n(".mapp-layout",this.sel):n("#"+this.name+"-layout"),n.each(["canvas","controls","dialog","directions","filters","iw","list","menu","search"],function(i,r){t.div[r]=n(".mapp-"+r,t.div.layout)}),this.sanity()===!0){this.templates=this.editable?{loop:"edit-loop",item:"edit-item",popup:"edit-popup"}:this.query?{loop:"map-loop",item:"mashup-item",popup:"mashup-popup"}:{loop:"map-loop",item:"map-item",popup:"map-popup"};mappl10n.options.engine=="leaflet"?(i=_.extend({attribution:'Map data © <a href="https://openstreetmap.org">OpenStreetMap<\/a>',minZoom:0,scrollWheelZoom:!1,worldCopyJump:!0,zoomControl:null},this.mapOpts),i.minZoom=isNaN(parseInt(i.minZoom))?0:parseInt(i.minZoom),this.map_=new L.Map(this.div.canvas.get(0),i),L.control.zoom({position:"bottomright",zoomInTitle:"",zoomOutTitle:""}).addTo(this.map_),this.iw=L.popup(),this.iw.setContent(this.div.iw.get(0))):(this.map_=new google.maps.Map(this.div.canvas.get(0),{mapTypeId:"roadmap",zoom:1}),i=_.extend({backgroundColor:"transparent",clickableIcons:!1,fullscreenControl:!1,keyboardShortcuts:!1,mapTypeControl:!0,mapTypeControlOptions:{position:google.maps.ControlPosition.TOP_RIGHT,style:google.maps.MapTypeControlStyle.DROPDOWN_MENU},minZoom:0,scaleControl:!0,scrollwheel:!1,streetViewControl:!this.editable&&!this.query},this.mapOpts),i.minZoom=isNaN(parseInt(i.minZoom))?0:parseInt(i.minZoom),this.map_.setOptions(i),this.iw=mappl10n.options.iwType=="ib"||this.editable?new mapp.InfoBox(this):new google.maps.InfoWindow,this.iw.setContent(this.div.iw.get(0)),this.addLayers());this.addStyles();this.addControls();this.addMenu();this.setMapTypeId(this.mapTypeId,!0);this.places=new mapp.Places(n(".mapp-places",this.div.search),{map:t});n(this.places).on("search.mapp",function(n,i){t.search(i)});this.addEvents("click drag",function(){t.close()});this.toggleView("mini",this.div.layout.width()<mappl10n.options.mini);this.div.layout.on("click","[data-mapp-action]",function(i){var r=n(this).attr("data-mapp-action");i.preventDefault();t.action(r,n(this).attr("data-mapp-"+r),n(this))});this.div.filters.on("change",function(){t.ajaxQuery()});n(window).resize(function(){t.resize()});this.places.parse(this.center,function(n){t.center=n&&n.geometry&&n.geometry.location?{lat:n.geometry.location.lat,lng:n.geometry.location.lng}:null;t.query?t.ajaxQuery(function(){t.initCenter()}):(t.setPois(t.pois),t.initCenter())})}},initCenter:function(){var n=this;this.recenter();this.renderList();this.query&&mappl10n.options.search&&!this.editable&&this.addSearchMove();mappl10n.options.engine=="leaflet"?this.initOpen():mapp.event.addListenerOnce(n.map_,"idle",function(){n.initOpen()})},initOpen:function(){var n=this.pois_.length?this.pois_[0]:null;this.initialOpenDirections?this.openDirections(null,n):n&&this.initialOpenInfo&&n.open()},search:function(n){var i,t,f,u,r;n&&n.geometry&&(i=n.geometry.location?n.geometry.location:null,t=n.geometry.viewport?n.geometry.viewport:null,mappl10n.options.engine=="leaflet"?(f=new L.LatLng(i.lat,i.lng),r=f.toBounds(mappl10n.options.radius*1e3)):(u=new google.maps.Circle({center:i,radius:mappl10n.options.radius*1e3}),r=t?new google.maps.LatLngBounds(new google.maps.LatLng(t.sw.lat,t.sw.lng),new google.maps.LatLng(t.ne.lat,t.ne.lng)).union(u.getBounds()):u.getBounds()),this.fitBounds(r),this.setView(i))},load:function(n){_.extend(this,this.defaults,n,this.settings);this.setMapTypeId(this.mapTypeId,!0);this.setPois(this.pois);this.recenter()},action:function(t,i,r){var f=this,u;switch(t){case"center":this.toggleView("menu",!1);this.close();this.recenter();break;case"dir":this.openDirections(null,this.poi);break;case"dir-from":this.openDirections(this.poi,null);break;case"filters-reset":this.div.filters.find(":input").each(function(){this.type=="checkbox"||this.type=="radio"?n(this).prop("checked",!1):n(this).val("")});this.ajaxQuery();break;case"filters-toggle":this.toggleView("filters");break;case"geolocate":this.places.geolocate(function(n){f.search(n)});break;case"layer":this.toggleLayer(i);this.toggleView("menu",!1);break;case"menu-toggle":this.toggleView("menu");break;case"open":u=r.attr("data-mapp-poi");this.open(this.pois_[u]);break;case"show":this.div.layout.show();this.resize();this.initCenter();break;case"view-map":this.toggleView("list",!1);break;case"view-list":this.toggleView("list",!0);break;default:return!0}},dialog:function(n,t){var i=this;n?(this.div.dialog.html(n),this.div.dialog.show(),t&&(clearTimeout(this.dialog.fade),this.dialog.fade=setTimeout(function(){i.dialog(null)},4e3))):this.div.dialog.hide()},addEvents:function(n,t){n=n.split(" ");for(var i=0;i<n.length;i++)mapp.event.addListener(this.map_,n[i],t)},close:function(){mappl10n.options.engine=="leaflet"?this.map_.closePopup():this.iw.close();this.select(null);n(this).triggerHandler("mapp.close")},openDirections:function(n,t){var i=n?n.getAddress():"",r=t?t.getAddress():"";this.dir_||(this.dir_=new mapp.Directions(this.div.directions,this));this.dir_.open(i,r)},sanity:function(){if(!this.div.canvas.length)return mapp.lib.log("MapPress: Missing map name or container for map: "+this.name);if(mappl10n.options.autoupdate==="tc")return mapp.lib.log("Maps API missing (800001)");if(typeof _=="undefined")return mapp.lib.alert("ERROR: underscore.js not loaded. Check cacheing / optimizing plugins.");if(mappl10n.options.engine=="leaflet"){if(typeof L=="undefined")return mapp.lib.alert("ERROR: Unable to load Leaflet")}else{if(typeof google=="undefined")return mapp.lib.alert("ERROR: Google Maps API not loaded");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.")})}return!0},select:function(t){if(n("[data-mapp-poi]",this.div.list).removeClass("mapp-selected"),t){var r=n.inArray(t,this.pois_),i=n('[data-mapp-poi="'+r+'"]',this.div.list);i.addClass("mapp-selected");mapp.lib.scrollTo(this.div.list,i);t.setZIndex(++this.zindex_)}this.poi=t},setHighlight:function(n){this.highlight&&(mappl10n.options.engine=="leaflet"?this.highlight.remove():this.highlight.setMap(null));n&&(mappl10n.options.engine=="leaflet"?this.highlight=new L.Marker(n.getPosition()).addTo(this.map_):(this.highlight=new google.maps.Marker({position:n.getPosition()}),this.highlight.setMap(this.map_)))},getMap:function(){return this.map_},renderList:function(){var i=this.getBounds(),r=0,u=this,t;if(!this.editable)for(t=0;t<this.pois_.length;t++)this.pois_[t].visible=this.pois_[t].type!="kml",this.query&&i&&!i.contains(this.pois_[t].getPosition())&&(this.pois_[t].visible=!1),r+=this.pois_[t].visible;this.div.list.html(mapp.lib.template(this.templates.loop,{map:this,pois:this.pois_,count:r}));this.editable&&n(".mapp-items",u.sel).sortable({axis:"y",cursor:"move",delay:200,update:function(){u.sortPois(n(this).sortable("toArray",{attribute:"data-mapp-poi"}))}})},getPois:function(){return this.pois_},insertPoi:function(n){var t=this;this.pois_.unshift(n);n.setMap(this);t.renderList();this.select(n)},removePoi:function(t){var r=this,i=n.inArray(t,this.pois_);i!=-1&&(this.pois_[i].setMap(null),this.pois_.splice(i,1),r.renderList())},resetPois:function(){for(i=0;i<this.pois_.length;i++)this.pois_[i].setMap(null);this.pois_=[];this.zindex_=0},setPois:function(n){var t,i;if(this.resetPois(),n){for(t=0;t<n.length;t++)i=new mapp.Poi(n[t]),this.pois_.push(i),i.id=this.pois_.length-1,i.setMap(this),i.setZIndex(this.zindex_+n.length-1-t);this.zindex_+=n.length-1}this.renderList()},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(this.pois_[r])}if(t.length!=this.pois_.length)return!1;this.pois_=t;this.renderList()},open:function(t,i){var r=null,u;if(this.close(),this.select(t),mappl10n.options.mashupClick!="poi"&&t.postid&&t.url){window.open(t.url);return}this.toggleView("list",!1);i&&i.featureData?r=i.featureData:i&&i.propagatedFrom&&i.propagatedFrom.feature&&i.propagatedFrom.feature.properties&&(r=i.propagatedFrom.feature.properties);this.div.iw.html(t.render("popup",r));mappl10n.options.engine=="leaflet"?(this.iw.setLatLng(t.getPosition()),this.iw.options.offset=t.getAnchorPoint(),this.map_.openPopup(this.iw)):(u=new google.maps.MVCObject,u.setValues({position:t.getPosition(i),anchorPoint:t.getAnchorPoint(i)}),this.iw.open(this.map_,u));n(this).triggerHandler("mapp.open",t)},renderMenu:function(){var t=this;for(layer in this.layers_)this.layers_[layer].getMap()&&n('[data-mapp-layer="'+layer+'"]',this.div.layout).addClass("mapp-active")},addStyles:function(){var u=this,l,f,r,i;if(mappl10n.options.engine=="leaflet"){if(this.editable){for(l=[],f=L.control.layers(),r=0;r<mappl10n.options.baseLayers.length;r++){var o=mappl10n.options.baseLayers[r],s=mappl10n.options.providers[o.provider],h=n.extend({},s,o);f.addBaseLayer(L.tileLayer(s.url,h),h.label)}mappl10n.options.baseLayers.length>1&&f.addTo(this.map_)}this.map_.on("baselayerchange",function(n){u.mapTypeId=n.layer.options.name})}else{var t=mappl10n.options.styles?mappl10n.options.styles:[],e=mappl10n.options.style,c=["roadmap","satellite","terrain","hybrid"];if(e&&typeof t[e]!="undefined"&&this.map_.setOptions({styles:t[e]}),this.editable){for(i in t)this.map_.mapTypes.set(i,new google.maps.StyledMapType(t[i],{name:i})),c.push(i);this.map_.setOptions({mapTypeControlOptions:{mapTypeIds:c,position:google.maps.ControlPosition.TOP_RIGHT,style:google.maps.MapTypeControlStyle.DROPDOWN_MENU}})}else this.mapTypeId&&typeof t[this.mapTypeId]!="undefined"&&this.map_.setOptions({styles:t[this.mapTypeId]});mapp.event.addListener(this.map_,"maptypeid_changed",function(){u.mapTypeId=u.map_.getMapTypeId()})}},addControls:function(){var n=this;this.div.controls.html(mapp.lib.template("map-controls",{map:this}))},addLayers:function(){var u,i,t,r;for(this.layers_={traffic:new google.maps.TrafficLayer,bicycling:new google.maps.BicyclingLayer,transit:new google.maps.TransitLayer},u=n.makeArray(this.layers),i=0;i<u.length;i++)t=n.trim(u[i]),r=t.split(".").pop(),this.layers_[t]?this.toggleLayer(t):r=="kml"||r=="kmz"?this.layers_[t]=new google.maps.KmlLayer({map:this.map_,preserveViewport:!0,url:t}):r=="json"&&(this.layers_[t]=new google.maps.Data({map:this.map_}).loadGeoJson(t))},addMenu:function(){var t=this;n("body").on("click",function(i){var r=n(i.target),u=r.attr("data-mapp-action");r==t.div.filters||u=="filters-toggle"||r.closest(t.div.filters).length||t.toggleView("filters",!1);r==t.div.menu||u=="menu-toggle"||r.closest(t.div.menu).length||t.toggleView("menu",!1)})},toggleLayer:function(t,i){var r=this;i=typeof i!="undefined"?i:this.layers_[t].getMap()==null;n.each(["traffic","bicycling","transit"],function(n,t){r.layers_[t].setMap(null)});i&&this.layers_[t].setMap(this.map_)},togglePois:function(n){n=!!n;for(var t=0;t<this.pois_.length;t++)this.pois_[t].setVisible(n)},toggleView:function(n,t){t=typeof t=="undefined"?!this.div.layout.hasClass("mapp-view-"+n):t;this.div.layout.toggleClass("mapp-view-"+n,t);n=="menu"&&t&&this.renderMenu();n=="directions"&&(this.close(),this.resize())},resize:function(){var n=this.getCenter();this.toggleView("mini",this.div.layout.width()<mappl10n.options.mini);mappl10n.options.engine=="leaflet"?this.map_.invalidateSize():mapp.event.trigger(this.map_,"resize");n&&this.setView(n)},recenter:function(){var t=this.center&&this.center.lat&&this.center.lng?this.center:null,n=this.zoom&&parseInt(this.zoom)?parseInt(this.zoom):null,i,r;if(t&&!n&&this.query){this.search({geometry:{location:{lat:t.lat,lng:t.lng}}});return}if(t){this.setView(t,n?n:1);return}if(this.pois_.length==0){this.setView({lat:0,lng:0},n?n:1);return}if(this.pois_.length==1){this.pois_[0].center(n);return}for(bounds=mappl10n.options.engine=="leaflet"?new L.LatLngBounds:new google.maps.LatLngBounds,i=0;i<this.pois_.length;i++)r=this.pois_[i].getBounds(),bounds=r?mappl10n.options.engine=="leaflet"?bounds.extend(r):bounds.union(r):bounds.extend(this.pois_[i].getPosition());n?this.setView(bounds.getCenter().toJSON(),n):this.fitBounds(bounds)},toJSON:function(){var n;for(this.pois=[],n=0;n<this.pois_.length;n++)this.pois.push(this.pois_[n].toJSON());return{center:this.center,height:this.height,mapid:this.mapid,mapTypeId:this.mapTypeId,metaKey:this.metaKey,pois:this.pois,title:this.title,width:this.width,zoom:this.zoom}},ajaxSave:function(n){var t=this,i=JSON.stringify(this),r=!this.mapid||!this.postid?mappl10n.options.postid:this.postid;mapp.lib.ajax({type:"POST",data:{action:"mapp_save",map:i,postid:r},callback:function(i){i.status=="OK"&&(t.mapid||(t.mapid=i.data.mapid),n())}})},fitBounds:function(n,t){var t=mappl10n.options.engine=="leaflet"&&t?{paddingTopLeft:[t.left,t.top],paddingBottomRight:[t.right,t.bottom]}:t;return this.map_.fitBounds(n,t)},getBounds:function(){try{return this.map_.getBounds()}catch(n){return null}},getCenter:function(){try{return this.map_.getCenter()}catch(n){return null}},getMapTypeId:function(n){return mappl10n.options.engine=="leaflet"?"roadmap":this.map_.getMapTypeId(n)},setMapTypeId:function(t){var s=this,i,r,e,u,o,f;if(mappl10n.options.engine=="leaflet")for(this.map_.eachLayer(function(n){s.map_.removeLayer(n)}),t=!this.editable&&mappl10n.options.style&&t=="streets"?mappl10n.options.style:t,t=_.findIndex(mappl10n.options.baseLayers,{name:t})>=0?t:mappl10n.options.baseLayers[0].name,i=0;i<mappl10n.options.baseLayers.length;i++)r=mappl10n.options.baseLayers[i],e=mappl10n.options.providers[r.provider],r.name==t&&(u=n.extend({},e,r),o=L.tileLayer(u.url,u),o.addTo(this.map_));else f=n.inArray(t,["roadmap","satellite","terrain","hybrid"])!=-1,t=this.editable?f||typeof mappl10n.options.styles[t]!="undefined"?t:"roadmap":f?t:"roadmap",this.map_.setMapTypeId(t)},setView:function(n,t,i){mappl10n.options.engine=="leaflet"?(t==null&&(t=this.map_.getZoom()?this.map_.getZoom():0),this.map_.setView(n,t,i)):(n&&this.map_.setCenter(n),t&&this.map_.setZoom(parseInt(t)))}};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 i=n(this).attr("data-mapp-action"),u=n(".mapp-dir-daddr",r.sel).val(),f=n(".mapp-dir-saddr",r.sel).val();t.preventDefault();switch(i){case"dir-cancel":r.close();break;case"dir-get":r.getDirections();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(u);n(".mapp-dir-daddr",r.sel).val(f);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(){this.map.close();this.openGoogle(n(".mapp-dir-saddr",this.sel).val(),n(".mapp-dir-daddr",this.sel).val());return};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.geocoders={};+function(){mapp.geocoders.Algolia=function(n){this.map=n;this.places=algoliasearch.initPlaces()};mapp.geocoders.Algolia.prototype={geocode:function(n,t){var i=this;this.getPredictions(n,function(i){i&&i.hits.length?t({formatted_address:i.hits[0].locale_names[0],name:n,geometry:{location:{lat:i.hits[0]._geoloc.lat,lng:i.hits[0]._geoloc.lng}}}):t(null)})},getDetails:function(n,t){t({formatted_address:n.value,name:n.name,geometry:{location:n.latlng}})},getPredictions:function(n,t){this.places.search({query:n,language:mappl10n.options.language},function(n,i){n||!i?t(null):t(i)})}}}(jQuery);+function(n){mapp.geocoders.Google=function(t){this.map=t;this.token=null;this.types=this.map.editable?null:["geocode"];var i=n('<div style="display:none">').appendTo("body");this.placesService=new google.maps.places.PlacesService(i.get(0));this.autocompleteService=new google.maps.places.AutocompleteService;i.remove()};mapp.geocoders.Google.prototype={geocode:function(t,i){var r=this;this.getPredictions(t,function(t){t&&n.isArray(t)?r.getDetails(t[0],function(n){i(n)}):i(null)})},getDetails:function(n,t){this.token=this.token?this.token:new google.maps.places.AutocompleteSessionToken;this.token=null;var i={placeId:n.place_id,sessionToken:this.token};this.placesService.getDetails(i,function(n,i){if(i=="OK"&&n&&n.geometry){if(n.geometry.location&&(n.geometry.location=n.geometry.location.toJSON()),n.geometry.viewport){var r=n.geometry.viewport.toJSON();n.geometry.viewport={sw:{lat:r.south,lng:r.west},ne:{lat:r.north,lng:r.east}}}t(n)}else t(null)})},getPredictions:function(n,t){var i,r;this.token=this.token?this.token:new google.maps.places.AutocompleteSessionToken;i=this.map.getMap().getBounds();i=i?i:new google.maps.LatLngBounds(new google.maps.LatLng(85,-180),new google.maps.LatLng(-85,180));r={input:n,bounds:i,sessionToken:this.token,types:this.types};this.autocompleteService.getPlacePredictions(r,function(n,i){i=="OK"&&n&&n.length?t(n):(i==google.maps.places.PlacesServiceStatus.REQUEST_DENIED?alert("Google Maps API Key error: please enable the Places API in the Google Developer Console."):i==google.maps.places.PlacesServiceStatus.OVER_QUERY_LIMIT&&alert("Google Maps API Key has exceeded its query limit"),t(null))})}}}(jQuery);mapp=window.mapp||{};mapp.Icons={};mapp.Icons.get=function(){var n="https://maps.google.com/intl/en_us/mapfiles/ms/micons/red-dot.png";return mappl10n.options.engine=="leaflet"?L.icon({iconUrl:n,iconAnchor:[16,32],iconSize:[32,32],popupAnchor:[0,-32]}):{url:n}};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},i),u=null,r=null,o,e=this;r=n('<div class="mapp-ib-wrapper" tabindex="0"><div class="mapp-ib" tabindex="0"><\/div><div class="mapp-ib-tip"><\/div><\/div>').appendTo(t.getMap().getDiv());jQuery(window).resize(function(){e.close()});r.on("keydown",function(n){n.which==27&&e.close()});r.on("click",".mapp-close",function(){e.close()});this.getContent=function(){return n(".mapp-ib",r)};this.setContent=function(t){n(".mapp-ib",r).empty().append(t)};this.open=function(n,t){u=t;this.setMap(n)};this.onAdd=function(){o=!1;var t=n(":input",r);r.show();t.length?t.first().focus():r.focus();google.maps.event.trigger(e,"domready")};this.draw=function(){var l=this.getMap(),a=n(".mapp-ib-body",r),s=this.getProjection().fromLatLngToContainerPixel(u.position),t,h,c,i,e;o||(o=!0,t={width:n(":first-child",l.getDiv()).width(),height:n(":first-child",l.getDiv()).height()},r.css({"max-height":"9999px",left:0,bottom:0,top:"auto",right:"auto"}),h=r.outerWidth(!0),c=r.outerHeight(!0),c>t.height+u.anchorPoint.y-2*f.border&&(c=t.height+u.anchorPoint.y-2*f.border,r.css({"max-height":c+2})),i=s.x,e=s.y,i+h/2>t.width&&(i=t.width-h/2),i-h/2<0&&(i=h/2),e-c+u.anchorPoint.y<f.border&&(e=c-u.anchorPoint.y+f.border),e>t.height&&(e=t.height),(s.x-i||s.y-e)&&l.panBy(s.x-i,s.y-e),r.css({left:i-h/2,bottom:t.height-e-u.anchorPoint.y}))};this.close=function(){r.is(":visible")&&(this.setMap(null),google.maps.event.trigger(this,"closed"))};this.onRemove=function(){r.hide()}};mappl10n.options.engine!="leaflet"&&(mapp.InfoBox.prototype=new google.maps.OverlayView)}(jQuery);mapp=window.mapp||{};+function(n){mapp.lib={ajax:function(t){var i=this;return n.extend({type:"GET",data:null,spinner:null,callback:n.noop},t),t.spinner&&t.spinner.show(),n.ajax({type:t.type,url:mappl10n.options.ajaxurl,data:t.data,success:function(n,r,u){if(t.spinner&&t.spinner.hide(),n.output){i.alert("AJAX Error\r\n"+n.output);return}if(n.status!="OK"){var f=typeof n=="object"?n.status:n;i.alert("AJAX ERROR\r\nResponse="+f+" TextStatus="+r+"\r\nResponseText="+u.responseText)}t.callback&&t.callback(n,u)},error:function(n,r,u){(t.spinner&&t.spinner.hide(),r!="cancel")&&typeof u!="undefined"&&u!=""&&i.alert("AJAX ERROR\r\nTextStatus="+r+"\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)}};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).find(".mapp-canvas").attr("id"),t=window[i];t.resize();t.recenter()})})}(jQuery);+function(){mappl10n.options.engine=="leaflet"&&(L.LatLng.prototype.toJSON=function(){return{lat:this.lat,lng:this.lng}},L.LatLngBounds.prototype.toJSON=function(){return{south:this.getSouth(),west:this.getWest(),north:this.getNorth(),east:this.getEast()}},L.LatLng.prototype.toUrlValue=function(){return Math.round(this.lat*1e6)/1e6+", "+Math.round(this.lng*1e6)/1e6});mapp.event={addListener:function(n,t,i){if(mappl10n.options.engine=="leaflet")n.on(t,i);else google.maps.event.addListener(n,t,i)},addListenerOnce:function(n,t,i){if(mappl10n.options.engine=="leaflet")n.once(t,i);else google.maps.event.addListenerOnce(n,t,i)},clearInstanceListeners:function(n){mappl10n.options.engine=="leaflet"?n.off():google.maps.event.clearInstanceListeners(n)},clearListeners:function(n,t){mappl10n.options.engine=="leaflet"?n.off(t):google.maps.event.clearListeners(n,"rightclick")},trigger:function(n,t,i){mappl10n.options.engine=="leaflet"?n.fire(t,i):google.maps.event.trigger(n,t,i)}}}(jQuery);mapp=window.mapp||{};jQuery.fn.AlgoliaAutocomplete=jQuery.fn.autocomplete.noConflict();+function(n){mapp.Places=function(t,i){var r=this;this.sel=n(t);this.opts=n.extend({map:null},i);this.geocoder=mappl10n.options.engine=="leaflet"?new mapp.geocoders.Algolia(this.opts.map):new mapp.geocoders.Google(this.opts.map);this.sel.on("keydown",function(t){if(t.which==13){t.preventDefault();var i=r.parseLatLng(r.sel.val());i&&(n(r).triggerHandler("search.mapp",i),r.sel.AlgoliaAutocomplete("close"),t.stopImmediatePropagation());r.sel.val().substring(0,4)=="http"&&(n(r).triggerHandler("search.mapp",r.sel.val()),r.sel.AlgoliaAutocomplete("close"),t.stopImmediatePropagation())}});this.autocomplete();this.sel.focus()};mapp.Places.prototype={parse:function(t,i){var f=this,u=t&&t.name?n.trim(t.name):n.trim(t),r;if(!u){i(null);return}if(u=="user"){this.geolocate(function(n){i(n)});return}if(t&&t.geometry){i(t);return}if(r=this.parseLatLng(t),r){i(r);return}this.geocoder.geocode(t,function(n){i(n)})},parseLatLng:function(t){var i,e,r,u,f;return t.lat&&t.lng?i=t:(e=t&&t.name?n.trim(t.name):n.trim(t),r=e.split(","),r.length==2&&(u=parseFloat(r[0]),f=parseFloat(r[1]),isNaN(u)||isNaN(f)||(i={lat:u,lng:f}))),i?{name:i.lat+", "+i.lng,geometry:{location:i}}:null},geolocate:function(n){var t=this;if(!navigator||!navigator.geolocation){alert(mappl10n.no_geolocate);return}navigator.geolocation.getCurrentPosition(function(t){var i={lat:t.coords.latitude,lng:t.coords.longitude};n({name:i.lat+", "+i.lng,geometry:{location:i}})},function(t){var i=t&&t.message?" : "+t.message:"";alert(mappl10n.no_geolocate+i);n(null)},{timeout:15e3,enableHighAccuracy:!0,maximumAge:3e4})},autocomplete:function(){var t=this,r,i,u;this.sel.on("autocomplete:selected",function(i,r){t.geocoder.getDetails(r,function(i){t.parse(i,function(i){i&&n(t).triggerHandler("search.mapp",i)})})});r={empty:'<div class="list-group search-results-dropdown"><div class="list-group-item">'+mappl10n.no_results+"<\/div><\/div>",header:'<div class="list-group search-results-dropdown">'};mappl10n.options.engine=="leaflet"?(i={algoliasearch:algoliasearch,templates:r},mappl10n.options.country&&(i.countries=[mappl10n.options.country]),mappl10n.options.language&&(i.language=mappl10n.options.language),u=placesAutocompleteDataset(i)):u={display:"description",source:function(n,i){t.geocoder.getPredictions(n,function(n){matches=n;i(matches)})},templates:r};this.sel.AlgoliaAutocomplete({autoselect:!0,cssClasses:{prefix:"mapp-aa"},debug:!1,hint:!0,highlight:!0,minLength:1},u)}}}(jQuery);mapp=window.mapp||{};+function(n){mapp.Poi=function(t){var u,f,r,o,i,e,h,s;if(this.defaults={address:null,body:null,iconid:null,kml:null,map:null,overlay:null,postid:null,props:null,title:"",url:null,type:null,viewport:null},n.extend(this,this.defaults,t),t&&t.correctedAddress&&(this.address=t.correctedAddress),mappl10n.options.engine=="leaflet"&&this.isPoly()&&(this.type=null),t.viewport&&t.viewport.sw&&t.viewport.ne&&(u=t.viewport.sw,f=t.viewport.ne,this.viewport=mappl10n.options.engine=="leaflet"?new L.LatLngBounds(L.latLng(u.lat,u.lng),L.latLng(f.lat,f.lng)):new google.maps.LatLngBounds(new google.maps.LatLng(u.lat,u.lng),new google.maps.LatLng(f.lat,f.lng))),r=[],o=[],!t.overlay)switch(this.type){case"polygon":if(t.poly&&t.poly.paths)for(i=0;i<t.poly.paths.length;i++){for(r=[],e=0;e<t.poly.paths[i].length;e++)r.push(new google.maps.LatLng(t.poly.paths[i][e].lat,t.poly.paths[i][e].lng));o.push(new google.maps.MVCArray(r))}this.overlay=new google.maps.Polygon({paths:new google.maps.MVCArray(o)});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":h=new google.maps.LatLng(t.point.lat,t.point.lng);this.overlay=new google.maps.Circle({center:h,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":s=t.kml&&t.kml.url?t.kml.url:"";this.overlay=mappl10n.options.engine=="leaflet"?omnivore.kml(s):new google.maps.KmlLayer(s,{preserveViewport:!0,suppressInfoWindows:!0});break;case"":default:this.overlay=mappl10n.options.engine=="leaflet"?L.marker([t.point.lat,t.point.lng],{title:t.title}):new google.maps.Marker({position:new google.maps.LatLng(t.point.lat,t.point.lng),title:t.title})}t.type||this.setIcon(t.iconid)};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},u=this.getPosition(),i,t,r;if(n.point=u.toJSON(),i=this.viewport?this.viewport:this.getBounds(),i&&(t=i.toJSON(),n.viewport={sw:{lat:t.south,lng:t.west},ne:{lat:t.north,lng:t.east}}),this.type=="kml"&&(n.kml=this.kml),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(t.toJSON())});break;case"polygon":n.poly.paths=[];this.overlay.getPaths().forEach(function(t){var i=[];t.forEach(function(n){i.push(n.toJSON())});n.poly.paths.push(i)});break;case"rectangle":r=this.overlay.getBounds();n.viewport={sw:r.getSouthWest().toJSON(),ne:r.getNorthEast().toJSON()}}}return n},setMap:function(n){var t=this;if(this.map=n,mapp.event.clearInstanceListeners(this.overlay),n==null){mappl10n.options.engine=="leaflet"?this.overlay.remove():this.overlay.setMap(null);return}this.type=="kml"&&(mappl10n.options.engine=="leaflet"?(mapp.event.addListenerOnce(this.overlay,"ready",function(){t.viewport=t.overlay.getBounds()}),mapp.event.addListenerOnce(this.overlay,"error",function(){alert(mappl10n.kml_error)})):(mapp.event.addListener(this.overlay,"defaultviewport_changed",function(){t.viewport=t.overlay.getDefaultViewport()}),mapp.event.addListener(this.overlay,"status_changed",function(){var n=t.overlay.getStatus();n!="OK"&&mappl10n.ajaxErrors&&alert(mappl10n.kml_error+":"+n)})));mapp.event.addListener(this.overlay,"click",function(n){t.open(n)});this.setEditable(this.map.editable);mappl10n.options.engine=="leaflet"?this.overlay.addTo(n.getMap()):this.overlay.setMap(n.getMap())},setEditable:function(n){var t=this;this.type!="kml"&&(mappl10n.options.engine=="leaflet"?this.overlay.options.draggable=n:this.overlay.setDraggable(n),this.isPoly()&&this.overlay.setEditable(n),mapp.event.clearListeners(this.overlay,"rightclick"),mapp.event.clearListeners(this.overlay,"dragstart"),n&&(mapp.event.addListener(this.overlay,"dragstart",function(){t.viewport=null;t.map.close()}),(this.type=="polygon"||this.type=="polyline")&&mapp.event.addListener(this.overlay,"rightclick",function(n){n.vertex!=null&&t.overlay.getPath().getLength()>2&&t.overlay.getPath().removeAt(n.vertex)})))},setZIndex:function(n){mappl10n.options.engine=="leaflet"?this.type||this.overlay.setZIndexOffset(n):this.overlay.set("zIndex",n)},setIcon:function(n){this.type||typeof mapp.Icons=="undefined"||(this.iconid=n,mappl10n.options.engine=="leaflet"?this.overlay.setIcon(mapp.Icons.get(n)):(this.overlay.setIcon(null),this.overlay.setIcon(mapp.Icons.get(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)},setTemplateColors:function(n,t,i){var r=this.type=="polyline"?{strokeColor:n,strokeOpacity:t/100,strokeWeight:i}:{fillColor:n,fillOpacity:t/100,strokeColor:n,strokeWeight:i,strokeOpacity:1};this.setColors(r)},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},getTemplateColors:function(){var n=this.getColors();return this.type=="polyline"?{color:n.strokeColor,opacity:n.strokeOpacity*100,weight:n.strokeWeight}:{color:n.fillColor,opacity:n.fillOpacity*100,weight:n.strokeWeight}},center:function(n){var t=this.getBounds();if(typeof n=="number"){this.map.setView(this.getPosition(),n);return}if(!t){this.map.setView(this.getPosition(),parseInt(mappl10n.options.poiZoom));return}this.map.fitBounds(t);this.map.setView(this.getPosition(),n)},open:function(n){this.map.open(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=mappl10n.options.engine=="leaflet"?this.overlay.getBounds().isValid()?this.overlay.getBounds():null:this.overlay.getDefaultViewport();n=n?n:this.viewport;break;default:return this.viewport}return n},getPosition:function(n){if(!this.type)return mappl10n.options.engine=="leaflet"?this.overlay.getLatLng():this.overlay.getPosition();if(this.type=="kml"&&n&&n.latLng)return n.latLng;var t=this.getBounds();return t?t.getCenter():mappl10n.options.engine=="leaflet"?new L.latLng(0,0):new google.maps.LatLng(0,0)},getAddress:function(){return this.address?this.address:this.getPosition().toUrlValue()},getAnchorPoint:function(n){var t=this.isPoly()?"poly":this.type;switch(t){case"kml":return mappl10n.options.engine=="leaflet"?[0,0]:n&&n.pixelOffset?new google.maps.Point(n.pixelOffset.width,n.pixelOffset.height):new google.maps.Point(0,0);case"poly":return mappl10n.options.engine=="leaflet"?[0,0]:new google.maps.Point(0,0);default:return mappl10n.options.engine=="leaflet"?this.overlay.options.icon.options.popupAnchor?this.overlay.options.icon.options.popupAnchor:[0,-32]:typeof this.overlay.anchorPoint!="undefined"?this.overlay.anchorPoint:new google.maps.Point(0,-32)}},render:function(n,t){var i=_.extend(this,{icon:mapp.Icons.getUrl(this.iconid)});return t&&(i.body=t.description,i.title=t.name),mapp.lib.template(this.map.templates[n],{poi:i,colors:this.getTemplateColors()})}}}(jQuery);mapp=window.mapp||{};mapp.widgets={};+function(n){mapp.widgets.Grid=function(t,i){this.el=n(t);this.options=jQuery.extend({action:null,sortable:!1},i);var r=this;this.table=n("table",this.el);this.template=n("script",this.el).html().replace(new RegExp("'","g"),'"');this.el.on("click",function(t){var u=n(t.target),i=u.attr("data-mapp-action");i&&(r[i](t),t.preventDefault())})};mapp.widgets.Grid.prototype={add:function(){this.table.show();var t=n(this.template).appendTo(this.table);n(":input:eq(0)",t).focus()},remove:function(t){var i=n(t.target).closest("tr").remove();n("tbody > tr",this.table).length||this.table.hide()}}}(jQuery);+function(n){mapp.widgets.Popup=function(t,i){var r,u;if(this.activeToggle=null,this.content=t,this.el=null,r=this,this.options=n.extend({max:!1,modal:!1,position:null,toggle:null},i),this.options.modal?this.el=this.content.addClass("mapp-popup-fixed"):(this.el=n('<div class="mapp-popup">'),this.setContent(t)),this.el.attr("tabindex",0),this.options.max&&this.el.addClass("mapp-popup-max"),this.el.hide(),!this.options.modal)n(document).on("click.mapp.popup",function(t){n.contains(r.el.get(0),t.target)||r.el.get(0)==t.target||r.close()});if(this.options.toggle){u=typeof this.options.toggle=="string"?this.options.toggle:this.options.toggle.selector;n(document).on("click",u,function(t){r.activeToggle=n(this);r.open();t.stopPropagation()})}this.el.on("click",".mapp-close",function(){r.close()});this.el.on("keydown",function(n){n.which==27&&r.close()});return this};mapp.widgets.Popup.prototype={close:function(){this.el&&this.el.is(":visible")&&(this.backdrop&&(this.backdrop.remove(),n("body").removeClass("mapp-popup-modal")),this.el.hide(),this.activeToggle&&this.activeToggle.focus(),this.el.trigger("closed.mapp.popup"))},open:function(){var t=this;this.options.modal||this.el.parent().length||this.el.appendTo("body");this.el.show();this.options.modal?(this.backdrop=n('<div class="mapp-popup-backdrop"><\/div>'),this.el.after(this.backdrop),n("body").addClass("mapp-popup-modal")):this.el.position(n.extend({my:"center bottom",at:"center top-5",of:this.activeToggle,collision:"flipfit"},this.options.position));this.el.focus();this.el.trigger("open.mapp.popup")},setContent:function(n){this.el.empty();this.el.append('<span class="mapp-close">').append(n)},toggle:function(){this.el.is(":visible")?this.close():this.open()}}}(jQuery);+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()
|
js/mappress_editor.min.js
CHANGED
@@ -1 +1 @@
|
|
1 |
-
var mapp=window.mapp||{};+function(n){mapp.Media=function(){this.editor=null;this.map=null;this.settings=null;this.
|
1 |
+
var mapp=window.mapp||{};+function(n){mapp.Media=function(){this.editor=null;this.map=null;this.settings=null;this.sel=n(".mapp-media");this.items=null;var t=this;this.initialize=function(){this.find();this.sel.on("change",".mapp-media-list-type",function(){var i=n(".mapp-media-list-type",this.sel).val();n(".mapp-media-search").val("");n(".mapp-media-search").toggle(i=="all");t.find()});this.sel.on("keydown",".mapp-media-search",function(n){if(n.which==13)return!1});this.sel.on("input",".mapp-media-search",function(){t.find()});this.settings={editable:!0,name:"mapp0"};this.sel.on("click","[data-mapp-media]",function(i){i.preventDefault();var r=n(this).attr("data-mapp-media");t[r]()});this.sel.on("click",".mapp-media-list .mapp-item",function(){n(".mapp-media-list .mapp-item",this.sel).removeClass("mapp-active");n(this).addClass("mapp-active")});this.sel.on("click",".mapp-media-list [data-mapp-media-list]",function(i){i.preventDefault();var r=n(this).attr("data-mapp-media-list"),u=n(this).closest(".mapp-item"),f=u.attr("data-mapp-mapid");return t[r](f),!1});this.sel.on("change",".mapp-media-viewport",function(){n(this).is(":checked")||(t.map.center=t.map.zoom=null,t.map.recenter())});n(".mapp-media-size").click(function(t){var i=n(this).data("width"),r=n(this).data("height");n(".mapp-media-width").val(i);n(".mapp-media-height").val(r);t.preventDefault()});n("#publish, #post-preview").click(function(){t.save()});n(".mapp-media-title").keydown(function(n){n.which==13&&(n.preventDefault(),t.save())})};this.add=function(){var n=new mapp.Map(this.settings);n.width=mappl10n.options.sizes[mappl10n.options.size].width;n.height=mappl10n.options.sizes[mappl10n.options.size].height;t.open(n)};this.cancel=function(){t.closeEditor()};this.closeEditor=function(){this.editor.close();this.map=null;this.editor=null;n(".mapp-media-edit-panel").hide();n(".mapp-media-list-panel").show()};this.edit=function(n){mapp.Map.ajaxGet(n,this.settings,function(n){t.open(n)})};this.find=function(){var t=this;this.items!==null?this.renderList():(n(".spinner",this.sel).css("visibility","visible"),mapp.lib.ajax({type:"GET",data:{action:"mapp_find"},callback:function(i){i.status=="OK"&&(n(".spinner",this.sel).css("visibility","hidden"),t.items=_.sortBy(i.data,"post_title"),t.renderList())}}))};this.insert=function(n){n=n?n:this.map.mapid;var t='[mappress mapid="'+n+'"]';send_to_editor(t)};this.open=function(t){this.map=t;n(".mapp-edit",this.sel).html(mapp.lib.template("edit-map"));var i=this.map.mapid;i?n(".mapp-media-mapid").text(i):n(".mapp-media-mapid").text("");n(".mapp-media-title").val(this.map.title);n(".mapp-media-width").val(this.map.width);n(".mapp-media-height").val(this.map.height);n(".mapp-media-viewport").prop("checked",!!(this.map.center&&this.map.zoom));n(".mapp-media-edit-panel").show();n(".mapp-media-list-panel").hide();this.editor=new mapp.Editor(this.map)};this.remove=function(n){if(confirm(mappl10n.delete_map_prompt)){var t=_.findIndex(this.items,{mapid:n});t>-1&&(this.items.splice(t,1),mapp.Map.ajaxDelete(n),this.renderList())}};this.renderList=function(){var t=null,i=400,r=null,u=n(".mapp-media-list-type",this.sel).val(),f=n(".mapp-media-search",this.sel).val().toLowerCase();t=u=="all"?_.filter(this.items,function(n){return n.post_title&&n.post_title.toLowerCase().indexOf(f)!=-1||n.map_title&&n.map_title.toLowerCase().indexOf(f)!=-1}):_.filter(this.items,function(n){return n.postid==mappl10n.options.postid});t.length>i?(r=mappl10n.more.replace("%d",i).replace("%d",t.length),t=t.slice(0,i)):r="";n(".mapp-media-list",this.sel).html(mapp.lib.template("media-list",{items:t,type:u,more:r}))};this.save=function(){var t=this;this.map&&(this.map.title=n.trim(n(".mapp-media-title").val()),this.map.width=n(".mapp-media-width").val(),this.map.height=n(".mapp-media-height").val(),n(".mapp-media-viewport").prop("checked")?(this.map.center=this.map.getMap().getCenter().toJSON(),this.map.zoom=this.map.getMap().getZoom()):(this.map.center=null,this.map.zoom=null),this.map.ajaxSave(function(){var i=t.map.mapid?t.map.mapid.toString():null,r=_.findIndex(t.items,function(n){return n.mapid==i});r==-1?t.items.unshift({mapid:i,map_title:t.map.title,postid:mappl10n.options.postid,post_title:n("#title").val()||n("#post-title-0").val()}):t.items[r].map_title=t.map.title;t.renderList();t.closeEditor()}))};this.initialize.apply(this)}}(jQuery);+function(n){mapp.Editor=function(t){this.drawingManager=null;this.map=t;this.poiEditor=null;this.sel=n(".mapp-edit");var i=this;this.initialize=function(){this.map.display();this.poiEditor=new mapp.PoiEditor(this.map);this.initDrawingManager();n(this.map.places).off("search.mapp");n(this.map.places).on("search.mapp",function(n,t){i.insertPoi(t)});this.sel.on("click","[data-mapp-editor]",function(t){t.preventDefault();var r=n(this).attr("data-mapp-editor");i[r]()})};this.close=function(){this.map.close()};this.insertPoi=function(n){var t;if(n)if(this.drawingManager&&this.drawingManager.setDrawingMode(null),this.map.close(),n.geometry){var i=n.formatted_address?n.formatted_address.replace(/, United States of America/i,"").replace(/, United States/i,"").replace(/, USA/i,""):null,r=n.name==i?"":i,t=new mapp.Poi({address:i,body:r,iconid:this.poiEditor.lastIcon,point:n.geometry.location,title:n.name,viewport:n.geometry.viewport?n.geometry.viewport:null});this.map.insertPoi(t);t.center()}else n.overlay&&(t=new mapp.Poi({body:"",iconid:n.type=="marker"?null:"poly",overlay:n.overlay,title:n.type=="marker"?n.overlay.getPosition().toUrlValue(6):mappl10n.shape,type:n.type=="marker"?null:n.type}),this.map.insertPoi(t))};this.initDrawingManager=function(){};this.layer=function(){var n=window.prompt(mappl10n.layer);n&&i.insertPoi(n)};this.initialize.apply(this)};mapp.PoiEditor=function(t){this.map=t;this.poi=null;this.sel=null;this.lastIcon=null;var i=this;this.initialize=function(){this.sel=n(this.map.iw.getContent());n(this.map).on("mapp.open",function(n,t){i.render(t)});n(this.map).on("mapp.close",function(){i.mce(!1)});this.sel.on("click","[data-mapp-poi]",function(t){t.preventDefault();var r=n(this).attr("data-mapp-poi");i[r]()});this.sel.on("click",".mapp-poi-visual, .mapp-poi-html",function(){var t=n(this).hasClass("mapp-poi-visual");i.mce(t)});this.sel.on("keydown",function(t){t.which==13&&t.target!=n("#mapp-poi-body")&&(t.preventDefault(),i.save())});this.sel.on("change","[data-mapp-iconpicker]",function(){i.poi.setIcon(n("[data-mapp-iconpicker]").attr("data-mapp-iconid"));i.lastIcon=i.poi.iconid;i.map.renderList()});this.sel.on("change","[data-mapp-colorpicker]",function(){i.poi.setTemplateColors(n("[data-mapp-colorpicker]").attr("data-mapp-color"),n("[data-mapp-colorpicker]").attr("data-mapp-opacity"),n("[data-mapp-colorpicker]").attr("data-mapp-weight"));i.map.renderList()})};this.cancel=function(){this.map.close()};this.initMCE=function(){var n,t,i;typeof tinyMCE!="undefined"&&typeof tinyMCE.init!="undefined"&&(n="en",typeof tinyMCEPreInit!="undefined"&&typeof window.tinyMCEPreInit.mceInit!="undefined"&&typeof window.tinyMCEPreInit.mceInit.content!="undefined"&&(t=window.tinyMCEPreInit.mceInit.content,n=typeof t.language!="undefined"?t.language:"en"),i={mode:"none",height:"75px",convert_urls:!1,language:n,menubar:!1,plugins:"wordpress,paste,wplink,textcolor,image",relative_urls:!1,remove_script_host:!1,statusbar:!1,theme:"modern",toolbar1:"bold,italic,link,unlink,image",toolbar2:"",toolbar3:"",toolbar4:""},tinyMCE.init(i),this.mce(!0))};this.mce=function(t){var r=t?"mceAddEditor":"mceRemoveEditor";typeof tinyMCE!="undefined"&&tinyMCE.execCommand(r,!1,"mapp-poi-body");n(".mapp-poi-visual, .mapp-poi-html",i.sel).removeClass("mapp-active");t?n(".mapp-poi-visual",i.sel).addClass("mapp-active"):n(".mapp-poi-html",i.sel).addClass("mapp-active")};this.remove=function(){confirm(mappl10n.delete_prompt)&&(this.map.close(),this.map.removePoi(this.poi))};this.render=function(t){this.poi=t;n("[data-mapp-iconpicker]").trigger("refresh");n("[data-mapp-colorpicker]").trigger("refresh");this.initMCE()};this.save=function(){typeof tinyMCE!="undefined"&&tinyMCE.get("mapp-poi-body")&&tinyMCE.get("mapp-poi-body").save();this.poi.title=n(".mapp-poi-title").val();this.poi.body=n(".mapp-poi-body").val();mappl10n.options.engine!="leaflet"&&this.poi.overlay.setTitle(this.poi.title);this.map.renderList();this.map.close()};this.initialize.apply(this)}}(jQuery)
|
languages/mappress-google-maps-for-wordpress.pot
CHANGED
@@ -2,9 +2,9 @@
|
|
2 |
# This file is distributed under the same license as the MapPress Maps for WordPress package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"Project-Id-Version: MapPress Maps for WordPress 2.
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/mappress-google-maps-for-wordpress\n"
|
7 |
-
"POT-Creation-Date: 2019-
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -24,15 +24,15 @@ msgstr ""
|
|
24 |
msgid "HTML"
|
25 |
msgstr ""
|
26 |
|
27 |
-
#: forms/editor.php:53 forms/media.php:
|
28 |
msgid "Save"
|
29 |
msgstr ""
|
30 |
|
31 |
-
#: forms/editor.php:54 forms/media.php:
|
32 |
msgid "Cancel"
|
33 |
msgstr ""
|
34 |
|
35 |
-
#: forms/editor.php:55 forms/media.php:
|
36 |
#: mappress_controls.php:102
|
37 |
msgid "Delete"
|
38 |
msgstr ""
|
@@ -50,45 +50,41 @@ msgid "All posts"
|
|
50 |
msgstr ""
|
51 |
|
52 |
#: forms/media.php:12
|
53 |
-
msgid "
|
54 |
msgstr ""
|
55 |
|
56 |
-
#: forms/media.php:
|
57 |
msgid "Map ID"
|
58 |
msgstr ""
|
59 |
|
60 |
-
#: forms/media.php:
|
61 |
msgid "Map Title"
|
62 |
msgstr ""
|
63 |
|
64 |
-
#: forms/media.php:
|
65 |
msgid "Untitled"
|
66 |
msgstr ""
|
67 |
|
68 |
-
#: forms/media.php:
|
69 |
msgid "Display Size"
|
70 |
msgstr ""
|
71 |
|
72 |
-
#: forms/media.php:
|
73 |
msgid "Save center / zoom"
|
74 |
msgstr ""
|
75 |
|
76 |
-
#: forms/media.php:
|
77 |
msgid "Insert into post"
|
78 |
msgstr ""
|
79 |
|
80 |
-
#: forms/media.php:
|
81 |
msgid "Edit"
|
82 |
msgstr ""
|
83 |
|
84 |
-
#: forms/media.php:
|
85 |
msgid "No maps found"
|
86 |
msgstr ""
|
87 |
|
88 |
-
#: forms/media.php:81
|
89 |
-
msgid "Load More"
|
90 |
-
msgstr ""
|
91 |
-
|
92 |
#: forms/settings.php:24
|
93 |
msgid "New"
|
94 |
msgstr ""
|
@@ -106,138 +102,142 @@ msgid "Default"
|
|
106 |
msgstr ""
|
107 |
|
108 |
#: mappress.php:153
|
109 |
-
msgid "
|
110 |
-
msgstr ""
|
111 |
-
|
112 |
-
#: mappress.php:159
|
113 |
-
msgid "Version"
|
114 |
msgstr ""
|
115 |
|
116 |
-
#: mappress.php:
|
117 |
-
msgid "
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: mappress.php:
|
121 |
-
msgid "
|
122 |
msgstr ""
|
123 |
|
124 |
-
#: mappress.php:
|
125 |
-
msgid "
|
126 |
msgstr ""
|
127 |
|
128 |
-
#: mappress.php:
|
129 |
-
msgid "MapPress
|
130 |
msgstr ""
|
131 |
|
132 |
-
#: mappress.php:
|
133 |
-
msgid "
|
134 |
msgstr ""
|
135 |
|
136 |
-
#: mappress.php:
|
137 |
-
msgid "
|
138 |
msgstr ""
|
139 |
|
140 |
-
#: mappress.php:
|
141 |
-
msgid "
|
142 |
msgstr ""
|
143 |
|
144 |
-
#: mappress.php:
|
145 |
-
msgid "MapPress
|
146 |
msgstr ""
|
147 |
|
148 |
-
#: mappress.php:
|
149 |
msgid "Are you sure you want to delete?"
|
150 |
msgstr ""
|
151 |
|
152 |
-
#: mappress.php:
|
153 |
msgid "Delete this map?"
|
154 |
msgstr ""
|
155 |
|
156 |
-
#: mappress.php:
|
157 |
msgid "Google cannot return directions between those addresses. There is no route between them or the routing information is not available."
|
158 |
msgstr ""
|
159 |
|
160 |
-
#: mappress.php:
|
161 |
msgid "Error reading KML file"
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: mappress.php:
|
165 |
msgid "URL for KML file"
|
166 |
msgstr ""
|
167 |
|
168 |
-
#: mappress.php:
|
169 |
msgid "Loading"
|
170 |
msgstr ""
|
171 |
|
172 |
-
#: mappress.php:
|
|
|
|
|
|
|
|
|
173 |
msgid "Unable to get your location"
|
174 |
msgstr ""
|
175 |
|
176 |
-
#: mappress.php:
|
177 |
msgid "No results"
|
178 |
msgstr ""
|
179 |
|
180 |
-
#: mappress.php:
|
181 |
msgid "Save changes?"
|
182 |
msgstr ""
|
183 |
|
184 |
-
#: mappress.php:
|
185 |
msgid "Shape"
|
186 |
msgstr ""
|
187 |
|
188 |
-
#: mappress.php:
|
189 |
msgid "Improve this map"
|
190 |
msgstr ""
|
191 |
|
192 |
-
#: mappress.php:
|
193 |
msgid "Streets"
|
194 |
msgstr ""
|
195 |
|
196 |
-
#: mappress.php:
|
197 |
msgid "Outdoors"
|
198 |
msgstr ""
|
199 |
|
200 |
-
#: mappress.php:
|
201 |
msgid "Light"
|
202 |
msgstr ""
|
203 |
|
204 |
-
#: mappress.php:
|
205 |
msgid "Dark"
|
206 |
msgstr ""
|
207 |
|
208 |
-
#: mappress.php:
|
209 |
msgid "Satellite"
|
210 |
msgstr ""
|
211 |
|
212 |
-
#: mappress.php:
|
213 |
msgid "Satellite Streets"
|
214 |
msgstr ""
|
215 |
|
|
|
|
|
|
|
|
|
216 |
#: mappress_controls.php:93
|
217 |
msgid "Add"
|
218 |
msgstr ""
|
219 |
|
220 |
-
#: mappress_map.php:
|
221 |
msgid "MapPress"
|
222 |
msgstr ""
|
223 |
|
224 |
-
#: mappress_map.php:
|
225 |
msgid "Map not found"
|
226 |
msgstr ""
|
227 |
|
228 |
-
#: mappress_map.php:
|
229 |
msgid "Filter"
|
230 |
msgstr ""
|
231 |
|
232 |
-
#: mappress_map.php:
|
233 |
msgid "Show map"
|
234 |
msgstr ""
|
235 |
|
236 |
-
#: mappress_map.php:
|
237 |
msgid "Map"
|
238 |
msgstr ""
|
239 |
|
240 |
-
#: mappress_map.php:
|
241 |
msgid "List"
|
242 |
msgstr ""
|
243 |
|
2 |
# This file is distributed under the same license as the MapPress Maps for WordPress package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"Project-Id-Version: MapPress Maps for WordPress 2.52.1\n"
|
6 |
"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/mappress-google-maps-for-wordpress\n"
|
7 |
+
"POT-Creation-Date: 2019-02-04 20:02:55+00:00\n"
|
8 |
"MIME-Version: 1.0\n"
|
9 |
"Content-Type: text/plain; charset=UTF-8\n"
|
10 |
"Content-Transfer-Encoding: 8bit\n"
|
24 |
msgid "HTML"
|
25 |
msgstr ""
|
26 |
|
27 |
+
#: forms/editor.php:53 forms/media.php:49 forms/settings.php:41
|
28 |
msgid "Save"
|
29 |
msgstr ""
|
30 |
|
31 |
+
#: forms/editor.php:54 forms/media.php:50 forms/settings.php:42
|
32 |
msgid "Cancel"
|
33 |
msgstr ""
|
34 |
|
35 |
+
#: forms/editor.php:55 forms/media.php:72 forms/settings.php:44
|
36 |
#: mappress_controls.php:102
|
37 |
msgid "Delete"
|
38 |
msgstr ""
|
50 |
msgstr ""
|
51 |
|
52 |
#: forms/media.php:12
|
53 |
+
msgid "Filter by title"
|
54 |
msgstr ""
|
55 |
|
56 |
+
#: forms/media.php:21
|
57 |
msgid "Map ID"
|
58 |
msgstr ""
|
59 |
|
60 |
+
#: forms/media.php:26
|
61 |
msgid "Map Title"
|
62 |
msgstr ""
|
63 |
|
64 |
+
#: forms/media.php:27 forms/media.php:63 forms/media.php:67 mappress.php:414
|
65 |
msgid "Untitled"
|
66 |
msgstr ""
|
67 |
|
68 |
+
#: forms/media.php:31
|
69 |
msgid "Display Size"
|
70 |
msgstr ""
|
71 |
|
72 |
+
#: forms/media.php:44
|
73 |
msgid "Save center / zoom"
|
74 |
msgstr ""
|
75 |
|
76 |
+
#: forms/media.php:51 forms/media.php:71
|
77 |
msgid "Insert into post"
|
78 |
msgstr ""
|
79 |
|
80 |
+
#: forms/media.php:70 forms/settings.php:4 forms/settings.php:18
|
81 |
msgid "Edit"
|
82 |
msgstr ""
|
83 |
|
84 |
+
#: forms/media.php:79
|
85 |
msgid "No maps found"
|
86 |
msgstr ""
|
87 |
|
|
|
|
|
|
|
|
|
88 |
#: forms/settings.php:24
|
89 |
msgid "New"
|
90 |
msgstr ""
|
102 |
msgstr ""
|
103 |
|
104 |
#: mappress.php:153
|
105 |
+
msgid "MapPress database tables are missing. Please deactivate the plugin and activate it again to fix this."
|
|
|
|
|
|
|
|
|
106 |
msgstr ""
|
107 |
|
108 |
+
#: mappress.php:158
|
109 |
+
msgid "WARNING: MapPress is not compatible with the WP-Geo plugin. Please deactivate or uninstall WP-Geo before using MapPress."
|
110 |
msgstr ""
|
111 |
|
112 |
+
#: mappress.php:163
|
113 |
+
msgid "A Google Maps API key is required"
|
114 |
msgstr ""
|
115 |
|
116 |
+
#: mappress.php:163
|
117 |
+
msgid "Please update your"
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: mappress.php:163
|
121 |
+
msgid "MapPress Settings"
|
122 |
msgstr ""
|
123 |
|
124 |
+
#: mappress.php:315 mappress.php:770
|
125 |
+
msgid "Version"
|
126 |
msgstr ""
|
127 |
|
128 |
+
#: mappress.php:316
|
129 |
+
msgid "Documentation"
|
130 |
msgstr ""
|
131 |
|
132 |
+
#: mappress.php:317
|
133 |
+
msgid "Support"
|
134 |
msgstr ""
|
135 |
|
136 |
+
#: mappress.php:319
|
137 |
+
msgid "Upgrade to MapPress Pro"
|
138 |
msgstr ""
|
139 |
|
140 |
+
#: mappress.php:403
|
141 |
msgid "Are you sure you want to delete?"
|
142 |
msgstr ""
|
143 |
|
144 |
+
#: mappress.php:404
|
145 |
msgid "Delete this map?"
|
146 |
msgstr ""
|
147 |
|
148 |
+
#: mappress.php:405
|
149 |
msgid "Google cannot return directions between those addresses. There is no route between them or the routing information is not available."
|
150 |
msgstr ""
|
151 |
|
152 |
+
#: mappress.php:406
|
153 |
msgid "Error reading KML file"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: mappress.php:407
|
157 |
msgid "URL for KML file"
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: mappress.php:408
|
161 |
msgid "Loading"
|
162 |
msgstr ""
|
163 |
|
164 |
+
#: mappress.php:409
|
165 |
+
msgid "%d of %d shown"
|
166 |
+
msgstr ""
|
167 |
+
|
168 |
+
#: mappress.php:410
|
169 |
msgid "Unable to get your location"
|
170 |
msgstr ""
|
171 |
|
172 |
+
#: mappress.php:411
|
173 |
msgid "No results"
|
174 |
msgstr ""
|
175 |
|
176 |
+
#: mappress.php:412
|
177 |
msgid "Save changes?"
|
178 |
msgstr ""
|
179 |
|
180 |
+
#: mappress.php:413
|
181 |
msgid "Shape"
|
182 |
msgstr ""
|
183 |
|
184 |
+
#: mappress.php:438
|
185 |
msgid "Improve this map"
|
186 |
msgstr ""
|
187 |
|
188 |
+
#: mappress.php:454 mappress.php:472
|
189 |
msgid "Streets"
|
190 |
msgstr ""
|
191 |
|
192 |
+
#: mappress.php:455
|
193 |
msgid "Outdoors"
|
194 |
msgstr ""
|
195 |
|
196 |
+
#: mappress.php:456
|
197 |
msgid "Light"
|
198 |
msgstr ""
|
199 |
|
200 |
+
#: mappress.php:457
|
201 |
msgid "Dark"
|
202 |
msgstr ""
|
203 |
|
204 |
+
#: mappress.php:458
|
205 |
msgid "Satellite"
|
206 |
msgstr ""
|
207 |
|
208 |
+
#: mappress.php:459
|
209 |
msgid "Satellite Streets"
|
210 |
msgstr ""
|
211 |
|
212 |
+
#: mappress.php:546
|
213 |
+
msgid "Settings"
|
214 |
+
msgstr ""
|
215 |
+
|
216 |
#: mappress_controls.php:93
|
217 |
msgid "Add"
|
218 |
msgstr ""
|
219 |
|
220 |
+
#: mappress_map.php:91 mappress_settings.php:306
|
221 |
msgid "MapPress"
|
222 |
msgstr ""
|
223 |
|
224 |
+
#: mappress_map.php:163
|
225 |
msgid "Map not found"
|
226 |
msgstr ""
|
227 |
|
228 |
+
#: mappress_map.php:420 pro/mappress_pro_settings.php:33
|
229 |
msgid "Filter"
|
230 |
msgstr ""
|
231 |
|
232 |
+
#: mappress_map.php:453
|
233 |
msgid "Show map"
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: mappress_map.php:457
|
237 |
msgid "Map"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: mappress_map.php:458
|
241 |
msgid "List"
|
242 |
msgstr ""
|
243 |
|
languages/texts.php
CHANGED
@@ -8,7 +8,7 @@ __("Delete");
|
|
8 |
__("New Map");
|
9 |
__("This post");
|
10 |
__("All posts");
|
11 |
-
__("
|
12 |
__("Map ID");
|
13 |
__("Map Title");
|
14 |
__("Untitled");
|
@@ -17,27 +17,26 @@ __("Save center / zoom");
|
|
17 |
__("Insert into post");
|
18 |
__("Edit");
|
19 |
__("No maps found");
|
20 |
-
__("Load More");
|
21 |
__("New");
|
22 |
__("Custom");
|
23 |
__("Editor");
|
24 |
__("Default");
|
25 |
-
__("Settings");
|
26 |
-
__("Version");
|
27 |
-
__("Documentation");
|
28 |
-
__("Support");
|
29 |
-
__("Upgrade to MapPress Pro");
|
30 |
__("MapPress database tables are missing. Please deactivate the plugin and activate it again to fix this.");
|
31 |
__("WARNING: MapPress is not compatible with the WP-Geo plugin. Please deactivate or uninstall WP-Geo before using MapPress.");
|
32 |
__("A Google Maps API key is required");
|
33 |
__("Please update your");
|
34 |
__("MapPress Settings");
|
|
|
|
|
|
|
|
|
35 |
__("Are you sure you want to delete?");
|
36 |
__("Delete this map?");
|
37 |
__("Google cannot return directions between those addresses. There is no route between them or the routing information is not available.");
|
38 |
__("Error reading KML file");
|
39 |
__("URL for KML file");
|
40 |
__("Loading");
|
|
|
41 |
__("Unable to get your location");
|
42 |
__("No results");
|
43 |
__("Save changes?");
|
@@ -49,6 +48,7 @@ __("Light");
|
|
49 |
__("Dark");
|
50 |
__("Satellite");
|
51 |
__("Satellite Streets");
|
|
|
52 |
__("Add");
|
53 |
__("MapPress");
|
54 |
__("Map not found");
|
8 |
__("New Map");
|
9 |
__("This post");
|
10 |
__("All posts");
|
11 |
+
__("Filter by title");
|
12 |
__("Map ID");
|
13 |
__("Map Title");
|
14 |
__("Untitled");
|
17 |
__("Insert into post");
|
18 |
__("Edit");
|
19 |
__("No maps found");
|
|
|
20 |
__("New");
|
21 |
__("Custom");
|
22 |
__("Editor");
|
23 |
__("Default");
|
|
|
|
|
|
|
|
|
|
|
24 |
__("MapPress database tables are missing. Please deactivate the plugin and activate it again to fix this.");
|
25 |
__("WARNING: MapPress is not compatible with the WP-Geo plugin. Please deactivate or uninstall WP-Geo before using MapPress.");
|
26 |
__("A Google Maps API key is required");
|
27 |
__("Please update your");
|
28 |
__("MapPress Settings");
|
29 |
+
__("Version");
|
30 |
+
__("Documentation");
|
31 |
+
__("Support");
|
32 |
+
__("Upgrade to MapPress Pro");
|
33 |
__("Are you sure you want to delete?");
|
34 |
__("Delete this map?");
|
35 |
__("Google cannot return directions between those addresses. There is no route between them or the routing information is not available.");
|
36 |
__("Error reading KML file");
|
37 |
__("URL for KML file");
|
38 |
__("Loading");
|
39 |
+
__("%d of %d shown");
|
40 |
__("Unable to get your location");
|
41 |
__("No results");
|
42 |
__("Save changes?");
|
48 |
__("Dark");
|
49 |
__("Satellite");
|
50 |
__("Satellite Streets");
|
51 |
+
__("Settings");
|
52 |
__("Add");
|
53 |
__("MapPress");
|
54 |
__("Map not found");
|
mappress.php
CHANGED
@@ -4,7 +4,7 @@ Plugin Name: MapPress Maps for WordPress
|
|
4 |
Plugin URI: https://www.mappresspro.com/mappress
|
5 |
Author URI: https://www.mappresspro.com/chris-contact
|
6 |
Description: MapPress makes it easy to add Google and Leaflet Maps to WordPress
|
7 |
-
Version: 2.
|
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/)
|
@@ -35,7 +35,7 @@ if (is_dir(dirname( __FILE__ ) . '/pro')) {
|
|
35 |
}
|
36 |
|
37 |
class Mappress {
|
38 |
-
const VERSION = '2.
|
39 |
|
40 |
static
|
41 |
$baseurl,
|
@@ -43,11 +43,11 @@ class Mappress {
|
|
43 |
$basedir,
|
44 |
$debug,
|
45 |
$loaded,
|
46 |
-
$notices,
|
47 |
$options,
|
48 |
$pages,
|
49 |
$pro,
|
50 |
-
$updater
|
|
|
51 |
;
|
52 |
|
53 |
function __construct() {
|
@@ -56,6 +56,9 @@ class Mappress {
|
|
56 |
self::$baseurl = plugins_url('', __FILE__);
|
57 |
self::$options = Mappress_Options::get();
|
58 |
self::$pro = is_dir(dirname( __FILE__ ) . '/pro');
|
|
|
|
|
|
|
59 |
self::debugging();
|
60 |
|
61 |
// Pro updater
|
@@ -101,27 +104,111 @@ class Mappress {
|
|
101 |
add_filter( 'heartbeat_settings', array(__CLASS__, 'heartbeat_settings'));
|
102 |
}
|
103 |
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
111 |
}
|
112 |
}
|
113 |
}
|
114 |
|
115 |
-
static function
|
116 |
-
$
|
117 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
118 |
}
|
119 |
|
120 |
static function debugging() {
|
121 |
global $wpdb;
|
122 |
|
123 |
if (isset($_GET['mp_info'])) {
|
124 |
-
echo "<b>Plugin
|
125 |
$posts_table = $wpdb->prefix . 'mappress_posts';
|
126 |
$results = $wpdb->get_results("SELECT postid, mapid FROM $posts_table");
|
127 |
echo "<br/>postid => mapid";
|
@@ -149,344 +236,333 @@ class Mappress {
|
|
149 |
}
|
150 |
}
|
151 |
|
152 |
-
static function
|
153 |
-
|
154 |
-
|
155 |
-
|
|
|
|
|
|
|
|
|
|
|
156 |
}
|
157 |
|
158 |
-
static function
|
159 |
-
$
|
160 |
-
if (
|
161 |
-
$
|
162 |
-
|
|
|
|
|
|
|
|
|
163 |
}
|
164 |
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
}
|
174 |
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
|
179 |
-
if ($gzip && get_site_option('can_compress_scripts'))
|
180 |
-
ob_start('ob_gzhandler');
|
181 |
else
|
182 |
-
|
183 |
-
|
184 |
-
$response = json_encode(array('status' => $status, 'output' => $output, 'data' => $data));
|
185 |
-
die ($response);
|
186 |
-
}
|
187 |
|
188 |
-
|
189 |
-
// Settings
|
190 |
-
$settings = (self::$pro) ? new Mappress_Pro_Settings() : new Mappress_Settings();
|
191 |
-
self::$pages[] = add_menu_page('MapPress', 'MapPress', 'manage_options', 'mappress', array(&$settings, 'options_page'), 'dashicons-location');
|
192 |
}
|
193 |
|
194 |
/**
|
195 |
-
*
|
196 |
-
* If set, the [mappress] shortcode will be prepended/appended to the post body, once for each map
|
197 |
-
* The shortcode is used so it can be filtered - for example WordPress will remove it in excerpts by default.
|
198 |
*
|
199 |
-
* @param mixed $
|
200 |
*/
|
201 |
-
static function
|
202 |
-
global $
|
203 |
-
global $wp_current_filter;
|
204 |
-
|
205 |
-
$autodisplay = self::$options->autodisplay;
|
206 |
-
|
207 |
-
// No auto display
|
208 |
-
if (!$autodisplay || $autodisplay == 'none')
|
209 |
-
return $content;
|
210 |
-
|
211 |
-
// Check if in the loop, to prevent conflicts with JetPack - see http://wordpress.org/support/topic/easy-adsense-lite-and-jetpack
|
212 |
-
if (!in_the_loop())
|
213 |
-
return $content;
|
214 |
|
215 |
-
|
216 |
-
|
217 |
-
return $content;
|
218 |
|
219 |
-
//
|
220 |
-
if (
|
221 |
-
|
|
|
|
|
222 |
|
223 |
-
// If
|
224 |
-
if (
|
225 |
-
|
226 |
|
227 |
-
//
|
228 |
-
if (
|
229 |
-
|
|
|
|
|
230 |
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
|
|
|
|
|
235 |
|
236 |
-
|
237 |
-
$
|
238 |
-
|
239 |
-
|
|
|
|
|
|
|
|
|
|
|
240 |
|
241 |
-
|
242 |
-
|
243 |
-
|
244 |
-
return $content . $shortcodes;
|
245 |
}
|
246 |
|
247 |
/**
|
248 |
-
*
|
|
|
|
|
249 |
*
|
250 |
-
* @param mixed $atts - shortcode attributes
|
251 |
*/
|
252 |
-
static function
|
253 |
-
|
|
|
254 |
|
255 |
-
//
|
256 |
-
if (
|
257 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
258 |
|
259 |
-
//
|
260 |
-
|
261 |
-
return;
|
262 |
-
|
263 |
-
$atts = self::scrub_atts($atts);
|
264 |
-
|
265 |
-
// Determine what to show
|
266 |
-
$mapid = (isset($atts['mapid'])) ? $atts['mapid'] : null;
|
267 |
|
268 |
-
|
269 |
-
|
270 |
-
$
|
271 |
-
|
272 |
-
|
273 |
-
|
274 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
275 |
}
|
276 |
|
277 |
-
|
278 |
-
return;
|
279 |
-
|
280 |
-
return $map->display($atts);
|
281 |
}
|
282 |
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
static function shortcode_mashup($atts='') {
|
288 |
-
// No feeds
|
289 |
-
if (is_feed())
|
290 |
-
return;
|
291 |
-
|
292 |
-
// Prevent do_shortcode() in the post editor, but allow for AJAX calls from other plugins (which run as admin)
|
293 |
-
if (self::is_admin())
|
294 |
-
return;
|
295 |
-
|
296 |
-
$atts = self::scrub_atts($atts);
|
297 |
-
return self::get_mashup($atts);
|
298 |
}
|
299 |
|
300 |
-
|
301 |
-
|
302 |
-
|
303 |
-
|
304 |
-
|
305 |
-
|
306 |
-
|
307 |
-
|
308 |
-
$mashup = new Mappress_Map($atts);
|
309 |
-
$mashup->query = Mappress_Query::parse_query($atts);
|
310 |
-
|
311 |
-
// If parameter test="true", output the query result without using a map
|
312 |
-
if (isset($_GET['mp_test']) || (isset($atts['test']) && $atts['test'])) {
|
313 |
-
$wpq = new WP_Query($mashup->query);
|
314 |
-
return "<pre>" . print_r($wpq, true) . "</pre>";
|
315 |
-
}
|
316 |
-
|
317 |
-
// If using query 'current' then create a static map for current posts
|
318 |
-
if (empty($mashup->query))
|
319 |
-
$mashup->pois = Mappress_Query::get_pois($wp_query);
|
320 |
-
|
321 |
-
// If 'hideEmpty' is set, try to suppress the map if there are no POIs
|
322 |
-
if ($mashup->hideEmpty) {
|
323 |
-
// 'current' query - check found pois
|
324 |
-
if (empty($mashup->query) && empty($mashup->pois))
|
325 |
-
return "";
|
326 |
-
|
327 |
-
// Other queries - check for at least 1 result
|
328 |
-
if (Mappress_Query::is_empty($mashup->query))
|
329 |
-
return "";
|
330 |
-
}
|
331 |
-
return $mashup->display();
|
332 |
}
|
333 |
|
334 |
-
static function
|
335 |
-
|
336 |
-
|
337 |
}
|
338 |
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
*/
|
343 |
-
static function wp_enqueue_scripts() {
|
344 |
-
// Leaflet CSS
|
345 |
-
if (self::$options->engine == 'leaflet')
|
346 |
-
wp_enqueue_style('mappress-leaflet', self::$baseurl . '/css/leaflet/leaflet.css', null, '1.3.1');
|
347 |
|
348 |
-
|
349 |
-
|
|
|
350 |
|
351 |
-
|
352 |
-
|
353 |
-
$file = get_stylesheet_directory_uri() . '/mappress.css';
|
354 |
-
elseif ( @file_exists( get_template_directory() . '/mappress.css' ) )
|
355 |
-
$file = get_template_directory_uri() . '/mappress.css';
|
356 |
|
357 |
-
|
358 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
359 |
|
360 |
-
//
|
361 |
-
|
362 |
-
|
363 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
364 |
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
|
369 |
-
|
370 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
371 |
|
372 |
-
|
373 |
-
|
374 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
375 |
|
376 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
377 |
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
|
|
|
|
|
383 |
}
|
384 |
|
385 |
-
//
|
386 |
-
|
387 |
-
|
388 |
-
|
389 |
-
// Mappress CSS
|
390 |
-
if (in_array($hook, self::$pages) || $editing) {
|
391 |
-
wp_enqueue_style('mappress', self::$baseurl . '/css/mappress.css', null, self::VERSION);
|
392 |
-
wp_enqueue_style('mappress-admin', self::$baseurl . '/css/mappress_admin.css', null, self::VERSION);
|
393 |
-
}
|
394 |
-
}
|
395 |
|
396 |
-
|
397 |
-
load_plugin_textdomain('mappress-google-maps-for-wordpress', false, dirname(self::$basename) . '/languages');
|
398 |
}
|
399 |
|
|
|
|
|
|
|
|
|
|
|
400 |
|
401 |
-
|
402 |
-
|
403 |
-
* http://core.trac.wordpress.org/ticket/14170
|
404 |
-
* http://core.trac.wordpress.org/ticket/14718)
|
405 |
-
*
|
406 |
-
*/
|
407 |
-
static function init() {
|
408 |
-
// Register hooks and create database tables
|
409 |
-
Mappress_Map::register();
|
410 |
|
411 |
-
//
|
412 |
-
|
413 |
-
|
414 |
-
Mappress_Meta::register();
|
415 |
-
Mappress_Pro_Settings::register();
|
416 |
-
Mappress_Query::register();
|
417 |
-
Mappress_Template::register();
|
418 |
-
Mappress_Widget::register();
|
419 |
-
}
|
420 |
|
421 |
-
|
422 |
-
|
|
|
|
|
|
|
423 |
|
424 |
-
|
425 |
-
|
426 |
-
$
|
427 |
-
|
428 |
-
|
429 |
-
|
430 |
-
|
431 |
-
$old_key = 'metaKey' . ucfirst($key);
|
432 |
-
$value = (isset($old->$old_key)) ? $old->$old_key : null;
|
433 |
-
}
|
434 |
-
if ($value)
|
435 |
-
Mappress::$options->metaKeys[$key] = $value;
|
436 |
-
}
|
437 |
-
Mappress::$options->save();
|
438 |
}
|
439 |
|
440 |
-
|
441 |
-
|
442 |
|
443 |
-
|
444 |
-
|
445 |
-
global $wpdb;
|
446 |
-
$notices = array();
|
447 |
|
448 |
-
|
449 |
-
|
450 |
-
$exists = $wpdb->get_var("show tables like '$map_table'");
|
451 |
|
452 |
-
|
453 |
-
|
454 |
-
return;
|
455 |
-
}
|
456 |
|
457 |
-
if (
|
458 |
-
|
459 |
-
|
460 |
}
|
461 |
|
462 |
-
|
463 |
-
printf($error, sprintf("%s. %s <a href='%s'>%s</a>.", __("A Google Maps API key is required", 'mappress-google-maps-for-wordpress'), __("Please update your", 'mappress-google-maps-for-wordpress'), admin_url('admin.php?page=mappress'), __('MapPress Settings', 'mappress-google-maps-for-wordpress')));
|
464 |
|
465 |
-
//
|
466 |
-
if (
|
467 |
-
$
|
468 |
-
|
469 |
-
$notices = array_diff_key($notices, $dismissed);
|
470 |
-
foreach($notices as $key => $msg)
|
471 |
-
echo "<div class='notice error is-dismissible' data-mapp-dismiss='$key'><p>$msg</p></div>";
|
472 |
|
473 |
-
|
474 |
-
|
475 |
-
|
476 |
-
|
477 |
-
}
|
478 |
-
}
|
479 |
}
|
480 |
|
481 |
-
static function
|
482 |
-
|
483 |
-
|
484 |
-
|
485 |
-
|
486 |
-
$
|
487 |
-
$
|
488 |
-
|
489 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
490 |
}
|
491 |
|
492 |
/**
|
@@ -529,7 +605,71 @@ class Mappress {
|
|
529 |
$atts['center'] = ($map && $map->pois) ? $map->pois[0]->point['lat'] . ',' . $map->pois[0]->point['lng'] : null;
|
530 |
}
|
531 |
|
532 |
-
return $atts;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
533 |
}
|
534 |
|
535 |
static function string_to_boolean($data) {
|
@@ -547,234 +687,90 @@ class Mappress {
|
|
547 |
return $data;
|
548 |
}
|
549 |
|
550 |
-
|
551 |
-
|
552 |
-
|
553 |
-
|
554 |
-
|
555 |
-
|
556 |
-
|
557 |
-
|
558 |
-
$footer = self::footer();
|
559 |
-
|
560 |
-
// Directories
|
561 |
-
$min = ($dev) ? "" : ".min";
|
562 |
-
$js = ($dev) ? "http://localhost/$dev/wp-content/plugins/mappress-google-maps-for-wordpress/src" : self::$baseurl . '/js';
|
563 |
-
|
564 |
-
if (self::$options->engine == 'leaflet') {
|
565 |
-
wp_enqueue_script("mappress-leaflet", $js . "/leaflet/leaflet.js", null, '1.3.1', $footer);
|
566 |
-
wp_enqueue_script("mappress-omnivore", $js . "/leaflet/leaflet-omnivore.min.js", null, '0.3.1', $footer);
|
567 |
-
wp_enqueue_script("mappress-algolia-places", $js . "/algolia/placesAutocompleteDataset.min.js", null, '1.7.2', $footer);
|
568 |
-
wp_enqueue_script("mappress-algolia-search", $js . "/algolia/algoliasearchLite.min.js", null, '3', $footer);
|
569 |
-
|
570 |
-
} else {
|
571 |
-
$language = self::get_language();
|
572 |
-
$language = ($language) ? "&language=$language" : '';
|
573 |
-
$apiversion = ($dev) ? 'v=3.exp' : 'v=3';
|
574 |
-
$apikey = "&key=" . self::get_api_keys()->browser;
|
575 |
-
$libs = ($type == 'editor') ? '&libraries=places,drawing' : '&libraries=places';
|
576 |
-
wp_enqueue_script("mappress-gmaps", "https://maps.googleapis.com/maps/api/js?{$apiversion}{$language}{$libs}{$apikey}", null, null, $footer);
|
577 |
-
}
|
578 |
-
|
579 |
-
if ($type == 'editor')
|
580 |
-
wp_enqueue_script('mappress_editor', $js . "/mappress_editor$min.js", array('jquery', 'jquery-ui-position', 'jquery-ui-sortable'), $version, $footer);
|
581 |
-
|
582 |
-
if ($type == 'settings')
|
583 |
-
wp_enqueue_script('mappress_settings', $js . "/mappress_settings$min.js", array('postbox', 'jquery', 'jquery-ui-position', 'jquery-ui-sortable'), $version, $footer);
|
584 |
-
|
585 |
-
// Autocomplete
|
586 |
-
wp_enqueue_script('mappress-algolia-autocomplete', $js . "/algolia/autocomplete.jquery.min.js", array('jquery'), $version, $footer);
|
587 |
-
|
588 |
-
// mappress.js includes loader, so must come after editor
|
589 |
-
wp_enqueue_script('mappress', $js . "/mappress$min.js", array('underscore', 'jquery'), $version, $footer);
|
590 |
-
|
591 |
-
if ($dev) {
|
592 |
-
foreach(array('directions', 'geocoding', 'icons', 'infobox', 'lib', 'places', 'poi', 'widgets', 'loader') as $script)
|
593 |
-
wp_enqueue_script($script, $js . "/mappress_{$script}.js", null, $version, $footer);
|
594 |
-
}
|
595 |
-
|
596 |
-
wp_localize_script('mappress', 'mappl10n', self::l10n());
|
597 |
-
|
598 |
-
// Templates
|
599 |
-
if ($type != 'editor')
|
600 |
-
Mappress_Template::load($footer);
|
601 |
-
}
|
602 |
-
|
603 |
-
static function footer() {
|
604 |
-
$infinite = class_exists( 'Jetpack' ) && Jetpack::is_module_active( 'infinite-scroll' );
|
605 |
-
return (is_admin() || self::$options->footer && !$infinite);
|
606 |
-
}
|
607 |
-
|
608 |
-
static function dev() {
|
609 |
-
if (defined('MAPPRESS_DEV') && MAPPRESS_DEV)
|
610 |
-
return MAPPRESS_DEV;
|
611 |
-
else if (isset($_REQUEST['mp_dev']))
|
612 |
-
return ($_REQUEST['mp_dev']) ? $_REQUEST['mp_dev'] : 'dev';
|
613 |
-
else
|
614 |
-
return false;
|
615 |
-
}
|
616 |
-
|
617 |
-
static function l10n() {
|
618 |
global $post;
|
|
|
619 |
|
620 |
-
$
|
621 |
-
'delete_prompt' => __('Are you sure you want to delete?', 'mappress-google-maps-for-wordpress'),
|
622 |
-
'delete_map_prompt' => __('Delete this map?', 'mappress-google-maps-for-wordpress'),
|
623 |
-
'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'),
|
624 |
-
'kml_error' => __('Error reading KML file', 'mappress-google-maps-for-wordpress'),
|
625 |
-
'layer' => __('URL for KML file', 'mappress-google-maps-for-wordpress'),
|
626 |
-
'loading' => "<span class='mapp-spinner'></span>" . __('Loading', 'mappress-google-maps-for-wordpress'),
|
627 |
-
'no_geolocate' => __('Unable to get your location', 'mappress-google-maps-for-wordpress'),
|
628 |
-
'no_results' => __('No results', 'mappress-google-maps-for-wordpress'),
|
629 |
-
'save' => __('Save changes?', 'mappress-google-maps-for-wordpress'),
|
630 |
-
'shape' => __('Shape', 'mappress-google-maps-for-wordpress'),
|
631 |
-
'untitled' => __('Untitled', 'mappress-google-maps-for-wordpress')
|
632 |
-
);
|
633 |
-
|
634 |
-
// Globals
|
635 |
-
$l10n['options'] = array(
|
636 |
-
'admin' => current_user_can('administrator'),
|
637 |
-
'ajaxurl' => admin_url('admin-ajax.php'),
|
638 |
-
'debug' => Mappress::$debug,
|
639 |
-
'iconsUrl' => (self::$pro) ? Mappress_Icons::$icons_url : null,
|
640 |
-
'language' => self::get_language(),
|
641 |
-
'mapbox' => self::get_api_keys()->mapbox,
|
642 |
-
'mini' => 350,
|
643 |
-
'postid' => ($post) ? $post->ID : null,
|
644 |
-
'pro' => self::$pro,
|
645 |
-
'siteUrl' => site_url(),
|
646 |
-
'standardIconsUrl' => (self::$pro) ? Mappress_Icons::$standard_icons_url : null
|
647 |
-
);
|
648 |
|
649 |
-
//
|
650 |
-
if (
|
651 |
-
|
652 |
-
$providers = array(
|
653 |
-
'mapbox' => array(
|
654 |
-
'accessToken' => self::get_api_keys()->mapbox,
|
655 |
-
'attribution' => "<a href='https://www.mapbox.com/about/maps/' target='_blank'>© Mapbox © OpenStreetMap</a> <a class='mapbox-improve-map' href='https://www.mapbox.com/map-feedback/' target='_blank'>" . __('Improve this map', 'mappress-google-maps-for-wordpress') . "</a>",
|
656 |
-
'fresh' => true, // Fresh = true in order to provide updated studio styles
|
657 |
-
'url' => "https://api.mapbox.com/styles/v1/{user}/{id}/tiles/256/{z}/{x}/{y}{r}?access_token={accessToken}&fresh={fresh}",
|
658 |
-
'zoomOffset' => 0
|
659 |
-
),
|
660 |
-
'osm' => array(
|
661 |
-
'attribution' => 'Map data ©<a href="https://openstreetmap.org">OpenStreetMap</a>',
|
662 |
-
'url' => 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
|
663 |
-
)
|
664 |
-
);
|
665 |
-
$l10n['options']['providers'] = apply_filters('mappress_tile_providers', $providers);
|
666 |
|
667 |
-
|
668 |
-
|
669 |
-
|
670 |
-
$baselayers = array(
|
671 |
-
array('provider' => 'mapbox', 'user' => 'mapbox', 'id' => 'streets-v10', 'name' => 'streets', 'label' => __('Streets', 'mappress-google-maps-for-wordpress')),
|
672 |
-
array('provider' => 'mapbox', 'user' => 'mapbox', 'id' => 'outdoors-v10', 'name' => 'outdoors', 'label' => __('Outdoors', 'mappress-google-maps-for-wordpress')),
|
673 |
-
array('provider' => 'mapbox', 'user' => 'mapbox', 'id' => 'light-v9', 'name' => 'light', 'label' => __('Light', 'mappress-google-maps-for-wordpress')),
|
674 |
-
array('provider' => 'mapbox', 'user' => 'mapbox', 'id' => 'dark-v9', 'name' => 'dark', 'label' => __('Dark', 'mappress-google-maps-for-wordpress')),
|
675 |
-
array('provider' => 'mapbox', 'user' => 'mapbox', 'id' => 'satellite-v9', 'name' => 'satellite', 'label' => __('Satellite', 'mappress-google-maps-for-wordpress')),
|
676 |
-
array('provider' => 'mapbox', 'user' => 'mapbox', 'id' => 'satellite-streets-v10', 'name' => 'satellite-streets', 'label' => __('Satellite Streets', 'mappress-google-maps-for-wordpress'))
|
677 |
-
);
|
678 |
|
679 |
-
|
680 |
-
|
681 |
-
|
682 |
-
$url = str_ireplace('https://api.mapbox.com/styles/v1/', '', $url);
|
683 |
-
$parts = explode('/', $url);
|
684 |
-
if (count($parts) == 2)
|
685 |
-
$baselayers[] = array('provider' => 'mapbox', 'user' => $parts[0], 'id' => $parts[1], 'name' => $name, 'label' => $name);
|
686 |
-
}
|
687 |
-
} else {
|
688 |
-
$baselayers = array(
|
689 |
-
array('provider' => 'osm', 'id' => 'osm', 'name' => 'osm', 'label' => __('Streets', 'mappress-google-maps-for-wordpress'))
|
690 |
-
);
|
691 |
-
}
|
692 |
|
693 |
-
|
694 |
-
|
695 |
-
|
696 |
-
// Google wizard styles
|
697 |
-
$l10n['options']['styles'] = array();
|
698 |
-
foreach(self::$options->styles as $id => &$style)
|
699 |
-
$l10n['options']['styles'][$id] = json_decode($style);
|
700 |
-
}
|
701 |
|
702 |
-
//
|
703 |
-
|
704 |
-
|
705 |
-
$l10n['options'][$option] = self::$options->$option;
|
706 |
|
707 |
-
|
708 |
-
|
|
|
709 |
|
710 |
-
|
711 |
-
|
712 |
-
|
713 |
-
|
714 |
-
static function get_language() {
|
715 |
-
// WPML
|
716 |
-
if (defined('ICL_LANGUAGE_CODE'))
|
717 |
-
$lang = ICL_LANGUAGE_CODE;
|
718 |
|
719 |
-
//
|
720 |
-
|
721 |
-
|
|
|
722 |
|
|
|
|
|
723 |
else
|
724 |
-
$
|
725 |
-
|
726 |
-
return ($lang) ? $lang : null;
|
727 |
}
|
728 |
|
729 |
/**
|
730 |
-
*
|
|
|
731 |
*/
|
732 |
-
static function
|
733 |
-
|
734 |
-
if (
|
735 |
-
|
736 |
-
$sitepress->switch_lang($language);
|
737 |
-
}
|
738 |
-
}
|
739 |
-
|
740 |
-
static function get_api_keys() {
|
741 |
-
$results = (object) array('browser' => self::$options->apiKey, 'server' => self::$options->apiKeyServer, 'mapbox' => self::$options->mapbox);
|
742 |
-
if (empty($results->browser) && defined('MAPPRESS_APIKEY'))
|
743 |
-
$results->browser = MAPPRESS_APIKEY;
|
744 |
-
if (empty($results->server) && defined('MAPPRESS_APIKEY_SERVER'))
|
745 |
-
$results->server = MAPPRESS_APIKEY_SERVER;
|
746 |
-
if (empty($results->mapbox) && defined('MAPPRESS_APIKEY_MAPBOX'))
|
747 |
-
$result->mapbox = MAPPRESS_APIKEY_MAPBOX;
|
748 |
-
return $results;
|
749 |
-
}
|
750 |
|
751 |
-
|
752 |
-
|
753 |
-
$html .= ($ready) ? "jQuery(document).ready(function() { $script });" : $script;
|
754 |
-
$html .= "\r\n</script>";
|
755 |
-
return $html;
|
756 |
-
}
|
757 |
|
758 |
-
|
759 |
-
|
760 |
-
|
761 |
-
|
762 |
-
|
763 |
|
764 |
-
|
765 |
-
|
766 |
-
}
|
767 |
|
768 |
-
|
769 |
-
|
|
|
770 |
}
|
771 |
|
772 |
-
|
773 |
-
|
774 |
-
|
775 |
-
return is_admin() && !$ajax;
|
776 |
}
|
777 |
-
}
|
778 |
|
779 |
$mappress = new Mappress();
|
780 |
?>
|
4 |
Plugin URI: https://www.mappresspro.com/mappress
|
5 |
Author URI: https://www.mappresspro.com/chris-contact
|
6 |
Description: MapPress makes it easy to add Google and Leaflet Maps to WordPress
|
7 |
+
Version: 2.52.1
|
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/)
|
35 |
}
|
36 |
|
37 |
class Mappress {
|
38 |
+
const VERSION = '2.52.1';
|
39 |
|
40 |
static
|
41 |
$baseurl,
|
43 |
$basedir,
|
44 |
$debug,
|
45 |
$loaded,
|
|
|
46 |
$options,
|
47 |
$pages,
|
48 |
$pro,
|
49 |
+
$updater,
|
50 |
+
$version
|
51 |
;
|
52 |
|
53 |
function __construct() {
|
56 |
self::$baseurl = plugins_url('', __FILE__);
|
57 |
self::$options = Mappress_Options::get();
|
58 |
self::$pro = is_dir(dirname( __FILE__ ) . '/pro');
|
59 |
+
self::$version = (self::$pro) ? self::VERSION . " PRO" : self::VERSION;
|
60 |
+
self::$version = (defined('MAPPRESS_DEV') && MAPPRESS_DEV) ? self::$version . '-' . rand(0,99999) : self::$version;
|
61 |
+
|
62 |
self::debugging();
|
63 |
|
64 |
// Pro updater
|
104 |
add_filter( 'heartbeat_settings', array(__CLASS__, 'heartbeat_settings'));
|
105 |
}
|
106 |
|
107 |
+
// Scripts & styles for admin
|
108 |
+
// CSS is always loaded from the plugin directory
|
109 |
+
static function admin_enqueue_scripts($hook) {
|
110 |
+
// Some plugins call this without setting $hook
|
111 |
+
if (empty($hook))
|
112 |
+
return;
|
113 |
+
|
114 |
+
// Network admin has no pages
|
115 |
+
if (empty(self::$pages))
|
116 |
+
return;
|
117 |
+
|
118 |
+
$editing = in_array($hook, array('edit.php', 'post.php', 'post-new.php'));
|
119 |
+
|
120 |
+
// Settings scripts
|
121 |
+
if ($hook == self::$pages[0]) {
|
122 |
+
self::load('settings');
|
123 |
+
if (function_exists('wp_enqueue_code_editor'))
|
124 |
+
wp_enqueue_code_editor(array( 'type' => 'php' ));
|
125 |
+
}
|
126 |
+
|
127 |
+
// Leaflet CSS
|
128 |
+
if (self::$options->engine == 'leaflet')
|
129 |
+
wp_enqueue_style('mappress-leaflet', self::$baseurl . "/css/leaflet/leaflet.css", null, '1.3.1');
|
130 |
+
|
131 |
+
// Mappress CSS
|
132 |
+
if (in_array($hook, self::$pages) || $editing) {
|
133 |
+
wp_enqueue_style('mappress', self::$baseurl . '/css/mappress.css', null, self::$version);
|
134 |
+
wp_enqueue_style('mappress-admin', self::$baseurl . '/css/mappress_admin.css', null, self::$version);
|
135 |
+
}
|
136 |
+
}
|
137 |
+
|
138 |
+
static function admin_menu() {
|
139 |
+
// Settings
|
140 |
+
$settings = (self::$pro) ? new Mappress_Pro_Settings() : new Mappress_Settings();
|
141 |
+
self::$pages[] = add_menu_page('MapPress', 'MapPress', 'manage_options', 'mappress', array(&$settings, 'options_page'), 'dashicons-location');
|
142 |
+
}
|
143 |
+
|
144 |
+
static function admin_notices() {
|
145 |
+
global $wpdb;
|
146 |
+
$notices = array();
|
147 |
+
|
148 |
+
$error = "<div class='notice error'><p>%s</p></div>";
|
149 |
+
$map_table = $wpdb->prefix . "mappress_maps";
|
150 |
+
$exists = $wpdb->get_var("show tables like '$map_table'");
|
151 |
+
|
152 |
+
if (!$exists) {
|
153 |
+
printf($error, __("MapPress database tables are missing. Please deactivate the plugin and activate it again to fix this.", 'mappress-google-maps-for-wordpress'));
|
154 |
+
return;
|
155 |
+
}
|
156 |
+
|
157 |
+
if (class_exists('WPGeo')) {
|
158 |
+
printf($error, __("WARNING: MapPress is not compatible with the WP-Geo plugin. Please deactivate or uninstall WP-Geo before using MapPress.", 'mappress-google-maps-for-wordpress'));
|
159 |
+
return;
|
160 |
+
}
|
161 |
+
|
162 |
+
if (self::$options->engine != 'leaflet' && !self::get_api_keys()->browser)
|
163 |
+
printf($error, sprintf("%s. %s <a href='%s'>%s</a>.", __("A Google Maps API key is required", 'mappress-google-maps-for-wordpress'), __("Please update your", 'mappress-google-maps-for-wordpress'), admin_url('admin.php?page=mappress'), __('MapPress Settings', 'mappress-google-maps-for-wordpress')));
|
164 |
+
|
165 |
+
// Print notices
|
166 |
+
if (is_super_admin()) {
|
167 |
+
$dismissed = get_user_meta(get_current_user_id(), 'mappress-dismissed', true);
|
168 |
+
$dismissed = (is_array($dismissed)) ? $dismissed : array();
|
169 |
+
|
170 |
+
// Print notices
|
171 |
+
$notices = array_diff_key($notices, $dismissed);
|
172 |
+
foreach($notices as $key => $msg)
|
173 |
+
echo "<div class='notice error is-dismissible' data-mapp-dismiss='$key'><p>$msg</p></div>";
|
174 |
+
|
175 |
+
if ($notices) {
|
176 |
+
echo Mappress::script("jQuery('[data-mapp-dismiss]').on('click', '.notice-dismiss', function(e) {
|
177 |
+
jQuery.post(ajaxurl, { action : 'mapp_dismiss', key : jQuery(this).closest('.notice').attr('data-mapp-dismiss') });
|
178 |
+
});");
|
179 |
}
|
180 |
}
|
181 |
}
|
182 |
|
183 |
+
static function ajax_dismiss() {
|
184 |
+
$key = (isset($_POST['key'])) ? $_POST['key'] : null;
|
185 |
+
if ($key) {
|
186 |
+
$user_id = get_current_user_id();
|
187 |
+
$dismissed = get_user_meta($user_id, 'mappress-dismissed', true);
|
188 |
+
$dismissed = (is_array($dismissed)) ? $dismissed : array();
|
189 |
+
$dismissed[$key] = true;
|
190 |
+
update_user_meta($user_id, 'mappress-dismissed', $dismissed);
|
191 |
+
}
|
192 |
+
}
|
193 |
+
|
194 |
+
static function ajax_response($status, $data=null, $gzip = false) {
|
195 |
+
$output = trim(ob_get_clean()); // Ignore whitespace, any other output is an error
|
196 |
+
header( "Content-Type: application/json" );
|
197 |
+
|
198 |
+
if ($gzip && get_site_option('can_compress_scripts'))
|
199 |
+
ob_start('ob_gzhandler');
|
200 |
+
else
|
201 |
+
ob_start();
|
202 |
+
|
203 |
+
$response = json_encode(array('status' => $status, 'output' => $output, 'data' => $data));
|
204 |
+
die ($response);
|
205 |
}
|
206 |
|
207 |
static function debugging() {
|
208 |
global $wpdb;
|
209 |
|
210 |
if (isset($_GET['mp_info'])) {
|
211 |
+
echo "<b>Plugin</b> " . self::$version;
|
212 |
$posts_table = $wpdb->prefix . 'mappress_posts';
|
213 |
$results = $wpdb->get_results("SELECT postid, mapid FROM $posts_table");
|
214 |
echo "<br/>postid => mapid";
|
236 |
}
|
237 |
}
|
238 |
|
239 |
+
static function deregister() {
|
240 |
+
if (self::$loaded) {
|
241 |
+
$wps = wp_scripts();
|
242 |
+
foreach($wps->registered as $registered) {
|
243 |
+
if (stripos($registered->src, 'maps.googleapis.com') !== false && stripos($registered->handle, 'mappress') === false) {
|
244 |
+
$registered->src = self::$baseurl . '/forms/dummy.js';
|
245 |
+
}
|
246 |
+
}
|
247 |
+
}
|
248 |
}
|
249 |
|
250 |
+
static function get_api_keys() {
|
251 |
+
$results = (object) array('browser' => self::$options->apiKey, 'server' => self::$options->apiKeyServer, 'mapbox' => self::$options->mapbox);
|
252 |
+
if (empty($results->browser) && defined('MAPPRESS_APIKEY'))
|
253 |
+
$results->browser = MAPPRESS_APIKEY;
|
254 |
+
if (empty($results->server) && defined('MAPPRESS_APIKEY_SERVER'))
|
255 |
+
$results->server = MAPPRESS_APIKEY_SERVER;
|
256 |
+
if (empty($results->mapbox) && defined('MAPPRESS_APIKEY_MAPBOX'))
|
257 |
+
$result->mapbox = MAPPRESS_APIKEY_MAPBOX;
|
258 |
+
return $results;
|
259 |
}
|
260 |
|
261 |
+
/**
|
262 |
+
* Get language using settings/WPML/qTrans
|
263 |
+
*
|
264 |
+
*/
|
265 |
+
static function get_language() {
|
266 |
+
// WPML
|
267 |
+
if (defined('ICL_LANGUAGE_CODE'))
|
268 |
+
$lang = ICL_LANGUAGE_CODE;
|
|
|
269 |
|
270 |
+
// qTranslate
|
271 |
+
else if (function_exists('qtrans_getLanguage'))
|
272 |
+
$lang = qtrans_getLanguage();
|
273 |
|
|
|
|
|
274 |
else
|
275 |
+
$lang = self::$options->language;
|
|
|
|
|
|
|
|
|
276 |
|
277 |
+
return ($lang) ? $lang : null;
|
|
|
|
|
|
|
278 |
}
|
279 |
|
280 |
/**
|
281 |
+
* Get a mashup - used by shortcode and widget
|
|
|
|
|
282 |
*
|
283 |
+
* @param mixed $atts
|
284 |
*/
|
285 |
+
static function get_mashup($atts) {
|
286 |
+
global $wp_query;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
287 |
|
288 |
+
$mashup = new Mappress_Map($atts);
|
289 |
+
$mashup->query = Mappress_Query::parse_query($atts);
|
|
|
290 |
|
291 |
+
// If parameter test="true", output the query result without using a map
|
292 |
+
if (isset($_GET['mp_test']) || (isset($atts['test']) && $atts['test'])) {
|
293 |
+
$wpq = new WP_Query($mashup->query);
|
294 |
+
return "<pre>" . print_r($wpq, true) . "</pre>";
|
295 |
+
}
|
296 |
|
297 |
+
// If using query 'current' then create a static map for current posts
|
298 |
+
if (empty($mashup->query))
|
299 |
+
$mashup->pois = Mappress_Query::get_pois($wp_query);
|
300 |
|
301 |
+
// If 'hideEmpty' is set, try to suppress the map if there are no POIs
|
302 |
+
if ($mashup->hideEmpty) {
|
303 |
+
// 'current' query - check found pois
|
304 |
+
if (empty($mashup->query) && empty($mashup->pois))
|
305 |
+
return "";
|
306 |
|
307 |
+
// Other queries - check for at least 1 result
|
308 |
+
if (Mappress_Query::is_empty($mashup->query))
|
309 |
+
return "";
|
310 |
+
}
|
311 |
+
return $mashup->display();
|
312 |
+
}
|
313 |
|
314 |
+
static function get_support_links($title = 'MapPress') {
|
315 |
+
$html = "<div class='mapp-support'>" . __('Version', 'mappress-google-maps-for-wordpress') . ':' . self::$version;
|
316 |
+
$html .= " | <a target='_blank' href='https://mappresspro.com/mappress/mappress-documentation'>" . __('Documentation', 'mappress-google-maps-for-wordpress') . "</a>";
|
317 |
+
$html .= " | <a target='_blank' href='https://mappresspro.com/chris-contact'>" . __('Support', 'mappress-google-maps-for-wordpress') . "</a>";
|
318 |
+
if (!self::$pro)
|
319 |
+
$html .= "<a class='button button-primary' href='https://mappresspro.com/mappress' target='_blank'>" . __('Upgrade to MapPress Pro', 'mappress-google-maps-for-wordpress') . "</a>";
|
320 |
+
$html .= "</div>";
|
321 |
+
echo $html;
|
322 |
+
}
|
323 |
|
324 |
+
static function heartbeat_settings( $settings ) {
|
325 |
+
$settings['minimalInterval'] = 600;
|
326 |
+
return $settings;
|
|
|
327 |
}
|
328 |
|
329 |
/**
|
330 |
+
* There are several WP bugs that prevent correct activation in multisitie:
|
331 |
+
* http://core.trac.wordpress.org/ticket/14170
|
332 |
+
* http://core.trac.wordpress.org/ticket/14718)
|
333 |
*
|
|
|
334 |
*/
|
335 |
+
static function init() {
|
336 |
+
// Register hooks and create database tables
|
337 |
+
Mappress_Map::register();
|
338 |
|
339 |
+
// Register static classes
|
340 |
+
if (self::$pro) {
|
341 |
+
Mappress_Icons::register();
|
342 |
+
Mappress_Meta::register();
|
343 |
+
Mappress_Pro_Settings::register();
|
344 |
+
Mappress_Query::register();
|
345 |
+
Mappress_Template::register();
|
346 |
+
Mappress_Widget::register();
|
347 |
+
}
|
348 |
|
349 |
+
// Check if upgrade is needed
|
350 |
+
$current_version = get_option('mappress_version');
|
|
|
|
|
|
|
|
|
|
|
|
|
351 |
|
352 |
+
// Convert meta key settings
|
353 |
+
if ($current_version < '2.45') {
|
354 |
+
$old = (object) get_option('mappress_options');
|
355 |
+
foreach(array('address1', 'address2', 'address3', 'address4', 'address5', 'address6', 'lat', 'lng', 'iconid', 'title', 'body', 'zoom') as $i => $key) {
|
356 |
+
if ($i < 6) {
|
357 |
+
$value = (isset($old->metaKeyAddress[$i])) ? $old->metaKeyAddress[$i] : null;
|
358 |
+
} else {
|
359 |
+
$old_key = 'metaKey' . ucfirst($key);
|
360 |
+
$value = (isset($old->$old_key)) ? $old->$old_key : null;
|
361 |
+
}
|
362 |
+
if ($value)
|
363 |
+
Mappress::$options->metaKeys[$key] = $value;
|
364 |
+
}
|
365 |
+
Mappress::$options->save();
|
366 |
}
|
367 |
|
368 |
+
update_option('mappress_version', self::VERSION);
|
|
|
|
|
|
|
369 |
}
|
370 |
|
371 |
+
// WP returns is_admin() = true during AJAX calls, this one returns false in that case
|
372 |
+
static function is_admin() {
|
373 |
+
$ajax = defined('DOING_AJAX') && DOING_AJAX;
|
374 |
+
return is_admin() && !$ajax;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
375 |
}
|
376 |
|
377 |
+
static function is_dev() {
|
378 |
+
if (defined('MAPPRESS_DEV') && MAPPRESS_DEV)
|
379 |
+
return MAPPRESS_DEV;
|
380 |
+
else if (isset($_REQUEST['mp_dev']))
|
381 |
+
return ($_REQUEST['mp_dev']) ? $_REQUEST['mp_dev'] : 'dev';
|
382 |
+
else
|
383 |
+
return false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
384 |
}
|
385 |
|
386 |
+
static function is_footer() {
|
387 |
+
$infinite = class_exists( 'Jetpack' ) && Jetpack::is_module_active( 'infinite-scroll' );
|
388 |
+
return (is_admin() || self::$options->footer && !$infinite);
|
389 |
}
|
390 |
|
391 |
+
static function is_localhost() {
|
392 |
+
return !filter_var($_SERVER['SERVER_ADDR'], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE);
|
393 |
+
}
|
|
|
|
|
|
|
|
|
|
|
394 |
|
395 |
+
static function is_ssl() {
|
396 |
+
return (is_ssl() || !filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE));
|
397 |
+
}
|
398 |
|
399 |
+
static function l10n() {
|
400 |
+
global $post;
|
|
|
|
|
|
|
401 |
|
402 |
+
$l10n = array(
|
403 |
+
'delete_prompt' => __('Are you sure you want to delete?', 'mappress-google-maps-for-wordpress'),
|
404 |
+
'delete_map_prompt' => __('Delete this map?', 'mappress-google-maps-for-wordpress'),
|
405 |
+
'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'),
|
406 |
+
'kml_error' => __('Error reading KML file', 'mappress-google-maps-for-wordpress'),
|
407 |
+
'layer' => __('URL for KML file', 'mappress-google-maps-for-wordpress'),
|
408 |
+
'loading' => "<span class='mapp-spinner'></span>" . __('Loading', 'mappress-google-maps-for-wordpress'),
|
409 |
+
'more' => __('%d of %d shown', 'mappress-google-maps-for-wordpress'),
|
410 |
+
'no_geolocate' => __('Unable to get your location', 'mappress-google-maps-for-wordpress'),
|
411 |
+
'no_results' => __('No results', 'mappress-google-maps-for-wordpress'),
|
412 |
+
'save' => __('Save changes?', 'mappress-google-maps-for-wordpress'),
|
413 |
+
'shape' => __('Shape', 'mappress-google-maps-for-wordpress'),
|
414 |
+
'untitled' => __('Untitled', 'mappress-google-maps-for-wordpress')
|
415 |
+
);
|
416 |
|
417 |
+
// Globals
|
418 |
+
$l10n['options'] = array(
|
419 |
+
'admin' => current_user_can('administrator'),
|
420 |
+
'ajaxurl' => admin_url('admin-ajax.php'),
|
421 |
+
'debug' => self::$debug,
|
422 |
+
'iconsUrl' => (self::$pro) ? Mappress_Icons::$icons_url : null,
|
423 |
+
'language' => self::get_language(),
|
424 |
+
'mapbox' => self::get_api_keys()->mapbox,
|
425 |
+
'mini' => 400,
|
426 |
+
'postid' => ($post) ? $post->ID : null, // Note: GT => numeric, classic => string
|
427 |
+
'pro' => self::$pro,
|
428 |
+
'siteUrl' => site_url(),
|
429 |
+
'standardIconsUrl' => (self::$pro) ? Mappress_Icons::$standard_icons_url : null
|
430 |
+
);
|
431 |
|
432 |
+
// Leaflet layers for mapbox / OSM
|
433 |
+
if (self::$options->engine == 'leaflet') {
|
434 |
+
// Providers
|
435 |
+
$providers = array(
|
436 |
+
'mapbox' => array(
|
437 |
+
'accessToken' => self::get_api_keys()->mapbox,
|
438 |
+
'attribution' => "<a href='https://www.mapbox.com/about/maps/' target='_blank'>© Mapbox © OpenStreetMap</a> <a class='mapbox-improve-map' href='https://www.mapbox.com/map-feedback/' target='_blank'>" . __('Improve this map', 'mappress-google-maps-for-wordpress') . "</a>",
|
439 |
+
'fresh' => true, // Fresh = true in order to provide updated studio styles
|
440 |
+
'url' => "https://api.mapbox.com/styles/v1/{user}/{id}/tiles/256/{z}/{x}/{y}{r}?access_token={accessToken}&fresh={fresh}",
|
441 |
+
'zoomOffset' => 0
|
442 |
+
),
|
443 |
+
'osm' => array(
|
444 |
+
'attribution' => 'Map data (c)<a href="https://openstreetmap.org">OpenStreetMap</a>',
|
445 |
+
'url' => 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png'
|
446 |
+
)
|
447 |
+
);
|
448 |
+
$l10n['options']['providers'] = apply_filters('mappress_tile_providers', $providers);
|
449 |
|
450 |
+
// Baselayers
|
451 |
+
$baselayers = array();
|
452 |
+
if (self::get_api_keys()->mapbox) {
|
453 |
+
$baselayers = array(
|
454 |
+
array('provider' => 'mapbox', 'user' => 'mapbox', 'id' => 'streets-v10', 'name' => 'streets', 'label' => __('Streets', 'mappress-google-maps-for-wordpress')),
|
455 |
+
array('provider' => 'mapbox', 'user' => 'mapbox', 'id' => 'outdoors-v10', 'name' => 'outdoors', 'label' => __('Outdoors', 'mappress-google-maps-for-wordpress')),
|
456 |
+
array('provider' => 'mapbox', 'user' => 'mapbox', 'id' => 'light-v9', 'name' => 'light', 'label' => __('Light', 'mappress-google-maps-for-wordpress')),
|
457 |
+
array('provider' => 'mapbox', 'user' => 'mapbox', 'id' => 'dark-v9', 'name' => 'dark', 'label' => __('Dark', 'mappress-google-maps-for-wordpress')),
|
458 |
+
array('provider' => 'mapbox', 'user' => 'mapbox', 'id' => 'satellite-v9', 'name' => 'satellite', 'label' => __('Satellite', 'mappress-google-maps-for-wordpress')),
|
459 |
+
array('provider' => 'mapbox', 'user' => 'mapbox', 'id' => 'satellite-streets-v10', 'name' => 'satellite-streets', 'label' => __('Satellite Streets', 'mappress-google-maps-for-wordpress'))
|
460 |
+
);
|
461 |
|
462 |
+
// Mapbox studio styles (remove base url and everything after '.html', remainder is user/id)
|
463 |
+
foreach(self::$options->mapboxStyles as $name => $url) {
|
464 |
+
$url = strstr($url, '.html', true);
|
465 |
+
$url = str_ireplace('https://api.mapbox.com/styles/v1/', '', $url);
|
466 |
+
$parts = explode('/', $url);
|
467 |
+
if (count($parts) == 2)
|
468 |
+
$baselayers[] = array('provider' => 'mapbox', 'user' => $parts[0], 'id' => $parts[1], 'name' => $name, 'label' => $name);
|
469 |
+
}
|
470 |
+
} else {
|
471 |
+
$baselayers = array(
|
472 |
+
array('provider' => 'osm', 'id' => 'osm', 'name' => 'osm', 'label' => __('Streets', 'mappress-google-maps-for-wordpress'))
|
473 |
+
);
|
474 |
+
}
|
475 |
|
476 |
+
// User-defined baselayers
|
477 |
+
$l10n['options']['baseLayers'] = apply_filters('mappress_baselayers', $baselayers);
|
478 |
+
} else {
|
479 |
+
// Google wizard styles
|
480 |
+
$l10n['options']['styles'] = array();
|
481 |
+
foreach(self::$options->styles as $id => &$style)
|
482 |
+
$l10n['options']['styles'][$id] = json_decode($style);
|
483 |
}
|
484 |
|
485 |
+
// Global settings
|
486 |
+
$options = array('autoupdate', 'country', 'defaultIcon', 'directions', 'directionsServer', 'engine', 'iconScale', 'iwType', 'mashupBody', 'mashupClick', 'poiZoom', 'radius', 'search', 'size', 'sizes', 'style', 'tiles');
|
487 |
+
foreach($options as $option)
|
488 |
+
$l10n['options'][$option] = self::$options->$option;
|
|
|
|
|
|
|
|
|
|
|
|
|
489 |
|
490 |
+
return $l10n;
|
|
|
491 |
}
|
492 |
|
493 |
+
static function load($type = null) {
|
494 |
+
if (self::$loaded)
|
495 |
+
return;
|
496 |
+
else
|
497 |
+
self::$loaded = true;
|
498 |
|
499 |
+
$dev = self::is_dev();
|
500 |
+
$footer = self::is_footer();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
501 |
|
502 |
+
// Directories
|
503 |
+
$min = ($dev) ? "" : ".min";
|
504 |
+
$js = ($dev) ? "http://localhost/$dev/wp-content/plugins/mappress-google-maps-for-wordpress/src" : self::$baseurl . '/js';
|
|
|
|
|
|
|
|
|
|
|
|
|
505 |
|
506 |
+
if (self::$options->engine == 'leaflet') {
|
507 |
+
wp_enqueue_script("mappress-leaflet", $js . "/leaflet/leaflet.js", null, '1.3.1', $footer);
|
508 |
+
wp_enqueue_script("mappress-omnivore", $js . "/leaflet/leaflet-omnivore.min.js", null, '0.3.1', $footer);
|
509 |
+
wp_enqueue_script("mappress-algolia-places", $js . "/algolia/placesAutocompleteDataset.min.js", null, '1.7.2', $footer);
|
510 |
+
wp_enqueue_script("mappress-algolia-search", $js . "/algolia/algoliasearchLite.min.js", null, '3', $footer);
|
511 |
|
512 |
+
} else {
|
513 |
+
$language = self::get_language();
|
514 |
+
$language = ($language) ? "&language=$language" : '';
|
515 |
+
$apiversion = ($dev) ? 'v=3.exp' : 'v=3';
|
516 |
+
$apikey = "&key=" . self::get_api_keys()->browser;
|
517 |
+
$libs = ($type == 'editor') ? '&libraries=places,drawing' : '&libraries=places';
|
518 |
+
wp_enqueue_script("mappress-gmaps", "https://maps.googleapis.com/maps/api/js?{$apiversion}{$language}{$libs}{$apikey}", null, null, $footer);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
519 |
}
|
520 |
|
521 |
+
if ($type == 'editor')
|
522 |
+
wp_enqueue_script('mappress_editor', $js . "/mappress_editor$min.js", array('jquery', 'jquery-ui-position', 'jquery-ui-sortable'), self::$version, $footer);
|
523 |
|
524 |
+
if ($type == 'settings')
|
525 |
+
wp_enqueue_script('mappress_settings', $js . "/mappress_settings$min.js", array('postbox', 'jquery', 'jquery-ui-position', 'jquery-ui-sortable'), self::$version, $footer);
|
|
|
|
|
526 |
|
527 |
+
// Autocomplete
|
528 |
+
wp_enqueue_script('mappress-algolia-autocomplete', $js . "/algolia/autocomplete.jquery.min.js", array('jquery'), self::$version, $footer);
|
|
|
529 |
|
530 |
+
// mappress.js includes loader, so must come after editor
|
531 |
+
wp_enqueue_script('mappress', $js . "/mappress$min.js", array('underscore', 'jquery'), self::$version, $footer);
|
|
|
|
|
532 |
|
533 |
+
if ($dev) {
|
534 |
+
foreach(array('directions', 'geocoding', 'icons', 'infobox', 'lib', 'places', 'poi', 'widgets', 'loader') as $script)
|
535 |
+
wp_enqueue_script($script, $js . "/mappress_{$script}.js", null, self::$version, $footer);
|
536 |
}
|
537 |
|
538 |
+
wp_localize_script('mappress', 'mappl10n', self::l10n());
|
|
|
539 |
|
540 |
+
// Templates
|
541 |
+
if ($type != 'editor')
|
542 |
+
Mappress_Template::load($footer);
|
543 |
+
}
|
|
|
|
|
|
|
544 |
|
545 |
+
static function plugin_action_links($links, $file) {
|
546 |
+
$settings_link = "<a href='" . admin_url("admin.php?page=mappress") . "'>" . __('Settings', 'mappress-google-maps-for-wordpress') . "</a>";
|
547 |
+
array_unshift( $links, $settings_link );
|
548 |
+
return $links;
|
|
|
|
|
549 |
}
|
550 |
|
551 |
+
static function plugins_loaded() {
|
552 |
+
load_plugin_textdomain('mappress-google-maps-for-wordpress', false, dirname(self::$basename) . '/languages');
|
553 |
+
}
|
554 |
+
|
555 |
+
static function script($script, $ready = false) {
|
556 |
+
$html = "\r\n<script type='text/javascript'>\r\n";
|
557 |
+
$html .= ($ready) ? "jQuery(function() { $script });" : $script;
|
558 |
+
$html .= "\r\n</script>";
|
559 |
+
return $html;
|
560 |
+
}
|
561 |
+
|
562 |
+
static function script_template($template, $id = null) {
|
563 |
+
$id = ($id) ? "id='mapp-tmpl-{$id}'" : '';
|
564 |
+
$html = "\r\n<script type='text/template' $id>\r\n{$template}\r\n</script>\r\n";
|
565 |
+
return $html;
|
566 |
}
|
567 |
|
568 |
/**
|
605 |
$atts['center'] = ($map && $map->pois) ? $map->pois[0]->point['lat'] . ',' . $map->pois[0]->point['lng'] : null;
|
606 |
}
|
607 |
|
608 |
+
return $atts;
|
609 |
+
}
|
610 |
+
|
611 |
+
/**
|
612 |
+
* Switch WPML language during AJAX calls
|
613 |
+
*/
|
614 |
+
static function set_language() {
|
615 |
+
global $sitepress;
|
616 |
+
if ($sitepress && method_exists($sitepress, 'switch_lang')) {
|
617 |
+
$language = self::get_language();
|
618 |
+
$sitepress->switch_lang($language);
|
619 |
+
}
|
620 |
+
}
|
621 |
+
|
622 |
+
/**
|
623 |
+
* Map a shortcode in a post.
|
624 |
+
*
|
625 |
+
* @param mixed $atts - shortcode attributes
|
626 |
+
*/
|
627 |
+
static function shortcode_map($atts='') {
|
628 |
+
global $post;
|
629 |
+
|
630 |
+
// No feeds
|
631 |
+
if (is_feed())
|
632 |
+
return;
|
633 |
+
|
634 |
+
// Try to protect against calls to do_shortcode() in the post editor...
|
635 |
+
if (self::is_admin())
|
636 |
+
return;
|
637 |
+
|
638 |
+
$atts = self::scrub_atts($atts);
|
639 |
+
|
640 |
+
// Determine what to show
|
641 |
+
$mapid = (isset($atts['mapid'])) ? $atts['mapid'] : null;
|
642 |
+
|
643 |
+
if ($mapid) {
|
644 |
+
// Show map by mapid
|
645 |
+
$map = Mappress_Map::get($mapid);
|
646 |
+
} else {
|
647 |
+
// Get the first map attached to the post
|
648 |
+
$maps = Mappress_Map::get_list($post->ID);
|
649 |
+
$map = (isset ($maps[0]) ? $maps[0] : false);
|
650 |
+
}
|
651 |
+
|
652 |
+
if (!$map)
|
653 |
+
return;
|
654 |
+
|
655 |
+
return $map->display($atts);
|
656 |
+
}
|
657 |
+
|
658 |
+
/**
|
659 |
+
* Process the mashup shortcode
|
660 |
+
*
|
661 |
+
*/
|
662 |
+
static function shortcode_mashup($atts='') {
|
663 |
+
// No feeds
|
664 |
+
if (is_feed())
|
665 |
+
return;
|
666 |
+
|
667 |
+
// Prevent do_shortcode() in the post editor, but allow for AJAX calls from other plugins (which run as admin)
|
668 |
+
if (self::is_admin())
|
669 |
+
return;
|
670 |
+
|
671 |
+
$atts = self::scrub_atts($atts);
|
672 |
+
return self::get_mashup($atts);
|
673 |
}
|
674 |
|
675 |
static function string_to_boolean($data) {
|
687 |
return $data;
|
688 |
}
|
689 |
|
690 |
+
/**
|
691 |
+
* Automatic map display.
|
692 |
+
* If set, the [mappress] shortcode will be prepended/appended to the post body, once for each map
|
693 |
+
* The shortcode is used so it can be filtered - for example WordPress will remove it in excerpts by default.
|
694 |
+
*
|
695 |
+
* @param mixed $content
|
696 |
+
*/
|
697 |
+
static function the_content($content="") {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
698 |
global $post;
|
699 |
+
global $wp_current_filter;
|
700 |
|
701 |
+
$autodisplay = self::$options->autodisplay;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
702 |
|
703 |
+
// No auto display
|
704 |
+
if (!$autodisplay || $autodisplay == 'none')
|
705 |
+
return $content;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
706 |
|
707 |
+
// Check if in the loop, to prevent conflicts with JetPack - see http://wordpress.org/support/topic/easy-adsense-lite-and-jetpack
|
708 |
+
if (!in_the_loop())
|
709 |
+
return $content;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
710 |
|
711 |
+
// Don't add the shortcode for feeds or admin screens
|
712 |
+
if (is_feed() || self::is_admin())
|
713 |
+
return $content;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
714 |
|
715 |
+
// No shortcode if post is password protected
|
716 |
+
if (post_password_required())
|
717 |
+
return $content;
|
|
|
|
|
|
|
|
|
|
|
718 |
|
719 |
+
// If this is an excerpt don't attempt to add the map to it
|
720 |
+
if (in_array('get_the_excerpt', $wp_current_filter))
|
721 |
+
return $content;
|
|
|
722 |
|
723 |
+
// Don't auto display if the post already contains a MapPress shortcode
|
724 |
+
if (stristr($content, '[mappress') !== false || stristr($content, '[mashup') !== false)
|
725 |
+
return $content;
|
726 |
|
727 |
+
// Get maps associated with post
|
728 |
+
$mapids = Mappress_Map::get_list($post->ID, 'ids');
|
729 |
+
if (empty($mapids))
|
730 |
+
return $content;
|
|
|
|
|
|
|
|
|
731 |
|
732 |
+
// Add the shortcode once for each map
|
733 |
+
$shortcodes = "";
|
734 |
+
foreach($mapids as $mapid)
|
735 |
+
$shortcodes .= '<p>[mappress mapid="' . $mapid . '"]</p>';
|
736 |
|
737 |
+
if ($autodisplay == 'top')
|
738 |
+
return $shortcodes . $content;
|
739 |
else
|
740 |
+
return $content . $shortcodes;
|
|
|
|
|
741 |
}
|
742 |
|
743 |
/**
|
744 |
+
* Scripts & styles for frontend
|
745 |
+
* CSS is loaded from: child theme, theme, or plugin directory
|
746 |
*/
|
747 |
+
static function wp_enqueue_scripts() {
|
748 |
+
// Leaflet CSS
|
749 |
+
if (self::$options->engine == 'leaflet')
|
750 |
+
wp_enqueue_style('mappress-leaflet', self::$baseurl . '/css/leaflet/leaflet.css', null, '1.3.1');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
751 |
|
752 |
+
// Mappress CSS from plugin directory
|
753 |
+
wp_enqueue_style('mappress', self::$baseurl . '/css/mappress.css', null, self::$version);
|
|
|
|
|
|
|
|
|
754 |
|
755 |
+
// Mappress CSS from theme directory
|
756 |
+
if ( @file_exists( get_stylesheet_directory() . '/mappress.css' ) )
|
757 |
+
$file = get_stylesheet_directory_uri() . '/mappress.css';
|
758 |
+
elseif ( @file_exists( get_template_directory() . '/mappress.css' ) )
|
759 |
+
$file = get_template_directory_uri() . '/mappress.css';
|
760 |
|
761 |
+
if (isset($file))
|
762 |
+
wp_enqueue_style('mappress-custom', $file, array('mappress'), self::$version);
|
|
|
763 |
|
764 |
+
// Load scripts in header
|
765 |
+
if (!self::is_footer())
|
766 |
+
self::load();
|
767 |
}
|
768 |
|
769 |
+
static function wp_head() {
|
770 |
+
echo "\r\n<!-- MapPress Easy Google Maps " . __('Version', 'mappress-google-maps-for-wordpress') . ':' . self::$version . " (http://www.mappresspro.com/mappress) -->\r\n";
|
771 |
+
echo "<script type='text/javascript'>mapp = window.mapp || {}; mapp.data = [];</script>\r\n";
|
|
|
772 |
}
|
773 |
+
}
|
774 |
|
775 |
$mappress = new Mappress();
|
776 |
?>
|
mappress_map.php
CHANGED
@@ -49,7 +49,6 @@ class Mappress_Map extends Mappress_Obj {
|
|
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_delete', array(__CLASS__, 'ajax_delete'));
|
@@ -86,9 +85,9 @@ class Mappress_Map extends Mappress_Obj {
|
|
86 |
$wpdb->show_errors(false);
|
87 |
}
|
88 |
|
89 |
-
static function
|
90 |
if ($editor_id == 'content') {
|
91 |
-
echo '<button type="button" class="button
|
92 |
echo '<span class="wp-media-buttons-icon dashicons dashicons-location"></span> ' . __('MapPress', 'mappress-google-maps-for-wordpress') . '</button>';
|
93 |
}
|
94 |
}
|
@@ -106,33 +105,29 @@ class Mappress_Map extends Mappress_Obj {
|
|
106 |
|
107 |
static function find($args) {
|
108 |
global $wpdb;
|
109 |
-
$posts_table = $wpdb->prefix . 'mappress_posts';
|
110 |
-
$args = (object) wp_parse_args($args, array('type' => 'post', 'output' => 'names', 'page' => 1, 'page_size' => 20, 'postid' => null, 'search' => null));
|
111 |
-
|
112 |
-
$where = array();
|
113 |
-
if ($args->type == 'post')
|
114 |
-
$where[] = $wpdb->prepare("postid=%d", $args->postid);
|
115 |
-
|
116 |
-
// Note: $wpdb->prepare uses tokens on % like queries
|
117 |
-
if ($args->type == 'all' && $args->search)
|
118 |
-
$where[] = $wpdb->prepare("$wpdb->posts.post_title LIKE %s", '%' . $args->search . '%');
|
119 |
|
120 |
-
$
|
121 |
-
|
122 |
-
//$limit = sprintf(" LIMIT %d, %d", ($args->page - 1) * $args->page_size, $args->page_size);
|
123 |
-
$limit = '';
|
124 |
-
$sql = "SELECT SQL_CALC_FOUND_ROWS $posts_table.mapid FROM $posts_table INNER JOIN $wpdb->posts ON ($wpdb->posts.ID = $posts_table.postid) $where $limit";
|
125 |
|
|
|
|
|
|
|
|
|
|
|
126 |
$results = $wpdb->get_results($sql);
|
127 |
-
$found = $wpdb->get_var('SELECT FOUND_ROWS()');
|
128 |
|
129 |
$items = array();
|
130 |
-
foreach($results as $result)
|
131 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
132 |
|
133 |
-
|
134 |
-
$page = (int) min($args->page, $pages);
|
135 |
-
return (object) array('items' => $items, 'page' => $page, 'pages' => $pages);
|
136 |
}
|
137 |
|
138 |
static function ajax_find() {
|
@@ -142,7 +137,7 @@ class Mappress_Map extends Mappress_Obj {
|
|
142 |
/**
|
143 |
* Get a map. Output is 'raw' or 'object'
|
144 |
*/
|
145 |
-
static function get($mapid
|
146 |
global $wpdb;
|
147 |
$maps_table = $wpdb->prefix . 'mappress_maps';
|
148 |
$posts_table = $wpdb->prefix . 'mappress_posts';
|
@@ -157,22 +152,7 @@ class Mappress_Map extends Mappress_Obj {
|
|
157 |
$mapdata = unserialize($result->obj);
|
158 |
$mapdata->postid = $result->postid;
|
159 |
$mapdata->mapid = $result->mapid;
|
160 |
-
|
161 |
-
// Return an object
|
162 |
-
if ($output == 'object')
|
163 |
-
return new Mappress_Map($mapdata);
|
164 |
-
|
165 |
-
// Return list item (with post data)
|
166 |
-
if ($output == 'list') {
|
167 |
-
$post = get_post($result->postid);
|
168 |
-
return array(
|
169 |
-
'mapid' => $mapdata->mapid,
|
170 |
-
'map_title' => $mapdata->title,
|
171 |
-
'postid' => $mapdata->postid,
|
172 |
-
'post_title' => ($post) ? $post->post_title : null,
|
173 |
-
'can_edit' => current_user_can('edit_post', $mapdata->postid)
|
174 |
-
);
|
175 |
-
}
|
176 |
}
|
177 |
|
178 |
static function ajax_get() {
|
@@ -223,7 +203,6 @@ class Mappress_Map extends Mappress_Obj {
|
|
223 |
foreach($this->pois as &$poi)
|
224 |
$poi->body = wpautop($poi->body);
|
225 |
|
226 |
-
|
227 |
$map = serialize($this);
|
228 |
|
229 |
// Update map
|
@@ -267,8 +246,8 @@ class Mappress_Map extends Mappress_Obj {
|
|
267 |
|
268 |
do_action('mappress_map_save', $mapid); // Use for your own developments
|
269 |
|
270 |
-
//
|
271 |
-
Mappress::ajax_response('OK',
|
272 |
}
|
273 |
|
274 |
/**
|
49 |
static function register() {
|
50 |
global $wpdb;
|
51 |
|
|
|
52 |
add_action('deleted_post', array(__CLASS__, 'delete_post_map'));
|
53 |
|
54 |
add_action('wp_ajax_mapp_delete', array(__CLASS__, 'ajax_delete'));
|
85 |
$wpdb->show_errors(false);
|
86 |
}
|
87 |
|
88 |
+
static function media_buttons($editor_id) {
|
89 |
if ($editor_id == 'content') {
|
90 |
+
echo '<button type="button" class="button mapp-media-button">';
|
91 |
echo '<span class="wp-media-buttons-icon dashicons dashicons-location"></span> ' . __('MapPress', 'mappress-google-maps-for-wordpress') . '</button>';
|
92 |
}
|
93 |
}
|
105 |
|
106 |
static function find($args) {
|
107 |
global $wpdb;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
108 |
|
109 |
+
$maps_table = $wpdb->prefix . 'mappress_maps';
|
110 |
+
$posts_table = $wpdb->prefix . 'mappress_posts';
|
|
|
|
|
|
|
111 |
|
112 |
+
$sql = "SELECT SQL_CALC_FOUND_ROWS $maps_table.mapid, $maps_table.obj, $posts_table.postid, $wpdb->posts.post_title "
|
113 |
+
. " FROM $maps_table "
|
114 |
+
. " INNER JOIN $posts_table ON ($posts_table.mapid = $maps_table.mapid)"
|
115 |
+
. " INNER JOIN $wpdb->posts ON ($wpdb->posts.ID = $posts_table.postid)"
|
116 |
+
;
|
117 |
$results = $wpdb->get_results($sql);
|
|
|
118 |
|
119 |
$items = array();
|
120 |
+
foreach($results as $result) {
|
121 |
+
$mapdata = unserialize($result->obj);
|
122 |
+
$items[] = array(
|
123 |
+
'mapid' => $result->mapid,
|
124 |
+
'map_title' => $mapdata->title,
|
125 |
+
'postid' => $result->postid,
|
126 |
+
'post_title' => $result->post_title
|
127 |
+
);
|
128 |
+
}
|
129 |
|
130 |
+
return $items;
|
|
|
|
|
131 |
}
|
132 |
|
133 |
static function ajax_find() {
|
137 |
/**
|
138 |
* Get a map. Output is 'raw' or 'object'
|
139 |
*/
|
140 |
+
static function get($mapid) {
|
141 |
global $wpdb;
|
142 |
$maps_table = $wpdb->prefix . 'mappress_maps';
|
143 |
$posts_table = $wpdb->prefix . 'mappress_posts';
|
152 |
$mapdata = unserialize($result->obj);
|
153 |
$mapdata->postid = $result->postid;
|
154 |
$mapdata->mapid = $result->mapid;
|
155 |
+
return new Mappress_Map($mapdata);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
156 |
}
|
157 |
|
158 |
static function ajax_get() {
|
203 |
foreach($this->pois as &$poi)
|
204 |
$poi->body = wpautop($poi->body);
|
205 |
|
|
|
206 |
$map = serialize($this);
|
207 |
|
208 |
// Update map
|
246 |
|
247 |
do_action('mappress_map_save', $mapid); // Use for your own developments
|
248 |
|
249 |
+
// Return saved mapid
|
250 |
+
Mappress::ajax_response('OK', array('mapid' => $mapid));
|
251 |
}
|
252 |
|
253 |
/**
|
readme.txt
CHANGED
@@ -3,8 +3,8 @@ Contributors: chrisvrichardson
|
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=4339298
|
4 |
Tags: leaflet, openstreetmap, osm, mapbox, map box, google maps,google,map,maps,easy,poi,mapping,mapper,gps,lat,lon,latitude,longitude,geocoder,geocoding,georss,geo rss,geo,v3,marker,mashup,mash,api,v3,buddypress,mashup,geo,wp-geo,geo mashup,simplemap,simple,wpml
|
5 |
Requires at least: 4.5
|
6 |
-
Tested up to:
|
7 |
-
Stable tag: 2.
|
8 |
|
9 |
== Description ==
|
10 |
MapPress adds beautiful, interactive Google or Leaflet maps to WordPress.
|
@@ -86,8 +86,18 @@ Please see the plugin documentation pages:
|
|
86 |
|
87 |
== Changelog ==
|
88 |
|
89 |
-
= 2.
|
90 |
-
* Fixed:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
91 |
* Fixed: mashups not displaying on some servers; updated gzip detection
|
92 |
* Changed: internal mashup query and layers control changes
|
93 |
|
3 |
Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=4339298
|
4 |
Tags: leaflet, openstreetmap, osm, mapbox, map box, google maps,google,map,maps,easy,poi,mapping,mapper,gps,lat,lon,latitude,longitude,geocoder,geocoding,georss,geo rss,geo,v3,marker,mashup,mash,api,v3,buddypress,mashup,geo,wp-geo,geo mashup,simplemap,simple,wpml
|
5 |
Requires at least: 4.5
|
6 |
+
Tested up to: 5.1
|
7 |
+
Stable tag: 2.52.1
|
8 |
|
9 |
== Description ==
|
10 |
MapPress adds beautiful, interactive Google or Leaflet maps to WordPress.
|
86 |
|
87 |
== Changelog ==
|
88 |
|
89 |
+
= 2.52.1 =
|
90 |
+
* Fixed: ajax error when opening map for edit
|
91 |
+
|
92 |
+
= 2.52 =
|
93 |
+
* Fixed: prevent enter press in map list search from publishing post
|
94 |
+
* Changed: updated map editor search/filter function
|
95 |
+
* Changed: internal function Mappress::ssl() renamed Mappress::is_ssl() - please update any custom directions.php or search.php to use the new name
|
96 |
+
|
97 |
+
= 2.51 =
|
98 |
+
* Added: mashups with a center but no zoom will perform a radius search
|
99 |
+
* Fixed: KML markers showing POI text instead of text from KML file
|
100 |
+
* Fixed: mashup initial center and zoom have been improved
|
101 |
* Fixed: mashups not displaying on some servers; updated gzip detection
|
102 |
* Changed: internal mashup query and layers control changes
|
103 |
|
templates/map-directions.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<div class='mapp-directions'>
|
2 |
<span class='mapp-close' data-mapp-action='dir-cancel'></span>
|
3 |
-
<?php if (Mappress::
|
4 |
<a href='#' class='mapp-myloc' data-mapp-action='dir-myloc'><?php _e('My location', 'mappress-google-maps-for-wordpress'); ?></a>
|
5 |
<?php endif; ?>
|
6 |
<div>
|
1 |
<div class='mapp-directions'>
|
2 |
<span class='mapp-close' data-mapp-action='dir-cancel'></span>
|
3 |
+
<?php if (Mappress::is_ssl()) : ?>
|
4 |
<a href='#' class='mapp-myloc' data-mapp-action='dir-myloc'><?php _e('My location', 'mappress-google-maps-for-wordpress'); ?></a>
|
5 |
<?php endif; ?>
|
6 |
<div>
|
templates/map-search.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<div class='mapp-search'>
|
2 |
<input class='mapp-places' type='text' placeholder='<?php _e('Search', 'mappress-google-maps-for-wordpress'); ?>'/>
|
3 |
-
<?php if (Mappress::
|
4 |
<div class='mapp-geolocate' data-mapp-action='geolocate' title='<?php _e('Your Location', 'mappress-google-maps-for-wordpress');?>'></div>
|
5 |
<?php endif; ?>
|
6 |
</div>
|
1 |
<div class='mapp-search'>
|
2 |
<input class='mapp-places' type='text' placeholder='<?php _e('Search', 'mappress-google-maps-for-wordpress'); ?>'/>
|
3 |
+
<?php if (Mappress::is_ssl()) : ?>
|
4 |
<div class='mapp-geolocate' data-mapp-action='geolocate' title='<?php _e('Your Location', 'mappress-google-maps-for-wordpress');?>'></div>
|
5 |
<?php endif; ?>
|
6 |
</div>
|