ChangeLog 

Version 13.2.2 

  • BUGFIX: Update the latitude and longitude fields of the frontend edit maps of GoogleMaps2 and OpenStreetMap2 again, when dragging the marker or clicking into the map. Only the fields of the respective map are updated, so forms with several maps keep the coordinates of the other maps.

Version 13.2.1 

  • BUGFIX: Add GeoCodeService::getGeoCodeResult(), which returns the found positions or an error with the provider independent enum ClientErrorEnum. Extensions can now tell a not found address apart from a rejected request (e.g. an API key restricted to other IP addresses), an exceeded quota or an unreachable map provider, without parsing the English messages of the map provider.
  • DEPRECATION: AbstractClient::checkResponseForErrors() is not abstract anymore and will be removed with the next major version. Custom clients should implement getResponseError() instead. GeoCodeService calls AbstractClient::getResult() now. If your custom client overrides processRequest(), override getResult() instead.
  • BUGFIX: Do not throw an exception, if the map provider answers with a HTTP status code 4xx/5xx or can not be reached. An error message will be added instead.
  • BUGFIX: Add an error message instead of throwing a JsonException, if the map provider returns invalid JSON
  • BUGFIX: Do not add the request URI to error messages, as it contains the API key

Version 13.2.0 

  • FEATURE: Add marker clustering for OpenStreetMap based on Leaflet.markercluster
  • FEATURE: Add FlexForm option to enable or disable marker clustering per content element for Google Maps and OpenStreetMap
  • FEATURE: Add TypoScript setting markerClusterer.styleSheet to replace the cluster icon theme of Leaflet.markercluster
  • TASK: Move site setting maps2.enableMarkerClusterer from site set Maps2 - Google Maps into Maps2 - Default Set. The setting key is unchanged.
  • BUGFIX: Fix marker clustering for Google Maps. The outdated MarkerClusterer v1 does not support AdvancedMarkerElement and was replaced by the official library @googlemaps/markerclusterer. The cluster images of markerClusterer.imagePath are still used.
  • TASK: Load the Google Maps marker clusterer on demand via AssetCollector in partial LoadAssets instead of page.includeJSFooterlibs

Version 13.1.1 

  • BUGFIX: Fix TypeError when rendering internal page links in info window content
  • BUGFIX: Use fluid.html file ending in default info window template path

Version 13.1.0 

  • FEATURE: Support coalesce/concat resolution strategies for the foreignColumnName of synchronizeColumns, allowing fallback columns and combined columns (including arbitrary nesting of both strategies)
  • BUGFIX: Fix TypeError in CreateMaps2RecordHook when synchronizing columns (SynchronizeColumn was accessed via array offset instead of its getters)

Version 13.0.2 

  • BUGFIX: Load assets for embedded map in EditPoiCollection partial

Version 13.0.1 

  • BUGFIX: Fix TypeError in OpenStreetMap2 JS when no PoiCollection is assigned
  • BUGFIX: Fix XSS via category title/uid in OpenStreetMap2 and GoogleMaps2 category checkboxes
  • TASK: Replace gulp with esbuild for building the JavaScript assets

Version 13.0.0 

  • Compatibility fixes for TYPO3 14 LTS
  • Remove TYPO3 13 compatibility
  • Introduce Environment configuration state and EnvironmentFactory, replacing SettingsHelper
  • Add MapProviderEnum and MapperFactory to streamline Google Maps / OpenStreetMap handling
  • Refactor Google Maps initialization to use the async Google Maps JavaScript API
  • Add support for Google Maps Map ID configuration
  • Fix OpenStreetMap backend map rendering when switching FormEngine tabs
  • Replace QueryBuilder injection with ConnectionPool throughout the extension
  • Migrate sys_category TCA overrides to the current TYPO3 14 API
  • Add ColumnRegistration to make Maps2Registry storage configuration type-safe
  • Migrate Maps2Registry from a JSON-file-based Singleton registry to a TcaSchemaFactory-driven, cached, event-listener-based column detection
  • Replace useNonce with csp in asset definitions for Content Security Policy compliance
  • Remove deprecated MapProviderRequestService, GetExtConfTrait and GetTypo3RequestTrait
  • Replace Extbase @validate annotations with PHP attributes
  • Declare service, mapper and helper classes as readonly and/or final wherever possible
  • Rename Fluid templates to use the .fluid.html extension
  • Introduce Rector configuration under Build/rector for automated code modernization
  • Update testing-framework dependency to ^9.5.0 and refactor test suite accordingly

