From acb7da95645effd1317044af7a9a8735a3a48b37 Mon Sep 17 00:00:00 2001 From: Anja Leichsenring <aleichsenring@ab-softlab.de> Date: Sat, 18 Apr 2020 13:26:37 +0200 Subject: [PATCH] [TASK] Move changelog files into 10.4 folder MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The changelog files for the version 10.4 must leave the master folder now and move to their final home in 10.4. Resolves: #91106 Releases: master Change-Id: Ia2a97ef805653c2179426da9c228b052b6801472 Reviewed-on: https://review.typo3.org/c/Packages/TYPO3.CMS/+/64226 Tested-by: Christian Eßl <indy.essl@gmail.com> Tested-by: Richard Haeser <richard@maxserv.com> Reviewed-by: Christian Eßl <indy.essl@gmail.com> Reviewed-by: Richard Haeser <richard@maxserv.com> --- .../core/Documentation/Changelog-10.rst | 1 + ...ing-90660-RegistrationOfWidgetsChanged.rst | 62 +++++--- ...aking-91066-MovedInterfacesOfDashboard.rst | 19 ++- .../Breaking-91066-RemovedButtonUtility.rst | 9 +- ...recation-88740-ExtFeloginPibasePlugin.rst} | 11 +- ...ecation-90147-UnifiedFileNameValidator.rst | 28 ++-- ...ParamTypesRefOfMethodCallUserFunction.rst} | 13 +- ...tion-90625-ExtbaseSignalSlotDispatcher.rst | 16 +- .../Deprecation-90686-ModelFileMount.rst} | 13 +- ...eprecation-90692-FileCollectionModels.rst} | 10 +- ...-GeneralUtilityisRunningOnCgiServerApi.rst | 4 +- ...on-90856-WidgetAutocompleteViewHelper.rst} | 12 +- ...atedMethodsWithinContentObjectRenderer.rst | 14 +- ...37-VariousHooksInContentObjectRenderer.rst | 48 ++++++ ...thodsAndReportsForGeneralUtilitygetUrl.rst | 22 +-- ...viceFunctionalityAndInternalProperties.rst | 9 +- ...001-VariousMethodsWithinGeneralUtility.rst | 2 +- ...sRelatedToTypoScriptFrontendController.rst | 25 ++-- ...cation-91030-Runtime-ActivatedPackages.rst | 10 +- .../Feature-83128-ContentElementFilter.rst | 2 +- ...LimitRestrictionToTablesInQueryBuilder.rst | 10 +- ...ure-89513-PasswordResetForBackendUsers.rst | 30 ++-- ...exibleBaseUrlForSlugFieldsInFormEngine.rst | 4 +- ...inkViewHelpersAndUriViewHelpersInFluid.rst | 4 +- ...Feature-90826-CompareBackendUsergroups.rst | 0 ...90899-IntroduceAssetPreRenderingEvents.rst | 129 ++++++++++++++++ ...re-91008-ItemGroupingForTCASelectItems.rst | 36 ++--- ...ure-91008-ItemSortingForTCASelectItems.rst | 10 +- ...SiteSettingsAsTsConstantsAndInTsConfig.rst | 0 ...peRestrictionForFrontendQueriesRefined.rst | 10 +- ...ngForThird-partyAuthenticationServices.rst | 6 +- ...3-ReplaceJQueryDataTablesWithTablesort.rst | 5 +- ...dDatabaseRecordsContainTheProperPageID.rst | 15 +- ...aintForTypo3fluidfluidWillGetVersion30.rst | 2 +- ...Important-90897-RemoveBootstrap-slider.rst | 0 ...tendRendererFunctionalityIsNowInternal.rst | 0 ...esOfBackend-relatedCoreAPIsNowInternal.rst | 14 +- ...-91099-ChangedFlagIdentifierForEngland.rst | 0 .../Changelog/{master => 10.4}/Index.rst | 8 +- ...37-VariousHooksInContentObjectRenderer.rst | 46 ------ ...90899-IntroduceAssetPreRenderingEvents.rst | 139 ------------------ typo3/sysext/core/Documentation/Index.rst | 1 - .../Php/ArrayDimensionMatcher.php | 16 +- .../ExtensionScanner/Php/ClassNameMatcher.php | 20 +-- 44 files changed, 445 insertions(+), 390 deletions(-) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Breaking-90660-RegistrationOfWidgetsChanged.rst (78%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Breaking-91066-MovedInterfacesOfDashboard.rst (73%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Breaking-91066-RemovedButtonUtility.rst (95%) rename typo3/sysext/core/Documentation/Changelog/{master/Deprecation-88740-DeprecateFeloginPibasePlugin.rst => 10.4/Deprecation-88740-ExtFeloginPibasePlugin.rst} (90%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Deprecation-90147-UnifiedFileNameValidator.rst (52%) rename typo3/sysext/core/Documentation/Changelog/{master/Deprecation-90377-DeprecateRefParamTypesOfMethodCallUserFunction.rst => 10.4/Deprecation-90377-ParamTypesRefOfMethodCallUserFunction.rst} (64%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Deprecation-90625-ExtbaseSignalSlotDispatcher.rst (70%) rename typo3/sysext/core/Documentation/Changelog/{master/Deprecation-90686-DeprecateModelFileMount.rst => 10.4/Deprecation-90686-ModelFileMount.rst} (55%) rename typo3/sysext/core/Documentation/Changelog/{master/Deprecation-90692-DeprecateFileCollectionModels.rst => 10.4/Deprecation-90692-FileCollectionModels.rst} (67%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Deprecation-90800-GeneralUtilityisRunningOnCgiServerApi.rst (80%) rename typo3/sysext/core/Documentation/Changelog/{master/Deprecation-90856-DeprecateWidgetAutocompleteViewHelper.rst => 10.4/Deprecation-90856-WidgetAutocompleteViewHelper.rst} (74%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Deprecation-90861-Image-relatedMethodsWithinContentObjectRenderer.rst (70%) create mode 100644 typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90937-VariousHooksInContentObjectRenderer.rst rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Deprecation-90956-AlternativeFetchMethodsAndReportsForGeneralUtilitygetUrl.rst (72%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Deprecation-90964-LanguageServiceFunctionalityAndInternalProperties.rst (79%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Deprecation-91001-VariousMethodsWithinGeneralUtility.rst (95%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Deprecation-91012-VariousHooksRelatedToTypoScriptFrontendController.rst (64%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Deprecation-91030-Runtime-ActivatedPackages.rst (68%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Feature-83128-ContentElementFilter.rst (87%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Feature-87776-LimitRestrictionToTablesInQueryBuilder.rst (89%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Feature-89513-PasswordResetForBackendUsers.rst (74%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Feature-89573-AllowFlexibleBaseUrlForSlugFieldsInFormEngine.rst (92%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Feature-90613-AddLanguageArgumentToPage-relatedLinkViewHelpersAndUriViewHelpersInFluid.rst (94%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Feature-90826-CompareBackendUsergroups.rst (100%) create mode 100644 typo3/sysext/core/Documentation/Changelog/10.4/Feature-90899-IntroduceAssetPreRenderingEvents.rst rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Feature-91008-ItemGroupingForTCASelectItems.rst (75%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Feature-91008-ItemSortingForTCASelectItems.rst (82%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Feature-91080-SiteSettingsAsTsConstantsAndInTsConfig.rst (100%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Important-18079-PagesdoktypeRestrictionForFrontendQueriesRefined.rst (65%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Important-77715-NoMorePasswordTrimmingForThird-partyAuthenticationServices.rst (83%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Important-86343-ReplaceJQueryDataTablesWithTablesort.rst (78%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Important-89555-Workspace-relatedDatabaseRecordsContainTheProperPageID.rst (59%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Important-90285-FreshInstallsWithoutConstraintForTypo3fluidfluidWillGetVersion30.rst (98%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Important-90897-RemoveBootstrap-slider.rst (100%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Important-91079-VariousTypoScriptFrontendRendererFunctionalityIsNowInternal.rst (100%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Important-91095-VariousMethodsAndPropertiesOfBackend-relatedCoreAPIsNowInternal.rst (95%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Important-91099-ChangedFlagIdentifierForEngland.rst (100%) rename typo3/sysext/core/Documentation/Changelog/{master => 10.4}/Index.rst (88%) delete mode 100644 typo3/sysext/core/Documentation/Changelog/master/Deprecation-90937-VariousHooksInContentObjectRenderer.rst delete mode 100644 typo3/sysext/core/Documentation/Changelog/master/Feature-90899-IntroduceAssetPreRenderingEvents.rst diff --git a/typo3/sysext/core/Documentation/Changelog-10.rst b/typo3/sysext/core/Documentation/Changelog-10.rst index 188a8a971891..d204e9c002b4 100644 --- a/typo3/sysext/core/Documentation/Changelog-10.rst +++ b/typo3/sysext/core/Documentation/Changelog-10.rst @@ -15,3 +15,4 @@ Every change to the TYPO3 Core which might affect your site is documented here. Changelog/10.1/Index Changelog/10.2/Index Changelog/10.3/Index + Changelog/10.4/Index diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-90660-RegistrationOfWidgetsChanged.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Breaking-90660-RegistrationOfWidgetsChanged.rst similarity index 78% rename from typo3/sysext/core/Documentation/Changelog/master/Breaking-90660-RegistrationOfWidgetsChanged.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Breaking-90660-RegistrationOfWidgetsChanged.rst index 708f8e317e79..dcae247cfc11 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Breaking-90660-RegistrationOfWidgetsChanged.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Breaking-90660-RegistrationOfWidgetsChanged.rst @@ -12,29 +12,34 @@ Description As the registration of dashboard widgets changed to allow creation of widgets through configuration, it is necessary to change your registration of widgets you registered yourself in version 10.3. The abstracts used to kick start your -widgets are removed and the widgets shipped with EXT:dashboard are refactored. +widgets were removed and the widgets shipped with EXT:dashboard were refactored. + Impact ====== + As the abstracts previously used to kick-start a widget are removed, you need -to change to the new way of registering widgets. It will break the dashboard -module if you do not update your registration. +to change to the new way of registering widgets. The dashboard +module will break if you do not update your registration. + Affected Installations ====================== All 3rd party extensions that registered an own widget with TYPO3 v10.3, will be affected and need to update the widget registration. If you only used the widgets -shipped with core, you don't have to do anything yourself. +shipped with core, you don't have to do anything. + Migration ========= + Migration of widgets based on default widget types -------------------------------------------------- -This section is showing you how to migrate widgets that are based on one of -the existing widget types that are shipped by core. If your widgets are extending +This section demonstrates how to migrate widgets that are based on one of +the existing widget types shipped by core. If your widgets are extending one of the following classes, you can use this section to migrate your registration to the new syntax. @@ -47,21 +52,22 @@ to the new syntax. - :php:`\TYPO3\CMS\Dashboard\Widgets\AbstractRssWidget` First of all you need to update your registration in the :file:`Services.yaml` file. -An example of a registration of an RSS widget in the old version. +Here comes an example of a registration of RSS widget in the old version. **Before** .. code-block:: yaml - Vendor\Package\Widgets\MyOwnRSSWidget: - arguments: [‘myOwnRSSWidget’] - tags: - - name: dashboard.widget - identifier: myOwnRSSWidget - widgetGroups: ‘general’ + Vendor\Package\Widgets\MyOwnRSSWidget: + arguments: [‘myOwnRSSWidget’] + tags: + - name: dashboard.widget + identifier: myOwnRSSWidget + widgetGroups: ‘general’ + As you can now use the predefined widgets and only have to register your own -implementation with your own configuration, we have to alter this registration +implementation with your own configuration, you have to alter this registration a little bit. **Now** @@ -87,24 +93,29 @@ a little bit. height: 'medium' width: 'medium' + It starts with the name of the service. Best practise is to use a dot-styled -name as there will be now class with that name. On the second line, we define -which widget to use. In this case we choose the RssWidget from the dashboard -core extension. In the documentation, we explain all the arguments like :php:`$view` -and :php:`$cache`. For the migration you need the :php:`$options` argument. -As you can see we specify the RSS File and the cache lifetime for this feed. -In the old situation you have set these values in the class. +name as there will be no class with that name. You can have multiple services +using the same class. + +On the second line, we define which widget to use. In this case we choose the +RssWidget from the dashboard core extension. In the documentation, we explain +all the arguments like :php:`$view` and :php:`$cache`. For the migration you need +the :php:`$options` argument. + +As you can see we specify the RSS file and the cache lifetime for this feed. +In the old situation you had to set these values in the class. Now you can just put those values in the registration. The second part that changed a little bit, is that you need to set the title, description, icon, height and width in the tags section of the registration. You can still use translatable strings like ``LLL:EXT:extension/Resources/Private/Language/locallang.xlf:widgets.myOwnRSSWidget.title``. -Important to remember is that the :yaml:`widgetGroups`` property changed to :yaml:`groupNames` +Important to remember is that the :yaml:`widgetGroups` property changed to :yaml:`groupNames` to stay consistent with other service registrations. -Please note that valid values for height and width are now: `small`, `medium`, -and `large`. +Please note that valid values for height and width are now: :yaml:`small`, :yaml:`medium`, +and :yaml:`large`. In the following table you can see which WidgetType to use now based on the abstract you used previously. @@ -129,12 +140,15 @@ abstract you used previously. | :php:`AbstractRssWidget` | :php:`TYPO3\CMS\Dashboard\Widgets\RssWidget` | +--------------------------------------+----------------------------------------------------------------------+ + You can check the documentation of EXT:dashboard to see the exact options for every type of widget. + Migration of widgets based on own widget type --------------------------------------------- + When you created your complete own widget type, the main thing to check is you -use the Dependency Injection options you have now. Please check the documentation +use the Dependency Injection options you have now. Please refer to the documentation of EXT:dashboard to see how to create your own widget type and what options you have. diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-91066-MovedInterfacesOfDashboard.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Breaking-91066-MovedInterfacesOfDashboard.rst similarity index 73% rename from typo3/sysext/core/Documentation/Changelog/master/Breaking-91066-MovedInterfacesOfDashboard.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Breaking-91066-MovedInterfacesOfDashboard.rst index b026608e8c25..bee3132e0530 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Breaking-91066-MovedInterfacesOfDashboard.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Breaking-91066-MovedInterfacesOfDashboard.rst @@ -8,19 +8,24 @@ See :issue:`91066` Description =========== + The interfaces of the dashboard have been moved out of the interfaces folder to be consistent with the overall TYPO3 structure. + Impact ====== -New widget types have implemented one or more of the interfaces of EXT:dashboard. + +New widget types that have implemented one or more of the interfaces of EXT:dashboard. If the namespace of those interfaces is not changed, you will get errors saying -that the old interfaces are not found anymore. +that the interfaces are not found anymore. + Affected Installations ====================== -All 3rd party extensions that created own widget types and implements one of the -interfaces of EXT:dashboard should update their paths. The accected interfaces + +All 3rd party extensions that created own widget types and implement one of the +interfaces of EXT:dashboard should update their paths. The accepted interfaces are: - :php:`AdditionalCssInterface` @@ -34,10 +39,12 @@ are: - :php:`WidgetConfigurationInterface` - :php:`WidgetInterface` + Migration ========= -The interfaces above has been moved from :php:`TYPO3\CMS\Dashboard\Widgets\Interfaces` -to :php:`TYPO3\CMS\Dashboard\Widgets`. You need to alter the namespaces of those + +The interfaces listed above have been moved from :php:`TYPO3\CMS\Dashboard\Widgets\Interfaces` +to :php:`TYPO3\CMS\Dashboard\Widgets`. You need to adapt the namespaces of those interfaces in your own widgets. .. index:: Backend, ext:dashboard, FullyScanned diff --git a/typo3/sysext/core/Documentation/Changelog/master/Breaking-91066-RemovedButtonUtility.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Breaking-91066-RemovedButtonUtility.rst similarity index 95% rename from typo3/sysext/core/Documentation/Changelog/master/Breaking-91066-RemovedButtonUtility.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Breaking-91066-RemovedButtonUtility.rst index 61b9d8420268..5222272cfce6 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Breaking-91066-RemovedButtonUtility.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Breaking-91066-RemovedButtonUtility.rst @@ -8,21 +8,28 @@ See :issue:`91066` Description =========== -The ButtonUtility was superfluous and therefor removed. + +The :php:`ButtonUtility` was superfluous and therefor removed. + Impact ====== + You need to remove the usage of the :php:`ButtonUtility` class, otherwise you will get fatal errors of missing classes. + Affected Installations ====================== + All 3rd party extensions that created own widget types with the option to add a button using the :php:`ButtonUtility::generateButtonConfig()` method are affected. + Migration ========= + First of all you need to change one line in your Widget class. When assigning your button parameter to your Fluid Template, you most probably have the following line: diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-88740-DeprecateFeloginPibasePlugin.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-88740-ExtFeloginPibasePlugin.rst similarity index 90% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-88740-DeprecateFeloginPibasePlugin.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-88740-ExtFeloginPibasePlugin.rst index 21d2bbdb5cca..9f51fe3554d2 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-88740-DeprecateFeloginPibasePlugin.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-88740-ExtFeloginPibasePlugin.rst @@ -1,21 +1,22 @@ .. include:: ../../Includes.txt -===================================================== -Deprecation: #88740 - Deprecate felogin pibase plugin -===================================================== +============================================================= +Deprecation: #88740 - ext:felogin pibase plugin related hooks +============================================================= See :issue:`88740` Description =========== -All legacy hooks of EXT:felogin have been disabled and will be removed in TYPO3v11. +All legacy hooks related to the pibase plugin of EXT:felogin have been disabled +and will be removed in TYPO3v11. Impact ====== -Extensions that use any of the following hooks will trigger a deprecation warning: +Extensions that use any of the following hooks will trigger a PHP :php:`E_USER_DEPRECATED` error: * :php:`$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['felogin']['beforeRedirect']` * :php:`$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['felogin']['postProcContent']` diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90147-UnifiedFileNameValidator.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90147-UnifiedFileNameValidator.rst similarity index 52% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-90147-UnifiedFileNameValidator.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90147-UnifiedFileNameValidator.rst index 9d4233f1fbdb..02970337e988 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90147-UnifiedFileNameValidator.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90147-UnifiedFileNameValidator.rst @@ -9,29 +9,33 @@ See :issue:`90147` Description =========== -The logic for validating if a new (uploaded) or renamed file's name is allowed, is now available in an encapsulated PHP class :php:`FileNameValidator`. +The logic for validating if a new (uploaded) or renamed file's name is allowed +is now available in an encapsulated PHP class :php:`FileNameValidator`. The functionality is moved so all logic is encapsulated in one single place: + - PHP constant `FILE_DENY_PATTERN_DEFAULT` is migrated into a class constant. -- LocalConfiguration setting is only used when it differs from the default. -- The GeneralUtility method is deprecated and calls `FileNameValidator->isValid()` directly. +- :file:`LocalConfiguration.php` setting is only used when it differs from the default. +- The :php:`GeneralUtility` method has been marked as deprecated and calls :php:`FileNameValidator->isValid()` directly. -This optimization helps to only utilize and use PHP's memory if -needed, and avoids to define run-time constants or variables, -but only initializes the logic when needed - e.g. when uploading files or using TYPO3's importer via EXT:impexp. +This optimization helps to only utilize and use PHPs memory if +needed, and avoids to define run-time constants or variables. +Logic is only initialized when needed - e.g. when uploading files or using TYPO3's importer via EXT:impexp. In addition, the PHP constant :php:`PHP_EXTENSIONS_DEFAULT` which is not -in use anymore, is marked as deprecated as well. +in use anymore, has been marked as deprecated, too. Impact ====== -Using the method :php:`GeneralUtility::verifyFilenameAgainstDenyPattern()` directly will trigger a deprecation message. +Using the method :php:`GeneralUtility::verifyFilenameAgainstDenyPattern()` directly will trigger a PHP :php:`E_USER_DEPRECATED` error. -Using the constants will continue to work but will be removed TYPO3 v11.0. +Using the constants will continue to work but will stop doing so TYPO3 v11.0, when they will be removed. -The system-wide setting to override the default file deny pattern, called :php:`$GLOBALS['TYPO3_CONF_VARS']['BE']['fileDenyPattern']` is only set when different from the systems' default. If it is the same, the option is not set anymore by TYPO3 Core. +The system-wide setting to override the default file deny pattern, +:php:`$GLOBALS['TYPO3_CONF_VARS']['BE']['fileDenyPattern']` is only set when +different from the systems default. If it is the same, the option is not set anymore by TYPO3 Core. Affected Installations @@ -51,10 +55,10 @@ use :php:`GeneralUtility::makeInstance(FileNameValidator::class)->isValid($filename);` -Instead of using the constant :php:`FILE_DENY_PATTERN_DEFAULT` use :php:`FileNameValidator::DEFAULT_FILE_DENY_PATTERN`. +Instead of using the constant :php:`FILE_DENY_PATTERN_DEFAULT`, use :php:`FileNameValidator::DEFAULT_FILE_DENY_PATTERN`. For the PHP constant :php:`PHP_EXTENSIONS_DEFAULT` there is no replacement, as it has no benefit for TYPO3 Core anymore. The extension scanner will detect the method calls or the usage of the constants. -.. index:: LocalConfiguration, PHP-API, FullyScanned, ext:core \ No newline at end of file +.. index:: LocalConfiguration, PHP-API, FullyScanned, ext:core diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90377-DeprecateRefParamTypesOfMethodCallUserFunction.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90377-ParamTypesRefOfMethodCallUserFunction.rst similarity index 64% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-90377-DeprecateRefParamTypesOfMethodCallUserFunction.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90377-ParamTypesRefOfMethodCallUserFunction.rst index b7b7e0036427..eaa13a9f0eda 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90377-DeprecateRefParamTypesOfMethodCallUserFunction.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90377-ParamTypesRefOfMethodCallUserFunction.rst @@ -1,21 +1,24 @@ .. include:: ../../Includes.txt -=========================================================================== -Deprecation: #90377 - Deprecate $ref param types of method callUserFunction -=========================================================================== +================================================================= +Deprecation: #90377 - Param types $ref of method callUserFunction +================================================================= See :issue:`90377` Description =========== -:php:`GeneralUtility::callUserFunction()` accepts a reference variable which is used to pass on the caller to the called function. Said variable :php:`$ref` does not have a type hint, therefore it's possible to pass into any type of variable whilst it's purpose is to only accept objects. +:php:`GeneralUtility::callUserFunction()` accepts a reference variable which is +used to pass on the caller to the called function. Said variable :php:`$ref` +does not have a type hint, therefore it's possible to hand over any type of variable +whilst it's purpose is to only accept objects. Impact ====== -Passing :php:`$ref` into :php:`GeneralUtility::callUserFunction()` with a type other than :php:`object` or :php:`null` triggers a deprecation warning. +Passing :php:`$ref` into :php:`GeneralUtility::callUserFunction()` with a type other than :php:`object` or :php:`null` will trigger a PHP :php:`E_USER_DEPRECATED` error. Affected Installations diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90625-ExtbaseSignalSlotDispatcher.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90625-ExtbaseSignalSlotDispatcher.rst similarity index 70% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-90625-ExtbaseSignalSlotDispatcher.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90625-ExtbaseSignalSlotDispatcher.rst index a88af0a09ba7..ac775239d7f3 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90625-ExtbaseSignalSlotDispatcher.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90625-ExtbaseSignalSlotDispatcher.rst @@ -9,7 +9,7 @@ See :issue:`90625` Description =========== -TYPO3 has had various methods to extend existing TYPO3 Core functionality via PHP. +TYPO3 has various methods to extend existing TYPO3 Core functionality via PHP. One of the famous APIs is the so-called "SignalSlot Dispatcher", originally provided by Extbase and TYPO3 Flow. @@ -17,28 +17,28 @@ TYPO3 Flow. The SignalSlot Dispatcher follows the Observer pattern, which was originally not designed to actually interact (= modify) the information handed in - it's a signal that is sent. -Since March 2019, a new standards recommendation in PHP - PSR-14 - was put into place, and adopted -in TYPO3 v10.0. TYPO3's PSR-14 implementation has several advantages over SignalSlot: +Since March 2019, a new standard recommendation in PHP - PSR-14 - was put into place, and adopted +in TYPO3 v10.0. TYPO3s PSR-14 implementation has several advantages over SignalSlot: * All Events ("Signals" in Extbase world) are actual PHP objects that clearly define what can be read or modified. * All Events are registered at compile-time (inside the Service Container), so the Listeners ("Slots" in Extbase world) are defined in one place and are always available. Previously the - registration of the slots was done in :php:`ext_localconf.php`. + registration of the slots was done in :file:`ext_localconf.php`. * Events can be used across other PHP projects as well, and the EventDispatcher can be the same - instance, as it is a standards recommendation. + instance, as it is standard recommendation. In TYPO3 v10, all Extbase signals provided by TYPO3 Core have been migrated to PSR-14 events. -For this reason, the Extbase SignalSlot Dispatcher has been deprecated in TYPO3 Core. +For this reason, the Extbase SignalSlot Dispatcher has been marked as deprecated in TYPO3 Core. It is recommended to migrate to PSR-14 Events and Event Listeners. Impact ====== -As SignalSlotDispatcher is still in place within TYPO3 Core for backwards-compatibility reasons, -and extensions still have lots of Signals defined, no deprecation warning will be triggered +As :php:`SignalSlotDispatcher` is still in place within TYPO3 Core for backwards-compatibility reasons, +and extensions still have lots of Signals defined, no PHP :php:`E_USER_DEPRECATED` error will be triggered if an extension is using the SignalSlot mechanism. However using it is highly discouraged, as it will be removed in future TYPO3 versions. diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90686-DeprecateModelFileMount.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90686-ModelFileMount.rst similarity index 55% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-90686-DeprecateModelFileMount.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90686-ModelFileMount.rst index b96377df9275..61a168449476 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90686-DeprecateModelFileMount.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90686-ModelFileMount.rst @@ -1,8 +1,8 @@ .. include:: ../../Includes.txt -=============================================== -Deprecation: #90686 - Deprecate model FileMount -=============================================== +===================================== +Deprecation: #90686 - Model FileMount +===================================== See :issue:`90686` @@ -11,14 +11,15 @@ Description The class :php:`\TYPO3\CMS\Extbase\Domain\Model\FileMount` has been marked as deprecated. -The :php:`FileMount` is an internal class which never really had any functionality besides being an Extbase model for the database table `sys_filemounts`. Therefore -and in order to streamline the codebase of Extbase, the :php:`FileMount` will be removed with TYPO3 11.0. +The :php:`FileMount` is an internal class which never really had any functionality +besides being an Extbase model for the database table :mysql:`sys_filemounts`. Therefore +and in order to streamline the codebase of Extbase, the class :php:`FileMount` will be removed with TYPO3 11.0. Impact ====== -Using :php:`FileMount` will trigger a PHP deprecation warning. +Using :php:`FileMount` will trigger a PHP :php:`E_USER_DEPRECATED` error. Affected Installations diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90692-DeprecateFileCollectionModels.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90692-FileCollectionModels.rst similarity index 67% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-90692-DeprecateFileCollectionModels.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90692-FileCollectionModels.rst index 02dee67471f5..654011cf9553 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90692-DeprecateFileCollectionModels.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90692-FileCollectionModels.rst @@ -1,8 +1,8 @@ .. include:: ../../Includes.txt -===================================================== -Deprecation: #90692 - Deprecate FileCollection models -===================================================== +=========================================== +Deprecation: #90692 - FileCollection models +=========================================== See :issue:`90692` @@ -18,13 +18,13 @@ The following classes have been marked as deprecated: - :php:`\TYPO3\CMS\Extbase\Property\TypeConverter\FolderBasedFileCollectionConverter` - :php:`\TYPO3\CMS\Extbase\Property\TypeConverter\AbstractFileCollectionConverter` -The classes have been marked as internal and never contained any logic. Therefore and in order to streamline the codebase of Extbase, the files will be removed with TYPO3 11.0. +The classes were marked as internal and never contained any logic. Therefore and in order to streamline the codebase of Extbase, the files will be removed with TYPO3 11.0. Impact ====== -Using any of the mentioned classes will trigger a PHP deprecation warning. +Using any of the mentioned classes will trigger a PHP :php:`E_USER_DEPRECATED` error. Affected Installations diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90800-GeneralUtilityisRunningOnCgiServerApi.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90800-GeneralUtilityisRunningOnCgiServerApi.rst similarity index 80% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-90800-GeneralUtilityisRunningOnCgiServerApi.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90800-GeneralUtilityisRunningOnCgiServerApi.rst index 8b8706406d33..1eac74a3a75a 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90800-GeneralUtilityisRunningOnCgiServerApi.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90800-GeneralUtilityisRunningOnCgiServerApi.rst @@ -17,7 +17,7 @@ moved to the Environment API and is now available via :php:`Environment::isRunni Impact ====== -Calling the method from GeneralUtility will trigger a PHP deprecation message. +Calling the method from :php:`GeneralUtility` will trigger a PHP :php:`E_USER_DEPRECATED` error. Affected Installations @@ -29,6 +29,6 @@ Any TYPO3 installation with an extension using this PHP method, which will happe Migration ========= -Use the new method instead which works exactly the same :php:`Environment::isRunningOnCgiServer()`. +Use the new method :php:`Environment::isRunningOnCgiServer()` instead, which works exactly the same. .. index:: PHP-API, FullyScanned, ext:core diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90856-DeprecateWidgetAutocompleteViewHelper.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90856-WidgetAutocompleteViewHelper.rst similarity index 74% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-90856-DeprecateWidgetAutocompleteViewHelper.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90856-WidgetAutocompleteViewHelper.rst index 0f674d45171a..099d8d5b1c24 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90856-DeprecateWidgetAutocompleteViewHelper.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90856-WidgetAutocompleteViewHelper.rst @@ -1,8 +1,8 @@ .. include:: ../../Includes.txt -============================================================== -Deprecation: #90856 - Deprecate Widget AutoComplete ViewHelper -============================================================== +==================================================== +Deprecation: #90856 - Widget AutoComplete ViewHelper +==================================================== See :issue:`90856` @@ -20,7 +20,7 @@ maintained for a full LTS release lifecycle. Impact ====== -Any usage of this ViewHelper or extending one of the following classes will trigger a PHP :php:`E_USER_DEPRECATED` error. +Any usage of this ViewHelper or extending one of the following classes will trigger a PHP :php:`E_USER_DEPRECATED` error: * :php:`TYPO3\CMS\Fluid\ViewHelpers\Widget\AutocompleteViewHelper` * :php:`TYPO3\CMS\Fluid\ViewHelpers\Widget\Controller\AutocompleteController` @@ -29,14 +29,14 @@ Any usage of this ViewHelper or extending one of the following classes will trig Affected Installations ====================== -Any TYPO3 installation with custom templates which contains this ViewHelper. +Any TYPO3 installation with custom templates that contain this ViewHelper. Migration ========= Remove any usages within the Fluid templates. There is no replacement provided by the core. -If you need this widget, you have to provide your own implementation of this widget with your +If you need this widget, you have to provide your own implementation with your own frontend libraries for the handling. If you still need it, copy the ViewHelper and Controller into an own extension. diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90861-Image-relatedMethodsWithinContentObjectRenderer.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90861-Image-relatedMethodsWithinContentObjectRenderer.rst similarity index 70% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-90861-Image-relatedMethodsWithinContentObjectRenderer.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90861-Image-relatedMethodsWithinContentObjectRenderer.rst index dc13544ad4e8..0d20f486a83d 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90861-Image-relatedMethodsWithinContentObjectRenderer.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90861-Image-relatedMethodsWithinContentObjectRenderer.rst @@ -10,7 +10,7 @@ Description =========== The following methods within :php:`TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer`, -all which are related to generating :html:`<img>` tags for TYPO3 Frontend output via TypoScript have been marked as deprecated: +all which are related to generating :html:`<img>` tags for TYPO3 Frontend output via TypoScript, have been marked as deprecated: * :php:`cImage()` * :php:`getBorderAttr()` @@ -19,11 +19,11 @@ all which are related to generating :html:`<img>` tags for TYPO3 Frontend output * :php:`linkWrap()` * :php:`getAltParam()` -An additional method, `imageLinkWrap()` has been marked as "internal" now in order to allow refactoring in future TYPO3 versions. +An additional method, :php:`imageLinkWrap()` has been marked as "internal" now in order to allow refactoring in future TYPO3 versions. All methods have been moved to the :php:`ImageContentObject` class, als known as "IMAGE" cObject. -The methods' purpose is only relevant for generating IMAGE, thus making the actual ContentObjectRenderer class smaller. +The methods purpose is only relevant for generating IMAGE, thus making the actual ContentObjectRenderer class smaller. Impact @@ -31,16 +31,16 @@ Impact Any TypoScript configuration using code of this is not affected. -Only third-party extension that use this code for frontend-related +Only third-party extensions that use this code for frontend-related image rendering might directly call these PHP methods. Calling these -methods will trigger a PHP deprecation notice. +methods will trigger a PHP :php:`E_USER_DEPRECATED` error. Affected Installations ====================== TYPO3 installations with custom third-party extensions calling these -methods. TYPO3's Extension Scanner code can directly detect these changes. +methods. TYPO3's Extension Scanner code can directly detect these calls. Migration @@ -50,4 +50,4 @@ As all moved methods are protected, it is recommended to either extend the ImageContentObject class, or copy the respective code into the third-party extension requiring this code. -.. index:: Frontend, PHP-API, FullyScanned, ext:frontend \ No newline at end of file +.. index:: Frontend, PHP-API, FullyScanned, ext:frontend diff --git a/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90937-VariousHooksInContentObjectRenderer.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90937-VariousHooksInContentObjectRenderer.rst new file mode 100644 index 000000000000..b0f2e71342b8 --- /dev/null +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90937-VariousHooksInContentObjectRenderer.rst @@ -0,0 +1,48 @@ +.. include:: ../../Includes.txt + +============================================================ +Deprecation: #90937 - Various hooks in ContentObjectRenderer +============================================================ + +See :issue:`90937` + +Description +=========== + +The following hooks within class :php:`ContentObjectRenderer` have been marked as deprecated: + +* :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClass']` +* :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault']` +* :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['extLinkATagParamsHandler']` +* :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['typolinkLinkHandler']` + +All hooks have been available for a long time, and several new concepts and APIs that have been added in previous LTS versions already, that superseded these hooks. + + +Impact +====== + +Extensions registering the any one of the hooks listed above will trigger a PHP :php:`E_USER_DEPRECATED` error when the code is executed. + + +Affected Installations +====================== + +TYPO3 installations with older extensions implementing one of the hooks above, which is very rare and only serve specific use-cases +for rendering ContentObjects or custom link style tags that are not related to TYPO3 v8 linking syntax (`t3://...`). + + +Migration +========= + +The hooks :php:`cObjTypeAndClass` and :php:`cObjTypeAndClassDefault` can be simplified by using the new way of registering custom ContentObjects via: + +:php:`$GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects']` - see :file:`EXT:frontend/ext_localconf.php` for examples - TYPO3 Core adds its shipped ContentObjects exactly the same way. + +The :php:`typolinkLinkHandler` hook is used for registering custom link syntax that start with a certain keyword such as "news:13". + +Since TYPO3 v8, LinkHandler support has been added to TYPO3 Core natively, using the new `t3://` syntax. +The "LinkHandler" registry can be extended via :php:`$GLOBALS['TYPO3_CONF_VARS']['SYS']['linkHandler']` +and :php:`$GLOBALS['TYPO3_CONF_VARS']['FE']['typolinkBuilder']` that serves the same purpose with a better API. + +.. index:: Frontend, FullyScanned, ext:frontend diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90956-AlternativeFetchMethodsAndReportsForGeneralUtilitygetUrl.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90956-AlternativeFetchMethodsAndReportsForGeneralUtilitygetUrl.rst similarity index 72% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-90956-AlternativeFetchMethodsAndReportsForGeneralUtilitygetUrl.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90956-AlternativeFetchMethodsAndReportsForGeneralUtilitygetUrl.rst index b9d6a12c8861..e46f1b98b44b 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90956-AlternativeFetchMethodsAndReportsForGeneralUtilitygetUrl.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90956-AlternativeFetchMethodsAndReportsForGeneralUtilitygetUrl.rst @@ -12,15 +12,17 @@ Description The short-hand method :php:`GeneralUtility::getUrl()` provides a fast way to fetch the contents of a local file or remote URL. -For Remote URLs, TYPO3 v8 provides a object-oriented (PSR-7 compatible) way by using the :php:`RequestFactory->request($url, $method)` API. Under the hood, the PHP library GuzzleHTTP is used, +For Remote URLs, TYPO3 v8 provides a object-oriented (PSR-7 compatible) way by using +the :php:`RequestFactory->request($url, $method)` API. Under the hood, the PHP library GuzzleHTTP is used, which evaluates what best option (e.g. curl library) should handle the download to TYPO3. -In general, it is recommended for any third-party extension developer to use either PHP's native :php:`file_get_contents($file)` method or the `RequestFactory->request()` method to fetch a PSR-7 ResponseInterface object. +In general, it is recommended for any third-party extension developer to use either +PHP's native :php:`file_get_contents($file)` method or the :php:`RequestFactory->request()` method to fetch a PSR-7 ResponseInterface object. -The additional arguments in `GeneralUtility::getUrl()` which allowed -to send headers to the content or just do a HEAD request, or find - reports on why the request did not succeed are deprecated. +The additional arguments in :php:`GeneralUtility::getUrl()` which allowed +to send headers to the content or just do a HEAD request, or find reports on why +the request did not succeed have been marked as deprecated. PHP's native Exception Handling and the response object give enough insights already to load the HTTP headers as well, or even do HTTP `POST` requests. @@ -28,15 +30,15 @@ PHP's native Exception Handling and the response object give enough insights alr Impact ====== -Calling the method `GeneralUtility::getUrl()` with more than one -method argument will trigger a deprecation warning. +Calling the method :php:`GeneralUtility::getUrl()` with more than one +method argument will trigger a PHP :php:`E_USER_DEPRECATED` error. Affected Installations ====================== -TYPO3 installations using a third-party extension with the method -described above. +TYPO3 installations using a third-party extension with :php:`GeneralUtility::getUrl()` +and more than one parameter in the call. Migration @@ -70,4 +72,4 @@ Finding additional information about the response: $content = $response->getBody()->getContents(); } -.. index:: PHP-API, FullyScanned, ext:core \ No newline at end of file +.. index:: PHP-API, FullyScanned, ext:core diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90964-LanguageServiceFunctionalityAndInternalProperties.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90964-LanguageServiceFunctionalityAndInternalProperties.rst similarity index 79% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-90964-LanguageServiceFunctionalityAndInternalProperties.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90964-LanguageServiceFunctionalityAndInternalProperties.rst index 708daede6cdd..d6ff6dcd2f6e 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90964-LanguageServiceFunctionalityAndInternalProperties.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-90964-LanguageServiceFunctionalityAndInternalProperties.rst @@ -13,7 +13,8 @@ LanguageService - also known as :php:`$GLOBALS[LANG]` within TYPO3 Core is used to fetch a label string from a XLF file and deliver the translated value from that string. -Some functionality related to legacy functionality or internal logic has been deprecated and changed visibility: +Some functionality related to legacy functionality or internal logic has been marked as deprecated and changed visibility: + * :php:`LanguageService->LL_files_cache` - is now protected instead of public * :php:`LanguageService->LL_labels_cache` - is now protected instead of public * :php:`LanguageService->getLabelsWithPrefix()` - is deprecated as it is not needed @@ -26,18 +27,18 @@ The method :php:`LanguageService->loadSingleTableDescription()` is marked as int Impact ====== -Calling any of the methods or properties from above will trigger a PHP deprecation warning. +Calling any of the methods or properties listed above will trigger a PHP :php:`E_USER_DEPRECATED` error. Affected Installations ====================== -TYPO3 installations with extensions of custom logic using the internals of specifics of the LanguageService class. +TYPO3 installations with extensions of custom logic using the internals of specifics of the :php:`LanguageService` class. Migration ========= -Use the Public API of the LanguageService - namely :php:`sL()` and :php:`getLL()` directly. +Use the Public API of the :php:`LanguageService` - namely :php:`sL()` and :php:`getLL()` directly. .. index:: PHP-API, FullyScanned, ext:core diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-91001-VariousMethodsWithinGeneralUtility.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-91001-VariousMethodsWithinGeneralUtility.rst similarity index 95% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-91001-VariousMethodsWithinGeneralUtility.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-91001-VariousMethodsWithinGeneralUtility.rst index 8dc4601937b6..3e07fceff03d 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-91001-VariousMethodsWithinGeneralUtility.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-91001-VariousMethodsWithinGeneralUtility.rst @@ -26,7 +26,7 @@ In addition, these methods are unused by Core and marked as deprecated as well: Impact ====== -Calling any methods directly from PHP will trigger a PHP deprecation notice. +Calling any methods directly from PHP will trigger a PHP :php:`E_USER_DEPRECATED` error. Affected Installations diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-91012-VariousHooksRelatedToTypoScriptFrontendController.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-91012-VariousHooksRelatedToTypoScriptFrontendController.rst similarity index 64% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-91012-VariousHooksRelatedToTypoScriptFrontendController.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-91012-VariousHooksRelatedToTypoScriptFrontendController.rst index 2563279ba218..777898c25536 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-91012-VariousHooksRelatedToTypoScriptFrontendController.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-91012-VariousHooksRelatedToTypoScriptFrontendController.rst @@ -9,8 +9,8 @@ See :issue:`91012` Description =========== -The following hooks related to TypoScriptFrontendController -and frontend-rendering have been deprecated: +The following hooks related to class :php:`TypoScriptFrontendController` +and frontend-rendering have been marked as deprecated: * :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['pageIndexing']` * :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['isOutputting']` @@ -18,7 +18,7 @@ and frontend-rendering have been deprecated: * :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-output']` * :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['hook_eofe']` -The following methods have been deprecated as well, as they only +The following methods have been marked as deprecated as well, as they only contain code relevant for executing the hooks: * :php:`TypoScriptFrontendController->isOutputting()` @@ -28,39 +28,42 @@ contain code relevant for executing the hooks: Impact ====== -If third-party extensions are using the hooks, a PHP deprecation warning will be triggered when the hook is executed. +If third-party extensions are using the hooks, a PHP :php:`E_USER_DEPRECATED` error will be triggered when the hook is executed. -Calling the two methods above will also trigger a deprecation warning. +Calling the two methods above will also trigger a PHP :php:`E_USER_DEPRECATED` error. Affected Installations ====================== -TYPO3 installations with custom extensions using the hooks or mentioned above, which is likely common if they haven't been using +TYPO3 installations with custom extensions using the hooks or mentioned above, which is common if they haven't been using PSR-15 middlewares or other hooks instead. Migration ========= -The hook :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['pageIndexing']` should be replaced by the :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-cached']` hook to index pages. However, please note that `$TSFE->content` might contain UTF-8 content now, instead of content already converted to the defined character set related to `metaCharset` TypoScript property. +The hook :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['pageIndexing']` +should be replaced by the :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-cached']` hook +to index pages. However, please note that :php:`$TSFE->content` might contain UTF-8 content now, +instead of content already converted to the defined character set related to :typoscript:`metaCharset` TypoScript property. Since TYPO3 v9, the emitter of HTTP responses is based on PSR-7, the hook :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['isOutputting']` can be removed, as TYPO3 can be configured via PSR-15 middlewares to define whether page content should be emitted / rendered or not. -The hook to dynamically replace content via - :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['tslib_fe-contentStrReplace']` +The hook to dynamically replace content via :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['tslib_fe-contentStrReplace']` is removed as it serves no purpose for TYPO3 Core anymore. If content should be dynamically modified, use a PSR-15 middleware instead. The hook :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['contentPostProc-output']` is not needed as this can be built via a PSR-15 middleware instead, and all content is returned via the RequestHandler of TYPO3 Frontend. -Extensions using hook :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['hook_eofe']` should be converted to PSR-15 middlewares, as this allows to modify content and headers of a PSR-7 Response object. +Extensions using hook :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_fe.php']['hook_eofe']` should +be converted to PSR-15 middlewares, as this allows to modify content and headers of a PSR-7 Response object. The method :php:`TypoScriptFrontendController->isOutputting()` is obsolete and can be removed in third-party code. The same applies to :php:`TypoScriptFrontendController->processContentForOutput()` which should only be used to trigger legacy hooks still applied in the system. -.. index:: PHP-API, FullyScanned, ext:frontend \ No newline at end of file +.. index:: PHP-API, FullyScanned, ext:frontend diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-91030-Runtime-ActivatedPackages.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-91030-Runtime-ActivatedPackages.rst similarity index 68% rename from typo3/sysext/core/Documentation/Changelog/master/Deprecation-91030-Runtime-ActivatedPackages.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-91030-Runtime-ActivatedPackages.rst index 7eaf2428af56..94cbed646eba 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-91030-Runtime-ActivatedPackages.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Deprecation-91030-Runtime-ActivatedPackages.rst @@ -9,7 +9,7 @@ See :issue:`91030` Description =========== -TYPO3's global configuration option :php:`$GLOBALS['TYPO3_CONF_VARS']['EXT']['runtimeActivatedPackages']` has been deprecated. +TYPO3's global configuration option :php:`$GLOBALS['TYPO3_CONF_VARS']['EXT']['runtimeActivatedPackages']` has been marked as deprecated. The option to register packages during runtime was introduced as a work-around to dynamically modify the "extension list" when migrating from TYPO3 v4.5 to TYPO3 v6.x. @@ -19,20 +19,20 @@ However, using this feature has certain limitations: * Runtime-activated Extensions cannot add their DI configuration * Runtime-activated Extensions make every (!) single TYPO3 request much slower just like back in 6.2.0 times -The main usecase we know from people was to this functionality to enable e.g. extensions such as "devlog", "mask"/"mask_export" or "extensionbuilder" only on development systems. +The main use case we know from people was to this functionality to enable e.g. extensions such as "devlog", "mask"/"mask_export" or "extensionbuilder" only on development systems. Impact ====== Having a TYPO3 system using Runtime Activated Packages functionality -will trigger a PHP deprecation warning on every TYPO3 request. +will trigger a PHP :php:`E_USER_DEPRECATED` error on every TYPO3 request. Affected Installations ====================== -TYPO3 installations having the affected option set in either :php:`typo3conf/LocalConfiguration.php` or :php:`typo3conf/AdditionalConfiguration.php`. +TYPO3 installations having the affected option set in either :file:`typo3conf/LocalConfiguration.php` or :file:`typo3conf/AdditionalConfiguration.php`. Migration @@ -44,4 +44,4 @@ Console and Composer Mode (with require-dev) to achieve a similar behavior. If it is critical to have such features, consider modifying the extension in question to deal with TYPO3's Context feature to enable / disable functionality for Production environment. -.. index:: LocalConfiguration, FullyScanned, ext:core \ No newline at end of file +.. index:: LocalConfiguration, FullyScanned, ext:core diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-83128-ContentElementFilter.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-83128-ContentElementFilter.rst similarity index 87% rename from typo3/sysext/core/Documentation/Changelog/master/Feature-83128-ContentElementFilter.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Feature-83128-ContentElementFilter.rst index 94a698730877..0bb4e0fca8bc 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Feature-83128-ContentElementFilter.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-83128-ContentElementFilter.rst @@ -16,7 +16,7 @@ Impact ====== If a user enters a search query, any content type whose title or description -don't match the query are hidden to the user. Since content types are grouped in +doesn't match the query are hidden to the user. Since content types are grouped in tabs, tabs without content get disabled to the user. If the current active tab becomes empty, the next available tab is activated. diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-87776-LimitRestrictionToTablesInQueryBuilder.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-87776-LimitRestrictionToTablesInQueryBuilder.rst similarity index 89% rename from typo3/sysext/core/Documentation/Changelog/master/Feature-87776-LimitRestrictionToTablesInQueryBuilder.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Feature-87776-LimitRestrictionToTablesInQueryBuilder.rst index d97a68c2fbf9..67e327687f3e 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Feature-87776-LimitRestrictionToTablesInQueryBuilder.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-87776-LimitRestrictionToTablesInQueryBuilder.rst @@ -10,11 +10,12 @@ Description =========== In some cases it is needed to apply restrictions only to a certain table. -With the new `\TYPO3\CMS\Core\Database\Query\Restriction\LimitToTablesRestrictionContainer` +With the new :php:`\TYPO3\CMS\Core\Database\Query\Restriction\LimitToTablesRestrictionContainer` it is possible to apply restrictions to a query only for a given set of tables, or to be precise, table aliases. Since it is a restriction container, it can be added to the restrictions of the query builder and it can hold restrictions itself. The restrictions it holds can be limited to tables like this: + Example implementation: ----------------------- @@ -37,10 +38,11 @@ Example implementation: $queryBuilder->expr()->eq('tt.uid', $queryBuilder->createNamedParameter($id, \PDO::PARAM_INT)) ); -In this example the HiddenRestriction is only applied to `tt` table alias of `tt_content`. + +In this example the HiddenRestriction is only applied to :sql:`tt` table alias of :sql:`tt_content`. Furthermore it is possible to restrict the complete set of restrictions of a query builder to a -given set of table aliases +given set of table aliases. .. code-block:: php @@ -66,6 +68,6 @@ Impact ====== It is now easily possible to add restrictions that are only applied to certain tables/ table aliases, -by using `\TYPO3\CMS\Core\Database\Query\Restriction\LimitToTablesRestrictionContainer`. +by using :php:`\TYPO3\CMS\Core\Database\Query\Restriction\LimitToTablesRestrictionContainer`. .. index:: Database, ext:core, API diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-89513-PasswordResetForBackendUsers.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-89513-PasswordResetForBackendUsers.rst similarity index 74% rename from typo3/sysext/core/Documentation/Changelog/master/Feature-89513-PasswordResetForBackendUsers.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Feature-89513-PasswordResetForBackendUsers.rst index 4bbee002094a..5af9fcc9ad0c 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Feature-89513-PasswordResetForBackendUsers.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-89513-PasswordResetForBackendUsers.rst @@ -9,17 +9,17 @@ See :issue:`89513` Description =========== -It is now possible for TYPO3 Backend users that use the default username / password -mechanism to log in, to reset their password via triggering an email through the +It is now possible for TYPO3 Backend users who use the default username / password +mechanism to log in, to reset their password by triggering an email through the Login form. The reset link is only shown if there is at least one user that matches the following criteria: * The user has a password entered previously (used to indicate that no third-party login was used) -* The user has a valid email added to his user record +* The user has a valid email added to their user record * The user is neither deleted nor disabled -* The email address is only used once within Backend users +* The email address is only used once among all Backend users of the instance Once the user has entered their email address, an email is sent out with a link to set a new password which needs to have a least 8 characters. @@ -30,11 +30,11 @@ If the password was provided correctly, it is updated for the user and can log-i Some notes on security: -+ When having multiple users with the same email address -+ No information disclosure is built-in, so if the email address is not in the system, it is not known to the outside -+ Rate limiting is activated for allowing three emails to be sent within 30 minutes per email address -+ Tokens are stored for the backend users in the database but hashed again just like the password -+ When a user has logged in successfully (e.g. because he/she remembered the password) the token is removed from the database, effectively invalidating all existing email links +* When having multiple users with the same email address, no reset functionality is provided +* No information disclosure is built-in, so if the email address is not in the system, it is not known to the outside +* Rate limiting is activated for allowing three emails to be sent within 30 minutes per email address +* Tokens are stored for the backend users in the database but hashed again just like the password +* When a user has logged in successfully (e.g. because he/she remembered the password) the token is removed from the database, effectively invalidating all existing email links The feature is active by default and can be deactivated completely via the system-wide configuration option: @@ -47,10 +47,10 @@ the following system-wide option to "false". :php:`$GLOBALS['TYPO3_CONF_VARS']['BE']['passwordResetForAdmins']` Both options are available to be configured within the Maintenance Area -=> Setings module, or in the Install Tool, but can be set manually via -:php:`typo3conf/LocalConfiguration.php` or :php:`typo3conf/AdditionalConfiguration.php`. +=> Settings module, or in the Install Tool, but can be set manually via +:file:`typo3conf/LocalConfiguration.php` or :file:`typo3conf/AdditionalConfiguration.php`. -In addition, it is possible for administrators to reset a users' password. +In addition, it is possible for administrators to reset a users password. This is especially useful for security purposes so an administrator does not need to send a password over the wire in plaintext (e.g. email) to a user. @@ -60,6 +60,12 @@ The administrator can use the CLI command: ./typo3/sysext/core/bin/typo3 backend:resetpassword https://www.example.com/typo3/ editor@example.com +where usage is described as this: + +.. code-block:: bash + + backend:resetpassword <backendurl> <email> + Alternatively it is possible for administrators to use the "Backend users" module and select the password reset button to initiate the password reset process for a specific user. diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-89573-AllowFlexibleBaseUrlForSlugFieldsInFormEngine.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-89573-AllowFlexibleBaseUrlForSlugFieldsInFormEngine.rst similarity index 92% rename from typo3/sysext/core/Documentation/Changelog/master/Feature-89573-AllowFlexibleBaseUrlForSlugFieldsInFormEngine.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Feature-89573-AllowFlexibleBaseUrlForSlugFieldsInFormEngine.rst index 6fa4185f3b95..eef82efd5f5e 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Feature-89573-AllowFlexibleBaseUrlForSlugFieldsInFormEngine.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-89573-AllowFlexibleBaseUrlForSlugFieldsInFormEngine.rst @@ -9,11 +9,11 @@ See :issue:`89573` Description =========== -It is now possible to add a custom base url for TCA columns of type `slug`. The +It is now possible to add a custom base url for TCA columns of type :php:`slug`. The base url is displayed in front of the input field in FormEngine. To add a custom base url a :php:`userFunc` can be assigned to the new setting -`prefix` which is available under :php:`['columns'][*]['config']['appearance']`. +:php:`prefix` which is available under :php:`['columns'][*]['config']['appearance']` at the fields TCA definition. .. code-block:: php diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-90613-AddLanguageArgumentToPage-relatedLinkViewHelpersAndUriViewHelpersInFluid.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-90613-AddLanguageArgumentToPage-relatedLinkViewHelpersAndUriViewHelpersInFluid.rst similarity index 94% rename from typo3/sysext/core/Documentation/Changelog/master/Feature-90613-AddLanguageArgumentToPage-relatedLinkViewHelpersAndUriViewHelpersInFluid.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Feature-90613-AddLanguageArgumentToPage-relatedLinkViewHelpersAndUriViewHelpersInFluid.rst index 7217ef181a21..32dea9183cdd 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Feature-90613-AddLanguageArgumentToPage-relatedLinkViewHelpersAndUriViewHelpersInFluid.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-90613-AddLanguageArgumentToPage-relatedLinkViewHelpersAndUriViewHelpersInFluid.rst @@ -9,7 +9,7 @@ See :issue:`90613` Description =========== -A new argument "language" is added to the following Fluid ViewHelpers: +A new argument :html:`language` is added to the following Fluid ViewHelpers: * :html:`<f:link.typolink>` * :html:`<f:link.page>` @@ -61,4 +61,4 @@ This Fluid option should be used instead of adding a `L` parameter to `additionalParameters` argument to make linking to a specific language possible. In general, using of the magic GET variable `L` is discouraged. -.. index:: Fluid, ext:fluid \ No newline at end of file +.. index:: Fluid, ext:fluid diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-90826-CompareBackendUsergroups.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-90826-CompareBackendUsergroups.rst similarity index 100% rename from typo3/sysext/core/Documentation/Changelog/master/Feature-90826-CompareBackendUsergroups.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Feature-90826-CompareBackendUsergroups.rst diff --git a/typo3/sysext/core/Documentation/Changelog/10.4/Feature-90899-IntroduceAssetPreRenderingEvents.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-90899-IntroduceAssetPreRenderingEvents.rst new file mode 100644 index 000000000000..71b8f63cbcab --- /dev/null +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-90899-IntroduceAssetPreRenderingEvents.rst @@ -0,0 +1,129 @@ +.. include:: ../../Includes.txt + +============================================================== +Feature: #90899 - Introduce AssetRenderer pre-rendering events +============================================================== + +See :issue:`90899` + +Description +=========== + +AssetRenderer is amended by two events which allow post-processing of +AssetCollector assets. + +These new PSR-14 events are introduced: + +* :php:`\TYPO3\CMS\Core\Page\Event\BeforeJavaScriptsRenderingEvent` +* :php:`\TYPO3\CMS\Core\Page\Event\BeforeStylesheetsRenderingEvent` + +Both stem fom the abstract base class +:php:`\TYPO3\CMS\Core\Page\Event\AbstractBeforeAssetRenderingEvent` and provide +these public methods: + +* :php:`getAssetCollector(): AssetCollector` +* :php:`isInline(): bool` +* :php:`isPriority(): bool` + +:php:`inline` and :php:`priority` refer to how the asset was registered with +:ref:`AssetCollector <changelog-Feature-90522-IntroduceAssetCollector>`. + +The events are fired exactly once for every combination of +:php:`inline`/:php:`priority` before the corresponding section of JS/CSS assets +is rendered by the AssetRenderer. + +To make the events easier to use, the :php:`AssetCollector::get*()` methods +have gotten an optional parameter :html:`?bool $priority = null` which when given a +boolean only returns assets of the given priority. + + +.. note:: + + post-processing functionality for assets registered via + TypoScript :ts:`page.include...` or the :php:`PageRenderer::add*()` + functions are still provided by these hooks: + + * :php:`$GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['cssCompressHandler']` + * :php:`$GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['jsCompressHandler']` + * :php:`$GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['cssConcatenateHandler']` + * :php:`$GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['jsConcatenateHandler']` + * :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_pagerenderer.php']['render-preProcess']` + + Assets registered with the AssetCollector (and output through the + AssetRenderer) are not included in those. + + +Example +======= + +As an example let's make sure jQuery is included in a specific version and +from a CDN. + +.. rst-class:: bignums + + 1. Register our listeners + + :file:`Configuration/Services.yaml` + + .. code-block:: yaml + + services: + MyVendor\MyExt\EventListener\AssetRenderer\LibraryVersion: + tags: + - name: event.listener + identifier: 'myExt/LibraryVersion' + event: TYPO3\CMS\Core\Page\Event\AssetRendererBeforeRenderingEvent + + + 2. Implement Listener to enforce a library version or CDN URI + + .. code-block:: php + + namespace MyVendor\MyExt\EventListener\AssetRenderer; + + use TYPO3\CMS\Core\Page\Event\BeforeJavaScriptsRenderingEvent; + + /** + * If a library has been registered, it is made sure that it is loaded + * from the given URI + */ + class LibraryVersion + { + protected $libraries = [ + 'jquery' => 'https://code.jquery.com/jquery-3.4.1.min.js', + ]; + + public function __invoke(BeforeJavaScriptsRenderingEvent $event): void + { + if ($event->isInline()) { + return; + } + + foreach ($this->libraries as $library => $source) { + $asset = $event->getAssetCollector()->getJavaScripts($event->isPriority()) + // if it was already registered + if ($asset[$library] ?? false) { + // we set our authoritative version + $event->getAssetCollector()->addJavaScript($library, $source); + } + } + } + } + + +Impact +====== + +Existing installations are not affected. + +If using the AssetCollector API, these new events should be used for asset +postprocessing. + +Related +======= + +- :ref:`changelog-Feature-90522-IntroduceAssetCollector` + +.. _changelog-Feature-90899-IntroduceAssetPreRenderingEvents: + +.. index:: PHP-API, ext:core diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-91008-ItemGroupingForTCASelectItems.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-91008-ItemGroupingForTCASelectItems.rst similarity index 75% rename from typo3/sysext/core/Documentation/Changelog/master/Feature-91008-ItemGroupingForTCASelectItems.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Feature-91008-ItemGroupingForTCASelectItems.rst index c800aedb6c88..39adee2b2c6a 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Feature-91008-ItemGroupingForTCASelectItems.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-91008-ItemGroupingForTCASelectItems.rst @@ -9,20 +9,22 @@ See :issue:`91008` Description =========== -The TCA column type "select" now has a clean API to group items for dropdowns -in FormEngine. This was previously handled via placeholder "--div--" items, -which then rendered as `<optgroup>` HTML elements in a dropdown. +The TCA column type ``select`` now has a clean API to group items for dropdowns +in FormEngine. This was previously handled via placeholder ``--div--`` items, +which then rendered as :html:`<optgroup>` HTML elements in a dropdown. In larger installations or TYPO3 instances with lots of extensions, Plugins -(`tt_content.list_type`), Content Types (`tt_content.CType`) or custom -Page Types (`pages.doktype`), grouping can now be configured on a per-item +(:php:`tt_content.list_type`), Content Types (:php:`tt_content.CType`) or custom +Page Types (:php:`pages.doktype`) drop down lists could grow large and adding item groups +caused tedious work for developers or integrators. +Grouping can now be configured on a per-item basis. Custom groups can be added via an API or when defining TCA for a new table. Adding Custom Select Item Groups -------------------------------- -Registration of a select item group takes place in :php:`Configuration/TCA/tx_mytable.php` -for new TCA tables, and in :php:`Configuration/TCA/Overrides/a_random_core_table.php` +Registration of a select item group takes place in :file:`Configuration/TCA/tx_mytable.php` +for new TCA tables, and in :file:`Configuration/TCA/Overrides/a_random_core_table.php` for modifying an existing TCA definition. The following two examples illustrate adding a new group to a field of @@ -38,7 +40,7 @@ type "select": 'after:lists' ); -The TCA for `tt_content.CType` column configuration looks like this now: +The TCA for :php:`tt_content.CType` column configuration looks like this now: .. code-block:: php @@ -54,13 +56,13 @@ The TCA for `tt_content.CType` column configuration looks like this now: When adding a new select field, itemGroups should be added directly in the original TCA definition without using the API method. Use the API within -`TCA/Configuration/Overrides/` files to extend an existing TCA select field with +:file:`TCA/Configuration/Overrides/` files to extend an existing TCA select field with grouping. Attaching Select Items to Item Groups ------------------------------------- -A select item now has a fourth array key to define a "Group ID" to which group it +A select item now has a fourth array key to define a "Group ID" which group it belongs to. In the example above, the group ID is named "sliders" and used in the examples below to attach items to this group. @@ -106,7 +108,7 @@ adding pi-based plugins. When adding Extbase plugins, the API method now allows to specify a group ID directly as additional parameter. This falls back to the "default" group ID, -which is available in `tt_content.CType` and `tt_content.list_type`. +which is available in :php:`tt_content.CType` and :php:`tt_content.list_type`. .. code-block:: php @@ -127,21 +129,21 @@ which is available in `tt_content.CType` and `tt_content.list_type`. Impact ====== -By default, Page Types (`pages.doktype`), Content Types (`tt_content.CType`) and -Plugins (`tt_content.list_type`) now have native grouping enabled. +By default, Page Types (:php:`pages.doktype`), Content Types (:php:`tt_content.CType`) and +Plugins (:php:`tt_content.list_type`) now have native grouping enabled. -The order of the `itemGroups` value is important when using groups, as this +The order of the :php:`itemGroups` value is important when using groups, as this is the order of the groups rendered in the dropdown of FormEngine. The API methods can be used to build more groups without juggling with TCA arrays. -It is possible now, and encouraged to remove the `--div--` items in custom -selects and use itemGroups instead. TYPO3 Core keeps the `--div--` for +It is possible now, and encouraged to remove the :php:`--div--` items in custom +selects and use itemGroups instead. TYPO3 Core keeps the :php:`--div--` for backwards-compatible reasons in TYPO3 v10, but all items of the fields mentioned above the grouping parameter has been added already. -Please note that this `--div--` is related to select items, and not the +Please note that this :php:`--div--` is related to select items, and not the "showItem" definition which fields should be shown. Currently Item Groups are used in FormEngine DropDowns / single-select items diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-91008-ItemSortingForTCASelectItems.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-91008-ItemSortingForTCASelectItems.rst similarity index 82% rename from typo3/sysext/core/Documentation/Changelog/master/Feature-91008-ItemSortingForTCASelectItems.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Feature-91008-ItemSortingForTCASelectItems.rst index f8bb58437abf..f5ebc2cdee44 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Feature-91008-ItemSortingForTCASelectItems.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-91008-ItemSortingForTCASelectItems.rst @@ -9,17 +9,17 @@ See :issue:`91008` Description =========== -A new option `sortOrders` for TCA-based select fields has been added to allow +A new option :php:`sortOrders` for TCA-based select fields has been added to allow sorting of static TCA select items by their values or labels. -This is now used in TYPO3 Core's `tt_content.list_type` whereas -a previous `itemProcFunc` was used to sort all plugins by label +This is now used in TYPO3 Core's :php:`tt_content.list_type` whereas +a previous :php:`itemProcFunc` was used to sort all plugins by label in the FormEngine dropdown. Built-in orderings are to sort items by their labels or values. It is also possible -to define custom `sortOrders` via custom PHP code. +to define custom :php:`sortOrders` via custom PHP code. -Examples from tt_contents' `list_type` TCA: +Examples from tt_contents' :php:`list_type` TCA: .. code-block:: php diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-91080-SiteSettingsAsTsConstantsAndInTsConfig.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Feature-91080-SiteSettingsAsTsConstantsAndInTsConfig.rst similarity index 100% rename from typo3/sysext/core/Documentation/Changelog/master/Feature-91080-SiteSettingsAsTsConstantsAndInTsConfig.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Feature-91080-SiteSettingsAsTsConstantsAndInTsConfig.rst diff --git a/typo3/sysext/core/Documentation/Changelog/master/Important-18079-PagesdoktypeRestrictionForFrontendQueriesRefined.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Important-18079-PagesdoktypeRestrictionForFrontendQueriesRefined.rst similarity index 65% rename from typo3/sysext/core/Documentation/Changelog/master/Important-18079-PagesdoktypeRestrictionForFrontendQueriesRefined.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Important-18079-PagesdoktypeRestrictionForFrontendQueriesRefined.rst index 1962975aa206..fd5d9fbbb9f7 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Important-18079-PagesdoktypeRestrictionForFrontendQueriesRefined.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Important-18079-PagesdoktypeRestrictionForFrontendQueriesRefined.rst @@ -9,14 +9,16 @@ See :issue:`18079` Description =========== -Since over 15 years, TYPO3's Frontend rendering had a restriction to only allow pages with a "page type" (pages.doktype such as "Shortcut", "Link to external URL") to be limited to a fixed number less than 200. +Since over 15 years, TYPO3's Frontend rendering had a restriction to only allow +pages with a "page type" (pages.doktype such as "Shortcut", "Link to external URL") to be limited to a fixed number less than 200. -This meant that pages of certain types such as a Sys Folder and Recycler never were respected when fetching content from a specific page (via Typoscript) or querying records from there. +This meant that pages of certain types such as a Sys Folder and Recycler never were +respected when fetching content from a specific page (via Typoscript) or querying records from there. This limitation has now been lifted in order to fix certain bugs, -such as "content sliding" via TypoScript. But this also allows custom page doktypes to be used that have a higher number 200. +such as "content sliding" via TypoScript. But this also allows custom page doktypes to be used that have a number higher than 200. This could potentially result in unexpected behavior in TypoScript or content fetching, if the previous limited behavior was mis-used for certain purposes. -.. index:: Frontend, TypoScript, ext:frontend \ No newline at end of file +.. index:: Frontend, TypoScript, ext:frontend diff --git a/typo3/sysext/core/Documentation/Changelog/master/Important-77715-NoMorePasswordTrimmingForThird-partyAuthenticationServices.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Important-77715-NoMorePasswordTrimmingForThird-partyAuthenticationServices.rst similarity index 83% rename from typo3/sysext/core/Documentation/Changelog/master/Important-77715-NoMorePasswordTrimmingForThird-partyAuthenticationServices.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Important-77715-NoMorePasswordTrimmingForThird-partyAuthenticationServices.rst index 9908559fd98d..3912f7ba2a30 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Important-77715-NoMorePasswordTrimmingForThird-partyAuthenticationServices.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Important-77715-NoMorePasswordTrimmingForThird-partyAuthenticationServices.rst @@ -22,10 +22,10 @@ This made it impossible to ever have passwords that included spaces at the beginning or the end of a given password. This behaviour is now changed, and only affects Third-Party Authentication -providers - which they can now decide to also trim passwords or keep them as is. +providers - which can now decide to also trim passwords or keep them as is. -This logic is mostly handled within `processLoginData()`. If the Third-Party -Authentication Provider is extending from Core's AuthenticationService and does +This logic is mostly handled within :php:`processLoginData()`. If the Third-Party +Authentication Provider is extending from Core's :php:`AuthenticationService` class and does not override the method, then the behaviour will still be the same as before. TYPO3's native Authentication Service still requires a password without spaces diff --git a/typo3/sysext/core/Documentation/Changelog/master/Important-86343-ReplaceJQueryDataTablesWithTablesort.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Important-86343-ReplaceJQueryDataTablesWithTablesort.rst similarity index 78% rename from typo3/sysext/core/Documentation/Changelog/master/Important-86343-ReplaceJQueryDataTablesWithTablesort.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Important-86343-ReplaceJQueryDataTablesWithTablesort.rst index 1c1958e2ddc1..e8c2bee50a40 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Important-86343-ReplaceJQueryDataTablesWithTablesort.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Important-86343-ReplaceJQueryDataTablesWithTablesort.rst @@ -10,11 +10,12 @@ Description =========== In our effort to reduce the dependency to jQuery, the internally used JavaScript -library `jQuery.datatables` has been replaced with `tablesort`. +library ``jQuery.datatables`` has been replaced with ``tablesort``. -Extension relying on that internal library may be dysfunctional now. +Extensions relying on that internal library may be dysfunctional now. .. important:: + Extension authors are encouraged to not use libraries that are not explicitly marked as public API. diff --git a/typo3/sysext/core/Documentation/Changelog/master/Important-89555-Workspace-relatedDatabaseRecordsContainTheProperPageID.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Important-89555-Workspace-relatedDatabaseRecordsContainTheProperPageID.rst similarity index 59% rename from typo3/sysext/core/Documentation/Changelog/master/Important-89555-Workspace-relatedDatabaseRecordsContainTheProperPageID.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Important-89555-Workspace-relatedDatabaseRecordsContainTheProperPageID.rst index 09271c9ea51d..f44864fec6ee 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Important-89555-Workspace-relatedDatabaseRecordsContainTheProperPageID.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Important-89555-Workspace-relatedDatabaseRecordsContainTheProperPageID.rst @@ -9,13 +9,18 @@ See :issue:`89555` Description =========== -Back in 2006, when the workspaces functionality was added to TYPO3 v4.0, Kasper - the original author of TYPO3 - provided an easy way to put workspaces on top while not worrying about existing logic. Every record that wasn't published had the "pid" field set to "-1" - and thus was filtered out from any database query without having to worry about specific implementations. +Back in 2006, when the workspaces functionality was added to TYPO3 v4.0, Kasper - the original author of TYPO3 - provided +an easy way to put workspaces on top while not worrying about existing logic. Every record that wasn't published had +the "pid" field set to "-1" - and thus was filtered out from any database query without having to worry about specific implementations. -14 years later, we have Doctrine DBAL and the solution for "enableFields" has been widely been replaced by Database Restrictions, allowing to modify database queries by TYPO3 Core without having to worry about custom queries. +14 years later, we have Doctrine DBAL and the solution for "enableFields" has widely been replaced by Database Restrictions, +allowing to modify database queries by TYPO3 Core without having to worry about custom queries. -For workspaces however, it is and was very tedious to find the "real pid" for versioned records, and the "pid = -1" scenario is also one of the reasons why workspace overlays are more complex than they need to be. +For workspaces however, it is and was very tedious to find the "real pid" for versioned records, +and the "pid = -1" scenario is also one of the reasons why workspace overlays are more complex than they need to be. -For this reason, TYPO3 Core now handles versioned records by validating their "t3ver_wsid" (the workspace ID the record is versioned in), "t3ver_state" (the type of the versioned record) and "t3ver_oid" (the live version of a record), and does not need to check for "pid=-1" anymore. +For this reason, TYPO3 Core now handles versioned records by validating their "t3ver_wsid" (the workspace ID the record is versioned in), +"t3ver_state" (the type of the versioned record) and "t3ver_oid" (the live version of a record), and does not need to check for "pid=-1" anymore. This opens up a more straightforward approach to select and overlay records and reduce the need for some magic methods in TYPO3 Core, @@ -27,4 +32,4 @@ into the real "pid" fields. TYPO3 Core now only checks for versionized records b Please note: This only affects TYPO3 installations with workspaces enabled, and nothing should change for any extension if they use proper WorkspaceRestriction or Workspace Overlay mechanisms in TYPO3 v10. -.. index:: Database, ext:workspaces \ No newline at end of file +.. index:: Database, ext:workspaces diff --git a/typo3/sysext/core/Documentation/Changelog/master/Important-90285-FreshInstallsWithoutConstraintForTypo3fluidfluidWillGetVersion30.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Important-90285-FreshInstallsWithoutConstraintForTypo3fluidfluidWillGetVersion30.rst similarity index 98% rename from typo3/sysext/core/Documentation/Changelog/master/Important-90285-FreshInstallsWithoutConstraintForTypo3fluidfluidWillGetVersion30.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Important-90285-FreshInstallsWithoutConstraintForTypo3fluidfluidWillGetVersion30.rst index 1c721c438cba..c6199f736e19 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Important-90285-FreshInstallsWithoutConstraintForTypo3fluidfluidWillGetVersion30.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Important-90285-FreshInstallsWithoutConstraintForTypo3fluidfluidWillGetVersion30.rst @@ -20,7 +20,7 @@ the only/highest major version was 2.6 and ``composer install`` would therefore ``^2.6`` as it was the only option. If your project has no maximum version constraint and contains Fluid templates which are incompatible -with version ``3.0+`` you will therefore need to take one of the following two actions: +with version ``3.0+`` you will therefore need to take one of the following actions: * Either declare a maximum version constraint for ``typo3fluid/fluid:^2`` in the root project ``composer.json`` or any dependency of the project that you control, and perform ``composer update``. diff --git a/typo3/sysext/core/Documentation/Changelog/master/Important-90897-RemoveBootstrap-slider.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Important-90897-RemoveBootstrap-slider.rst similarity index 100% rename from typo3/sysext/core/Documentation/Changelog/master/Important-90897-RemoveBootstrap-slider.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Important-90897-RemoveBootstrap-slider.rst diff --git a/typo3/sysext/core/Documentation/Changelog/master/Important-91079-VariousTypoScriptFrontendRendererFunctionalityIsNowInternal.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Important-91079-VariousTypoScriptFrontendRendererFunctionalityIsNowInternal.rst similarity index 100% rename from typo3/sysext/core/Documentation/Changelog/master/Important-91079-VariousTypoScriptFrontendRendererFunctionalityIsNowInternal.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Important-91079-VariousTypoScriptFrontendRendererFunctionalityIsNowInternal.rst diff --git a/typo3/sysext/core/Documentation/Changelog/master/Important-91095-VariousMethodsAndPropertiesOfBackend-relatedCoreAPIsNowInternal.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Important-91095-VariousMethodsAndPropertiesOfBackend-relatedCoreAPIsNowInternal.rst similarity index 95% rename from typo3/sysext/core/Documentation/Changelog/master/Important-91095-VariousMethodsAndPropertiesOfBackend-relatedCoreAPIsNowInternal.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Important-91095-VariousMethodsAndPropertiesOfBackend-relatedCoreAPIsNowInternal.rst index ce03664ff0bd..af5fca6d6ed6 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Important-91095-VariousMethodsAndPropertiesOfBackend-relatedCoreAPIsNowInternal.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Important-91095-VariousMethodsAndPropertiesOfBackend-relatedCoreAPIsNowInternal.rst @@ -19,8 +19,8 @@ should only be available for TYPO3 Core. All methods are now marked as "@internal", as official Core API should be used instead. -DataHandler properties and methods: Except for the public methods -that are still available, it is highly recommended to use DataHandler as defined in the official documentation. +:php:`DataHandler` class properties and methods: Except for the public methods +that are still available, it is highly recommended to use DataHandler as defined in the official documentation. The following properties and methods are now marked as internal: @@ -162,13 +162,13 @@ The following properties and methods are now marked as internal: * :php:`DataHandler->getHistoryRecords()` The reason for this long list is this: If the DataHandler API is -not called via `start()` and the process_* methods, but rather +not called via :php:`start()` and the :php:`process_*` methods, but rather the methods would be called directly, certain hooks would be disabled completely, resulting in a huge data inconsistency. At this point, it is highly recommended to use the official API -of DataHandler as written in the main documentation. +of :php:`DataHandler` as written in the main documentation. -Various BackendUtility methods are called statically, but cannot +Various :php:`BackendUtility` class methods are called statically, but cannot guarantee any Context. Short-hand functions for TCA or Database Queries are now better suited by using the appropriate Database Restrictions. @@ -200,7 +200,7 @@ Restrictions. * :php:`BackendUtility::getWorkspaceWhereClause()` -BackendUserAuthentication a.k.a. :php:`$GLOBALS['BE_USER']` contains a lot of internal calls and properties which are only +:php:`BackendUserAuthentication` a.k.a. :php:`$GLOBALS['BE_USER']` contains a lot of internal calls and properties which are only used for within TYPO3 Core or to keep state. This should not be exposed in the future anymore, especially when a more flexible permission system might get introduced. The affected properties @@ -231,4 +231,4 @@ and methods are: * :php:`BackendUserAuthentication->getDefaultWorkspace()` * :php:`BackendUserAuthentication->checkLockToIP()` -.. index:: Backend, PHP-API, ext:backend \ No newline at end of file +.. index:: Backend, PHP-API, ext:backend diff --git a/typo3/sysext/core/Documentation/Changelog/master/Important-91099-ChangedFlagIdentifierForEngland.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Important-91099-ChangedFlagIdentifierForEngland.rst similarity index 100% rename from typo3/sysext/core/Documentation/Changelog/master/Important-91099-ChangedFlagIdentifierForEngland.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Important-91099-ChangedFlagIdentifierForEngland.rst diff --git a/typo3/sysext/core/Documentation/Changelog/master/Index.rst b/typo3/sysext/core/Documentation/Changelog/10.4/Index.rst similarity index 88% rename from typo3/sysext/core/Documentation/Changelog/master/Index.rst rename to typo3/sysext/core/Documentation/Changelog/10.4/Index.rst index 0fc4d9740b49..5a4b27d38ff0 100644 --- a/typo3/sysext/core/Documentation/Changelog/master/Index.rst +++ b/typo3/sysext/core/Documentation/Changelog/10.4/Index.rst @@ -1,8 +1,7 @@ - .. include:: ../../Includes.txt -master Changes -============== +10.4 Changes +============= **Table of contents** @@ -10,9 +9,12 @@ master Changes :local: :depth: 1 + Breaking Changes ^^^^^^^^^^^^^^^^ +None since TYPO3 v10.0 release. + .. toctree:: :maxdepth: 1 :titlesonly: diff --git a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90937-VariousHooksInContentObjectRenderer.rst b/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90937-VariousHooksInContentObjectRenderer.rst deleted file mode 100644 index 75b6518a20a4..000000000000 --- a/typo3/sysext/core/Documentation/Changelog/master/Deprecation-90937-VariousHooksInContentObjectRenderer.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. include:: ../../Includes.txt - -============================================================ -Deprecation: #90937 - Various hooks in ContentObjectRenderer -============================================================ - -See :issue:`90937` - -Description -=========== - -The following hooks within ContentObjectRenderer have been deprecated: - -* $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClass'] -* $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['cObjTypeAndClassDefault'] -* $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['extLinkATagParamsHandler'] -* $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_content.php']['typolinkLinkHandler'] - -All hooks have been available for a long time, and several new concepts and APIs that have been added in previous LTS versions already superseded the hooks. - - -Impact -====== - -Extensions registering the hook will trigger a PHP deprecation notice when one of the mentioned hooks when the code is executed. - - -Affected Installations -====================== - -TYPO3 installations with older extensions implementing one of the hooks above, which is very rare and only serve specific use-cases -for rendering ContentObjects or custom link style tags that are not related to TYPO3 v8 linking syntax (`t3://...`). - - -Migration -========= - -The hooks `cObjTypeAndClass` and `cObjTypeAndClassDefault` can be simplified by using the new way of registering custom ContentObjects via: - -:php:`$GLOBALS['TYPO3_CONF_VARS']['FE']['ContentObjects']` - see `EXT:frontend/ext_localconf.php` for examples - TYPO3 Core adds its shipped ContentObjects exactly the same way. - -The `typolinkLinkHandler` hook is used for registering custom link syntax that start with a certain keyword such as "news:13". - -Since TYPO3 v8, LinkHandler support has been added to TYPO3 Core natively, using the new `t3://` syntax. The "LinkHandler" registry can be extended via :php:`$GLOBALS['TYPO3_CONF_VARS']['SYS']['linkHandler']` and :php:`$GLOBALS['TYPO3_CONF_VARS']['FE']['typolinkBuilder']` that serves the same purpose with a better API. - -.. index:: Frontend, FullyScanned, ext:frontend \ No newline at end of file diff --git a/typo3/sysext/core/Documentation/Changelog/master/Feature-90899-IntroduceAssetPreRenderingEvents.rst b/typo3/sysext/core/Documentation/Changelog/master/Feature-90899-IntroduceAssetPreRenderingEvents.rst deleted file mode 100644 index b27cbae324ef..000000000000 --- a/typo3/sysext/core/Documentation/Changelog/master/Feature-90899-IntroduceAssetPreRenderingEvents.rst +++ /dev/null @@ -1,139 +0,0 @@ -.. include:: ../../Includes.txt - -.. _changelog-Feature-90899-IntroduceAssetPreRenderingEvents: - -============================================================== -Feature: #90899 - Introduce AssetRenderer pre-rendering events -============================================================== - -See :issue:`90899` - -Description -=========== - -AssetRenderer is amended by two events which allow post-processing of -AssetCollector assets. - -These new PSR-14 events are introduced: - -.. code-block:: php - - \TYPO3\CMS\Core\Page\Event\BeforeJavaScriptsRenderingEvent - \TYPO3\CMS\Core\Page\Event\BeforeStylesheetsRenderingEvent - -Both stem fom the abstract base class -`\TYPO3\CMS\Core\Page\Event\AbstractBeforeAssetRenderingEvent` and provide -these public methods: - -.. code-block:: php - - getAssetCollector(): AssetCollector - isInline(): bool - isPriority(): bool - -:php:`inline` and :php:`priority` refer to how the asset was registered with -:ref:`AssetCollector <changelog-Feature-90522-IntroduceAssetCollector>`. - -The events are fired exactly once for every combination of -:php:`inline`/:php:`priority` before the corresponding section of JS/CSS assets -are rendered by the AssetRenderer. - -To make the events easier to use, the :php:`AssetCollector::get*()` methods -have gotten an optional parameter `?bool $priority = null` which when given a -boolean only returns assets of the given priority. - - -.. note:: - Note: post-processing functionality for assets registered via - TypoScript :ts:`page.include...` or the :php:`PageRenderer::add*()` - functions are still provided by these hooks: - - .. code-block:: php - - $GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['cssCompressHandler'] - $GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['jsCompressHandler'] - $GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['cssConcatenateHandler'] - $GLOBALS['TYPO3_CONF_VARS'][TYPO3_MODE]['jsConcatenateHandler'] - $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'] - ['t3lib/class.t3lib_pagerenderer.php']['render-preProcess'] - - Assets registered with the AssetCollector (and output through the - AssetRenderer) are not included in those. - - -Example -======= - -As an example let's make sure jQuery is included in a specific version and -from a CDN. - -.. rst-class:: bignums - -1. Register our listeners - - :file:`Configuration/Services.yaml` - - .. code-block:: yaml - - services: - MyVendor\MyExt\EventListener\AssetRenderer\LibraryVersion: - tags: - - name: event.listener - identifier: 'myExt/LibraryVersion' - event: TYPO3\CMS\Core\Page\Event\AssetRendererBeforeRenderingEvent - - -2. Implement Listener to enforce a library version or CDN URI - - .. code-block:: php - - namespace MyVendor\MyExt\EventListener\AssetRenderer; - - use TYPO3\CMS\Core\Page\Event\BeforeJavaScriptsRenderingEvent; - - /** - * If a library has been registered, it is made sure that it is loaded - * from the given URI - */ - class LibraryVersion - { - protected $libraries = [ - 'jquery' => 'https://code.jquery.com/jquery-3.4.1.min.js', - ]; - - public function __invoke(BeforeJavaScriptsRenderingEvent $event): void - { - if ($event->isInline()) { - return; - } - - foreach ($this->libraries as $library => $source) { - $asset = $event->getAssetCollector()->getJavaScripts($event->isPriority()) - // if it was already registered - if ($asset[$library] ?? false) { - // we set our authoritative version - $event->getAssetCollector()->addJavaScript($library, $source); - } - } - } - } - - - - -Impact -====== - -Existing installations are not affected. - -If using the AssetCollector API, these new events should be used for asset -postprocessing. - -Related -======= - -- :ref:`changelog-Feature-90522-IntroduceAssetCollector` - -.. _examples: https://typo3.org - -.. index:: PHP-API, ext:core diff --git a/typo3/sysext/core/Documentation/Index.rst b/typo3/sysext/core/Documentation/Index.rst index caa875974108..6ad0e41dfa77 100644 --- a/typo3/sysext/core/Documentation/Index.rst +++ b/typo3/sysext/core/Documentation/Index.rst @@ -13,7 +13,6 @@ Every change to the TYPO3 Core which might affect your site is documented here. :titlesonly: Sitemap/Index - Master Changelog-10 Changelog-9 Changelog-8 diff --git a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ArrayDimensionMatcher.php b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ArrayDimensionMatcher.php index 5a847da9235a..dedc494346d1 100644 --- a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ArrayDimensionMatcher.php +++ b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ArrayDimensionMatcher.php @@ -334,42 +334,42 @@ return [ ], '$GLOBALS[\'TYPO3_CONF_VARS\'][\'EXTCONF\'][\'felogin\'][\'beforeRedirect\']' => [ 'restFiles' => [ - 'Deprecation-88740-DeprecateFeloginPibasePlugin.rst', + 'Deprecation-88740-ExtFeloginPibasePlugin.rst', ], ], '$GLOBALS[\'TYPO3_CONF_VARS\'][\'EXTCONF\'][\'felogin\'][\'postProcContent\']' => [ 'restFiles' => [ - 'Deprecation-88740-DeprecateFeloginPibasePlugin.rst', + 'Deprecation-88740-ExtFeloginPibasePlugin.rst', ], ], '$GLOBALS[\'TYPO3_CONF_VARS\'][\'EXTCONF\'][\'felogin\'][\'forgotPasswordMail\']' => [ 'restFiles' => [ - 'Deprecation-88740-DeprecateFeloginPibasePlugin.rst', + 'Deprecation-88740-ExtFeloginPibasePlugin.rst', ], ], '$GLOBALS[\'TYPO3_CONF_VARS\'][\'EXTCONF\'][\'felogin\'][\'password_changed\']' => [ 'restFiles' => [ - 'Deprecation-88740-DeprecateFeloginPibasePlugin.rst', + 'Deprecation-88740-ExtFeloginPibasePlugin.rst', ], ], '$GLOBALS[\'TYPO3_CONF_VARS\'][\'EXTCONF\'][\'felogin\'][\'login_confirmed\']' => [ 'restFiles' => [ - 'Deprecation-88740-DeprecateFeloginPibasePlugin.rst', + 'Deprecation-88740-ExtFeloginPibasePlugin.rst', ], ], '$GLOBALS[\'TYPO3_CONF_VARS\'][\'EXTCONF\'][\'felogin\'][\'login_error\']' => [ 'restFiles' => [ - 'Deprecation-88740-DeprecateFeloginPibasePlugin.rst', + 'Deprecation-88740-ExtFeloginPibasePlugin.rst', ], ], '$GLOBALS[\'TYPO3_CONF_VARS\'][\'EXTCONF\'][\'felogin\'][\'logout_confirmed\']' => [ 'restFiles' => [ - 'Deprecation-88740-DeprecateFeloginPibasePlugin.rst', + 'Deprecation-88740-ExtFeloginPibasePlugin.rst', ], ], '$GLOBALS[\'TYPO3_CONF_VARS\'][\'EXTCONF\'][\'felogin\'][\'loginFormOnSubmitFuncs\']' => [ 'restFiles' => [ - 'Deprecation-88740-DeprecateFeloginPibasePlugin.rst', + 'Deprecation-88740-ExtFeloginPibasePlugin.rst', ], ], '$GLOBALS[\'TYPO3_CONF_VARS\'][\'SC_OPTIONS\'][\'tslib/class.tslib_content.php\'][\'cObjTypeAndClass\']' => [ diff --git a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php index fa2f8454a30a..5582c107df27 100644 --- a/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php +++ b/typo3/sysext/install/Configuration/ExtensionScanner/Php/ClassNameMatcher.php @@ -1355,17 +1355,17 @@ return [ ], 'TYPO3\CMS\Felogin\Hooks\CmsLayout' => [ 'restFiles' => [ - 'Deprecation-88740-DeprecateFeloginPibasePlugin.rst', + 'Deprecation-88740-ExtFeloginPibasePlugin.rst', ], ], 'TYPO3\CMS\Felogin\Controller\FrontendLoginController' => [ 'restFiles' => [ - 'Deprecation-88740-DeprecateFeloginPibasePlugin.rst', + 'Deprecation-88740-ExtFeloginPibasePlugin.rst', ], ], 'TYPO3\CMS\FrontendLogin\Hooks\CmsLayout' => [ 'restFiles' => [ - 'Deprecation-88740-DeprecateFeloginPibasePlugin.rst', + 'Deprecation-88740-ExtFeloginPibasePlugin.rst', ], ], 'TYPO3\CMS\Extbase\SignalSlot\Dispatcher' => [ @@ -1375,37 +1375,37 @@ return [ ], 'TYPO3\CMS\Extbase\Domain\Model\FileMount' => [ 'restFiles' => [ - 'Deprecation-90686-DeprecateModelFileMount.rst', + 'Deprecation-90686-ModelFileMount.rst', ], ], 'TYPO3\CMS\Extbase\Domain\Model\StaticFileCollection' => [ 'restFiles' => [ - 'Deprecation-90692-DeprecateFileCollectionModels.rst', + 'Deprecation-90692-FileCollectionModels.rst', ], ], 'TYPO3\CMS\Extbase\Domain\Model\FolderBasedFileCollection' => [ 'restFiles' => [ - 'Deprecation-90692-DeprecateFileCollectionModels.rst', + 'Deprecation-90692-FileCollectionModels.rst', ], ], 'TYPO3\CMS\Extbase\Domain\Model\AbstractFileCollection' => [ 'restFiles' => [ - 'Deprecation-90692-DeprecateFileCollectionModels.rst', + 'Deprecation-90692-FileCollectionModels.rst', ], ], 'TYPO3\CMS\Extbase\Property\TypeConverter\StaticFileCollectionConverter' => [ 'restFiles' => [ - 'Deprecation-90692-DeprecateFileCollectionModels.rst', + 'Deprecation-90692-FileCollectionModels.rst', ], ], 'TYPO3\CMS\Extbase\Property\TypeConverter\FolderBasedFileCollectionConverter' => [ 'restFiles' => [ - 'Deprecation-90692-DeprecateFileCollectionModels.rst', + 'Deprecation-90692-FileCollectionModels.rst', ], ], 'TYPO3\CMS\Extbase\Property\TypeConverter\AbstractFileCollectionConverter' => [ 'restFiles' => [ - 'Deprecation-90692-DeprecateFileCollectionModels.rst', + 'Deprecation-90692-FileCollectionModels.rst', ], ], 'TYPO3\CMS\Frontend\ContentObject\ContentObjectGetSingleHookInterface' => [ -- GitLab