TYPO3 11.5 compatibility
This is the first version of the extension with support for TYPO3 11.5 including support for PHP 7.4 and 8.0
The extension now uses strict types and strict properties wherever possible and many TYPO3 core deprecations have been considered. This results in 7 breaking changes, which need to be taken care of when you migrate a website to TYPO3 11.5 LTS
After updating from a previous version, it is at least required to execute the "Migrate plugins and settings" update wizard and to apply required database changes using the TYPO3 install tool.
Breaking Changes 🔥
All changes listed below are considered breaking changes and you may need to change custom code and custom templates manually. Make sure to read this section carefully.
[!!!][TASK] Remove switchableControllerActions #802
SwitchableControllerActions are deprecated and will be removed in TYPO3 12. Therefore, the event plugin has been split into 5 separate plugins, so switchableControllerActions usage can be removed from the extension. In order to migrate existing plugins and plugin settings, please execute the upgrade wizard.
Note: If the FlexForm of the extension has been extended, those settings will not be considered by the update wizard.
Important manual changes:
- You must also adjust all custom templates, where the old event plugin is referenced in a
f:link.action
viewHelper. There, you must change the old plugin name to the new one. In most scenarios, this can be done by replacingpluginName="Pievent"
withpluginName="Pieventregistration"
. - Plugin access permissions can not be migrated and must be assigned manually to backend users / backend user groups.
[!!!][TASK] Use strict types in domain models #946
All domain models now use strict types and types properties. If you extended the extension with a custom extension, you must ensure to change you classes to support strict types and strict properties.
[!!!][TASK] Move create demand functions to own class to make them testable #909, #922
All Data Transfer Objects (DTOs) do not extend TYPO3\CMS\Extbase\DomainObject\AbstractEntity
any more. DTO classes, which can be instantiated from an array of settings contain the static function createFromSettings
, which returns an object of the class with the given settings set.
If you extended the DTOs in a custom extension, you must ensure that your extended classes match the requirements (strict types and strict properties) of the DTO classes in the main extension.
[!!!][TASK] Remove RegistrationRepository::findExpiredRegistrations #935
The function RegistrationRepository::findExpiredRegistrations
has been removed, as it was not in use any more.
[!!!][TASK] Rename typoscript files to .typoscript #930
The file extension for the TypoScript setup and constants has been renamed from .txt
to .typoscript
. If you included the TypoScript files in your sitepackage, you must ensure to rename the file extension in your includes.
[!!!][FEATURE] Allow use of either reCaptcha or hCaptcha #886
The existing reCaptcha integration has completely been refactored in order to support both reCaptcha and hCaptcha. If you use reCaptcha within the extension, you must manually migrate settings as shown below:
- Migrate all settings
settings.reCaptcha
->settings.registration.captcha
(please check the included TypoScript for new options) - Adjust the
Registration.html
template, so the newReCaptcha
partial will be rendered
[!!!][TASK] Use strict types in AbstractPayment and PaymentController #929, #877
Strict types have been added where ever possible. Also all properties and getter/setters in AbstractPayment
do now require strict types. All controller actions now return a PSR-7 response object.
If you implemented a custom payment method or extended the PaymentController, you must ensure to adjust your code accordingly.
[!!!][TASK] Use own FrontendUser Model and Repository #892
The extension now uses a custom class for FrontendUser and FrontendUserRepository. If you extended the TYPO3 core classes FrontendUser
or FrontendUserRepository
in order to add functionality to ext:sf_event_mgt, you must migrate your changes to support the new classes in the extension.
[!!!][TASK] Replace pagination widget and implement native pagination for list view #803
The backend module now uses the TYPO3 pagination API. If you have extended backend module templates, make sure to replace f:widget.paginate
occurrences as shown in this commit de2730d
Important changes ⚠️
The following important changes are not considered breaking, but manual interaction may be required.
[TASK] Apply Bootstrap 5 changes to backend module #924
If the Administration module template has been overwritten, it is required to adapt the template match the changes in #924 and #803
[TASK] Remove management DB fields from ext_tables.sql #801
[TASK] Remove MM Tables from ext_tables.sql #917
It is recommended to run the "Analyze Database" task in the "Maintenance" administration module to apply required database changes.
New Features
[FEATURE] Added RTE field "Custom text" to event #936
[FEATURE] Added AfterRegistrationCancelledEvent #945
Other changes
[BUGFIX] Fixed incorrect path to link validator TSConfig #943
[BUGFIX] Fixed TitleViewHelperTest
[BUGFIX] Fix SearchDemand::fromArray() for PHP8 #921
[TASK] Move payment fields to registration options tab #956
[TASK] Rename tab "category" to "categories" #957
[TASK] Re-structure "Registration options" fields
[TASK] Always instantiate models/DTOs with makeInstance #953
[TASK] Updated phpstan baseline file
[TASK] Simplified 2 conditions
[TASK] Remove superfluous code in Icons.php
[TASK] Harden getUserMessageTemplateSubject() in NotificationService
[TASK] Ensure TSFE is available before accessing
[TASK] Include PHP 8.0 for tests
[TASK] PHP8 compatibility changes #921 #952
[TASK] Fixed failing functional tests due to strict types
[TASK] Declare strict_types in tests
[TASK] Remove last occurrences of pievent
[TASK] Make RegistrationValidator tests more reliable #914
[TASK] Refactor tests #826
[TASK] Resolve backend user in administration module notification view #949
[TASK] Fixed some issues due to strict properties in domain models #946
[TASK] Fixed some issues due to strict properties in domain models #946
[TASK] Ensure empty values are not saved in flexform #950
[TASK] Replace pluginName in template to new plugin names #802
[TASK] Exclude domain models from DI #916
[TASK] Updated SQL dump for acceptance tests #802
[TASK] Switch content element preview to PreviewRenderer #807
[TASK] Added return type for confirmRegistrationAction #877
[TASK] Make actions return a PSR-7 response #877
[TASK] Use strict types in EventController
[TASK] Re-introduce soft reference parser configuration #907
[TASK] Support TYPO3 pagination API in list view #803
[TASK] Enforce trailing commas in multi line arrays #944
[TASK] Handle Extbase ViewInterface deprecation #941
[TASK] Do not use BackendTemplateView in AdministrationController #934
[TASK] Split TypoScript constants in sections #938
[TASK] Remove workarounds in handleEventNotFoundError
[TASK] Remove ObjectManager usage in Event domain model #859
[TASK] Use strict types in repositories
[TASK] Avoid ObjectManager usage in EventController #859
[TASK] Avoid ObjectManager usage in tests #859
[TASK] Use own CategoryRepository #933
[TASK] Added extension scanner ignore in PageCache hook
[TASK] Use strict types in various viewHelpers
[TASK] Update PageViewHelper to match v11 core version
[TASK] Use strict types in some viewHelpers
[TASK] Use strict types in some viewHelpers
[TASK] Use strict types in RegistrationValidator
[TASK] Use strict types in RegistrationFieldValidator
[TASK] Use strict types in spam checks
[TASK] Use strict types in remaining services
[TASK] Use strict types in RegistrationService
[TASK] Use strict types in NotificationService
[TASK] Use strict types in several services
[TASK] Use strict types in several services
[TASK] Make AttachmentService strict
[TASK] Apply strict types to EventPageTitleProvider
[TASK] Make hook classes more strict
[TASK] Apply strict properties in all PSR-14 events
[TASK] Added declare(strict_types=1) to 2 controllers
[TASK] Minor code format change in DisableLanguageMenuProcessor
[TASK] Make AbstractController more strict
[TASK] Make AdministrationController more strict
[TASK] Raise phpstan to level 5
[TASK] Apply Bootstrap 5 styles to IndexNotify template
[TASK] Avoid usage of TYPO3_REQUEST in extbase controllers #893
[TASK] Refactor handleEventNotFoundError #898
[TASK] Use strict types in EventPlausabilityService
[TASK] Strictify evaluation tests
[TASK] Fixed return type in CleanupCommand
[TASK] Remove 6th parameter in wrapClickMenuOnIcon usage #928
[TASK] Use TYPO3 pagination API in backend module #803
[TASK] Rename GitHub Actions tasks #927
[TASK] Split GitHub actions by unit/functional and acceptance #927
[TASK] Store searchDemand for admin module as array in session #925
[TASK] Apply Bootstrap 5 changes to backend module Refs#924
[TASK] Remove MM Tables from ext_tables.sql #917
[TASK] Remove management DB fields from ext_tables.sql #801
[TASK] Use TCA type "language" #911
[TASK] Fixed RegistrationRepositoryTest #892
[TASK] Make UserRegistrationDemand DTO more strict #922
[TASK] Make SearchDemand DTO more strict #922
[TASK] Make ForeignRecordDemand DTO more strict #922
[TASK] Added missing createFromSettings test for EventDemand #922
[TASK] Fixed typo in CategoryDemandTest #922
[TASK] Remove createEventDemandObjectFromSettings() in EventController #909
[TASK] Fixed findDemandedRecordsByStoragePage test #922
[TASK] Make EventDemand DTO more strict #922
[TASK] Make CustomNotification DTO more strict #922
[TASK] Define "self" return type for createFromSettings
[TASK] Remove superfluous doc comments in CategoryDemand
[TASK] Add missing imports in PageUtility
[TASK] Make CategoryDemand strict and add static createBy function #922
[TASK] Make CategoryDemand strict and add static createBy function #922
[TASK] Replace QueryGenerator::getTreeList usage #860
[TASK] Setup extension in CI setup
[TASK] Remove typo3 console usage in CI
[TASK] Make processRequest return a PSR-7 response #920
[TASK] Update Acceptance Test configuration
[TASK] Do not use getControllerContext in viewHelpers #919
[TASK] Remove superfluous processRequest override in eventController #915
[TASK] Remove DI in RegistrationValidator #859
[TASK] Use TCA type "category" #897
[TASK] Migrate last occurrence of TYPO3_MODE #862
[TASK] Avoid ObjectManager usage in functional tests #859
[TASK] Switch to testing framework v6 (patch 1) #869
[TASK] Migrate TYPO3_MODE usage #862
[TASK] Migrate/remove TYPO3_MODE === 'BE' checks #868
[TASK] Register Icons using Icons.php #895
[TASK] Add new tab "Geo data" for location record #906
[TASK] Move image field to new "Media" tab in TCA #905
[TASK] Remove rtehtmlarea_images softref parser config #904
[TASK] Apply CGL fixes
[TASK] Update to php-cs-fixer v3 #896
[TASK] Do not depend on ericmartel/codeception-email-mailhog #902
[DOC] Update documentation #954
[DOC] Added new image for event-registrationfields.png #954
[DOCS] Update documentation for route enhancers #912
[DOCS] Update docs about new plugins #946
[DOCS] Updated documentation #939
[DOCS] Updated README.md
[DOCS] Fixed doc about "Registrations on the waitlist" #931