Version 12.1.1 

  • Replace hardcoded tab labels with localized labels in tt_content

Version 12.1.0 

  • Fixed issue with extracting OpenStreetMap house number

Version 12.0.12 

  • Updated wizard title with [extension] name format
  • Updated wizard identifier prefix

Version 12.0.11 

  • Create fake TYPO3_REQUEST in CLI mode

Version 12.0.10 

  • Check for TYPO3_REQUEST before accessing it

Version 12.0.9 

  • Update testing directory

Version 12.0.8 

  • Add pages and recursive back to tt_content types

Version 12.0.7 

  • Add ajaxUrl to embed environment
  • Activate deep merge for GM JS lib

Version 12.0.6 

  • Load assets for embedded map in Maps2/PoiCollection partial

Version 12.0.5 

  • Remove ScriptDynamic from CSP rules

Version 12.0.4 

  • Update CSP rules

Version 12.0.3 

  • Set addQueryString to "untrusted" in RequestUriForOverlay VH

Version 12.0.2 

  • Disable page cache usage while rendering the info window content

Version 12.0.1 

  • Add cookie consent to searchwithinradius and citymap plugin

Version 12.0.0 

  • Compatibility fixes for TYPO3 13 LTS
  • Remove TYPO3 12 compatibility
  • Repair translation handling incl. Info Window Content
  • Migrate maps2 plugins to content elements. Implement Upgrade Wizard.
  • Migrate Standalone View to ViewFactory
  • Use PoiCollectionService insteadof individual DB queries
  • Use DI wherever possible
  • Migrate TypoScript to three Site Sets
  • Declare classes as readonly and/or stateless wherever possible
  • Migrate GeneralUtility::makeInstance to DI, if possible
  • Use PHP Attributes for Extbase Validators
  • Migrate plain SQL Query to Doctrine QueryBuilder to find POI on earth
  • Make use of more constants in classes, if possible
  • Migrate Extbase Ajax call to Middleware
  • Make use of new HashService
  • Implement new InfoWindowContentService
  • Implement new PoiCollectionService. DB queries without Extbase context.
  • Load CSS/JS from VH assets instead from TypoScript
  • Create table and columns via TCA. Schema API
  • Move l10n_parent to palettes
  • Remove ext_tables.php file
  • Migrate static VHs to use original render method again
  • Add configuration for CSP (Configuration/ContentSecurityPolicies.php)
  • Add Site Sets for Google Maps and OpenStreetMap
  • Migrated tests to "podman"
  • Upgrade tests against MariaDB 10.4 to 10.5

Version 11.0.3 

  • BUGFIX: Implement better extend function for JavaScript

Version 11.0.2 

  • BUGFIX: Do not store FlashMessages in BE session in CLI context

Version 11.0.1 

  • BUGFIX: Use correct TypoScript syntax for settings.mapTypeId

Version 11.0.0 

  • BUGFIX: Show info window content for TYPO3 instances where FE/pageNotFoundOnCHashError is active
  • DOCU: Add section about routing configuration

Version 10.0.10 

  • BUGFIX: Repair OSM UpgradeWizard for TYPO3 10

Version 10.0.9 

  • BUGFIX: Exclude external Google Maps JS script from concatenation
  • BUGFIX: Update to new OSM Geocode URI. Please execute UpgradeWizard
  • DOCU: Set indents to 4 spaces

Version 10.0.8 

  • BUGFIX: To allow h* tags in info_window_content we have moved preview as fieldWizard below RTE

Version 10.0.5 

  • BUGFIX: Create new Overlay Partial, so it can be used from foreign extensions
  • TASK: Deprecate getRequestUri() in PoiCollectionController
  • FEATURE: Add new RequestUriForOverlay ViewHelper
  • FEATURE: Add new IsRequestToMapProviderAllowed ViewHelper
  • TASK: Add FETCH_ASSOC to all fetch() methods to prevent deprecation logs
  • BUGFIX: Catch JsonException if Maps2Registry config is empty

