Skip to content

TYPO3 13.4 compatibility

Latest
Compare
Choose a tag to compare
@derhansen derhansen released this 21 Oct 16:34
· 1 commit to main since this release
5410b3c

This is the first version of the extension for TYPO3 13.4 LTS 🥳

It includes some nice new features and several breaking changes, of which some must be migrated manually. It is therefore highly recommended to read the following list of breaking changes.

Not all breaking changes will affect regular users of the extension. Therefore, breaking changes have been tagged as following:

  • Breaking Changes tagged with 🔥 affect all users of the extension and it is recommended to read the migration options.
  • Breaking Changes tagged with 🛠️ affect users, who extended the extension with custom code (e.g. used services or extended classes).

For most users, only the first 3 breaking changes may be important.

Breaking Changes (ordered by priority from high to low) 🔥

[!!!][TASK] Migrate plugins to content elements #1189 🔥

All existing plugins have been migrated to content elements.

Migration: The included update wizard must be executed in order to migrate the data of existing plugins and permissions. Additionally, if plugins have been restricted in backend layout or container columns with ext:content_defender, the configuration must be adapted manually.


[!!!][TASK] Migrate extbase HashService deprecation #1252 🔥

Due to the deprecation of the Extbase HashService, the new Core HashService must be used. This Service requires an additional secret, which results in the implementation being a breaking change.

Impact: All existing links sent in emails (e.g. confirmation, cancellation, payment) generated by previous versions of the extension have become invalid.

Migration: There is no migration.


[!!!][FEATURE] Extend price options functionality and save registration price #1185 🔥

The price options feature has been extended to be more flexible. Price options can now have a name and a description and the validity is not mandatory any more. Additionally, the event price and event price option (if defined in event) is now always saved to a registration record. The new PSR-14 event ModifyRegistrationPriceEvent allows to modify the price saved to a registration.

Breaking functionality in this change is, that it is now required to select a price option in the registration process, if an event has price options defined. If an event has price options and no price option is submitted in the registration process, a validation error will be shown.

Migration: Users, who use price options previously or plan to use price options, make sure to adapt possible existing templates, so price options are selectable in the registration template. See the default templates of the extension for details.


[!!!][TASK] Improve default csv definition #1206 🔥

The default settings for the CSV export have been adapted to show possibilites for exporting sub-properties.

Migration: No migration required. Users, who rely on the previous CSV export default fields must adapt TypoScript settings and configure CSV export fields accordingly.


[!!!][TASK] Change default settings for CSV export #1201 🔥

The settings for the CSV export changed, so exported CSV files can be opened using Microsoft Excel on Windows systems without any modifications. This has been archieved by setting fieldDelimiter = ; and prependBOM = 1 as default in the CSV export configuration.

Migration: No migration required. Users who rely on the previous CSV export format must adapt TypoScript settings and configure CSV format accordingly.


[!!!][TASK] Provide new PageViewHelper #1270 🔥

The previously used PageViewHelper can not be used anymore, because creation of frontend links through extbase UriBuilder
now requires a current contentObject, which is not available in backend context. The ViewHelper has therefore been refactored to use TYPO3 page routing.

Migration: Users who used the ViewHelper in email templates sent using the backend module of the extension must adapt email templates.

Before: <e:uri.page pageUid="22" additionalParams="{tx_sfeventmgt_pieventdetail:{event: registration.event, action: 'detail', controller: 'Event'}}" absolute="1"/>

After: <e:uri.page pageUid="22" additionalParams="{tx_sfeventmgt_pieventdetail:{event: registration.event.uid, action: 'detail', controller: 'Event'}}" />


[!!!][TASK] Remove ChangeCacheTimeout #1295 🔥

The event listener for the manual cache handling configuration has been removed. With the new version of the extension, no manual cache configuration is required any more. If you previously used e.g. config.cache.3 = tx_sfeventmgt_domain_model_event:2, this can be removed from TypoScript.

Migration: None.


[!!!][TASK] Hand over extbase request to services #1268 🛠️

The extbase request is now required in several services. Therefore, the request has been added as argument to the following functions:

  • FluidRenderingService->renderTemplate() - ⚠️ previously called FluidStandaloneService - see #1269
  • FluidRenderingService->parseStringFluid() - ⚠️ previously called FluidStandaloneService - see #1269
  • ICalendarService->downloadiCalendarFile()
  • ICalendarService->getiCalendarContent()
  • NotificationService->sendCustomNotification()
  • NotificationService->sendUserMessage()
  • NotificationService->sendAdminMessage()
  • RegistrationService->moveUpWaitlistRegistrations()
  • AttachmentService->getICalAttachment()

Migration: Users who extended the extension and used affected services in their own extensions must ensure to pass the extbase request object to affected functions.


[!!!][TASK] Avoid $GLOBALS['TYPO3_REQUEST'] usage in EventAvailability #1261 🛠️

The signature of EventAvailability::check() has changed. It is now required to pass the PSR-7 request object as 3rd argument to the function.

Migration: Users who extended the extension and use the function must ensure to pass the PSR-7 request object to the function.


[!!!][TASK] Move UserRegistrationController::checkRegistrationAccess() to service #1274 🛠️

The function UserRegistrationController::checkRegistrationAccess() has been moved to RegistrationService.

Migration: Users who extended the extension and use the function must now use $this->registrationService->checkRegistrationAccess() and pass required arguments (PSR-7 request and registration object).


[!!!][TASK] Rename and refactor FluidStandaloneService #1269 🛠️

The FluidStandaloneService has been renamed to FluidRenderingService. Additionally, the method arguments of
getTemplateFolders() has changed, so the arguments $extensionName and $pluginName have been removed.

Migration: Users who extended the extension and used FluidStandaloneService must migrate custom code to use the FluidRenderingService.


[!!!][FEATURE] Introduce EventEvaluationService #1238 🛠️

To reduce logic in EventController, several functions have been moved to the new service EventEvaluationService. As a result or the refactoring, the call to PSR-14 event EventPidCheckFailedEvent was moved to EventEvaluationService. This results in a
breaking change, because the EventController is now not available via the PSR-14 event any more.

Migration: Users who use the getEventController() function of the EventPidCheckFailedEvent must omit calling the function, since it is not available any more.


[!!!][TASK] Remove module.tx_sfeventmgt.settings.notification constants #1283 🛠️

The constants in module.tx_sfeventmgt.settings.notification were never used within the extensin and are therefore removed. If you however used the constants, usage must be adapted.

Migration: Use plugin.tx_sfeventmgt.settings.notification settings instead


New features 🎉

[FEATURE] Add optional support for FluidEmail in EmailService #1221

It is not optional possible to use FluidEmail for all notifications sent by the extension. If active, email content is rendered using the internal FluidRenderingService and then send using the TYPO3 system email layout.

grafik


[FEATURE] Use CacheDataCollector to calculate page cache lifetime #1272

When one or multiple events are shown in the list, detail or calendar view, the cache lifetime of the page is now calculated by considering the event startdate, a possible registration startdate and a possible registration endline. Additionally, for TYPO3 system fields "Start" and "Stop" are condidered.

The new page cache lifetime calculation will ensure, that possible registration links will be hidden or shown depending on the event state. As an example, the registration link will automatically be hidden, when the event either starts or the registration deadline is reached, because the page cache liftetime is calculated considering those date fields.


[FEATURE] Provide PSR-7 request object in PSR-14 events where possible #1245

The PSR-7 request object is now available in nearly all PSR-14 events of the extension.


[FEATURE] Add site set for extension #1260

The extension now contains a site set which can be used in site set configuration. Email addresses can be definied using the site setting editor.