Pro v3.0 supporting leaflet.js v1.0.3, GoogleMutant, Polylang, pretty permalinks & lots more is available

Posted on 25 March, 2017

Category:

Pro-Version Releases
Attention: this is not the changelog for the latest stable version 4.28 (see related release notes)

After 3 months of development, 3 beta version and 1 release candidate we are proud to announce the availability of Maps Marker Pro v3.0.

An update to the latest version is – as always – highly recommended. For more details about this release please see below.


Let us know what you think about this new release by submitting a review or leaving a comment below!

If you want to keep up to date with the latest Maps Marker Pro development, please follow @MapsMarker on twitter (= most current updates), on FacebookGoogle+ or subscribe to news via RSS or via RSS/email.

We would also like to invite you to join our affiliate program which offers commissions up to 50%. If you are interested in becoming a reseller, please visit https://www.mapsmarker.com/reseller


Now let´s get to the highlights of pro v3.0:

We are happy to welcome globetrotting engineer Thorsten who joins the Maps Marker Pro team!

Globetrotting engineer Thorsten reinforces our ranks, drawing from his own experience as a user: Thorsten uses Maps Marker Pro to document his coast-to-coast road trip through Canada on his travel blog.

upgraded leaflet.js from v0.7.7 to v1.0.3

Leaflet.js can be referred to as “the engine of Maps Marker Pro” and has been upgraded vom v0.7.7 to v1.0.3, resulting in for higher performance and usability. 

Please see the blog post on leafletjs.com and the full changelog for more details.

Beta (opt-in): significantly improved performance for Google basemaps by using the leaflet plugin GoogleMutant

Actually we also planned to replace the (abandoned) Google Maps leaflet implementation by shramov with the much more performant GoogleMutant leaflet plugin by Iván Sánchez. Anyway as one blocker issue is still open (#27 – feel free to help 😉 ) and as we did not want to delay Maps Marker Pro v3.0 any longer, we decided not to change the default implementation method yet.

You can manually test the GoogleMutant plugin by changing the related option at Settings / Basemaps / “Google Maps JavaScript API “:

Once #27 is fixed, this option will be updated for all users with a future release of Maps Marker Pro.

automatically switched to Algolia Places as default geocoding provider if Mapzen Search without API key is used  free registration is still recommended)

Unfortunately our recommended geocoding provider Mapzen Search will change its policy by April 2017, making (free) API keys obligatory to use their geocoding service. 

So in case you have not registered for an API key, your geocoding provider will automatically switch to Algolia Places with Maps Marker Pro v3.0 and Photon@MapsMarker as fallback geocoding provider.

As Mapzen is powered by opendata and also includes additional data from sources like openaddresses.io in their geocoding results, we still recommend to register a free Mapzen Search API key – the related tutorial can be found here.

add pre-loading for map tiles beyond the edge of the visible map to prevent showing background behind tile images when panning a map

With v3.0 we also integrated the leaflet plugin Leaflet.EdgeBuffer to support pre-loading beyond the edge of the visible map. As a result, the black background underneath the tiles is less likely to be seen, resulting in a better user experience while panning maps:

For a live example please see the comparision at http://www.tolon.co.uk/Leaflet.EdgeBuffer/comparison.html

By default, 2 tiles are pre-loaded with Maps Marker Pro v3.0 – anyway you can change this value by changing the new setting “edgeBufferTiles” at Settings / Map Defaults / Global basemap settings:

Polylang translation support for multilingual maps

With v2.9 we added support for multi-lingual maps using WPML. Due to requests by many users we also added support for Polylang translation plugin with v3.0, giving you more choice in making your maps available in different languages. See https://www.mapsmarker.com/multilingual for more details.

Thanks a lot Thorsten for implementing this feature!

support for tooltips to display the marker name as small text on top of marker icons

The marker name now gets displayed as small text on top of marker icons when hovering the marker icon:

As the native Leaflet tooltips feature added with leaflet.js 1.0 is being used now instead of HTML title tags, you can customize the tooltip behaviour according to your needs at Settings / Map Defaults / Marker tooltip settings:

new option to open popups on mouse hover instead of mouse click

With v3.0 it is now also possible to open popups on mouse hover instead of mouse click. This option is disabled by default and can be enabled at Settings / Map Defaults / Default values for marker popups:

Pretty permalinks with customizable slug for fullscreen maps and APIs 

With v3.0 we also removed the need to directly access plugin files for e.g. fullscreen map or API links, By default the slug /maps/ is used now and can be changed via Settings / Misc / “Permalinks slug”:

Example link to fullscreen marker map ID 1 with pretty permalinks: https://www.mapsmarker.com/maps/fullscreen/marker/1/ 

If you directly linked fullscreen maps or other API links (like https://www.mapsmarker.com/wp-content/plugin/leaflet-maps-marker-pro/leaflet-fullscreen.php?marker=1) you do not need to change anything – users will automatically get forwarded to the new pretty permalink.

AMP support

v3.0 adds basic AMP support, showing a placeholer image for map with link to fullscreen view on AMP enabled pages – thanks a lot Sebastian!

For v3.1 we will check if we can enhance this integration by showing native maps on AMP enabled pages.

Other changes and optimizations

  • ~15% performance improvement for API calls by eliminating unneeded WordPress initializations via wp-load.php (thx Thorsten!)
  • new functions for MMPAPI: list_markers(), list_layers(), get_layers($layer_ids) – full docs (thx a lot Thorsten!)
  • new option for disabling WPML/Polylang integration
  • enhanced compatibility check for WP Rocket (which can cause maps to break if Maps Marker Pro Javascripts are not excluded)
  • add support for PHP APCu caching for sessions used in MMP_Geocoding class
  • possibility to sort “list all markers” and “list all layers” tables by location (thx Paul!)
  • compatibility check for “Async Javascript” plugin (thx Adam!)
  • create user sessions for geocoding only if MMP_Geocoding class is used 
  • optimized SQL for loading markers on (single) layer edit pages (thx Thorsten!) 
  • updated Leaflet.fullscreen markercluster codebase to v1.0.2 (thx jfirebaugh!) 
  • improved performance on marker & layer edit pages by using HTML5 datetime instead of timepicker.js library+dependencies (thx Thorsten!)
  • improved option “Deregister Google Maps API scripts enqueued by third parties” to prevent re-enqueuing of scripts by also deregistering them
  • improved performance for plugin updater (run backend check for access to plugin updates only if an update is available – thx Thorsten!)
  • removed integrated WPML installer to improve backend performance and as issues with NextGen Gallery have been reported
  • increased max chars for filter controlbox from 4000 to 65535 to prevent broken controlboxes (thx Michelle!)
  • always use https for loading bing maps tiles
  • importer: do not show invalid value-warnings for createdon & updatedon rows if audit option is off & related source columns are empty
  • use demo map image instead of Maps Marker Pro logo as placeholder image for maps in RSS feeds
  • changed KML query var name to markername to avoid WP conflicts

Bugfixes

  • WPML performance issues on sites with 1000+ translated map strings (thx Thorsten!)
  • broken settings navigation due to enqueued bootstrap files from 3rd party plugins (thx Bob!) 
  • linked to WPML string translation page on layer edit pages instead to https://mapsmarker.com/multilingual even if WPML was not available (thx Thorsten!) 
  • add workaround if marker icons are not displayed on backend on marker edit & tools page (thx Ron!) 
  • MMPAPI: fix issue for layer ID selection and bounding box search error message (thx Thorsten!) 
  • conflict with iThemes Security Pro plugin & htaccess configs preventing direct access to Maps Marker Pro API endpoints (thx David!) 
  • WP Session entries in wp_options table were not deleted via WordPress cron job (thx a lot Thorsten!)
  • fix PHP APC cache detection for importer and MMP_Geocoding class 
  • marker export: search in layers via select2 library was broken
  • PHP warning after settings were reset to default settings (thx Thorsten!) 
  • list of markers below layer maps: marker count could be wrong under certain circumstances
  • divider in zoom control between + and – buttons was missing since v2.9 
  • location search field overlapping GPX media upload overlay caused by too high z-value 
  • sort order for “list all layers” page was broken if sort criteria was selected (thx Thorsten!) 
  • marker edit page could be broken due to undefined variable warnings on specific PHP configurations only (thx Nadine!) 
  • directions link was added to popuptext on marker edit page (during preview only) even if setting was disabled 
  • Javascript error when using paging in list of markers below layer maps on layer edit pages 
  • default marker popuptext properties were not considered if triggered via geocoding 
  • JSON error when using the WebAPI/search feature (thx Elizabeth!)
  • distinct marker zoom levels when open popups via list of markers links were not used if clustering was disabled
  • opening popups via list of markers could break map center if clustering was enabled (thx Damian!)
  • undefined javascript warning when clicking on marker name in list of markers if clustering was disabled
  • layer center marker on backend was not shown anymore after clusters got loaded
  • sort order for list of markers was not restored after clearing search field (thx Damian & Thorsten!)
  • using “change layer ID”-tool could result in wrong layer assignments (thx Patricia & Thorsten!)
  • CSS conflicts with selected themes (resulting in borders around Google Maps tile images)
  • control characters like tabs in marker name can break validity of GeoJSON array for list of markers (thx Stefan!)
  • broken list of markers when search term yields no results (thx Damian & Thorsten!)
  • license protection was too strict for localhost installations were unlimited testing is allowed (thx Daniel!)
  • fixed geolocation being lost when using list of markers search field (thx Damian & Thorsten!)

Security fixes

A few weeks ago we launched a private hackerone security bug bounty program, which resulted in the following security reports which were fixed with this release:

  • Low impact (exploitable for admins only): Reflected XSS vulnerability on license settings page (thx to Deepanker Chawla via hackerone) 
  • Low impact (exploitable for backend map editors only): Stored XSS vulnerability for location and marker/layer name on “list all layers”/ “list all markers” page (thx to Deepanker Chawla via hackerone)
  • Low impact (exploitable for backend map editors only): Reflected XSS vulnerability on marker edit page (thx to Deepanker Chawla via hackerone) 
  • Low impact (exploitable for admins only): DOM based XSS vulnerability on settings page (thx to Deepanker Chawla via hackerone) 

We plan to go public with our hackerone security bug bounty program in the near future in case you are interested in participating. Follow our blog for more details.

Known issues

Geolocation feature does not work anymore with Google Chrome 50+ and Safari 10+ unless your site is securely accessible via https

With Chrome 50 (and Safari 10) significant changes to the geolocation support were introduced by the related browser vendors: all applications requesting the current position of the user (not just for Maps Marker Pro´s geolocation feature) are only allowed anymore to retrieve the current position of the user if the site is setup to be delivered securely via https – users will see the following or a similar warning instead:

geolocation-error-info

See more details about this decision by Google at https://developers.google.com/web/updates/2016/04/geolocation-on-secure-contexts-only. Geolocation will still work on non-https sites if the users access the site via alternative browsers like Firefox, Safari or Internet Explorer – anyway it could be likely that those browsers will also add a similar security restriction in the future.

Update November 2016: since iOS 10 also Safari 10+ now requires https to support geolocation. The implementation is even more strict than with Google Chrome – geolocation will not work for example if there are mixed-content warnings on your site.

So if you need the Maps Marker Pro geolocation featue on your site, it is highly recommended to migrate your site to https. Some hosters already provide free https certificates from letsencrypt.org for example. For configurations needed within your WordPress site in order to configure it to support https, please have a look at tutorials like https://css-tricks.com/moving-to-https-on-wordpress/.

As https has more advantages for your site than just geolocation working again with Google Chrome 50+ and Safari 10+ (like securing the data integrity, sender authentication and user privacy as well as higher Google ranking as https is used as ranking signal), we strongly advise to switch your site to https only if you haven´t done so yet.

If you switched your site to https and still get a geolocation error (like “Geolocation error: user denied geolocation”), please check your device´s location settings if it is allowed for apps/web sites to retrieve the geolocation.

Translations updates

We have also updated our Glotpress instance at https://translate.mapsmarker.com to v2.3.1, allowing translators to mark translations as fuzzy, re-enabled password reset by users, design update & more.

Thanks to many motivated contributors, this release includes the following updated translations:

If you want to contribute to translations (new Hindi translators would be appreciated!), please visit https://translate.mapsmarker.com/projects/lmm for more information.

Please note that translators are also compensated for their contribution – for example if a translation is finished less than 50%, the translator receives a free 25 licenses pack worth €249 as a compensation for completing the translation to 100%.

Outlook – plans for the next releases

Please understand that we are not able to promise any release dates for new features. We are dynamically aligning our roadmap based on feedback from our users. Anyway we keep the flexibility to add optimizations and bugfixes with rather unplanned minor releases resulting mostly from users feedback.

Please subscribe to this blog (via RSS or Email) or follow @MapsMarker on twitter (= most current updates) if you want to stay up to date with the latest development news.

Full changelog

We are happy to welcome globetrotting engineer Thorsten who joins the Maps Marker Pro team!
upgraded leaflet.js (“the engine of Maps Marker Pro”) from v0.7.7 to v1.0.3 for higher performance & usability – please see blog post on leafletjs.com and full changelog for more details 
Beta (opt-in): significantly improved performance for Google basemaps by using the leaflet plugin GoogleMutant (thx Ivan!) 
add pre-loading for map tiles beyond the edge of the visible map to prevent showing background behind tile images when panning a map 
Polylang translation support for multilingual maps (thx Thorsten!)
support for tooltips to display the marker name as small text on top of marker icons
new option to open popups on mouse hover instead of mouse click (disabled by default) 
Pretty permalinks with customizable slug for fullscreen maps and APIs (e.g. https://www.mapsmarker.com/dev/pro/maps/fullscreen/marker/1/ – thx Thorsten!) 
new functions for MMPAPI: list_markers(), list_layers(), get_layers($layer_ids) – full docs (thx a lot Thorsten!)
new option for disabling WPML/Polylang integration
enhanced compatibility check for WP Rocket (which can cause maps to break if Maps Marker Pro Javascripts are not excluded)
add support for PHP APCu caching for sessions used in MMP_Geocoding class
possibility to sort “list all markers” and “list all layers” tables by location (thx Paul!)
compatibility check for “Async Javascript” plugin (thx Adam!)
AMP support: show placeholder image for map with link to fullscreen view on AMP enabled pages (thx Sebastian!)
automatically switched to Algolia Places as default geocoding provider if Mapzen Search without API key is used (API keys get obligatory by April 2017 – free registration is still recommended)
~15% performance improvement for API calls by eliminating unneeded WordPress initializations via wp-load.php (thx Thorsten!)
create user sessions for geocoding only if MMP_Geocoding class is used 
optimized SQL for loading markers on (single) layer edit pages (thx Thorsten!) 
updated Leaflet.fullscreen markercluster codebase to v1.0.2 (thx jfirebaugh!) 
improved performance on marker & layer edit pages by using HTML5 datetime instead of timepicker.js library+dependencies (thx Thorsten!)
improved option “Deregister Google Maps API scripts enqueued by third parties” to prevent re-enqueuing of scripts by also deregistering them
improved performance for plugin updater (run backend check for access to plugin updates only if an update is available – thx Thorsten!)
removed integrated WPML installer to improve backend performance and as issues with NextGen Gallery have been reported
increased max chars for filter controlbox from 4000 to 65535 to prevent broken controlboxes (thx Michelle!)
always use https for loading bing maps tiles
importer: do not show invalid value-warnings for createdon & updatedon rows if audit option is off & related source columns are empty
use demo map image instead of Maps Marker Pro logo as placeholder image for maps in RSS feeds
changed KML query var name to markername to avoid WP conflicts
WPML performance issues on sites with 1000+ translated map strings (thx Thorsten!)
broken settings navigation due to enqueued bootstrap files from 3rd party plugins (thx Bob!) 
linked to WPML string translation page on layer edit pages instead to https://mapsmarker.com/multilingual even if WPML was not available (thx Thorsten!) 
add workaround if marker icons are not displayed on backend on marker edit & tools page (thx Ron!) 
MMPAPI: fix issue for layer ID selection and bounding box search error message (thx Thorsten!) 
conflict with iThemes Security Pro plugin & htaccess configs preventing direct access to Maps Marker Pro API endpoints (thx David!) 
WP Session entries in wp_options table were not deleted via WordPress cron job (thx a lot Thorsten!)
fix PHP APC cache detection for importer and MMP_Geocoding class 
marker export: search in layers via select2 library was broken
PHP warning after settings were reset to default settings (thx Thorsten!) 
list of markers below layer maps: marker count could be wrong under certain circumstances
divider in zoom control between + and – buttons was missing since v2.9 
location search field overlapping GPX media upload overlay caused by too high z-value 
sort order for “list all layers” page was broken if sort criteria was selected (thx Thorsten!) 
marker edit page could be broken due to undefined variable warnings on specific PHP configurations only (thx Nadine!) 
directions link was added to popuptext on marker edit page (during preview only) even if setting was disabled 
Javascript error when using paging in list of markers below layer maps on layer edit pages 
default marker popuptext properties were not considered if triggered via geocoding 
JSON error when using the WebAPI/search feature (thx Elizabeth!)
distinct marker zoom levels when open popups via list of markers links were not used if clustering was disabled
opening popups via list of markers could break map center if clustering was enabled (thx Damian!)
undefined javascript warning when clicking on marker name in list of markers if clustering was disabled
layer center marker on backend was not shown anymore after clusters got loaded
sort order for list of markers was not restored after clearing search field (thx Damian & Thorsten!)
using “change layer ID”-tool could result in wrong layer assignments (thx Patricia & Thorsten!)
CSS conflicts with selected themes (resulting in borders around Google Maps tile images)
control characters like tabs in marker name can break validity of GeoJSON array for list of markers (thx Stefan!)
broken list of markers when search term yields no results (thx Damian & Thorsten!)
license protection was too strict for localhost installations were unlimited testing is allowed (thx Daniel!)
fixed geolocation being lost when using list of markers search field (thx Damian & Thorsten!)
Low impact (exploitable for admins only): Reflected XSS vulnerability on license settings page (thx to Deepanker Chawla via hackerone) 
Low impact (exploitable for backend map editors only): Stored XSS vulnerability for location and marker/layer name on “list all layers”/ “list all markers” page (thx to Deepanker Chawla via hackerone) 
Low impact (exploitable for backend map editors only): Reflected XSS vulnerability on marker edit page (thx to Deepanker Chawla via hackerone) 
Low impact (exploitable for admins only): DOM based XSS vulnerability on settings page (thx to Deepanker Chawla via hackerone) 
Translation updates
In case you want to help with translations, please visit the web-based translation plattform
updated https://translate.mapsmarker.com to GlotPress 2.3.1 (mark translations as fuzzy, re-enabled password reset by users, design update & more)
updated Dutch translation thanks to Marijke Metz – http://www.mergenmetz.nl, Patrick Ruers, http://www.stationskwartiersittard.nl, Fokko van der Leest – http://wandelenrondroden.nl and Hans Temming – http://www.wonderline.nl
updated French translation thanks to Vincèn Pujol, http://www.skivr.com and Rodolphe Quiedeville, http://rodolphe.quiedeville.org, Fx Benard, http://wp-translator.com, cazal cédric, http://www.cedric-cazal.com, Fabian Hurelle, http://hurelle.fr and Thomas Guignard, http://news.timtom.ch
updated Galician translation thanks to Fernando Coello, http://www.indicepublicidad.com
updated German translation thanks to Thorsten
updated Italian translation thanks to Luca Barbetti, http://twitter.com/okibone and Angelo Giammarresi – http://www.wocmultimedia.biz
updated Japanese translations thanks to Shu Higash and Taisuke Shimamoto
updated Latvian translation thanks to Juris Orlovs, http://lbpa.lv and Eriks Remess http://geekli.st/Eriks
updated Lithuanian translation thanks to Donatas Liaudaitis – http://www.transleta.co.uk and Ovidijus – http://www.manokarkle.lt
updated Portuguese – Brazil (pt_BR) translation thanks to Fabio Bianchi – http://www.bibliomaps.com, Andre Santos – http://pelaeuropa.com.br and Antonio Hammerl
updated Russian translation thanks to Ekaterina Golubina (supported by Teplitsa of Social Technologies – http://te-st.ru) and Vyacheslav Strenadko, http://slavblog.ru
updated Spanish translation thanks to David Ramí­rez, http://www.hiperterminal.com, Alvaro Lara, http://www.alvarolara.com, Victor Guevara, http://1sistemas.net, Ricardo Viteri, http://www.labviteri.com, Juan Valdes and Marta Espinalt, http://www.martika.es
updated Swedish translation thanks to Olof Odier http://www.historiskastadsvandringar.se, Tedy Warsitha http://codeorig.in/, Dan Paulsson http://www.paulsson.eu, Elger Lindgren, http://bilddigital.se, Anton Andreasson, http://andreasson.org/ and Tony Lygnersjö – https://www.dumsnal.se/
Known issues
Geolocation feature does not work anymore with Google Chrome 50+ & iOS/Safari 10+ unless your site is securely accessible via https (details)

show all available changelogs

How to download / update

The easiest way to update is to use the WordPress update process: login with an user who has admin privileges, navigate to Dashboard / Updates, select plugins to update and press the button “Update Plugins”. The pro plugin checks every 24 hours if a new version is available. You can also manually trigger the update check by going to Plugins and clicking on the link “Manually check for updates” next to “Maps Marker Pro”:

manual-update-check

If you do not see the link “Check for updates” and are using a version below 1.7, please update manually once by downloading the current package from https://www.mapsmarker.com/download-pro and overwritting the existing plugin files on your server via FTP. This might be needed on several hosts, which use outdated SSL libraries, which prevent Maps Marker Pro from making a secure connection to retrieve the update package from mapsmarker.com. Pro v1.7 includes a workaround for those kind of servers and the following updates should work again as usual. If you are affected and need help, please open a support ticket.

How to verify the integrity of the plugin package

SHA-256 hash value:

AAC3E05208CEE2736D0F8514F61F91A43456742516A95DF2FDCBEE4B47BD69E5

Click here for a tutorial on how to verify the integrity of the plugin package (recommended if the plugin package for a new installation was not downloaded from https://www.mapsmarker.com – verification is not needed though if the automatic update process is used)

Additional update notes for beta tester

No additional actions on plugin update from beta to final version are required.