Version 10.0.4 

  • BUGFIX: A reload bypasses consent

Version 10.0.3 

  • BUGFIX: Better implementation for category selector

Version 10.0.2 

  • Apply isset to $dataHandler->substNEWwithIDs[$uid] before accessing record UID

Version 10.0.1 

  • Check for existence of poi table before loading UpgradeWizard

Version 10.0.0 

  • Remove TYPO3 9 compatibility
  • Add TYPO3 11 compatibility
  • Removed tx_maps2_domain_model_poi table (Please execute UpgradeWizard)
  • Update Documentation (Adopt TYPO3 Doc Styleguide)
  • Move MapService::getMapProvider to MapHelper:getMapProvider
  • Remove MapProviderOverlayRequestHandler
  • Implement new uncached ControllerAction to show Overlay
  • Replace PoiCollection and EditPoiCollection Widget
  • Add new setting: overlay.link.addSection
  • Category selection in FE works for area, route and radius, too.
  • Add SettingsHelper to get streamlined settings
  • Add extbase.flashmessages.maps2 queue identifier for non-controller FlashMessages
  • Rename sDEFAULT to sDEF in FlexForm
  • Change frontend behaviour for multiple categories

Version 9.3.10 

  • BUGFIX: Show InfoWindowContent in translated language

Version 9.3.9 

  • BUGFIX: Add all GET-params to requestUri. Needed for AllowMap template

Version 9.3.8 

  • Set address column as readonly
  • Add further description for TCA columns

Version 9.3.7 

  • Replace plain SQL query with SchemaManager to be PostgreSQL compatible

Version 9.3.6 

  • Update TS condition for requireCHashArgumentForActionArguments
  • [BUGFIX] Re-Implement OverlayRequestHandler

Version 9.3.5 

  • Update old TS condition for requireCHashArgumentForActionArguments

Version 9.3.4 

  • Repair AJAX calls on POI click

Version 9.3.3 

  • Use RequestBuilder instead of ConfigurationManager to retrieve extKey

Version 9.3.2 

  • Add title parameter to EditPoi VH

Version 9.3.1 

  • Bugfix: Remove strict types from ReadOnly Input text element to be in sync with class from core

Version 9.2.1 

  • Bugfix: Fallback to "footway", if "road" was not found in OSM response

Version 9.2.0 

  • Feature: Add all related foreign records to PoiCollection
  • Feature: New SignalSlot to modify related foreign records before adding them to PoiCollection

Version 9.1.0 

  • Feature: Allow Info Window for all Map Types

Version 9.0.1 

  • Replace "var" with "let" in OpenStreetMap Module JS
  • Use same scheme from current request for MapTiles in OpenStreetMap Module JS

Version 9.0.0 

  • First version which is compatible with TYPO3 10.
  • Removed TYPO3 8.7 compatibility
  • Replace Extbase @validate annotations
  • Replace Extbase @lazy and @cascade Annotations
  • Remove old Form Elements for TYPO3 8.7
  • Make use of new ExtensionConfiguration class
  • Reduce ext_tables.sql to business columns only
  • Use Symfony expressions in TypoScript
  • Add strict types where possible
  • Adopt UnitTests

Version 8.0.1 

  • Restructured GoogleMapsModule JS file to be more compatible with requireJS

Version 8.0.0 

  • SignalSlot preIsRecordAllowedToCreatePoiCollectionCatch does not allow returning $isValid as 4th parameter anymore
  • Add Message Handling to Map Provider Clients.

Version 7.1.5 

  • Catch Exception for TYPO3 8 in ArrayUtility of sysext core.

Version 7.1.4 

  • Check FlexForm for each entry before processing them in UpgradeWizard

Version 7.1.3 

  • Set previous RenderingContext in edit POI Widget to have access to ViewHelperVariableContainer

Version 7.1.2 

  • Do not build Request of foreign extensions, to check, if map should be shown or not.

