.. include:: /Includes.rst.txt .. _changelog: ========= 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