TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75834:
|
||||
|
||||
=========================================================
|
||||
Breaking: #75834 - Reorder processing of TCA Select items
|
||||
=========================================================
|
||||
|
||||
See :issue:`75834`
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It's now possible again to add and remove items via `pageTSconfig` after `itemsProcFunc` has been processed
|
||||
for TCA select fields.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Items generated by `itemsProcFunc` no longer have the highest priority.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation that relied on `itemsProcFunc` being the source of truth for a given field.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Cross check if you added or removed items via `pageTSconfig`. These might be really gone now.
|
||||
|
||||
.. index:: Backend, NotScanned
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-83475:
|
||||
|
||||
==================================================================
|
||||
Breaking: #83475 - Aggregate validator information in class schema
|
||||
==================================================================
|
||||
|
||||
See :issue:`83475`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It is no longer possible to use the following semantic sugar to define validators for properties of action parameters:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/*
|
||||
* @param Model $model
|
||||
* @validate $model.property NotEmpty
|
||||
*/
|
||||
public function foo(Model $model){}
|
||||
|
||||
Mind the dot and the reference to the property. This will no longer work.
|
||||
Of course, the regular validation of action parameters stays intact.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/*
|
||||
* @param Model $model
|
||||
* @validate $model CustomValidator
|
||||
*/
|
||||
public function foo(Model $model){}
|
||||
|
||||
This will continue to work.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
If you rely on that feature, you need to manually implement the validation in the future.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations that use that feature.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
If you used that feature for adding validators to models, you can define the validators inside the model instead or
|
||||
inside a model validator, that is automatically registered and loaded if defined.
|
||||
|
||||
When using that feature with regular objects, you need to write custom validators and call the desired property
|
||||
validators in there.
|
||||
|
||||
.. index:: ext:extbase, PHP-API, NotScanned
|
||||
@@ -0,0 +1,56 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-83889:
|
||||
|
||||
=============================================
|
||||
Breaking: #83889 - E_NOTICE free unit testing
|
||||
=============================================
|
||||
|
||||
See :issue:`83889`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Writing unit tests and executing them using the `typo3/testing-framework`
|
||||
now requires the system under test to no longer raise PHP :php:`E_NOTICE`
|
||||
level errors, or the test fails.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
This is a first step towards a PHP notice free TYPO3 core.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions that use the TYPO3 v9 compatible `typo3/testing-framework`
|
||||
package in a version >= 3.0.0 may see failing unit tests if the tested
|
||||
class raises `E_NOTICE` errors.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
The best solution is to fix the unit test and/or the system under test
|
||||
to no longer raise `E_NOTICE` level PHP errors.
|
||||
|
||||
In a transition phase, a single unit test case file can set a
|
||||
property to still suppress E_NOTICE warnings:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
class FooTest extends \TYPO3\TestingFramework\Core\Unit\UnitTestCase
|
||||
{
|
||||
/**
|
||||
* Subject is not notice free, disable E_NOTICES
|
||||
*/
|
||||
protected static $suppressNotices = true;
|
||||
}
|
||||
|
||||
Note that this property is deprecated and will be removed from
|
||||
:php:`UnitTestCase` as soon as TYPO3 core does not need it
|
||||
anymore.
|
||||
|
||||
.. index:: PHP-API, FullyScanned
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-84055:
|
||||
|
||||
======================================================
|
||||
Breaking: #84055 - Migrate sys_notes away from extbase
|
||||
======================================================
|
||||
|
||||
See :issue:`84055`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
To simplify the rendering of sys_note records and improve the performance, the usage of `extbase` has
|
||||
been removed from the extension `sys_note`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The model :php:`TYPO3\CMS\SysNote\Domain\Model\SysNote` has been removed,
|
||||
the repository :php:`TYPO3\CMS\SysNote\Domain\Repository\SysNoteRepository` now
|
||||
returns a plain result instead of objects.
|
||||
|
||||
It is not possible anymore more to change the template path of the extension.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation which relies on the repository and model or changed the template by using TypoScript.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
To change the rendering of notes, override the hook and return a modified output.
|
||||
|
||||
.. index:: Backend, PartiallyScanned, ext:sys_note
|
||||
@@ -0,0 +1,72 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-84131:
|
||||
|
||||
========================================================
|
||||
Breaking: #84131 - Removed classes of language extension
|
||||
========================================================
|
||||
|
||||
See :issue:`84131`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The language pack update module - formerly known as "Admin Tools" -> "Language"
|
||||
module has been moved to "Maintenance" -> "Manage language packs".
|
||||
|
||||
PHP classes implementing the old solution have been removed:
|
||||
|
||||
* :php:`TYPO3\CMS\Lang\Command\LanguageUpdateCommand`
|
||||
* :php:`TYPO3\CMS\Lang\Controller\LanguageController`
|
||||
* :php:`TYPO3\CMS\Lang\Domain\Model\Extension`
|
||||
* :php:`TYPO3\CMS\Lang\Domain\Model\Language`
|
||||
* :php:`TYPO3\CMS\Lang\Domain\Repository\ExtensionRepository`
|
||||
* :php:`TYPO3\CMS\Lang\Domain\Repository\LanguageRepository`
|
||||
* :php:`TYPO3\CMS\Lang\Exception`
|
||||
* :php:`TYPO3\CMS\Lang\Exception\Language`
|
||||
* :php:`TYPO3\CMS\Lang\Exception\Ter`
|
||||
* :php:`TYPO3\CMS\Lang\Exception\XmlParser`
|
||||
* :php:`TYPO3\CMS\Lang\Service\RegistryService`
|
||||
* :php:`TYPO3\CMS\Lang\Service\TerService`
|
||||
* :php:`TYPO3\CMS\Lang\Service\TranslationService`
|
||||
* :php:`TYPO3\CMS\Lang\View\AbstractJsonView`
|
||||
* :php:`TYPO3\CMS\Lang\View\Language\ActivateLanguageJson`
|
||||
* :php:`TYPO3\CMS\Lang\View\Language\DeactivateLanguageJson`
|
||||
* :php:`TYPO3\CMS\Lang\View\Language\GetTranslationsJson`
|
||||
* :php:`TYPO3\CMS\Lang\View\Language\RemoveLanguageJson`
|
||||
* :php:`TYPO3\CMS\Lang\View\Language\UpdateLanguageJson`
|
||||
* :php:`TYPO3\CMS\Lang\View\Language\UpdateTranslationJson`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using one of the mentioned classes will throw a fatal PHP error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
It is unlikely extensions used the mentioned classes, the extension scanner will find usages. The only well-known
|
||||
usage of one of this classes is the signal/slot to override the base download url of language packs per extension
|
||||
and the registration did not change and should still be done like this:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/** @var \TYPO3\CMS\Extbase\SignalSlot\Dispatcher $signalSlotDispatcher */
|
||||
$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
|
||||
|
||||
$signalSlotDispatcher->connect(
|
||||
'TYPO3\\CMS\\Lang\\Service\\TranslationService',
|
||||
'postProcessMirrorUrl',
|
||||
\Company\Extension\Slots\CustomMirror::class,
|
||||
'postProcessMirrorUrl'
|
||||
);
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No migration available.
|
||||
|
||||
.. index:: Backend, PHP-API, FullyScanned, ext:lang
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-84148:
|
||||
|
||||
=================================================================
|
||||
Breaking: #84148 - RequireJS module for language handling removed
|
||||
=================================================================
|
||||
|
||||
See :issue:`84148`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Since the removal of ExtJS, the JavaScript files that handled the localization of labels in backend modules became
|
||||
obsolete and have been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Depending on the RequireJS module :js:`TYPO3/CMS/Lang/Lang` will result in `404` errors, as the module has been removed.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Every 3rd party extension depending on :js:`TYPO3/CMS/Lang/Lang` is affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the module from the affected RequireJS modules. The labels are now prepared by the PageRenderer and passed
|
||||
to :js:`TYPO3.lang` without the need of additional JavaScript.
|
||||
|
||||
.. index:: Backend, JavaScript, NotScanned
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-87081:
|
||||
|
||||
=================================================================================================
|
||||
Breaking: #87081 - Language update (scheduler) task doesn't work after upgrading to TYPO3 >= v9.2
|
||||
=================================================================================================
|
||||
|
||||
See :issue:`87081`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The language update command was moved away from ext:lang and was rewritten as a Symfony Console Commmand.
|
||||
https://docs.typo3.org/typo3cms/extensions/core/latest/Changelog/9.2/Breaking-84131-RemovedClassesOfLanguageExtension.html
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Running or editing this task is not possible anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
An installation is affected if a language update scheduler task was created and exists before an upgrade to TYPO3 >= 9.2.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Delete all existing language update tasks within the scheduler or remove the corresponding record in the database directly.
|
||||
Create a new scheduler task with selected class "Execute console commands" and select schedulable command "language:update".
|
||||
|
||||
.. index:: Backend, CLI, Frontend, NotScanned, ext:lang
|
||||
@@ -0,0 +1,34 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-81434:
|
||||
|
||||
======================================================
|
||||
Deprecation: #81434 - String Cache Frontend Deprecated
|
||||
======================================================
|
||||
|
||||
See :issue:`81434`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `StringFrontend` cache frontend has been marked as deprecated in favor of `VariableFrontend`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using `TYPO3\CMS\Core\Cache\Frontend\StringFrontend` will trigger a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation which defines any custom cache using `StringFrontend`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Replace `TYPO3\CMS\Core\Cache\Frontend\StringFrontend` occurrences in cache configurations with `TYPO3\CMS\Core\Cache\Frontend\VariableFrontend`.
|
||||
|
||||
.. index:: PHP-API, NotScanned
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-83475:
|
||||
|
||||
=====================================================================
|
||||
Deprecation: #83475 - Aggregate validator information in class schema
|
||||
=====================================================================
|
||||
|
||||
See :issue:`83475`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method `\TYPO3\CMS\Extbase\Mvc\Controller\ActionController::getActionMethodParameters` has been marked as deprecated
|
||||
and will be removed in TYPO3 v10.0
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The method was not considered public API and it is unlikely that the methods is used in the wild. If you rely on that
|
||||
method, please migrate your code base.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations that use that method.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the `ClassSchema` class and get all necessary information from it.
|
||||
Example:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$reflectionService = $objectManager->get(\TYPO3\CMS\Extbase\Reflection\ReflectionService::class);
|
||||
$methods = $reflectionService->getClassSchema($className)->getMethods();
|
||||
$actions = array_filter($methods, function($method){
|
||||
return $method['isAction'];
|
||||
});
|
||||
|
||||
.. index:: PHP-API, FullyScanned
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-83475-1668719171:
|
||||
|
||||
=====================================================================
|
||||
Deprecation: #83475 - Aggregate validator information in class schema
|
||||
=====================================================================
|
||||
|
||||
See :issue:`83475`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method `\TYPO3\CMS\Extbase\Validation\ValidatorResolver::buildMethodArgumentsValidatorConjunctions` has been marked
|
||||
as deprecated and will be removed in TYPO3 v10.0
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The method was not considered public API and it is unlikely that the methods is used in the wild. If you rely on that
|
||||
method, you will need to implement the logic yourself.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations that use `\TYPO3\CMS\Extbase\Validation\ValidatorResolver::buildMethodArgumentsValidatorConjunctions`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
There is no migration
|
||||
|
||||
.. index:: PHP-API, FullyScanned
|
||||
@@ -0,0 +1,36 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-83506:
|
||||
|
||||
===============================================================================
|
||||
Deprecation: #83506 - Deprecated usage of TSFE:fe_user|sesData in TS conditions
|
||||
===============================================================================
|
||||
|
||||
See :issue:`83506`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Since the session API has been adjusted it is no longer possible to access the (now protected) `sesData` property of
|
||||
the `fe_user` object.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using :typoscript:`[globalVar = TSFE:fe_user|sesData|foo|bar = 1234567]` will trigger a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using the old value :typoscript:`TSFE:fe_user|sesData` in a TypoScript condition.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use :typoscript:`[globalVar = session:foo|bar = 1234567]` instead.
|
||||
|
||||
.. index:: Frontend, TypoScript, NotScanned
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-83740:
|
||||
|
||||
===============================================================
|
||||
Deprecation: #83740 - Cleanup of AbstractRecordList breaks hook
|
||||
===============================================================
|
||||
|
||||
See :issue:`83740`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The hook `$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList']['buildQueryParameters']`
|
||||
has been marked as deprecated. It was a hook to modify the current database query but used in multiple classes which
|
||||
leads to some issues. For this reason, the old hook is now marked as deprecated and will be removed in v10.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Registering a hook in `$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList']['buildQueryParameters']`
|
||||
will trigger a deprecation warning.
|
||||
|
||||
|
||||
Affected installations
|
||||
======================
|
||||
|
||||
Instances with extensions using the hook `$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList']['buildQueryParameters']`
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Two new hooks are available to achieve the same things.
|
||||
|
||||
Please see:
|
||||
|
||||
`Feature-83740-CleanupOfAbstractRecordListBreaksHook.rst <https://docs.typo3.org/typo3cms/extensions/core/Changelog/9.2/Feature-83740-CleanupOfAbstractRecordListBreaksHook.html>`_
|
||||
|
||||
.. index:: Backend, Database, PHP-API, FullyScanned
|
||||
@@ -0,0 +1,37 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-83803:
|
||||
|
||||
=================================================
|
||||
Deprecation: #83803 - Deprecate EidRequestHandler
|
||||
=================================================
|
||||
|
||||
See :issue:`83803`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The class :php:`\TYPO3\CMS\Frontend\Http\EidRequestHandler` has been marked as deprecated and will be removed in CMS 10.
|
||||
This class has been replaced by a PSR-15 middleware :php:`\TYPO3\CMS\Frontend\Middleware\EidHandler`.
|
||||
|
||||
The eID functionality itself is not deprecated and can be used as before.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Installations that use :php:`\TYPO3\CMS\Frontend\Http\EidRequestHandler` will trigger a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations that use custom extensions that add classes derived from :php:`\TYPO3\CMS\Frontend\Http\EidRequestHandler`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use :php:`\TYPO3\CMS\Frontend\Middleware\EidHandler` instead.
|
||||
|
||||
.. index:: Frontend, PHP-API, FullyScanned
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-83806:
|
||||
|
||||
==================================================================================
|
||||
Deprecation: #83806 - Deprecate page.javascriptLibs and page.javascriptLibs.jQuery
|
||||
==================================================================================
|
||||
|
||||
See :issue:`83806`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The settings :typoscript:`page.javascriptLibs` and :typoscript:`page.javascriptLibs.jQuery` have been marked as
|
||||
deprecated and will be removed in CMS 10.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Installations that use :typoscript:`page.javascriptLibs` or :typoscript:`page.javascriptLibs.jQuery` will trigger a
|
||||
deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations that use one of the above settings.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use one of the following settings to add jQuery:
|
||||
|
||||
* :typoscript:`page.includeJSLibs`
|
||||
* :typoscript:`page.includeJSFooterlibs`
|
||||
* :typoscript:`page.includeJS`
|
||||
* :typoscript:`page.includeJSFooter`
|
||||
* :typoscript:`page.headerData`
|
||||
* :typoscript:`page.footerData`
|
||||
|
||||
.. index:: Frontend, TypoScript, NotScanned
|
||||
@@ -0,0 +1,35 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-83844:
|
||||
|
||||
========================================================
|
||||
Deprecation: #83844 - Deprecated usage of top.launchView
|
||||
========================================================
|
||||
|
||||
See :issue:`83844`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The usage of :js:`top.launchView()`, that opens certain information in a popup window, has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling :js:`top.launchView()` will trigger a deprecation warning in the browser console.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Every 3rd party extension that uses :js:`top.launchView` is affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Either use :js:`top.TYPO3.InfoWindow.showItem()` directly or import the RequireJS module `TYPO3/CMS/Backend/InfoWindow`
|
||||
and call :js:`showItem()`.
|
||||
|
||||
.. index:: Backend, JavaScript, NotScanned
|
||||
@@ -0,0 +1,38 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-83853:
|
||||
|
||||
================================================
|
||||
Deprecation: #83853 - Backend AjaxRequestHandler
|
||||
================================================
|
||||
|
||||
See :issue:`83853`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The class :php:`\TYPO3\CMS\Backend\Http\AjaxRequestHandler` has been marked as deprecated and will be removed in TYPO3 v10.
|
||||
This functionality has been moved into the backend's generic Request Handler functionality.
|
||||
|
||||
The AJAX functionality itself is not deprecated and can be used as before.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Installations that use :php:`\TYPO3\CMS\Backend\Http\AjaxRequestHandler` will trigger a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations that use custom extensions that add classes derived from :php:`\TYPO3\CMS\Backend\Http\AjaxRequestHandler`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use a PSR-15 middleware for the Backend Middleware Stack or extend from the generic
|
||||
:php:`\TYPO3\CMS\Backend\Http\RequestHandler` instead.
|
||||
|
||||
.. index:: Backend, PHP-API, FullyScanned
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-83883:
|
||||
|
||||
===================================================================
|
||||
Deprecation: #83883 - Page Not Found And Error handling in Frontend
|
||||
===================================================================
|
||||
|
||||
See :issue:`83883`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following methods have been marked as deprecated:
|
||||
|
||||
* :php:`TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->pageUnavailableAndExit()`
|
||||
* :php:`TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->pageNotFoundAndExit()`
|
||||
* :php:`TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->checkPageUnavailableHandler()`
|
||||
* :php:`TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->pageUnavailableHandler()`
|
||||
* :php:`TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->pageNotFoundHandler()`
|
||||
* :php:`TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController->pageErrorHandler()`
|
||||
|
||||
These methods have been commonly used by third-party extensions to show that a page is not found,
|
||||
a page is unavailable due to misconfiguration or the access to a page was denied.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods above will trigger a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation with third-party PHP extension code calling these methods.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the new :php:`ErrorController` with its custom actions :php:`unavailableAction()`, :php:`pageNotFoundAction()` and
|
||||
:php:`accessDeniedAction()`.
|
||||
|
||||
Instead of exiting the currently running script, a proposed PSR-7-compliant response is returned which can be
|
||||
handled by the third-party extension to enrich, return or customize exiting the script.
|
||||
|
||||
.. index:: Frontend, PHP-API, FullyScanned
|
||||
@@ -0,0 +1,45 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-83904:
|
||||
|
||||
========================================================
|
||||
Deprecation: #83904 - Array handling in AbstractTreeView
|
||||
========================================================
|
||||
|
||||
See :issue:`83904`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Handling arrays instead of database relations in class :php:`TYPO3\CMS\Backend\Tree\View\AbstractTreeView`
|
||||
has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the following methods will throw deprecation warnings and will be removed with core version 10:
|
||||
|
||||
* [scanned] :php:`AbstractTreeView->setDataFromArray`
|
||||
* [scanned] :php:`AbstractTreeView->setDataFromTreeArray`
|
||||
|
||||
The following class properties should not be used any longer and will be removed with core version 10:
|
||||
|
||||
* [not scanned] :php:`AbstractTreeView->data`
|
||||
* [scanned] :php:`AbstractTreeView->dataLookup`
|
||||
* [scanned] :php:`AbstractTreeView->subLevelID`
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
This feature was rarely used, it is pretty unlikely an instance is affected by a consuming extension.
|
||||
The extension scanner will report most use cases.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No migration available.
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-83905:
|
||||
|
||||
===================================================================
|
||||
Deprecation: #83905 - TypoScriptFrontendController->page_cache_reg1
|
||||
===================================================================
|
||||
|
||||
See :issue:`83905`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Property :php:`TypoScriptFrontendController->page_cache_reg1` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Setting this property triggers a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
This property was of very little use ever since, it is unlikely an instance runs an extension consuming it.
|
||||
The extension scanner will find usages.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use method :php:`TypoScriptFrontendController->addCacheTags()` to influence page cache tagging.
|
||||
|
||||
.. index:: Frontend, PHP-API, FullyScanned
|
||||
@@ -0,0 +1,35 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-83942:
|
||||
|
||||
====================================================
|
||||
Deprecation: #83942 - Deprecated FileFacade::getIcon
|
||||
====================================================
|
||||
|
||||
See :issue:`83942`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`\TYPO3\CMS\Filelist\FileFacade::getIcon` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the method :php:`\TYPO3\CMS\Filelist\FileFacade::getIcon` will trigger a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Instances with extensions using the method :php:`\TYPO3\CMS\Filelist\FileFacade::getIcon`
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Either use the ViewHelper :html:`<core:iconForResource resource="{file}" />` or
|
||||
:php:`GeneralUtility::makeInstance(IconFactory::class)->getIconForResource($resource)` to render a resource-based icon.
|
||||
|
||||
.. index:: FAL, FullyScanned
|
||||
@@ -0,0 +1,100 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-83964:
|
||||
|
||||
==========================================================
|
||||
Deprecation: #83964 - EXT:form - streamline usage of icons
|
||||
==========================================================
|
||||
|
||||
See :issue:`83964`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
With issue #82348 EXT:form icons have been cloned into :file:`EXT:core/Resources/Public/Icons/T3Icons/form`.
|
||||
Icons are now available with the identifier prefix `form-` (previously `t3-form-icon-`).
|
||||
For this reason, the old icon identifiers with `t3-form-icon-` prefix have been marked as deprecated and will be
|
||||
removed in TYPO3v10.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Usage of the following icon identifiers will trigger a deprecation warning:
|
||||
|
||||
* `t3-form-icon-advanced-password`
|
||||
* `t3-form-icon-checkbox`
|
||||
* `t3-form-icon-content-element`
|
||||
* `t3-form-icon-date-picker`
|
||||
* `t3-form-icon-duplicate`
|
||||
* `t3-form-icon-email`
|
||||
* `t3-form-icon-fieldset`
|
||||
* `t3-form-icon-file-upload`
|
||||
* `t3-form-icon-finisher`
|
||||
* `t3-form-icon-form-element-selector`
|
||||
* `t3-form-icon-gridcontainer`
|
||||
* `t3-form-icon-gridrow`
|
||||
* `t3-form-icon-hidden`
|
||||
* `t3-form-icon-image-upload`
|
||||
* `t3-form-icon-insert-after`
|
||||
* `t3-form-icon-insert-in`
|
||||
* `t3-form-icon-multi-checkbox`
|
||||
* `t3-form-icon-multi-select`
|
||||
* `t3-form-icon-number`
|
||||
* `t3-form-icon-page`
|
||||
* `t3-form-icon-password`
|
||||
* `t3-form-icon-radio-button`
|
||||
* `t3-form-icon-single-select`
|
||||
* `t3-form-icon-static-text`
|
||||
* `t3-form-icon-summary-page`
|
||||
* `t3-form-icon-telephone`
|
||||
* `t3-form-icon-text`
|
||||
* `t3-form-icon-textarea`
|
||||
* `t3-form-icon-url`
|
||||
* `t3-form-icon-validator`
|
||||
|
||||
Affected installations
|
||||
======================
|
||||
|
||||
All instances are affected which register one of the icon identifiers listed above through the
|
||||
:php:`IconRegistry`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use one of the following icon identifier replacements ('deprecated-icon-identifier' => 'new-icon-identifier')
|
||||
|
||||
* `t3-form-icon-advanced-password` => `form-advanced-password`
|
||||
* `t3-form-icon-checkbox` => `form-checkbox`
|
||||
* `t3-form-icon-content-element` => `form-content-element`
|
||||
* `t3-form-icon-date-picker` => `form-date-picker`
|
||||
* `t3-form-icon-duplicate` => `actions-duplicate`
|
||||
* `t3-form-icon-email` => `form-email`
|
||||
* `t3-form-icon-fieldset` => `form-fieldset`
|
||||
* `t3-form-icon-file-upload` => `form-file-upload`
|
||||
* `t3-form-icon-finisher` => `form-finisher`
|
||||
* `t3-form-icon-form-element-selector` => `actions-variable-select`
|
||||
* `t3-form-icon-gridcontainer` => `form-gridcontainer`
|
||||
* `t3-form-icon-gridrow` => `form-gridrow`
|
||||
* `t3-form-icon-hidden` => `form-hidden`
|
||||
* `t3-form-icon-image-upload` => `form-image-upload`
|
||||
* `t3-form-icon-insert-after` => `form-insert-after`
|
||||
* `t3-form-icon-insert-in` => `form-insert-in`
|
||||
* `t3-form-icon-multi-checkbox` => `form-multi-checkbox`
|
||||
* `t3-form-icon-multi-select` => `form-multi-select`
|
||||
* `t3-form-icon-number` => `form-number`
|
||||
* `t3-form-icon-page` => `form-page`
|
||||
* `t3-form-icon-password` => `form-password`
|
||||
* `t3-form-icon-radio-button` => `form-radio-button`
|
||||
* `t3-form-icon-single-select` => `form-single-select`
|
||||
* `t3-form-icon-static-text` => `form-static-text`
|
||||
* `t3-form-icon-summary-page` => `form-summary-page`
|
||||
* `t3-form-icon-telephone` => `form-telephone`
|
||||
* `t3-form-icon-text` => `form-text`
|
||||
* `t3-form-icon-textarea` => `form-textarea`
|
||||
* `t3-form-icon-url` => `form-url`
|
||||
* `t3-form-icon-validator` => `form-validator`
|
||||
|
||||
|
||||
.. index:: Backend, ext:form, NotScanned
|
||||
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84045:
|
||||
|
||||
================================================
|
||||
Deprecation: #84045 - AdminPanel Hook deprecated
|
||||
================================================
|
||||
|
||||
See :issue:`84045`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The hook `$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['tslib/class.tslib_adminpanel.php']['extendAdminPanel']` has been
|
||||
marked as deprecated along with the corresponding interface `\TYPO3\CMS\Frontend\View\AdminPanelViewHookInterface`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using either the interface or registering the hook will result in a deprecation warning and will stop working in future
|
||||
TYPO3 versions.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations using the `\TYPO3\CMS\Frontend\View\AdminPanelViewHookInterface`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the new admin panel module API starting with TYPO3 v9.2.
|
||||
|
||||
.. index:: Frontend, FullyScanned, ext:frontend
|
||||
@@ -0,0 +1,41 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84109:
|
||||
|
||||
==================================================
|
||||
Deprecation: #84109 - Deprecate DependencyResolver
|
||||
==================================================
|
||||
|
||||
See :issue:`84109`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The class :php:`\TYPO3\CMS\Core\Package\DependencyResolver` has been marked as deprecated as the code as been merged
|
||||
into :php:`\TYPO3\CMS\Core\Package\PackageManager`.
|
||||
Additionally the :php:`\TYPO3\CMS\Core\Package\PackageManager` method :php:`injectDependencyResolver` has been marked as
|
||||
deprecated and the :php:`\TYPO3\CMS\Core\Package\PackageManager` triggers a deprecation warning when
|
||||
:php:`\TYPO3\CMS\Core\Service\DependencyOrderingService` is not injected through the constructor.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Installations that use :php:`\TYPO3\CMS\Core\Package\DependencyResolver` or create an own
|
||||
:php:`\TYPO3\CMS\Core\Package\PackageManager` instance will trigger a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations that use custom extensions that use the :php:`\TYPO3\CMS\Core\Package\DependencyResolver` class or
|
||||
create an own :php:`\TYPO3\CMS\Core\Package\PackageManager` instance.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use :php:`\TYPO3\CMS\Core\Service\DependencyOrderingService` to manually sort packages.
|
||||
Pass :php:`\TYPO3\CMS\Core\Service\DependencyOrderingService` to the :php:`\TYPO3\CMS\Core\Package\PackageManager`
|
||||
constructor if a new instance is created.
|
||||
|
||||
.. index:: PHP-API, FullyScanned
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84118:
|
||||
|
||||
=========================================================================
|
||||
Deprecation: #84118 - Various public methods of AdminPanelView deprecated
|
||||
=========================================================================
|
||||
|
||||
See :issue:`84118`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
To clean up the admin panel and provide a new API various functions of the main class `AdminPanelView` have been marked
|
||||
as deprecated:
|
||||
|
||||
* `getAdminPanelHeaderData`
|
||||
* `isAdminModuleEnabled`
|
||||
* `saveConfigOptions`
|
||||
* `extGetFeAdminValue`
|
||||
* `forcePreview`
|
||||
* `isAdminModuleOpen`
|
||||
* `extGetHead`
|
||||
* `linkSectionHeader`
|
||||
* `extGetItem`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the mentioned methods triggers an `E_USER_DEPRECATED` PHP error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation that calls one of the above methods.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Implement your own AdminPanel module by using the new API (see `AdminPanelModuleInterface`).
|
||||
|
||||
.. index:: Frontend, FullyScanned, ext:frontend
|
||||
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84145:
|
||||
|
||||
==============================================
|
||||
Deprecation: #84145 - Deprecate ext_isLinkable
|
||||
==============================================
|
||||
|
||||
See :issue:`84145`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`TYPO3\CMS\Backend\Tree\View\ElementBrowserFolderTreeView->ext_isLinkable()` has been marked as
|
||||
deprecated. It always returned true and still does it until removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Little to no impact in extensions, the method behavior usually does not change.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions extending the folder tree of the element browser may be affected but still should not change their behavior.
|
||||
Extension scanner may find usages and marks them as weak match since the methods appears in other classes as well.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Don't call :php:`ext_isLinkable()` anymore and assume :php:`true` as return value.
|
||||
|
||||
.. index:: Backend, PHP-API, FullyScanned
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84171:
|
||||
|
||||
==========================================================================================================
|
||||
Deprecation: #84171 - Adding GeneralUtility::getUrl RequestHeaders as non-associative array are deprecated
|
||||
==========================================================================================================
|
||||
|
||||
See :issue:`84171`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
RequestHeaders passed to `getUrl()` as string (format `Header:Value`) have been marked as deprecated.
|
||||
Associative arrays should be used instead.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using `GeneralUtility::getUrl()` request headers in a non-associative way will trigger an `E_USER_DEPRECATED` PHP error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All using request headers for `GeneralUtility::getUrl()` in a non-associative way.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use associative arrays, for example:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$headers = ['Content-Language: de-DE'];
|
||||
|
||||
will become
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$headers = ['Content-Language' => 'de-DE'];
|
||||
|
||||
.. index:: PHP-API, NotScanned
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84195:
|
||||
|
||||
================================================================================
|
||||
Deprecation: #84195 - Protected methods and properties in EditDocumentController
|
||||
================================================================================
|
||||
|
||||
See :issue:`84195`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage (consumer that call the class as well as
|
||||
signals or hooks depending on it) of :php:`TYPO3\CMS\Backend\Controller\EditDocumentController`.
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* :php:`$editconf`
|
||||
* :php:`$defVals`
|
||||
* :php:`$overrideVals`
|
||||
* :php:`$columnsOnly`
|
||||
* :php:`$returnUrl`
|
||||
* :php:`$closeDoc`
|
||||
* :php:`$doSave`
|
||||
* :php:`$returnEditConf`
|
||||
* [not scanned] :php:`$uc`
|
||||
* :php:`$retUrl`
|
||||
* :php:`$R_URL_parts`
|
||||
* :php:`$R_URL_getvars`
|
||||
* :php:`$storeArray`
|
||||
* :php:`$storeUrl`
|
||||
* :php:`$storeUrlMd5`
|
||||
* :php:`$docDat`
|
||||
* :php:`$docHandler`
|
||||
* [not scanned] :php:`$cmd`
|
||||
* [not scanned] :php:`$mirror`
|
||||
* :php:`$cacheCmd`
|
||||
* :php:`$redirect`
|
||||
* :php:`$returnNewPageId`
|
||||
* :php:`$popViewId`
|
||||
* :php:`$popViewId_addParams`
|
||||
* :php:`$viewUrl`
|
||||
* :php:`$recTitle`
|
||||
* :php:`$noView`
|
||||
* :php:`$MCONF`
|
||||
* [not scanned] :php:`$doc`
|
||||
* :php:`$perms_clause`
|
||||
* [not scanned] :php:`$template`
|
||||
* :php:`$content`
|
||||
* :php:`$R_URI`
|
||||
* :php:`$pageinfo`
|
||||
* :php:`$storeTitle`
|
||||
* :php:`$firstEl`
|
||||
* :php:`$errorC`
|
||||
* :php:`$newC`
|
||||
* :php:`$viewId`
|
||||
* :php:`$viewId_addParams`
|
||||
* :php:`$modTSconfig`
|
||||
* :php:`$dontStoreDocumentRef`
|
||||
|
||||
Some properties are set to :php:`@internal` and may vanish or be set to protected in v10 without further notice:
|
||||
|
||||
* [not scanned] :php:`$data`
|
||||
* :php:`$elementsData`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* :php:`preInit()`
|
||||
* :php:`doProcessData()`
|
||||
* :php:`processData()`
|
||||
* [not scanned] :php:`init()`
|
||||
* [note scanned] :php:`main()`
|
||||
* :php:`makeEditForm()`
|
||||
* :php:`compileForm()`
|
||||
* :php:`shortCutLink()`
|
||||
* :php:`openInNewWindowLink()`
|
||||
* :php:`languageSwitch()`
|
||||
* :php:`localizationRedirect()`
|
||||
* :php:`getLanguages()`
|
||||
* :php:`fixWSversioningInEditConf()`
|
||||
* :php:`getRecordForEdit()`
|
||||
* :php:`compileStoreDat()`
|
||||
* :php:`getNewIconMode()`
|
||||
* :php:`closeDocument()`
|
||||
* :php:`setDocument()`
|
||||
|
||||
Two slots retrieve a parent object that will throw deprecation warnings if properties are read or
|
||||
methods are called. They receive a :php:`ServerRequestInterface $request` argument as second
|
||||
argument instead:
|
||||
|
||||
* :php:`TYPO3\CMS\Backend\Controller\EditDocumentController::preInitAfter`
|
||||
* :php:`TYPO3\CMS\Backend\Controller\EditDocumentController::preInit`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`EditDocumentController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find most usages, but may also find some false positives. The most
|
||||
common property and method names like :php:`$data` are not registered and will not be found
|
||||
if an extension uses that on an instance of :php:`EditDocumenController`. In general all extensions
|
||||
that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
Installations may alse be affected, if the two signals
|
||||
:php:`TYPO3\CMS\Backend\Controller\EditDocumentController::preInitAfter` and
|
||||
:php:`TYPO3\CMS\Backend\Controller\EditDocumentController::InitAfter`
|
||||
are used and the slot write to or reads from first argument "parent object".
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
Registered slots for the two signals :php:`preInitAfter` and :php:`initAfter` should read
|
||||
(not write!) from new second argument :php:`$request` instead.
|
||||
Slots that currently write to "parent object" should instead be turned into a PSR-15 middleware
|
||||
to manipulate :php:`$request` before :php:`EditDocumentController` is called.
|
||||
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
@@ -0,0 +1,90 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84222:
|
||||
|
||||
========================================================
|
||||
Deprecation: #84222- Usage of GridContainer form element
|
||||
========================================================
|
||||
|
||||
See :issue:`84222`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The form element `GridContainer` is useless, buggy and will be removed in v10.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Usage of the form element `GridContainer` will trigger a deprecation warning:
|
||||
|
||||
|
||||
Affected installations
|
||||
======================
|
||||
|
||||
All instances who make usage of the form element `GridContainer`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the `GridContainer` form elements from your form definition and use `GridRow` child elements only.
|
||||
|
||||
Change
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
type: Form
|
||||
identifier: test
|
||||
label: test
|
||||
prototypeName: standard
|
||||
renderables:
|
||||
-
|
||||
type: Page
|
||||
identifier: page-1
|
||||
label: Step
|
||||
renderables:
|
||||
-
|
||||
type: GridContainer
|
||||
identifier: gridcontainer-1
|
||||
label: 'Grid: Container'
|
||||
renderables:
|
||||
-
|
||||
type: GridRow
|
||||
identifier: gridrow-1
|
||||
label: 'Grid: Row'
|
||||
renderables:
|
||||
-
|
||||
defaultValue: ''
|
||||
type: Text
|
||||
identifier: text-1
|
||||
label: Text
|
||||
|
||||
to
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
type: Form
|
||||
identifier: test
|
||||
label: test
|
||||
prototypeName: standard
|
||||
renderables:
|
||||
-
|
||||
type: Page
|
||||
identifier: page-1
|
||||
label: Step
|
||||
renderables:
|
||||
-
|
||||
type: GridRow
|
||||
identifier: gridrow-1
|
||||
label: 'Grid: Row'
|
||||
renderables:
|
||||
-
|
||||
defaultValue: ''
|
||||
type: Text
|
||||
identifier: text-1
|
||||
label: Text
|
||||
|
||||
|
||||
.. index:: Frontend, ext:form, NotScanned
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84273:
|
||||
|
||||
=============================================================================================
|
||||
Deprecation: #84273 - Protected methods and properties in FileSystemNavigationFrameController
|
||||
=============================================================================================
|
||||
|
||||
See :issue:`84273`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage (consumer that call the class as well as
|
||||
signals or hooks depending on it) of :php:`TYPO3\CMS\Backend\Controller\FileSystemNavigationFrameController`.
|
||||
|
||||
A series of class properties have been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* [not scanned] :php:`$content`
|
||||
* :php:`$foldertree`
|
||||
* :php:`$currentSubScript`
|
||||
* :php:`$cMR`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* :php:`initPage()`
|
||||
* [not scanned] :php:`main()`
|
||||
* [not scanned] :php:`init()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`FileSystemNavigationFrameController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find most usages, but may also find some false positives. The most
|
||||
common property and method names like :php:`$content` are not registered and will not be found
|
||||
if an extension uses that on an instance of :php:`FileSystemNavigationFrameController`. In general all extensions
|
||||
that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84274:
|
||||
|
||||
================================================================================
|
||||
Deprecation: #84274 - Protected methods and properties in LoginController
|
||||
================================================================================
|
||||
|
||||
See :issue:`84274`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage (consumer that call the class as well as
|
||||
signals or hooks depending on it) of :php:`TYPO3\CMS\Backend\Controller\LoginController`.
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`main()`
|
||||
* :php:`makeInterfaceSelectorBox()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling above method on an instance of
|
||||
:php:`LoginController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find all usages, but may also find some false positives. In general all extensions
|
||||
that set properties or call methods except :php:`formAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
@@ -0,0 +1,44 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84275:
|
||||
|
||||
==========================================================================
|
||||
Deprecation: #84275 - Protected methods and properties in LogoutController
|
||||
==========================================================================
|
||||
|
||||
See :issue:`84275`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage (consumer that call the class as well as
|
||||
signals or hooks depending on it) of :php:`TYPO3\CMS\Backend\Controller\LogoutController`.
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* :php:`logout()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling above method on an instance of
|
||||
:php:`LogoutController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find all usages, but may also find some false positives.
|
||||
In general all extensions that call :php:`logout()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
|
||||
.. index:: Backend, PHP-API, FullyScanned
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84284:
|
||||
|
||||
=====================================================================================================
|
||||
Deprecation: #84284 - Protected methods and properties in ContentElement/ElementInformationController
|
||||
=====================================================================================================
|
||||
|
||||
See :issue:`84284`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage (consumer that call the class as well as
|
||||
signals or hooks depending on it) of :php:`TYPO3\CMS\Backend\Controller\ContentElement\ElementInformationController`.
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* [not scanned] :php:`table`
|
||||
* [not scanned] :php:`uid`
|
||||
* :php:`access`
|
||||
* [not scanned] :php:`type`
|
||||
* :php:`pageInfo`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`init()`
|
||||
* [not scanned] :php:`main()`
|
||||
* :php:`getLabelForTableColumn()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`ElementInformationController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
In general all extensions
|
||||
that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
Since some of the deprecated methods and properties have quite common names and would produce false positives, their
|
||||
usage is not detected by the extension scanner.
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned, ext:backend
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84285:
|
||||
|
||||
===============================================================================
|
||||
Deprecation: #84285 - Protected methods and properties in MoveElementController
|
||||
===============================================================================
|
||||
|
||||
See :issue:`84285`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage of :php:`TYPO3\CMS\Backend\Controller\ContentElement\MoveElementController`.
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* :php:`sys_language`
|
||||
* :php:`page_id`
|
||||
* [not scanned] :php:`table`
|
||||
* :php:`R_URI`
|
||||
* :php:`input_moveUid`
|
||||
* :php:`moveUid`
|
||||
* :php:`makeCopy`
|
||||
* :php:`perms_clause`
|
||||
* [not scanned] :php:`content`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`init()`
|
||||
* [not scanned] :php:`main()`
|
||||
|
||||
Additionally :php:`$GLOBALS['SOBE']` is not set by the :php:`MoveElementController` constructor anymore.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`MoveElementController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find most usages, but may also find some false positives. The most
|
||||
common property and method names like :php:`$content` are not registered and will not be found
|
||||
if an extension uses that on an instance of :php:`MoveElementController`.
|
||||
|
||||
In general all extensions that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84289:
|
||||
|
||||
===============================================================================
|
||||
Deprecation: #84289 - Use ServerRequestInterface in File/CreateFolderController
|
||||
===============================================================================
|
||||
|
||||
See :issue:`84289`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* :php:`$number`
|
||||
* :php:`$folderNumber`
|
||||
* :php:`$target`
|
||||
* [not scanned] :php:`$title`
|
||||
* [not scanned] :php:`$returnUrl`
|
||||
* :php:`$content`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`main()`
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`CreateFolderController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find most usages, but may also find some false positives. The most
|
||||
common property and method names like :php:`$title` are not registered and will not be found
|
||||
if an extension uses that on an instance of :php:`CreateFolderController`. In general all extensions
|
||||
that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned, ext:backend
|
||||
+53
@@ -0,0 +1,53 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84295:
|
||||
|
||||
===========================================================================
|
||||
Deprecation: #84295 - Use ServerRequestInterface in File/EditFileController
|
||||
===========================================================================
|
||||
|
||||
See :issue:`84295`
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* :php:`$origTarget`
|
||||
* :php:`$target`
|
||||
* :php:`$doc`
|
||||
* [not scanned] :php:`$returnUrl`
|
||||
* [not scanned] :php:`$content`
|
||||
* [not scanned] :php:`$title`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`main()`
|
||||
* :php: `getButtons()`
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`FileEditController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find most usages, but may also find some false positives. The most
|
||||
common property and method names like :php:`$title` are not registered and will not be found
|
||||
if an extension uses that on an instance of :php:`FileEditController`. In general all extensions
|
||||
that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84307:
|
||||
|
||||
=====================================================================================
|
||||
Deprecation: #84307 - Protected methods and properties in NewContentElementController
|
||||
=====================================================================================
|
||||
|
||||
See :issue:`84307`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage of :php:`TYPO3\CMS\Backend\Controller\ContentElement\NewContentElementController`.
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* [not scanned] :php:`id`
|
||||
* :php:`sys_language`
|
||||
* :php:`R_URI`
|
||||
* :php:`colPos`
|
||||
* :php:`uid_pid`
|
||||
* [not scanned] :php:`modTSconfig`
|
||||
* [not scanned] :php:`doc`
|
||||
* [not scanned] :php:`content`
|
||||
* :php:`access`
|
||||
* [not scanned] :php:`config`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`init()`
|
||||
* [not scanned] :php:`main()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`NewContentElementController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find most usages, but may also find some false positives. The most
|
||||
common property and method names like :php:`$content` are not registered and will not be found
|
||||
if an extension uses that on an instance of :php:`NewContentElementController`.
|
||||
|
||||
In general all extensions that set properties or call methods except :php:`mainAction()` or :php:`wizardAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+64
@@ -0,0 +1,64 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84321:
|
||||
|
||||
================================================================================
|
||||
Deprecation: #84321 - Protected methods and properties in AddController
|
||||
================================================================================
|
||||
|
||||
See :issue:`84321`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage (consumer that call the class as well as
|
||||
signals or hooks depending on it) of :php:`TYPO3\CMS\Backend\Controller\Wizard\AddController`.
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* [not scanned] :php:`$content`
|
||||
* :php:`$processDataFlag`
|
||||
* [not scanned] :php:`$pid`
|
||||
* [not scanned] :php:`$table`
|
||||
* [not scanned] :php:`$id`
|
||||
* :php:`$P`
|
||||
* :php:`$returnEditConf`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`init()`
|
||||
* [not scanned] :php:`main()`
|
||||
|
||||
Due to refactoring the :php:`init()` method does not perform a redirect anymore in case no ``pid``
|
||||
was set by GET params. This redirect has been moved and will be performed for legacy code by the
|
||||
deprecated :php:`main()` method now.
|
||||
|
||||
Additionally :php:`$GLOBALS['SOBE']` is not set by the :php:`AddController` constructor anymore.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`AddController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find most usages, but may also find some false positives. The most
|
||||
common property and method names like :php:`$content` are not registered and will not be found
|
||||
if an extension uses that on an instance of :php:`AddController`. In general all extensions
|
||||
that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84324:
|
||||
|
||||
=======================================================================
|
||||
Deprecation: #84324 - Use ServerRequestInterface in File/FileController
|
||||
=======================================================================
|
||||
|
||||
See :issue:`84324`
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`main()`
|
||||
* :php: `initClipboard()`
|
||||
* :php: `finish()`
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods on an instance of
|
||||
:php:`FileController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find most usages, but may also find some false positives. In general all extensions
|
||||
that call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84326:
|
||||
|
||||
==============================================================================
|
||||
Deprecation: #84326 - Protected methods and properties in FileUploadController
|
||||
==============================================================================
|
||||
|
||||
See :issue:`84326`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage of :php:`TYPO3\CMS\Backend\Controller\File\FileUploadController`.
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* :php:`title`
|
||||
* :php:`target`
|
||||
* :php:`returnUrl`
|
||||
* [not scanned] :php:`content`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`main()`
|
||||
* :php:`renderUploadForm()`
|
||||
|
||||
Additionally :php:`$GLOBALS['SOBE']` is not set by the :php:`FileUploadController` constructor anymore.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`FileUploadController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find most usages, but may also find some false positives. The most
|
||||
common property and method names like :php:`$content` are not registered and will not be found
|
||||
if an extension uses that on an instance of :php:`FileUploadController`.
|
||||
|
||||
In general all extensions that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84327:
|
||||
|
||||
=======================================================================================
|
||||
Deprecation: #84327 - Deprecated public methods and properties in Wizard/EditController
|
||||
=======================================================================================
|
||||
|
||||
See :issue:`84327`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage (consumer that call the class as well as
|
||||
signals or hooks depending on it) of :php:`TYPO3\CMS\Backend\Controller\Wizard\EditController`.
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* [not scanned] :php:`$P`
|
||||
* :php:`$doClose`
|
||||
|
||||
The following method will be refactored/set to protected in v10 and should no longer be used:
|
||||
|
||||
* [not scanned] :php:`main()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`Wizard/EditController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will detect only detect usage of :php:`$doClose`, other calls are not scanned to prevent false positives.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned, ext:backend
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84332:
|
||||
|
||||
==============================================================================
|
||||
Deprecation: #84332 - Protected methods and properties in RenameFileController
|
||||
==============================================================================
|
||||
|
||||
See :issue:`84332`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage of :php:`TYPO3\CMS\Backend\Controller\File\RenameFileController`.
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* :php:`title`
|
||||
* :php:`target`
|
||||
* :php:`returnUrl`
|
||||
* [not scanned] :php:`content`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`main()`
|
||||
|
||||
Additionally :php:`$GLOBALS['SOBE']` is not set by the :php:`RenameFileController` constructor anymore.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`RenameFileController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find most usages, but may also find some false positives. The most
|
||||
common property and method names like :php:`$content` are not registered and will not be found
|
||||
if an extension uses that on an instance of :php:`RenameFileController`.
|
||||
|
||||
In general all extensions that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84334:
|
||||
|
||||
===============================================================================
|
||||
Deprecation: #84334 - Protected methods and properties in ReplaceFileController
|
||||
===============================================================================
|
||||
|
||||
See :issue:`84334`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage of :php:`TYPO3\CMS\Backend\Controller\File\RenameFileController`.
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* :php:`doc`
|
||||
* :php:`title`
|
||||
* :php:`uid`
|
||||
* :php:`returnUrl`
|
||||
* [not scanned] :php:`content`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`main()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`ReplaceFileController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find most usages, but may also find some false positives. The most
|
||||
common property and method names like :php:`$content` are not registered and will not be found
|
||||
if an extension uses that on an instance of :php:`ReplaceFileController`.
|
||||
|
||||
In general all extensions that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84337:
|
||||
|
||||
================================================================================
|
||||
Deprecation: #84337 - Protected methods and properties in ListController
|
||||
================================================================================
|
||||
|
||||
See :issue:`84337`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage (consumer that call the class as well as
|
||||
signals or hooks depending on it) of :php:`TYPO3\CMS\Backend\Controller\Wizard\ListController`.
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* [not scanned] :php:`pid`
|
||||
* [not scanned] :php:`P`
|
||||
* [not scanned] :php:`table`
|
||||
* [not scanned] :php:`id`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`main()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling above method on an instance of
|
||||
:php:`ListController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find all usages, but may also find some false positives. In general all extensions
|
||||
that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84338:
|
||||
|
||||
================================================================================
|
||||
Deprecation: #84338 - Protected methods and properties in TableController
|
||||
================================================================================
|
||||
|
||||
See :issue:`84388`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage (consumer that call the class as well as
|
||||
signals or hooks depending on it) of :php:`TYPO3\CMS\Backend\Controller\Wizard\TableController`.
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* [not scanned] :php:`$content`
|
||||
* :php:`$inputStyle`
|
||||
* :php:`$xmlStorage`
|
||||
* :php:`$columnsOnly`
|
||||
* :php:`$numNewRows`
|
||||
* :php:`$colsFieldsName`
|
||||
* [not scanned] :php:`$P`
|
||||
* :php:`$TABLECFG`
|
||||
* :php:`$tableParsing_quote`
|
||||
* :php:`$tableParsing_delimiter`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [note scanned] :php:`main()`
|
||||
* :php:`tableWizard()`
|
||||
* :php:`getConfigCode()`
|
||||
* :php:`getTableHTML()`
|
||||
* :php:`changeFunc()`
|
||||
* :php:`cfgArray2CfgString()`
|
||||
* :php:`cfgString2CfgArray()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`TableController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find most usages, but may also find some false positives. The most
|
||||
common property and method names like :php:`$content` are not registered and will not be found
|
||||
if an extension uses that on an instance of :php:`TableController`. In general all extensions
|
||||
that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84341:
|
||||
|
||||
=============================================================================
|
||||
Deprecation: #84341 - Protected methods and properties in NewRecordController
|
||||
=============================================================================
|
||||
|
||||
See :issue:`84341`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage of :php:`TYPO3\CMS\Backend\Controller\NewRecordController`.
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* [not scanned] :php:`pageinfo`
|
||||
* :php:`pidInfo`
|
||||
* :php:`newPagesInto`
|
||||
* :php:`newContentInto`
|
||||
* :php:`newPagesAfter`
|
||||
* :php:`web_list_modTSconfig`
|
||||
* :php:`allowedNewTables`
|
||||
* :php:`deniedNewTables`
|
||||
* :php:`web_list_modTSconfig_pid`
|
||||
* :php:`allowedNewTables_pid`
|
||||
* :php:`deniedNewTables_pid`
|
||||
* :php:`code`
|
||||
* :php:`R_URI`
|
||||
* [not scanned] :php:`id`
|
||||
* :php:`returnUrl`
|
||||
* :php:`pagesOnly`
|
||||
* [not scanned] :php:`perms_clause`
|
||||
* [not scanned] :php:`content`
|
||||
* :php:`tRows`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`main()`
|
||||
* :php:`pagesOnly()`
|
||||
* :php:`regularNew()`
|
||||
* :php:`sortNewRecordsByConfig()`
|
||||
* :php:`linkWrap()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the above methods or accessing one of the above properties on an instance of
|
||||
:php:`NewRecordController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find most usages, but may also find some false positives. The most
|
||||
common property and method names like :php:`$content` are not registered and will not be found
|
||||
if an extension uses that on an instance of :php:`NewRecordController`.
|
||||
|
||||
In general all extensions that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84369:
|
||||
|
||||
=================================================================================
|
||||
Deprecation: #84369 - Protected methods and properties in UserSettingsController
|
||||
=================================================================================
|
||||
|
||||
See :issue:`84369`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage (consumer that call the class as well as
|
||||
signals or hooks depending on it) of :php:`TYPO3\CMS\Backend\Controller\UserSettingsController`.
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`process()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling above method on an instance of :php:`UserSettingsController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find all usages, but may also find some false positives.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84374:
|
||||
|
||||
======================================================================================
|
||||
Deprecation: #84374 - Protected methods and properties in SimpleDataHandlerController
|
||||
======================================================================================
|
||||
|
||||
See :issue:`84374`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This file is about third party usage (consumer that call the class as well as
|
||||
signals or hooks depending on it) of :php:`TYPO3\CMS\Backend\Controller\SimpleDataHandlerController`.
|
||||
|
||||
A series of class properties has been set to protected.
|
||||
They will throw deprecation warnings if called public from outside:
|
||||
|
||||
* :php:`flags`
|
||||
* [not scanned] :php:`data`
|
||||
* [not scanned] :php:`cmd`
|
||||
* :php:`mirror`
|
||||
* :php:`cacheCmd`
|
||||
* [not scanned] :php:`redirect`
|
||||
* :php:`CB`
|
||||
* [not scanned] :php:`tce`
|
||||
|
||||
All methods not used as entry points by :php:`TYPO3\CMS\Backend\Http\RouteDispatcher` will be
|
||||
removed or set to protected in v10 and throw deprecation warnings if used from a third party:
|
||||
|
||||
* [not scanned] :php:`main()`
|
||||
* :php:`initClipboard()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling above method on an instance of
|
||||
:php:`SimpleDataHandlerController` will throw a deprecation warning in v9 and a PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The extension scanner will find all usages, but may also find some false positives. In general all extensions
|
||||
that set properties or call methods except :php:`mainAction()` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In general, extensions should not instantiate and re-use controllers of the core. Existing
|
||||
usages should be rewritten to be free of calls like these.
|
||||
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84399:
|
||||
|
||||
======================================================================
|
||||
Deprecation: #84399 - Class RecordList renamed to RecordListController
|
||||
======================================================================
|
||||
|
||||
See :issue:`84399`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The PHP class :php:`TYPO3\CMS\Recordlist\RecordList` has been renamed to
|
||||
:php:`TYPO3\CMS\Recordlist\Controller\RecordListController`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The old class name has been registered as class alias and will still work.
|
||||
Old class name usage however is discouraged and should be avoided, the
|
||||
alias will vanish with core version 10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions that hook into the list module may be affected if type hinting
|
||||
with the old classes as :php:`$parentObject`.
|
||||
|
||||
The extension scanner will find affected extensions using the old class name.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use new class name instead.
|
||||
|
||||
.. index:: Backend, PHP-API, FullyScanned, ext:recordlist
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84407:
|
||||
|
||||
==================================================================
|
||||
Deprecation: #84407 - AJAX request methods in RsaEncryptionEncoder
|
||||
==================================================================
|
||||
|
||||
See :issue:`84407`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
All methods related to AJAX requests in :php:`\TYPO3\CMS\Rsaauth\RsaEncryptionEncoder` have been marked as deprecated:
|
||||
|
||||
* :php:`getRsaPublicKeyAjaxHandler()`
|
||||
|
||||
The `rsa_publickey` AJAX route has been adapted to use the
|
||||
:php:`\TYPO3\CMS\Rsaauth\Controller\RsaPublicKeyGenerationController` which was already used for RSA key retrieval via
|
||||
eID in the frontend.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the above method on an instance of :php:`RsaEncryptionEncoder` will throw a deprecation warning in v9 and a
|
||||
PHP fatal in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All extensions that call the deprecated method are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Extensions should use the AJAX route `rsa_publickey` instead of the deprecated method.
|
||||
|
||||
.. index:: Backend, Frontend, PHP-API, FullyScanned
|
||||
+50
@@ -0,0 +1,50 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84407-1668719171:
|
||||
|
||||
========================================================================================
|
||||
Deprecation: #84407 - RSA public key generation without "Content-Type: application/json"
|
||||
========================================================================================
|
||||
|
||||
See :issue:`84407`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The default response of the :php:`RsaPublicKeyGenerationController` eID script was broken since it
|
||||
claimed to return a JSON response but in fact returned a simple string containing a concatenation of
|
||||
public key modulus and exponent.
|
||||
|
||||
The eID script now returns a proper JSON response if requested with the
|
||||
`Content-Type: application/json` HTTP header:
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
{
|
||||
"publicKeyModulus": "ABC...",
|
||||
"exponent": "10..."
|
||||
}
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions performing custom AJAX requests against the :php:`RsaPublicKeyGenerationController`
|
||||
eID script without the `Content-Type: application/json` HTTP header will trigger a deprecation
|
||||
warning in v9 and an error response in v10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Sites which do not use the default RSA encryption JavaScript to handle form value encryption.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
The default RSA encryption JavaScript has been migrated, custom implementations must add the
|
||||
`Content-Type: application/json` HTTP header to AJAX requests and parse the JSON response
|
||||
accordingly.
|
||||
|
||||
.. index:: Backend, Frontend, JavaScript, PHP-API, FullyScanned, ext:rsaauth
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84409:
|
||||
|
||||
====================================================================================
|
||||
Deprecation: #84409 - ImageManipulationWizard renamed to ImageManipulationController
|
||||
====================================================================================
|
||||
|
||||
See :issue:`84409`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The PHP class :php:`TYPO3\CMS\Backend\Form\Wizard\ImageManipulationWizard` has been renamed to
|
||||
:php:`TYPO3\CMS\Backend\Controller\Wizard\ImageManipulationController`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The old class name has been registered as class alias and will still work.
|
||||
Old class name usage however is discouraged and should be avoided, the
|
||||
alias will vanish with core version 10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions which use the old class name are affected. The extension scanner will find affected extensions using the old
|
||||
class name.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use new class name instead.
|
||||
|
||||
.. index:: Backend, PHP-API, FullyScanned
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84410:
|
||||
|
||||
========================================================================
|
||||
Deprecation: #84410 - CodeCompletion renamed to CodeCompletionController
|
||||
========================================================================
|
||||
|
||||
See :issue:`84410`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The PHP class :php:`TYPO3\CMS\T3editor\CodeCompletion` has been renamed to
|
||||
:php:`TYPO3\CMS\T3editor\Controller\CodeCompletionController`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The old class name has been registered as class alias and will still work.
|
||||
Old class name usage however is discouraged and should be avoided, the alias will vanish with core version 10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions which use the old class name are affected. The extension scanner will find affected extensions using the old
|
||||
class name.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use new class name instead.
|
||||
|
||||
.. index:: Backend, PHP-API, FullyScanned, ext:t3editor
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84411:
|
||||
|
||||
========================================================================================
|
||||
Deprecation: #84411 - TypoScriptReferenceLoader renamed to TypoScriptReferenceController
|
||||
========================================================================================
|
||||
|
||||
See :issue:`84411`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The PHP class :php:`TYPO3\CMS\T3editor\TypoScriptReferenceLoader` has been renamed to
|
||||
:php:`TYPO3\CMS\T3editor\Controller\TypoScriptReferenceController`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The old class name has been registered as class alias and will still work.
|
||||
Old class name usage however is discouraged and should be avoided, the alias will vanish with core version 10.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions which use the old class name are affected. The extension scanner will find affected extensions using the old
|
||||
class name.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use new class name instead.
|
||||
|
||||
.. index:: Backend, PHP-API, FullyScanned, ext:t3editor
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84463:
|
||||
|
||||
=========================================================================
|
||||
Deprecation: #84463 - PageTsConfig option mod.web_list.newWizards dropped
|
||||
=========================================================================
|
||||
|
||||
See :issue:`84463`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The widely unknown PageTsConfig option :typoscript:`mod.web_list.newWizards` has been enabled by default and dropped.
|
||||
|
||||
PHP property :php:`newWizards` of class :php:`TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList` has been deprecated
|
||||
along the way.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The "+" sign in the list module of `pages` table now by default links to the wizard to select the new page position.
|
||||
|
||||
The "+" sign in the list module of `tt_content` table now by default links to the new content element wizard in a modal.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Most installations should not be affected by the code change, the extension scanner will find extensions using the
|
||||
mentioned class property.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Do not use property :php:`newWizards` anymore, drop the PageTsConfig option if used.
|
||||
|
||||
.. index:: Backend, PHP-API, TSConfig, PartiallyScanned
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84530:
|
||||
|
||||
==========================================================================
|
||||
Deprecation: #84530 - Default values from globals deprecated in FormEngine
|
||||
==========================================================================
|
||||
|
||||
See :issue:`84530`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Setting default values for new database records from GET/POST `defVals` parameter has been marked as deprecated in 9.2
|
||||
and will be removed in version 10.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
If not already provided within the new configuration setting `$result['defaultValues']`, the default values are applied
|
||||
from GET/POST `defVals` configuration, but will trigger a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations that use the FormEngine within extensions might need to be changed.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the `defaultValues` configuration to set default values for new database rows
|
||||
in the \TYPO3\CMS\Backend\Form\FormDataCompiler::compile call.
|
||||
|
||||
.. index:: Backend, PHP-API, NotScanned
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84549:
|
||||
|
||||
=============================================================
|
||||
Deprecation: #84549 - Deprecate methods in CoreVersionService
|
||||
=============================================================
|
||||
|
||||
See :issue:`84549`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The core version service has been refactored to make use of the new REST API available via
|
||||
`https://get.typo3.org/v1/api/doc <https://get.typo3.org/v1/api/doc>`_.
|
||||
|
||||
Due to that refactoring multiple methods in class :php:`CoreVersionService` have been marked as deprecated:
|
||||
|
||||
* :php:`getDownloadBaseUrl()`
|
||||
* :php:`isYoungerPatchDevelopmentReleaseAvailable()`
|
||||
* :php:`getYoungestPatchDevelopmentRelease()`
|
||||
* :php:`updateVersionMatrix()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Usage of any of these methods will trigger a PHP :php:`E_USER_DEPRECATED` error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any that use the mentioned methods.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
* For :php:`getDownloadBaseUrl()` use `https://get.typo3.org` directly
|
||||
* For :php:`isYoungerPatchDevelopmentReleaseAvailable()` use :php:`isYoungerPatchReleaseAvailable()`
|
||||
as the current releases do not make use of development suffixes (like alpha or rc) anymore
|
||||
* For :php:`getYoungestPatchDevelopmentRelease()` use :php:`getYoungestPatchRelease()`
|
||||
* :php:`updateVersionMatrix()` needs no replacement method - instead the necessary information can be
|
||||
fetched directly via the REST API
|
||||
|
||||
.. index:: Backend, PHP-API, PartiallyScanned, ext:install
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84637:
|
||||
|
||||
========================================================================================
|
||||
Deprecation: #84637 - TemplateService->linkData() functionality moved in PageLinkBuilder
|
||||
========================================================================================
|
||||
|
||||
See :issue:`84637`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
In the process of streamlining the link generation to pages in the Frontend, the master method
|
||||
:php:`TemplateService->linkData` and all functionality regarding resolving of the according Mount Point parameters
|
||||
have been migrated into the TypoLink PageLinkBuilder class.
|
||||
|
||||
The following methods have been marked as deprecated:
|
||||
|
||||
* :php:`TYPO3\CMS\Core\TypoScript\TemplateService->linkData`
|
||||
* :php:`TYPO3\CMS\Core\TypoScript\TemplateService->getFromMPmap`
|
||||
* :php:`TYPO3\CMS\Core\TypoScript\TemplateService->initMPmap_create`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods above will trigger a PHP deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installations with third-party extensions calling the methods directly, extensions using the
|
||||
existing hook :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tstemplate.php']['linkData-PostProc']`
|
||||
will work the same way.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Access the corresponding new methods within :php:`PageLinkBuilder` instead of the TemplateService-related
|
||||
methods, or use the existing hook to modify parameters for a URL.
|
||||
|
||||
.. index:: PHP-API, FullyScanned
|
||||
@@ -0,0 +1,57 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-84641:
|
||||
|
||||
===============================================================================================================
|
||||
Deprecation: #84641 - Deprecated AdminPanel related methods and properties in FrontendBackendUserAuthentication
|
||||
===============================================================================================================
|
||||
|
||||
See :issue:`84641`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The admin panel has been extracted into an own extension. To enable users to de-activate the admin panel completely,
|
||||
the hard coupling between the extension and other parts of the core had to be resolved. The admin panel now takes care
|
||||
of its own initialization and provides API methods related to its functionality.
|
||||
The following API methods and properties located in `FrontendBackendUserAuthentication` have been marked as deprecated:
|
||||
|
||||
* `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::$adminPanel`
|
||||
* `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::$extAdminConfig`
|
||||
* `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::$extAdmEnabled`
|
||||
|
||||
* `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::initializeAdminPanel()`
|
||||
* `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::initializeFrontendEdit()`
|
||||
* `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::isFrontendEditingActive()`
|
||||
* `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::displayAdminPanel()`
|
||||
* `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::isAdminPanelVisible()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using any of the methods will trigger a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation directly calling one of the mentioned methods or properties.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
* `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::$adminPanel` - use `MainController` of EXT:adminpanel instead
|
||||
* `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::$extAdminConfig` - load directly from TSConfig if needed
|
||||
* `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::$extAdmEnabled` - check directly against TSConfig if necessary
|
||||
|
||||
Both initialization methods `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::initializeAdminPanel` and
|
||||
`\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::initializeFrontendEdit` were rewritten as PSR-15 middlewares,
|
||||
remove any calls as they are not necessary anymore.
|
||||
|
||||
* `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::isFrontendEditingActive` and `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::isAdminPanelVisible` - check against TSFE directly
|
||||
|
||||
* `\TYPO3\CMS\Backend\FrontendBackendUserAuthentication::displayAdminPanel` - use `MainController::render()` instead
|
||||
|
||||
.. index:: Frontend, PHP-API, PartiallyScanned
|
||||
@@ -0,0 +1,26 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-48013:
|
||||
|
||||
====================================================
|
||||
Feature: #48013 - Add support for progressive images
|
||||
====================================================
|
||||
|
||||
See :issue:`48013`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It is now possible to generate progressive images by setting `$GLOBALS['TYPO3_CONF_VARS'][GFX][processor_interlace]` in
|
||||
the Settings Module.
|
||||
|
||||
The possible values to set are identical to the ones in defined in the GM / IM manuals.
|
||||
|
||||
Possible values by the time of writing are:
|
||||
|
||||
* None
|
||||
* Line
|
||||
* Plane
|
||||
* Partition
|
||||
|
||||
.. index:: Frontend, Backend
|
||||
@@ -0,0 +1,27 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-61981:
|
||||
|
||||
=====================================================
|
||||
Feature: #61981 - Search all fields in Suggest Wizard
|
||||
=====================================================
|
||||
|
||||
See :issue:`61981`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Suggest Wizard search terms are split by `+`.
|
||||
This allows to search for a combination of strings in any given field.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Searching for the term "elements+basic" will find the following results:
|
||||
|
||||
* elements basic
|
||||
* elements rte basic
|
||||
* basic rte elements
|
||||
|
||||
.. index:: Backend, TCA
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69187:
|
||||
|
||||
==========================================================================
|
||||
Feature: #69187 - EXT:Scheduler: Create task group from add/edit task form
|
||||
==========================================================================
|
||||
|
||||
See :issue:`69187`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It is now possible to create a new scheduler task group while editing or creating a task.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
It is no longer needed to switch to the list module and create a new task group on page 0 before editing or creating a
|
||||
scheduler task.
|
||||
|
||||
.. index:: Backend, ext:scheduler
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-71911:
|
||||
|
||||
==============================================================================
|
||||
Feature: #71911 - Add constraint hook in DatabaseRecordList->makeSearchString
|
||||
==============================================================================
|
||||
|
||||
See :issue:`71911`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A newly introduced hook in `DatabaseRecordList->makeSearchString` allows to modify the constraints which are applied to
|
||||
the search string.
|
||||
|
||||
Example
|
||||
=======
|
||||
|
||||
An example implementation could look like this:
|
||||
|
||||
:file:`EXT:my_site/ext_localconf.php`
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList::class]['makeSearchStringConstraints'][1313131313] =
|
||||
\MyVendor\MySite\Hooks\DatabaseRecordListHook::class;
|
||||
|
||||
|
||||
:file:`EXT:my_site/Classes/Hooks/DatabaseRecordListHook.php`
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
namespace MyVendor\MySite\Hooks;
|
||||
|
||||
class DatabaseRecordListHook
|
||||
{
|
||||
public function makeSearchStringConstraints(
|
||||
\TYPO3\CMS\Core\Database\Query\QueryBuilder $queryBuilder
|
||||
array $constraints,
|
||||
string $searchString,
|
||||
string $table,
|
||||
int $currentPid,
|
||||
) {
|
||||
return $constraints;
|
||||
}
|
||||
}
|
||||
|
||||
.. index:: Backend, Database, PHP-API
|
||||
+79
@@ -0,0 +1,79 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-76349:
|
||||
|
||||
=====================================================================
|
||||
Feature: #76349 - Integrate Swift Mailer's spool transport into TYPO3
|
||||
=====================================================================
|
||||
|
||||
See :issue:`76349`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The default behavior of the TYPO3 mailer is to send the email messages immediately. You may, however, want to avoid
|
||||
the performance hit of the communication to the email server, which could cause the user to wait for the next page to
|
||||
load while the email is being sent. This can be avoided by choosing to "spool" the emails instead of sending them directly.
|
||||
|
||||
This makes the mailer not attempt to send the email message but instead save it somewhere such as a file. Another
|
||||
process can then read from the spool and take care of sending the emails in the spool. Currently only spooling to file
|
||||
or memory is supported.
|
||||
|
||||
.. note::
|
||||
|
||||
If you are running a multi-head environment consider using a different solution for mail spooling
|
||||
than the options presented here.
|
||||
|
||||
|
||||
Spool Using Memory
|
||||
==================
|
||||
|
||||
When you use spooling to store the emails to memory, they will get sent right before the kernel terminates. This means
|
||||
the email only gets sent if the whole request got executed without any unhandled exception or any errors. To configure
|
||||
this spool, use the following configuration:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport_spool_type'] = 'memory';
|
||||
|
||||
|
||||
Spool Using Files
|
||||
=================
|
||||
|
||||
When using the filesystem for spooling, you need to define in which folder TYPO3 stores the spooled files.
|
||||
This folder will contain files for each email in the spool. So make sure this directory is writable by TYPO3 and not
|
||||
accessible to the world (outside of the webroot).
|
||||
|
||||
In order to use the spool with files, use the following configuration:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport_spool_type'] = 'file';
|
||||
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['transport_spool_filepath'] = '/folder/of/choice';
|
||||
|
||||
Now, when TYPO3 is instructed to send an email, it will not actually be sent but instead added to the spool. Sending the
|
||||
messages from the spool is done separately. There is a console command to send the messages in the spool:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
./typo3/sysext/core/bin/typo3 swiftmailer:spool:send
|
||||
|
||||
|
||||
It has an option to limit the number of messages to be sent:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
./typo3/sysext/core/bin/typo3 swiftmailer:spool:send --message-limit=10
|
||||
|
||||
|
||||
You can also set the time limit in seconds:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
./typo3/sysext/core/bin/typo3 swiftmailer:spool:send --time-limit=10
|
||||
|
||||
|
||||
Of course you will not want to run this manually in reality. Instead, the console command should be triggered by a cron
|
||||
job or scheduled task and run at a regular interval.
|
||||
|
||||
.. index:: PHP-API
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-77685:
|
||||
|
||||
==================================================================================
|
||||
Feature: #77685 - Create a save and open copy button when saving a content element
|
||||
==================================================================================
|
||||
|
||||
See :issue:`77685`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Editors can no clone a new record by using the new button "clone" in the edit record form for already persisted records.
|
||||
If there are not persisted changes when pressing the button a modal appears, providing the following 3 options:
|
||||
|
||||
* abort
|
||||
* clone the content element without saving the current changes
|
||||
* save the changes and clones the record afterwards.
|
||||
|
||||
The copy of the record will by put right below the record itself.
|
||||
After saving, the edit record form opens for the cloned element.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Editors are able to make a duplicate of a record with just a single click. They don't have to copy & paste.
|
||||
|
||||
.. index:: Backend
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-78332:
|
||||
|
||||
======================================================================================
|
||||
Feature: #78332 - Allow setting a default replyTo-email-address for notification-mails
|
||||
======================================================================================
|
||||
|
||||
See :issue:`78332`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Two new LocalConfiguration settings have been introduced:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailReplyToAddress']
|
||||
$GLOBALS['TYPO3_CONF_VARS']['MAIL']['defaultMailReplyToName']
|
||||
|
||||
Also a new function to build a mail address for SwiftMailer from these settings is introduced:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
MailUtility::getSystemReplyTo()
|
||||
|
||||
If no default reply-to address is set this function will return an empty array.
|
||||
|
||||
This function is used in :php:`ContentObjectRenderer::sendNotifyEmail()` to set a ReplyTo address in case no address is
|
||||
supplied in the function parameters.
|
||||
In other places where notifications are sent for e.g. (failed) login attempts, reports and where the notification uses
|
||||
the system from address this function is also used.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
It's now possible to set a reply-to address for notification mails from TYPO3. Extensions can also use this system
|
||||
reply-to address by calling :php:`MailUtility::getSystemReplyTo()`.
|
||||
|
||||
.. index:: LocalConfiguration, PHP-API
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-80124:
|
||||
|
||||
================================================================================
|
||||
Feature: #80124 - EXT:form - allow setting of validation messages in form editor
|
||||
================================================================================
|
||||
|
||||
See :issue:`80124`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A new form element property "validationErrorMessages" has been introduced. It allows the definition of custom validation
|
||||
error messages. Within the form editor, one can set those error messages for all existing validators.
|
||||
|
||||
.. index:: Backend, Frontend, ext:form, NotScanned
|
||||
@@ -0,0 +1,28 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-80263:
|
||||
|
||||
=======================================================
|
||||
Feature: #80263 - Add a new signal slot for user switch
|
||||
=======================================================
|
||||
|
||||
See :issue:`80263`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A new signal is emitted once an admin user switches into another user via the Switch-To functionality within TYPO3 core.
|
||||
|
||||
Use the following code to use the signal
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$dispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
|
||||
$dispatcher->connect(
|
||||
\TYPO3\CMS\Beuser\Controller\BackendUserController::class,
|
||||
'switchUser',
|
||||
\MyVendor\MyExtension\Slots\BackendUserController::class,
|
||||
'switchUser'
|
||||
);
|
||||
|
||||
.. index:: Backend, PHP-API, ext:beuser
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-82704:
|
||||
|
||||
============================================================================
|
||||
Feature: #82704 - Add readonly and required attributes to TextareaViewHelper
|
||||
============================================================================
|
||||
|
||||
See :issue:`82704`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The view helper `f:form.textarea` now supports the attributes `readonly` and `required`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The attributes `readonly` and `required` may be set by using the `f:form.textarea` view helper.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<!-- Set required attribute -->
|
||||
<f:form.textarea name="foobar" required="1" />
|
||||
|
||||
<!-- Set readonly attribute -->
|
||||
<f:form.textarea name="foobar" readonly="1" />
|
||||
|
||||
.. index:: Fluid
|
||||
@@ -0,0 +1,30 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-83460:
|
||||
|
||||
========================================================
|
||||
Feature: #83460 - Hide restricted columns in page module
|
||||
========================================================
|
||||
|
||||
See :issue:`83460`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
In order to get a cleaner page layout view for backend users, an option to hide the restricted columns in page module
|
||||
has been introduced.
|
||||
|
||||
When restricting a list of columns to the user, the restricted columns are rendered with a message that the user has no
|
||||
access to these columns which might be undesired in certain cases (imagine a user having access to only one of 20
|
||||
columns total).
|
||||
|
||||
With assigning the following setting to the UserTS, these columns are hidden and the user will only see the columns they
|
||||
are allowed to edit or add content to:
|
||||
|
||||
`mod.web_layout.hideRestrictedCols = 1`
|
||||
|
||||
If you use backend layouts to provide an abstract view of the frontend, hiding the columns with this setting **will**
|
||||
break your layout, so handle it with care.
|
||||
|
||||
|
||||
.. index:: Backend
|
||||
@@ -0,0 +1,23 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-83506:
|
||||
|
||||
========================================================
|
||||
Feature: #83506 - Retrieve session data in TS conditions
|
||||
========================================================
|
||||
|
||||
See :issue:`83506`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
As the session API has been modified, it is no longer possible to access session data in TypoScript conditions by using
|
||||
the formerly public property `sesData` of the frontend user object.
|
||||
|
||||
So now there is a more direct way using the keyword `session` with the same function:
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
[globalVar = session:foo|bar = 1234567]
|
||||
|
||||
.. index:: Frontend, TypoScript
|
||||
@@ -0,0 +1,65 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-83556:
|
||||
|
||||
===================================================
|
||||
Feature: #83556 - Add toggle switches to FormEngine
|
||||
===================================================
|
||||
|
||||
See :issue:`83556`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
In order to give FormEngine a fresher look we add the following `renderTypes` to `type=check`.
|
||||
|
||||
renderType checkboxToggle
|
||||
=========================
|
||||
|
||||
A pure toggle switch. No additional configuration is necessary.
|
||||
|
||||
Its state can be inverted via `invertStateDisplay`.
|
||||
|
||||
|
||||
renderType checkboxLabeledToggle
|
||||
================================
|
||||
|
||||
A toggle switch where both states can be labelled (ON/OFF, Visible / Hidden or alike).
|
||||
|
||||
Its state can be inverted via `invertStateDisplay`
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'items' => [
|
||||
[
|
||||
0 => 'foo',
|
||||
1 => '',
|
||||
'labelChecked' => 'Enabled',
|
||||
'labelUnchecked' => 'Disabled',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
]
|
||||
|
||||
|
||||
renderType default
|
||||
=============================
|
||||
|
||||
A toggle that toggles between two icon identifiers.
|
||||
|
||||
By default the toggle icons are visually designed to mimic a checkbox.
|
||||
|
||||
Its state can be inverted via `invertStateDisplay`.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'items' => [
|
||||
[
|
||||
0 => 'foo',
|
||||
1 => '',
|
||||
'iconIdentifierChecked' => 'styleguide-icon-toggle-checked',
|
||||
'iconIdentifierUnchecked' => 'styleguide-icon-toggle-checked',
|
||||
'invertStateDisplay' => false
|
||||
]
|
||||
]
|
||||
|
||||
.. index:: Backend, PHP-API, TCA
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-83711:
|
||||
|
||||
=============================================================
|
||||
Feature: #83711 - FeatureFlag: unifiedPageTranslationHandling
|
||||
=============================================================
|
||||
|
||||
See :issue:`83711`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The feature switch `unifiedPageTranslationHandling` is active for all new installations, but not active for existing
|
||||
installations.
|
||||
|
||||
It does the following when active:
|
||||
|
||||
* All DB schema migrations decide to drop `pages_language_overlay`
|
||||
* TCA migration no longer throws a deprecation info (but still unsets `pages_language_overlay`)
|
||||
|
||||
Once the Update Wizard for migrating `pages_language_overlay` records is done, the feature is enabled.
|
||||
|
||||
.. index:: Backend, Frontend
|
||||
@@ -0,0 +1,72 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-83725:
|
||||
|
||||
=====================================================
|
||||
Feature: #83725 - Support for PSR-15 HTTP middlewares
|
||||
=====================================================
|
||||
|
||||
See :issue:`83725`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Support for PSR-15 style HTTP middlewares has been added for frontend and backend requests.
|
||||
|
||||
PSR-15 style middlewares are intended to be used to move common request and response processing away from
|
||||
the application layer into (possibly reusable) components.
|
||||
Middlewares are concentric layers surrounding other middlewares (so called inner middlewares) or request handlers;
|
||||
that means they can perform pre- and postprocessing of request and response objects (PSR-7). They allow to enrich or
|
||||
exchange PSR-7 objects in order to add functionality or to perform early returns (without invoking the core application).
|
||||
|
||||
Common middleware usecases are layers for authentication, authorization, security enforcement, or the conversion of
|
||||
exceptions (like TYPO3's `PageNotFoundException`) into HTTP response objects.
|
||||
|
||||
Adding PSR-15 to TYPO3 allows to restructure TYPO3's existing PHP classes into smaller chunks, while giving developers
|
||||
the possibility to add own middlewares at a specific position in the middleware chain (via TYPO3's dependency ordering).
|
||||
|
||||
Middlewares in TYPO3 are added into middleware stacks; not every middleware needs to be called for every HTTP request.
|
||||
Currently TYPO3 supports a generic "frontend" and a "backend" stack; they're run for any TYPO3 Frontend or TYPO3 Backend
|
||||
request respectively. These stacks are processed before the actual Request Handler (which implements the PSR-15
|
||||
RequestHandlerInterface) handles the application logic. The Request Handler produces a PSR-7 Response object which is
|
||||
propagated back through all middlewares of the stack.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
To add a middleware to the "frontend" or "backend" middleware stack, create the
|
||||
:file:`Configuration/RequestMiddlewares.php` in the respective extension:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
return [
|
||||
// stack name: currently 'frontend' or 'backend'
|
||||
'frontend' => [
|
||||
'middleware-identifier' => [
|
||||
'target' => \ACME\Ext\Middleware::class,
|
||||
'description' => '',
|
||||
'before' => [
|
||||
'another-middleware-identifier',
|
||||
],
|
||||
'after' => [
|
||||
'yet-another-middleware-identifier',
|
||||
],
|
||||
]
|
||||
]
|
||||
];
|
||||
|
||||
If extensions need to shut down or substitute existing middlewares with an own solution, they can
|
||||
disable an existing middleware by adding the following code in :file:`Configuration/RequestMiddlewares.php`: of their
|
||||
extension.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
return [
|
||||
'frontend' => [
|
||||
'middleware-identifier' => [
|
||||
'disabled' => true,
|
||||
],
|
||||
],
|
||||
];
|
||||
|
||||
.. index:: Backend, Frontend, PHP-API
|
||||
+72
@@ -0,0 +1,72 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-83736:
|
||||
|
||||
=================================================================================
|
||||
Feature: #83736 - Extended PSR-7 requests with TYPO3 normalized server parameters
|
||||
=================================================================================
|
||||
|
||||
See :issue:`83736`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The PSR-7 based `ServerRequest` objects created by TYPO3 now contain a TYPO3-specific attribute object for normalized
|
||||
server parameters that for instance resolves variables if the instance is behind a reverse proxy. This substitutes
|
||||
:php:`GeneralUtility::getIndpEnv()`.
|
||||
|
||||
The object is **for now** available from :php:`ServerRequestInterface $request` objects as attribute. The request object
|
||||
is given to controllers, example:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$normalizedParams = $request->getAttribute('normalizedParams');
|
||||
$requestPort = $normalizedParams->getRequestPort();
|
||||
|
||||
|
||||
The request object is also available as a global variable in :php:`$GLOBALS['TYPO3_REQUEST']`. This is a workaround for
|
||||
the core which has to access the server parameters at places where $request is not available. So, while this object is
|
||||
globally available during any HTTP request, it is considered bad practice to use it. The global object will vanish
|
||||
later if the core code has been refactored enough to not rely on it anymore.
|
||||
|
||||
For now, class :php:`NormalizedParams` is a one-to-one transition of :php:`GeneralUtility::getIndpEnv()`, the old
|
||||
arguments can be substituted with these calls:
|
||||
|
||||
- :php:`SCRIPT_NAME` is now :php:`->getScriptName()`
|
||||
- :php:`SCRIPT_FILENAME` is now :php:`->getScriptFilename()`
|
||||
- :php:`REQUEST_URI` is now :php:`->getRequestUri()`
|
||||
- :php:`TYPO3_REV_PROXY` is now :php:`->isBehindReverseProxy()`
|
||||
- :php:`REMOTE_ADDR` is now :php:`->getRemoteAddress()`
|
||||
- :php:`HTTP_HOST` is now :php:`->getHttpHost()`
|
||||
- :php:`TYPO3_DOCUMENT_ROOT` is now :php:`->getDocumentRoot()`
|
||||
- :php:`TYPO3_HOST_ONLY` is now :php:`->getRequestHostOnly()`
|
||||
- :php:`TYPO3_PORT` is now :php:`->getRequestPort()`
|
||||
- :php:`TYPO3_REQUEST_HOST` is now :php:`->getRequestHost()`
|
||||
- :php:`TYPO3_REQUEST_URL` is now :php:`->getRequestUrl()`
|
||||
- :php:`TYPO3_REQUEST_SCRIPT` is now :php:`->getRequestScript()`
|
||||
- :php:`TYPO3_REQUEST_DIR` is now :php:`->getRequestDir()`
|
||||
- :php:`TYPO3_SITE_URL` is now :php:`->getSiteUrl()`
|
||||
- :php:`TYPO3_SITE_PATH` is now :php:`->getSitePath()`
|
||||
- :php:`TYPO3_SITE_SCRIPT` is now :php:`->getSiteScript()`
|
||||
- :php:`TYPO3_SSL` is now :php:`->isHttps()`
|
||||
|
||||
Some further old :php:`getIndpEnv()` arguments directly access :php:`$request->serverParams()` and do not apply any
|
||||
normalization. These have been transferred to the new class, too, but will be deprecated later if the core does not use
|
||||
these anymore:
|
||||
|
||||
- :php:`PATH_INFO` is now :php:`->getPathInfo()`, but better use :php:`->getScriptName()` instead
|
||||
- :php:`HTTP_REFERER` is now :php:`->getHttpReferer()`, but better use :php:`$request->getServerParams()['HTTP_REFERER']` instead
|
||||
- :php:`HTTP_USER_AGENT` is now :php:`->getHttpUserAgent()`, but better use :php:`$request->getServerParams()['HTTP_USER_AGENT']` instead
|
||||
- :php:`HTTP_ACCEPT_ENCODING` is now :php:`->getHttpAcceptEncoding()`, but better use :php:`$request->getServerParams()['HTTP_ACCEPT_ENCODING']` instead
|
||||
- :php:`HTTP_ACCEPT_LANGUAGE` is now :php:`->getHttpAcceptLanguage()`, but better use :php:`$request->getServerParams()['HTTP_ACCEPT_LANGUAGE']` instead
|
||||
- :php:`REMOTE_HOST` is now :php:`->getRemoteHost()`, but better use :php:`$request->getServerParams()['REMOTE_HOST']` instead
|
||||
- :php:`QUERY_STRING` is now :php:`->getQueryString()`, but better use :php:`$request->getServerParams()['QUERY_STRING']` instead
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The PSR-7 request objects created by TYPO3 now contain an instance of :php:`NormalizedParams` which can
|
||||
be used instead of :php:`GeneralUtility::getIndpEnv()` to access normalized server params.
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,56 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-83740:
|
||||
|
||||
===========================================================
|
||||
Feature: #83740 - Cleanup of AbstractRecordList breaks hook
|
||||
===========================================================
|
||||
|
||||
See :issue:`83740`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A new hook in :php:`DatabaseRecordList` and :php:`PageLayoutView` allows modify the current database query.
|
||||
|
||||
Register the hook via
|
||||
|
||||
* php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList::class]['modifyQuery']`
|
||||
* php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Backend\View\PageLayoutView::class]['modifyQuery']`
|
||||
|
||||
in the extensions :file:`ext_localconf.php` file.
|
||||
|
||||
Example
|
||||
=======
|
||||
|
||||
An example implementation could look like this:
|
||||
|
||||
:file:`EXT:my_site/ext_localconf.php`
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList::class]['modifyQuery'][1313131313] =
|
||||
\MyVendor\MySite\Hooks\DatabaseRecordListHook::class . '->modifyQuery';
|
||||
|
||||
|
||||
:file:`EXT:my_site/Classes/Hooks/DatabaseRecordListHook.php`
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
namespace MyVendor\MySite\Hooks;
|
||||
|
||||
class DatabaseRecordListHook
|
||||
{
|
||||
public function modifyQuery(
|
||||
array $parameters,
|
||||
string $table,
|
||||
int $pageId,
|
||||
array $additionalConstraints,
|
||||
array $fieldList,
|
||||
\TYPO3\CMS\Core\Database\Query\QueryBuilder $queryBuilder
|
||||
) {
|
||||
// modify $queryBuilder
|
||||
}
|
||||
}
|
||||
|
||||
.. index:: Backend, Database, PHP-API
|
||||
@@ -0,0 +1,28 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-83748:
|
||||
|
||||
====================================================
|
||||
Feature: #83748 - Show value of fields in debug mode
|
||||
====================================================
|
||||
|
||||
See :issue:`83748`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
If the configuration :php:`$GLOBALS['TYPO3_CONF_VARS']['BE']['debug']` is enabled and the current user is an
|
||||
administrator, the value of select, radio and checkbox fields which are generated by the :php:`FormEngine` is appended
|
||||
to its label.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The correct name of a field is important to know for developers and integrators. Examples are setting up access
|
||||
permissions or configuration using TsConfig.
|
||||
|
||||
Instead of looking into the source code of the browser, it is now possible to display those name by enabling the debug
|
||||
mode for the backend.
|
||||
|
||||
.. index:: Backend
|
||||
@@ -0,0 +1,34 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-83906:
|
||||
|
||||
=========================================================
|
||||
Feature: #83906 - Disable single FormEngine data provider
|
||||
=========================================================
|
||||
|
||||
See :issue:`83906`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Single data providers used in the FormEngine data compilation step can be disabled.
|
||||
|
||||
As an example, if editing a full database record, the default TcaCheckboxItems could be shut down by setting
|
||||
:php:`disabled` in the :php:`tcaDatabaseRecord` group in an extensions :file:`ext_localconf.php` file:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['formDataGroup']['tcaDatabaseRecord']
|
||||
[\TYPO3\CMS\Backend\Form\FormDataProvider\TcaCheckboxItems::class]['disabled'] = true;
|
||||
|
||||
Extension authors can then add an own data provider which :php:`depends` on the disabled one and is :php:`before` of the
|
||||
next one to effectively substitute single providers with own solutions if needed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The disable feature allows extension authors to easily substitute existing data providers with own solutions and avoids
|
||||
nasty array- and dependency munging by extension authors.
|
||||
|
||||
.. index:: Backend, PHP-API
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-83942:
|
||||
|
||||
=================================================================
|
||||
Feature: #83942 - Provide ViewHelper to render icon for resources
|
||||
=================================================================
|
||||
|
||||
See :issue:`83942`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A new ViewHelper to render the icon markup based on a FAL resource has been introduced.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<core:iconForResource resource="{file}" />
|
||||
|
||||
.. index:: Backend, Fluid, ext:core
|
||||
@@ -0,0 +1,17 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-83965:
|
||||
|
||||
=========================================================
|
||||
Feature: #83965 - Make position of sys notes configurable
|
||||
=========================================================
|
||||
|
||||
See :issue:`83965`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
sys_note records can now be rendered either in the top or bottom of the page and list module by defining the position in
|
||||
the record itself.
|
||||
|
||||
.. index:: Backend, ext:sys_note
|
||||
@@ -0,0 +1,37 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-84045:
|
||||
|
||||
===========================================
|
||||
Feature: #84045 - new AdminPanel module API
|
||||
===========================================
|
||||
|
||||
See :issue:`84045`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Extending the Admin Panel was only partially possible in earlier TYPO3 versions by using a hook that provided the
|
||||
possibility to add pure content (no new modules) as plain HTML.
|
||||
|
||||
A new API has been introduced, providing more flexible options to add custom modules to the admin panel or replace and
|
||||
deactivate existing ones.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Custom admin panel modules can now be registered via `$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']`.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']['yourmodulename'] = [
|
||||
'module' => \Vendor\Package\AdminPanel\YourModule::class,
|
||||
'after' => ['preview']
|
||||
]
|
||||
|
||||
To implement a custom module your module class has to implement the `\TYPO3\CMS\Adminpanel\Modules\AdminPanelModuleInterface`.
|
||||
|
||||
Be aware that the `\TYPO3\CMS\Adminpanel\Modules\AdminPanelModuleInterface` is not final yet and may change until v9 LTS.
|
||||
|
||||
.. index:: Frontend, PHP-API, ext:frontend
|
||||
@@ -0,0 +1,35 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-84120:
|
||||
|
||||
========================================================
|
||||
Feature: #84120 - Absolute URLs for typolink ViewHelpers
|
||||
========================================================
|
||||
|
||||
See :issue:`84120`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The new parameter `absolute` has been added to the Fluid ViewHelpers `<f:uri.typolink>` and `<f:link.typolink>`,
|
||||
allowing to generate absolute links, like other ViewHelpers used for linking handle it already.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
It is now possible to add the `absolute` parameter to the ViewHelpers above.
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<f:link.typolink parameter="23" absolute="true">Link To My Page</f:link.typolink>
|
||||
<f:uri.typolink parameter="23" absolute="true" />
|
||||
|
||||
generates
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<a href="https://www.mydomain.com/index.php?id=23">Link to My Page</a>
|
||||
https://www.mydomain.com/index.php?id=23
|
||||
|
||||
.. index:: Fluid, ext:fluid
|
||||
@@ -0,0 +1,48 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-84153:
|
||||
|
||||
=======================================================
|
||||
Feature: #84153 - Introduce a generic Environment class
|
||||
=======================================================
|
||||
|
||||
See :issue:`84153`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A new base API class :php:`TYPO3\CMS\Core\Core\Environment` has been added. This class contains application-wide
|
||||
information related to paths and PHP internals, which were previously exposed via PHP constants.
|
||||
|
||||
This Environment class comes with a new possibility, to have a `config` and `var` folder outside of the document root
|
||||
(known as `PATH_site`). When the environment variable :php:`TYPO3_PATH_APP` is set, which defines the project root
|
||||
folder, the new `config` and `var` folders outside of the document root are used for installation-wide configuration and
|
||||
volatile files.
|
||||
|
||||
The following static API methods are exposed within the Environment class:
|
||||
|
||||
* `Environment::isCli()` - defines whether TYPO3 runs on a CLI context or HTTP context
|
||||
* `Environment::getApplicationContext()` - returns the ApplicationContext object that encapsulates `TYPO3_CONTEXT`
|
||||
* `Environment::isComposerMode()` - defines whether TYPO3 was installed via composer
|
||||
* `Environment::getProjectPath()` - returns the absolute path to the root-level folder without the trailing slash
|
||||
* `Environment::getPublicPath()` - returns the absolute path to the publicly accessible folder (previously known as PATH_site) without the trailing slash
|
||||
* `Environment::getVarPath()` - returns the absolute path to the folder where non-public semi-persistent files can be stored. For regular projects, this is known as PATH_site/typo3temp/var
|
||||
* `Environment::getConfigPath()` - returns the absolute path to the folder where (writeable) configuration is stored. For regular projects, this is known as PATH_site/typo3conf
|
||||
* `Environment::getCurrentScript()` - the absolute path and filename to the currently executed PHP script
|
||||
* `Environment::isWindows()` - whether TYPO3 runs on a windows server
|
||||
* `Environment::isUnix()` - whether TYPO3 runs on a unix server
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
You should not rely on the PHP constants anymore, but rather use the Environment class to resolve paths:
|
||||
|
||||
* :php:`PATH_site`
|
||||
* :php:`PATH_typo3conf`
|
||||
* :php:`PATH_site . 'typo3temp/var/'`
|
||||
* :php:`TYPO3_OS`
|
||||
* :php:`TYPO3_REQUESTTYPE_CLI`
|
||||
* :php:`PATH_thisScript`
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,25 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-84159:
|
||||
|
||||
======================================================
|
||||
Feature: #84159 - Extract admin panel to own extension
|
||||
======================================================
|
||||
|
||||
See :issue:`84159`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The admin panel has been extracted to a standalone extension. All admin panel specific code will be moved to the
|
||||
extension removing cross-dependencies and enabling better scoping.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The admin panel can be completely uninstalled by deactivating the extension. To use the admin panel functionality the
|
||||
extension has to be activated. Classes have been moved to the new extension and a class alias map for migration of
|
||||
legacy code has been provided.
|
||||
|
||||
.. index:: Frontend, PHP-API, ext:frontend
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-84216:
|
||||
|
||||
===========================================================
|
||||
Feature: #84216 - New attribute "debug" in RenderViewHelper
|
||||
===========================================================
|
||||
|
||||
See :issue:`84216`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The new attribute `debug` has been added to the RenderViewHelper which is `true` by default.
|
||||
Setting this attribute to `false` disables the debug information rendered in the frontend if the fluid debug mode is
|
||||
enabled in the admin panel.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
It is now possible to disable the debug output in some specials cases like in the admin panel.
|
||||
|
||||
.. index:: Fluid, Frontend, ext:fluid
|
||||
@@ -0,0 +1,32 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-84466:
|
||||
|
||||
===========================================================
|
||||
Feature: #84466 - Request aware interfaces added to reports
|
||||
===========================================================
|
||||
|
||||
See :issue:`84466`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Two new interfaces where added to mark reports and status providers as request aware:
|
||||
|
||||
* :php:`TYPO3\CMS\Reports\RequestAwareReportInterface` (extends :php:`TYPO3\CMS\Reports\ReportInterface`)
|
||||
* :php:`TYPO3\CMS\Reports\RequestAwareStatusProviderInterface` (extends :php:`TYPO3\CMS\Reports\StatusProviderInterface`)
|
||||
|
||||
Both interfaces allow reports or status providers to receive an optional PSR-7 server request argument for their
|
||||
respective interface methods:
|
||||
|
||||
* :php:`getReport()`
|
||||
* :php:`getStatus()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Reports and status providers can now cleanly access information from the current server request.
|
||||
They only need to implement one of the interfaces to get the current server request injected.
|
||||
|
||||
.. index:: Backend, PHP-API, ext:reports
|
||||
@@ -0,0 +1,25 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-84517:
|
||||
|
||||
==============================================================
|
||||
Feature: #84517 - Recordlist - Make csv delimiter configurable
|
||||
==============================================================
|
||||
|
||||
See :issue:`84517`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Two new PageTSconfig options were added for the DatabaseRecordList:
|
||||
|
||||
- `mod.web_list.csvDelimiter = ,` - defines the delimiter between csv values
|
||||
- `mod.web_list.csvQuote = "` - defines the quote-character to wrap csv values
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
It is now possible to control the delimiter and quote-character of the recordlist csv export.
|
||||
|
||||
.. index:: Backend
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-84545:
|
||||
|
||||
==============================================================================
|
||||
Feature: #84545 - Allow temporary files to be stored outside the document root
|
||||
==============================================================================
|
||||
|
||||
See :issue:`84545`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The environment variable called :php:`TYPO3_PATH_APP`, which was previously introduced with the Environment API, is now used
|
||||
to allow to store data outside of the document root.
|
||||
|
||||
All regular composer-based installations now benefit from this functionality directly, as data which was previously
|
||||
stored and hard-coded within :file:`typo3temp/var/` is now stored within the **project root** folder :file:`var/`.
|
||||
|
||||
For non-composer installations, it is possible to set the environment variable to a folder usually one level
|
||||
upwards than the regular **web root**. This increases security for any TYPO3 installation as files are not
|
||||
publicly accessible (for example via web browser) anymore.
|
||||
|
||||
A typical example:
|
||||
|
||||
- :php:`TYPO3_PATH_APP` is set to :file:`/var/www/my-project`.
|
||||
- The web folder is then set to :php:`TYPO3_PATH_ROOT` :file:`/var/www/my-project/public`.
|
||||
|
||||
Non-public files are then put to
|
||||
|
||||
- :file:`/var/www/my-project/var/session` (like Maintenance Tool Session files)
|
||||
- :file:`/var/www/my-project/var/cache` (Caching Framework data)
|
||||
- :file:`/var/www/my-project/var/lock` (Files related to locking)
|
||||
- :file:`/var/www/my-project/var/log` (Files related to logging)
|
||||
- :file:`/var/www/my-project/var/extensionmanager` (Files related to extension manager data)
|
||||
- :file:`/var/www/my-project/var/transient` (Files related to import/export, core updater, FAL)
|
||||
|
||||
If the option is not set, the :file:`typo3temp/var/` folder is still used, but with some minor differences
|
||||
regarding the naming scheme of the folders.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
For installations having the environment variable set, the folder is now not within :file:`typo3temp/var/` anymore
|
||||
but outside of the document root in a folder called :file:`var/`.
|
||||
|
||||
For installations without this setting in use, there are minor differences in the folder structure:
|
||||
|
||||
- :file:`typo3temp/var/cache` is now used instead of :file:`typo3temp/var/Cache`
|
||||
- :file:`typo3temp/var/log` is now used instead of :file:`typo3temp/var/logs`
|
||||
- :file:`typo3temp/var/lock` is now used instead of :file:`typo3temp/var/locks`
|
||||
- :file:`typo3temp/var/session` is now used instead of :file:`typo3temp/var/InstallToolSessions`
|
||||
- :file:`typo3temp/var/extensionmanager` is now used instead of :file:`typo3temp/var/ExtensionManager`
|
||||
|
||||
Although it is a most common understanding in the TYPO3 world that :file:`typo3temp/` can be removed at any time,
|
||||
it is considered bad practice to remove the whole folder. Only folders relevant for the current development
|
||||
changes should selectively be removed.
|
||||
|
||||
.. index:: CLI, PHP-API
|
||||
@@ -0,0 +1,28 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-84549:
|
||||
|
||||
========================================================
|
||||
Feature: #84549 - Usage of new REST API on get.typo3.org
|
||||
========================================================
|
||||
|
||||
See :issue:`84549`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Instead of providing only a JSON file, the get.typo3.org website was refactored to provide a REST web API for
|
||||
information on TYPO3 releases.
|
||||
|
||||
The core uses that information to check for available upgrades and download new versions.
|
||||
With this change the information will be fetched via the new API.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
* :php:`CoreVersionService` makes use of the REST API directly - no complete version listing
|
||||
is stored in the registry anymore as the new API provides direct access to necessary information
|
||||
* The reports module contains a message hinting at the availability of updates.
|
||||
|
||||
.. index:: Backend, PHP-API, ext:install
|
||||
@@ -0,0 +1,208 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-84581:
|
||||
|
||||
=========================================
|
||||
Feature: #84581 - Introduce Site Handling
|
||||
=========================================
|
||||
|
||||
See :issue:`84581`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Site Handling has been added to TYPO3.
|
||||
|
||||
Its goal is to make managing multiple sites easier to understand and faster to do. Sites bring a variety of new
|
||||
concepts to TYPO3 which we will explain below.
|
||||
|
||||
Take your time and read through the entire document since some concepts rely on each other.
|
||||
|
||||
|
||||
typo3conf/sites folder
|
||||
----------------------
|
||||
|
||||
New sites will live in the folder `typo3conf/sites/`. In the first iteration this folder will contain a file called
|
||||
`config.yaml` which holds all configuration for a given site.
|
||||
|
||||
Note that if you are using a composer based installation, then the file location is `<project-root>/config/sites/<identifier>/config.yaml`
|
||||
|
||||
In the future this folder can (and should) be used for more files like Fluid templates, and Backend layouts.
|
||||
|
||||
|
||||
config.yaml
|
||||
-----------
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
# the rootPage Id (see below)
|
||||
rootPageId: 12
|
||||
# my base domain to run this site on. It either accepts a fully qualified URL or "/" to react to any domain name
|
||||
base: 'https://www.example.com/'
|
||||
# The language array
|
||||
languages:
|
||||
-
|
||||
# the TYPO3 sys_language_uid as you know it since... ever
|
||||
languageId: '0'
|
||||
# The internal name for this language. Unused for now, but in the future this will affect display in the backend
|
||||
title: English
|
||||
# optional navigation title which is used in HMENU.special = language
|
||||
navigationTitle: ''
|
||||
# Language base. Accepts either a fully qualified URL or a path segment like "/en/".
|
||||
base: /
|
||||
# sets the locale during frontend rendering
|
||||
locale: en_US.UTF-8
|
||||
# two-letter code for the language according to ISO-639 nomenclature (see https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes)
|
||||
iso-639-1: en
|
||||
# FE href language
|
||||
hreflang: en-US
|
||||
# FE text direction
|
||||
direction: ltr
|
||||
# Language Identifier to use in localLang XLIFF files
|
||||
typo3Language: default
|
||||
# Flag Identifier
|
||||
flag: gb
|
||||
-
|
||||
languageId: '1'
|
||||
title: 'danish'
|
||||
navigationTitle: Dansk
|
||||
base: /da/
|
||||
locale: da_DK.UTF-8
|
||||
iso-639-1: da
|
||||
hreflang: da-DK
|
||||
direction: ltr
|
||||
typo3Language: default
|
||||
flag: dk
|
||||
fallbackType: strict
|
||||
-
|
||||
languageId: '2'
|
||||
title: Deutsch
|
||||
navigationTitle: ''
|
||||
base: 'https://www.beispiel.de'
|
||||
locale: de_DE.UTF-8
|
||||
iso-639-1: de
|
||||
hreflang: de-DE
|
||||
direction: ltr
|
||||
typo3Language: de
|
||||
flag: de
|
||||
# Enable content fallback
|
||||
fallbackType: fallback
|
||||
# Content fallback mode (order is important)
|
||||
fallbacks: '2,1,0'
|
||||
# Error Handling Array (order is important here)
|
||||
# Error Handlers will check the given status code, but the special value "0" will react to any error not configured
|
||||
# elsewhere in this configuration.
|
||||
errorHandling:
|
||||
-
|
||||
# HTTP Status Code to react to
|
||||
errorCode: '404'
|
||||
# The used ErrorHandler. In this case, it's "Display content from Page". See examples below for available options.
|
||||
errorHandler: Page
|
||||
# href to the content source to display (accepts both fully qualified URLs as well as TYPO3 internal link syntax
|
||||
errorContentSource: 't3://page?uid=8'
|
||||
-
|
||||
errorCode: '403'
|
||||
errorHandler: Fluid
|
||||
# Path to the Template File to show
|
||||
errorFluidTemplate: 'EXT:my_extension/Resources/Private/Templates/ErrorPages/403.html'
|
||||
# Optional Templates root path
|
||||
errorFluidTemplatesRootPath: 'EXT:my_extension/Resources/Private/Templates/ErrorPages'
|
||||
# Optional Layouts root path
|
||||
errorFluidLayoutsRootPath: 'EXT:my_extension/Resources/Private/Layouts/ErrorPages'
|
||||
# Optional Partials root path
|
||||
errorFluidPartialsRootPath: 'EXT:my_extension/Resources/Private/Partials/ErrorPages'
|
||||
-
|
||||
errorCode: '0'
|
||||
errorHandler: PHP
|
||||
# Fully qualified class name to a class that implements PageErrorHandlerInterface
|
||||
errorPhpClassFQCN: Vendor\ExtensionName\ErrorHandlers\GenericErrorhandler
|
||||
|
||||
|
||||
All settings can also be edited via the backend module `Site Management > Configuration`.
|
||||
|
||||
Keep in mind that due to the nature of the module, comments or additional values in your :file:`config.yaml` file
|
||||
**will** get deleted on saving.
|
||||
|
||||
|
||||
site identifier
|
||||
---------------
|
||||
|
||||
The site identifier is the name of the folder within `typo3conf/sites/` that will hold your configuration file(s). When
|
||||
choosing an identifier make sure to stick to ASCII but you may also use `-`, `_` and `.` for convenience.
|
||||
|
||||
|
||||
rootPageId
|
||||
----------
|
||||
|
||||
Root pages are identified by one of these two properties:
|
||||
|
||||
* they are direct descendants of PID 0 (the root root page of TYPO3)
|
||||
* they have the "Use as Root Page" property in `pages` set to true.
|
||||
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
The new backend module relies on FormEngine to render the edit interface. Since the form data is not stored in
|
||||
database records but in :file:`.yml` files, a couple of details have been extended of the default FormEngine code.
|
||||
|
||||
The render configuration is stored in :file:`typo3/sysext/backend/Configuration/SiteConfiguration/` in a format
|
||||
syntactically identical to TCA. However, this is **not** loaded into :php:`$GLOBALS['TCA']` scope, and only a small
|
||||
subset of TCA features is supported.
|
||||
|
||||
**Extending site configuration is experimental** and may change any time.
|
||||
|
||||
In practice the configuration can be extended, but only with very simple fields like the basic config type :php:`input`,
|
||||
and even for this one not all features are possible, for example the :php:`eval` options are limited. The code throws
|
||||
exceptions or just ignores settings it does not support. While some of the limits may be relaxed a bit over time, many
|
||||
will be kept. The goal is to allow developers to extend the site configuration with a couple of simple things like
|
||||
an input field for a Google API key. However it is **not possible to extend with complex TCA** like inline relations,
|
||||
database driven select fields, Flex Form handling and similar.
|
||||
|
||||
The example below shows the experimental feature adding a field to site in an extensions file
|
||||
:file:`Configuration/SiteConfiguration/Overrides/sites.php`. Note the helper methods of class
|
||||
:php:`TYPO3\CMS\core\Utility\ExtensionManagementUtility` can not be used.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
<?php
|
||||
// Experimental example to add a new field to the site configuration
|
||||
|
||||
// Configure a new simple required input field to site
|
||||
$GLOBALS['SiteConfiguration']['site']['columns']['myNewField'] = [
|
||||
'label' => 'A new custom field',
|
||||
'config' => [
|
||||
'type' => 'input',
|
||||
'eval' => 'required',
|
||||
],
|
||||
];
|
||||
// And add it to showitem
|
||||
$GLOBALS['SiteConfiguration']['site']['types']['0']['showitem'] = str_replace(
|
||||
'base,',
|
||||
'base, myNewField, ',
|
||||
$GLOBALS['SiteConfiguration']['site']['types']['0']['showitem']
|
||||
);
|
||||
|
||||
The field will be shown in the edit form of the configuration module and it's value stored in the .yaml
|
||||
file. Using the site object :php:`TYPO3\CMS\core\Site\Entity\Site`, the value can be fetched using
|
||||
:php:`->getConfiguration()['myNewField']`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The following TypoScript settings will be set based on `config.yaml` rather than needing to have them in your TypoScript
|
||||
template:
|
||||
|
||||
* config.language
|
||||
* config.htmlTag_dir
|
||||
* config.htmlTag_langKey
|
||||
* config.sys_language_uid
|
||||
* config.sys_language_mode
|
||||
* config.sys_language_isocode
|
||||
* config.sys_language_isocode_default
|
||||
|
||||
|
||||
Links to pages within a site can now be generated via **any** access of TYPO3, so in both BE and FE as well as CLI mode.
|
||||
|
||||
.. index:: Backend, Frontend, TypoScript
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-83724:
|
||||
|
||||
======================================================================
|
||||
Important: #83724 - API and behavior change in request handler classes
|
||||
======================================================================
|
||||
|
||||
See :issue:`83724`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
In preparation for a better PSR-7 and a new PSR-15 integration the internal request handler classes have been changed:
|
||||
|
||||
* All methods gained strict argument type and return type declarations.
|
||||
* Instead of calling :php:`HttpUtility::redirect()` a :php:`RedirectResponse` is returned.
|
||||
* Instead of returning :php:`null` a :php:`NullResponse` is returned.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extending one of the core request handlers without adding type declarations (to overloaded methods),
|
||||
will trigger a PHP fatal error.
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All 3rd party extensions extending one of the core request handlers.
|
||||
|
||||
.. index:: PHP-API, NotScanned
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-83869:
|
||||
|
||||
===================================================================
|
||||
Important: #83869 - Removed request type specific code in Bootstrap
|
||||
===================================================================
|
||||
|
||||
See :issue:`83869`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
All methods and properties related to specific HTTP or CLI handling in
|
||||
:php:`\TYPO3\CMS\Core\Core\Bootstrap` have been removed.
|
||||
These methods and properties were either protected or marked `@internal`.
|
||||
|
||||
Methods:
|
||||
|
||||
* :php:`redirectToInstallTool()`
|
||||
* :php:`registerRequestHandlerImplementation()`
|
||||
* :php:`resolveRequestHandler()`
|
||||
* :php:`handleRequest()`
|
||||
* :php:`sendResponse()`
|
||||
* :php:`checkLockedBackendAndRedirectOrDie()`
|
||||
* :php:`checkBackendIpOrDie()`
|
||||
* :php:`checkSslBackendAndRedirectIfNeeded()`
|
||||
* :php:`initializeOutputCompression()`
|
||||
* :php:`sendHttpHeaders()`
|
||||
* :php:`shutdown()`
|
||||
* :php:`initializeBackendTemplate()`
|
||||
* :php:`endOutputBufferingAndCleanPreviousOutput()`
|
||||
* :php:`getApplicationContext()`
|
||||
* :php:`getRequestId()`
|
||||
|
||||
Properties:
|
||||
|
||||
* :php:`protected $installToolPath;`
|
||||
* :php:`protected $availableRequestHandlers`
|
||||
* :php:`protected $response;`
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations that use custom extensions that use request method specific methods of
|
||||
:php:`\TYPO3\CMS\Core\Core\Bootstrap`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Custom request handlers that are registered using the internal method :php:`registerRequestHandlerImplementation()`
|
||||
should be converted to PSR-15 middlewares. TYPO3 9.2 gained an API :file:`Configuration/Configuration/RequestMiddlewares.php`
|
||||
for registering PSR-15 middleware HTTP handlers. See :php:`\TYPO3\CMS\Frontend\Middleware\EidHandler` for an example.
|
||||
|
||||
.. index:: Backend, CLI, Frontend, PHP-API, FullyScanned
|
||||
@@ -0,0 +1,24 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-84420:
|
||||
|
||||
==========================================================
|
||||
Important: #84420 - Properly escape reserved chars in YAML
|
||||
==========================================================
|
||||
|
||||
See :issue:`84420`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
If dealing with YAML files in the TYPO3 system - for instance to configure forms
|
||||
using the `form` extension or if configuring `ckeditor` - integrators should properly
|
||||
quote strings containing special characters like `@` or `%` to be upwards compatible
|
||||
with the version 4 symfony YAML parser.
|
||||
|
||||
More information can be found in the Symfony_ docs.
|
||||
|
||||
.. _Symfony: http://symfony.com/doc/current/components/yaml/yaml_format.html#strings
|
||||
|
||||
|
||||
.. index:: Backend, Frontend, ext:form, ext:rte_ckeditor
|
||||
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-84658:
|
||||
|
||||
===========================================================
|
||||
Important: #84658 - Keep sorting value for deleted records
|
||||
===========================================================
|
||||
|
||||
See :issue:`84658`
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Keep the value for the defined sorting field when a record is deleted.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Functional tests that are based on sorting value to be 1000000000 for deleted records will fail.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All third party extensions with functional tests using the sorting field for deleted records.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Check your functional tests fixtures and set the expected sorting value for deleted records equal to
|
||||
the starting value.
|
||||
|
||||
.. index:: PHP-API, Database
|
||||
@@ -0,0 +1,52 @@
|
||||
:template: changelogOverview.html
|
||||
.. include:: /Includes.rst.txt
|
||||
.. _changelog-9-2:
|
||||
|
||||
9.2 Changes
|
||||
===========
|
||||
|
||||
**Table of contents**
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
:depth: 1
|
||||
|
||||
Breaking Changes
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Breaking-*
|
||||
|
||||
Features
|
||||
^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Feature-*
|
||||
|
||||
Deprecation
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Deprecation-*
|
||||
|
||||
Important
|
||||
^^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Important-*
|
||||
Reference in New Issue
Block a user