Version 7.1.1 

  • As references can not be passed to call_user_func in SignalSlot Dispatcher, we have to use the SlotReturn value to get new value of isValid.

Version 7.1.0 

  • Add possibility to pre-filter records with help of Maps2Registry API before attaching a PoiCollection record
  • Add possibility to pre-filter records with help of a SignalSlot before attaching a PoiCollection record
  • Update Documentation

Version 7.0.0 

  • Remove AjaxController. There is no need anymore after switch to AjaxDispatcher.
  • Remove ModifyMarker Ajax Request, as we update position fields in BE form directly.
  • Remove all extbase classes from Ajax Calls and switch over to Doctrine
  • Update Documentation

Version 6.1.0 

  • Option mouseScrollWheelZoom is now available for Google Maps and OpenStreetMap
  • All FlashMessages are now created by MessageHelper
  • All FlashMessages are now stored in Session

Version 6.0.0 

  • Breaking: Removed cacheIdentifier property from all Cache ViewHelpers
  • Bugfix: Create better multilingual CacheIdentifier for InfoWindow content.
  • Feature: New CacheService to manage CacheIdentifiers and CacheTags
  • Task: Remove CacheEntry after storing of PoiCollection in Backend with help of "flushByTag" instead of "remove"
  • Update Documentation of Cache ViewHelpers
  • Bugfix: Clear InfoWindowContent Cache for our own records, too.

Version 5.3.1 

  • Bugfix: Wrong HTML id in AllowMapForm as {data} was not assigned in MapService
  • Task: Remove mapHeight und mapWidth from AllowMapForm template

Version 5.3.0 

  • Task: Update address in PoiCollection if necessary
  • Feature: In AddressHelper you can now check a formatted address against foreignLocationRecord
  • Bugfix: Clear Maps2 HTML Cache after a PoiCollection was saved.

Version 5.2.10 

  • Bugfix: Repair checkForUpdate in Flexform migration class
  • Bugfix: Store FlashMessages in Session for BE context

Version 5.2.9 

  • Bugfix again: Do not try to update empty pi_flexform columns in Wizard

Version 5.2.8 

  • Bugfix: Do not try to update empty pi_flexform columns in Wizard

Version 5.2.7 

  • Bugfix: Add extKey to getConfiguration() settings of maps2 only

Version 5.2.6 

  • Documentation: Repair links to Cache VHs and Widget VHs in Documentation

Version 5.2.5 

  • Documentation: Better explaination of using Maps2Registry
  • Bugfix: Better check to prevent loading session again

Version 5.2.4 

  • UniTest: Update secure of slack notification in Travis
  • Bugfix: Fill cruser_id with be_user ID if set, else with 0

Version 5.2.3 

  • Bugfix: Add compatibility for UpdateWizard in TYPO3 8 and 9

Version 5.2.2 

  • Bugfix: Remove quotes from geocode uri
  • Bugfix: Disable compression for js files with get parameters
  • Bugfix: Re-check, if maps2 cache is initializable in Maps2Registry

Version 5.2.1 

  • Bugfix: Correct wrong geocode URIs in ext_conf_template

Version 5.2.0 

  • Feature: Show all PoiCollections of a StorageFolder
  • Feature: Force set zoom level
  • Feature: Add possibility to change Geocode API URI of map providers

Version 5.1.0 

  • Make use of initializeArguments in VH Widgets
  • Add plugin defaults to TS-Templates
  • Correct merging of settings in VH Widgets

Version 5.0.3 

  • Repair zoom level settings for OSM

Version 5.0.0 

  • Rewritten documentation
  • Add new ext_icon as SVG
  • Add OpenStreetMap Implementation
  • Update various translations
  • Add placeholders to style settings in TCA
  • Add mapProvider to switch between GM and OSM in Backend
  • Add static templates for GM and OSM
  • Remove automatic maps2 registry for tt_address

Version 4.3.5 

  • Set default of relation columns to 0. strict_type.

Version 4.3.4 

  • Check against NULL before unserialize ExtConf

Version 4.3.3 

  • Replace deprecated placeIdOnly with setFields in Google Maps JS

Version 4.3.2 

  • Implement better record icons