TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:09 +02:00
commit af8cc155b5
6818 changed files with 642608 additions and 0 deletions
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-19737:
==================================================
Breaking: #19737 - Prefer root templates for pages
==================================================
See :issue:`19737`
Description
===========
The Core now gives templates having set the root-flag precedence over normal extension templates.
This ignores the fact that normally the first template of the current page is chosen, following their sorting.
This improves user experience as the user expects the root template to be the one with highest priority.
Impact
======
Pages where multiple templates are present not having a root-template as the topmost template
in the list will encounter different results when templates are evaluated.
Affected installations
======================
Installations with pages where multiple templates are present not having a/the root-template as the topmost template.
Migration
=========
Ensure the templates have correct flags set.
.. index:: TypoScript, Backend, Frontend
@@ -0,0 +1,55 @@
.. include:: /Includes.rst.txt
.. _breaking-33805:
====================================
Breaking: #33805 - ClickMenu Rewrite
====================================
See :issue:`33805`
Description
===========
The ClickMenu has seen some major changes under the hood. This implies some refactoring within JavaScript where existing
functionality is replaced by an AMD Module based on jQuery. The following JS methods are now replaced by respective
methods:
- showClickmenu_raw()
- Clickmenu.show()
- Clickmenu.populateData()
The new functionality is available via a global JavaScript object called TYPO3.ClickMenu which has equal
functions.
Additionally the ClickMenu is now used via AJAX completely, all non-AJAX calls are not supported anymore.
Impact
======
All third-party extensions using alt_clickmenu.php directly in the backend, or using the above JavaScript calls directly.
Affected installations
======================
Any installation using extensions having Backend modules using JavaScript functions for the ClickMenu inline
and installations using extensions using alt_clickmenu.php directly.
Migration
=========
Any use of "Clickmenu.show()" etc should be avoided and channelled through the according DocumentTemplate methods.
- BackendUtility::wrapClickMenuOnIcon()
- DocumentTemplate->getContextMenuCode()
If a backend module without a DocumentTemplate (with e.g. Extbase/Fluid) is used, this is done with a separate class
and related data attribute:
.. code-block:: html
<a href="#" class="t3-js-clickmenutrigger" data-table="be_users" data-uid="{record.uid}" data-listframe="1">
.. index:: PHP-API, Backend
@@ -0,0 +1,48 @@
.. include:: /Includes.rst.txt
.. _breaking-42543:
=============================================
Breaking: #42543 - Default TypoScript Removed
=============================================
See :issue:`42543`
Description
===========
The default TypoScript :code:`styles.insertContent` was removed without substitution.
Impact
======
Frontend output may change.
Affected installations
======================
A TYPO3 instance is affected if its TypoScript operates with :code:`styles.insertContent`. This is pretty unlikely since the styles segment was hidden in the TypoScript Object Browser.
Migration
=========
Either remove usage of :code:`styles.insertContent` or add a snippet at an early point in TypoScript for backwards compatibility.
.. code-block:: typoscript
styles.insertContent = CONTENT
styles.insertContent {
table = tt_content
select {
orderBy = sorting
where = colPos=0
languageField = sys_language_uid
}
}
.. index:: TypoScript, Frontend
@@ -0,0 +1,60 @@
.. include:: /Includes.rst.txt
.. _breaking-53542:
=============================================================
Breaking: #53542 - Removal of deprecated code in sysext fluid
=============================================================
See :issue:`53542`
Description
===========
ContainerViewHelper
-------------------
The following options have been removed from the ViewHelper:
* `enableJumpToUrl`
* `addCssFile`, use `includeCssFiles` instead
* `addJsFile`, use `includeJsFiles` instead
AbstractBackendViewHelper
-------------------------
The usage of `$GLOBALS['SOBE']` is removed for retrieving the DocumentTemplate instance.
Use `->getDocInstance()` instead.
TemplateView
------------
The following methods have been removed:
* `getTemplateRootPath()` is removed, use `getTemplateRootPaths()` instead
* `getPartialRootPath()` is removed, use `setPartialRootPaths()` instead
* `getLayoutRootPath()` is removed, use `getLayoutRootPaths()` instead
Impact
======
A call to any of the aforementioned methods by third party code will result in a fatal PHP error.
Affected installations
======================
Any installation which contains third party code still using these deprecated methods.
Migration
=========
Replace the calls with the suggestions outlined above.
.. index:: PHP-API, Fluid
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-53658:
===================================================
Breaking: #53658 - option alternateBgColors removed
===================================================
See :issue:`53658`
Description
===========
The PageTSConfig option :code:`mod.web_list.alternateBgColors` is removed without substitution.
Impact
======
Extensions that extend the DatabaseRecordList and are using the property :code:`alternateBgColors`
The option in the TableListViewHelper has been deprecated and will be removed in TYPO3 CMS 8.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed property.
Migration
=========
Remove the call to the removed property.
.. index:: TSConfig, Backend
@@ -0,0 +1,52 @@
.. include:: /Includes.rst.txt
.. _breaking-54409:
==================================================================
Breaking: #54409 - RTE "acronym" button was renamed "abbreviation"
==================================================================
See :issue:`54409`
Description
===========
The "acronym" tag being deprecated, the RTE "acronym" button was renamed "abbreviation".
Accordingly, the RTE Acronym plugin was renamed Abbreviation.
Impact
======
The "abbreviation" button may not appear in the RTE toolbar, if configured as "acronym" in Page TSconfig, TCA special
configuration options and/or User TSconfig. Possible undefined PHP class errors.
Possible Javascript or file not found errors.
Affected installations
======================
An installation is affected if the "acronym" button was configured in Page TSconfig and/or User TSconfig.
An installation is affected if a 3rd party extension refers to the "acronym" button in TCA special configuration options.
An installation is affected if a 3rd party extension refers to class TYPO3\CMS\Rtehtmlarea\Extension\Acronym
An installation is affected if a 3rd party extension loads the JavaScript file of the Acronym plugin: EXT:rtehtmlarea/Resources/Public/Javascript/Plugins/Acronym.js
Migration
=========
There is no immediate impact on the RTE configuration in Page TSconfig and TCA special configuration options until
the automatic conversion of existing references to "acronym" is removed in TYPO3 CMS 8.0.
Intallations may run the upgrade wizard of the Install tool to migrate the contents of Page TSconfig, replacing "acronym" by "abbreviation".
Note that this string replacement will apply to all contents of PageTSconfig.
The migration of PageTSconfig may also be done manually.
User TSconfig must be modified to refer to "abbreviation" instead of "acronym".
Any affected 3rd party extension must be modified to refer to the "abbreviation" button rather than "acronym" in TCA special configuration options.
Any affected 3rd party extension must be modified to refer to class TYPO3\CMS\Rtehtmlarea\Extension\Abbreviation rather than TYPO3\CMS\Rtehtmlarea\Extension\Acronym
Any affected 3rd party extension must be modified to load EXT:rtehtmlarea/Resources/Public/Javascript/Plugins/Abbreviation.js rather than EXT:rtehtmlarea/Resources/Public/Javascript/Plugins/Acronym.js
.. index:: TSConfig, RTE, PHP-API, Backend
@@ -0,0 +1,35 @@
.. include:: /Includes.rst.txt
.. _breaking-57382:
===============================================
Breaking: #57382 - Remove old flash message API
===============================================
See :issue:`57382`
Description
===========
The old flash message API is removed.
Impact
======
Extensions relying on the old (static) flash message queue API will not work anymore.
Extbase removes the protected old flashMessageContainer.
Affected installations
======================
Any installation that uses an extension relying on the old API.
Migration
=========
Change the API calls to not be of static kind anymore.
Extbase extensions have to use `getFlashMessageQueue()` of the controllerContext
.. index:: PHP-API
@@ -0,0 +1,42 @@
.. include:: /Includes.rst.txt
.. _breaking-57396:
=================================================================
Breaking: #57396 - Deprecated Extbase Property Mapper was removed
=================================================================
See :issue:`57396`
Description
===========
A new Property Mapper that mapped request arguments to controller action arguments
was introduced in Extbase 1.4 and the old one was deprecated at the same time.
Along with the mapping, the validation API has also been changed.
The rewritten property mapper is turned on by default since TYPO3 6.2
Now the old mapping and validation API is completely removed.
Impact
======
Extbase extensions that relied on the internal behaviour of the deprecated property mapper
or make use of the old validation API will stop working or may not work as expected any more.
Affected installations
======================
Extbase extensions that turned off the introduced feature switch with the TypoScript setting
:code:`features.rewrittenPropertyMapper = 0` because they relied on internal behavior of the old property mapper
will stop working.
Migration
=========
Manual migration of extension code might be required, especially when own validators using the old
validation API were used.
.. index:: TypoScript, PHP-API, ext:extbase
@@ -0,0 +1,67 @@
.. include:: /Includes.rst.txt
.. _breaking-59659:
===============================================================
Breaking: #59659 - Removal of deprecated code in sysext backend
===============================================================
See :issue:`59659`
Description
===========
Flexforms
---------
Flexform xml that still contains the old "<tx_templavoila><title>" code has to be adapted.
The "<tx_templavoila>" elements needs to be removed.
Wizard registration
-------------------
Wizard registration in TCA must not contain the "script=some/path/script.php" definition anymore.
The new API for registering wizards is to set "module[name]=module_name".
Removed PHP methods
-------------------
* `AbstractRecordList::writeBottom()` is removed without replacement. The functionality is not needed anymore.
* `SpriteGenerator::setOmmitSpriteNameInIconName()` is removed in favor of `setOmitSpriteNameInIconName()`
* `DocumentTemplate::isCMlayers()` is removed without replacement. The functionality is obsolete.
* `DocumentTemplate::getFileheader()` is removed. Use `getResourceHeader()` instead.
* `BackendUtility::displayWarningMessages()` is removed without replacement. The functionality was moved to ext:aboutmodules.
* `IconUtility::getIconImage()` is removed without replacement. Use sprite icon API instead.
* `PageLayoutView::getSelectedBackendLayoutUid()` is removed. Use `BackendLayoutView::getSelectedCombinedIdentifier()` instead.
* `ClickMenu::menuItemsForClickMenu()` is removed without replacement. The functionality is obsolete.
Removed JS functions
--------------------
* `showClickmenu_noajax()` is removed. Use `Clickmenu.ajax = false; showClickmenu_raw();` instead.
* `setLayerObj()` is replaced with `Clickmenu.populateData()`.
* `hideEmpty()` is replaced with `Clickmenu.hideAll()`.
* `hideSpecific()` is replaced with `Clickmenu.hide()`. E.g. `Clickmenu.hide('contentMenu1');`
* `showHideSelectorBoxes()` is replaced with `toggleSelectorBoxes()`.
Impact
======
A call to any of the aforementioned methods by third party code will result in
a fatal PHP error.
Affected installations
======================
Any installation which contains third party code still using these deprecated methods.
Migration
=========
Replace the calls with the suggestions outlined above.
.. index:: PHP-API, Backend
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-59966:
=================================================================
Breaking: #59966 - Extension Configuration cache-flushing changed
=================================================================
See :issue:`59966`
Description
===========
On saving the configuration of an extension, the system cache group has been flushed.
This is inefficient as this includes also the classes cache, but most changes will
never need this cache to be cleared.
We optimize this for the common case and stop flushing caches after configuration changes completely.
Impact
======
Extensions which relied on cache-clearing after configuration changes may require a manual cache flush.
Affected installations
======================
Any installation that uses extensions relying on automatic cache flush after extension configuration changes.
Migration
=========
Extensions requiring a cache flush after configuration changes need to implement a slot
for the `afterExtensionConfigurationWrite` signal which allows individual cache flush actions.
.. index:: PHP-API, Backend, ext:extensionmanager
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-60063:
=========================================
Breaking: #60063 - Felogin Plugin Removed
=========================================
See :issue:`60063`
Description
===========
File EXT:felogin/pi1/class.tx_felogin_pi1.php was removed.
Impact
======
- A require in PHP of this file throws a fatal error.
- An :code:`includeLibs` TypoScript setting to this file raises a warning.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension requires EXT:felogin/pi1/class.tx_felogin_pi1.php or if an includeLibs TypoScript setting to this file is set.
Migration
=========
Remove the require line in PHP and includeLibs line in TypoScript, they are obsolete.
.. index:: TypoScript, Frontend, ext:felogin
@@ -0,0 +1,57 @@
.. include:: /Includes.rst.txt
.. _breaking-60135:
============================================================
Breaking: #60135 - Recursive stdWrap is now only called once
============================================================
See :issue:`60135`
Description
===========
If recursive stdWrap configuration was used, the stdWrap method was called twice, although the content
was only rendered once. This performance overhead is now removed.
Impact
======
If a recursive stdWrap configuration is used, which sets or acts on a global state like registers,
the resulting rendering can now be different because the global state is now modified only once.
Affected installations
======================
A TYPO3 instance is affected if there is TypoScript code like:
::
page.1 = TEXT
page.1 {
value = Counter:
append = TEXT
append.data = register:Counter
stdWrap.append = LOAD_REGISTER
stdWrap.append {
Counter.cObject = TEXT
Counter.cObject.data = register:Counter
Counter.cObject.wrap = |+1
Counter.prioriCalc = 1
}
}
..
This now correctly outputs `Counter:1` instead of `Counter:2`
Migration
=========
The usage of recursive stdWrap TypoScript configuration needs to be checked and probably adapted to fit the fixed behavior.
.. index:: TypoScript, Frontend
@@ -0,0 +1,41 @@
.. include:: /Includes.rst.txt
.. _breaking-60152:
=================================================================
Breaking: #60152 - GeneralUtility::formatSize is now locale aware
=================================================================
See :issue:`60152`
Description
===========
The :code:`GeneralUtility::formatSize()` method now adheres to the currently set locale and
selects the correct decimal separator symbol.
This also applies to the TypoScript option :code:`stdWrap.bytes`, which uses the method internally,
as well as the Filelist content element type.
Impact
======
All output generated for locales, where the decimal separator is not a dot, will change to use
the correct symbol. e.g. comma for German.
Affected installations
======================
Any installation that uses the :code:`formatSize()` method in one of the ways mentioned.
Migration
=========
If you think you get the wrong decimal separator, ensure the locale is configured correctly
and the locale really exists on the server.
TypoScript option: :code:`config.locale`
Commandline: `locale -a`
.. index:: PHP-API, TypoScript
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-60559-1668719184:
================================================
Breaking: #60559 - Dropped Backend Login Options
================================================
See :issue:`60559`
Description
===========
Handling of :code:`$GLOBALS['TBE_STYLES']['loginBoxImage_rotationFolder']` and :code:`$GLOBALS['TBE_STYLES']['loginBoxImage_author']` was dropped.
Impact
======
Setting those options has no effect anymore.
Affected installations
======================
These options had no effect with standard core internal login screen based on t3skin for a long time already. Instances are
only affected if a 3rd party extension is loaded that changes the backend login screen and operates with these settings.
Migration
=========
Remove these options and their usage from the affected 3rd party extension or unload the extension.
.. index:: Backend, ext:t3skin
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-60559-1668719172:
=============================================================
Breaking: #60559 - T3skin Backend Login Javascript File Moved
=============================================================
See :issue:`60559`
Description
===========
Javascript files of the backend login form moved from EXT:t3skin to EXT:backend.
Impact
======
Javascript or file not found errors.
Affected installations
======================
An installation is affected if a 3rd party extension includes EXT:t3skin/Resources/Public/JavaScript/login.js
Migration
=========
Include EXT:backend/Resources/Public/JavaScript/login.js instead or refactor the affected extension to free it
from the dependency to this core internal file.
.. index:: JavaScript, ext:t3skin, Backend
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-60559:
===========================================================
Breaking: #60559 - T3skin Backend Login Template File Moved
===========================================================
See :issue:`60559`
Description
===========
The HTML template file for the backend login screen was moved from EXT:t3skin to EXT:backend.
Impact
======
Broken login screen.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses file EXT:t3skin/Resources/Private/Templates/login.html
Migration
=========
Use file EXT:backend/Resources/Private/Templates/login.html instead or refactor the affected extension to free it
from the dependency to this core internal file.
.. index:: Backend, ext:t3skin
@@ -0,0 +1,53 @@
.. include:: /Includes.rst.txt
.. _breaking-60561:
=======================================================
Breaking: #60561 - Default TypoScript Constants Removed
=======================================================
See :issue:`60561`
Description
===========
These default TypoScript constants were dropped:
- :code:`{$_clear}`
- :code:`{$_blackBorderWrap}`
- :code:`{$_tableWrap}`
- :code:`{$_tableWrap_DEBUG}`
- :code:`{$_stdFrameParams}`
- :code:`{$_stdFramesetParams}`
Impact
======
Frontend output may change.
Affected installations
======================
A TYPO3 instance is affected if own TypoScript uses the above mentioned TypoScript constants.
Migration
=========
Either remove usage of the above constants or add a snippet at an early point in TypoScript for backwards compatibility.
.. code-block:: typoscript
_clear = <img src="clear.gif" width="1" height="1" alt="" />
_blackBorderWrap = <table border="0" bgcolor="black" cellspacing="0" cellpadding="1"><tr><td> | </td></tr></table>
_tableWrap = <table border="0" cellspacing="0" cellpadding="0"> | </table>
_tableWrap_DEBUG = <table border="1" cellspacing="0" cellpadding="0"> | </table>
_stdFrameParams = frameborder="no" marginheight="0" marginwidth="0" noresize="noresize"
_stdFramesetParams = 'border="0" framespacing="0" frameborder="no"
.. index:: TypoScript, Frontend
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-60582:
=================================================
Breaking: #60582 - Rsaauth Javascript Files Moved
=================================================
See :issue:`60582`
Description
===========
Javascript files from EXT:rsaauth were moved from resources/ to Resources/Public/JavaScript.
Impact
======
Javascript or file not found errors.
Affected installations
======================
An installation is affected if a 3rd party extension includes Javascript files from rsaauth.
Migration
=========
Change affected extension to include Javascript files from resources/ to Resources/Public/JavaScript/.
.. index:: JavaScript, ext:rsaauth
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-60609:
=======================================================
Breaking: #60609 - Configuration Manager Signal Changed
=======================================================
See :issue:`60609`
Description
===========
The extension for which the configuration was written was added to the signal emitted
in the ConfigurationManager of the ExtensionManager as first parameter as the whole signal was
unusable without this information.
Impact
======
The arguments for a method listening to this signal have changed.
Affected installations
======================
A TYPO3 instance is affected if there is code using the signal "afterExtensionConfigurationWrite".
Migration
=========
Rewrite the listening function to use the extension key as first parameter.
.. index:: PHP-API, Backend, ext:extensionmanager
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-60630-1668719172:
==================================================
Breaking: #60630 - Scheduler Javascript File Moved
==================================================
See :issue:`60630`
Description
===========
Javascript files of the scheduler module moved from EXT:scheduler/res/tx_scheduler_be.js to
EXT:scheduler/Resources/Public/JavaScript/Scheduler.js
Impact
======
Javascript or file not found errors.
Affected installations
======================
An installation is affected if a 3rd party extension includes EXT:scheduler/res/tx_scheduler_be.js
Migration
=========
Include EXT:scheduler/Resources/Public/JavaScript/Scheduler.js instead or refactor the affected extension to free it
from the dependency to this scheduler internal file.
.. index:: JavaScript, Backend, ext:scheduler
@@ -0,0 +1,39 @@
.. include:: /Includes.rst.txt
.. _breaking-60630:
=================================================
Breaking: #60630 - Scheduler Language Files Moved
=================================================
See :issue:`60630`
Description
===========
The language files of the scheduler extension are moved to EXT:scheduler/Resources/Private/Language/
Impact
======
Labels are not translated when being fetched from old file location.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses a language file from EXT:scheduler
or if localization overrides of these files are registered. Those overridden labels may not
work anymore.
Migration
=========
Use new path to language file instead or create/copy the labels to an own language file and
adapt existing overrides to the new file locations.
.. index:: Backend, ext:scheduler
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-60630-1668719184:
=======================================================
Breaking: #60630 - Scheduler Module Template File Moved
=======================================================
See :issue:`60630`
Description
===========
The HTML template file for the scheduler module was moved from EXT:scheduler/mod1/mod_template.html
to EXT:scheduler/Resources/Private/Templates/Module.html.
Impact
======
Broken module screen.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses file EXT:scheduler/mod1/mod_template.html
Migration
=========
Use file EXT:scheduler/Resources/Private/Templates/Module.html instead or refactor the affected extension to free it
from the dependency to this scheduler internal file.
.. index:: ext:scheduler, Backend
@@ -0,0 +1,41 @@
.. include:: /Includes.rst.txt
.. _breaking-61459:
==========================================================
Breaking: #61459 - Removal of tslib directory and constant
==========================================================
See :issue:`61459`
Description
===========
The tslib/ directory and the constant PATH_tslib were removed.
Impact
======
Extensions that still use PATH_tslib constant, and reference typo3/sysext/cms/tslib/index_ts.php directly won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses :file:`index_ts.php` directly, or if the main
:file:`index.php` is not replaced with the TYPO3 Update (used on certain install types). The index.php file must be
replaced with the current version from the TYPO3 CMS Core.
Besides scripts are affected that access the time tracking (:code:`$TT`) or typoscript frontend controller (:code:`$TSFE`)
objects instead of using :code:`$GLOBALS['TT']` respectively :code:`$GLOBALS['TSFE']`.
Migration
=========
Remove the constant PATH_tslib from the 3rd party extension, use a current version of index.php and use :code:`$GLOBALS['TT']`
and :code:`$GLOBALS['TSFE']` where necessary.
.. index:: PHP-API, Frontend
@@ -0,0 +1,41 @@
.. include:: /Includes.rst.txt
.. _breaking-61471:
=====================================================
Breaking: #61471 - EXT:t3skin CSS files moved to less
=====================================================
See :issue:`61471`
Description
===========
All CSS files in EXT:t3skin are moved to less files and handled by less CSS pre processor
and merged to a single CSS file.
Impact
======
Single CSS files can not be included anymore. This may result in broken layouts.
Affected installations
======================
A TYPO3 instance is affected if an extension loads single CSS files from EXT:t3skin. Backend modules of
extensions usually get CSS core stuff loaded by default, which will not be a problem. An extension is
only affected if single CSS files are explicitly referenced. This should be a rare case.
Migration
=========
Most simple solution is to copy over the "old" CSS file from an older instance. Directly including those
files from t3skin is discouraged. A better solution is to refactor the extension to use the full t3skin
CSS file and to overlay it with required changes in an own file.
.. index:: PHP-API, Backend, ext:t3skin
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-61781:
====================================================================
Breaking: #61781 - include_once array in ClickMenuController removed
====================================================================
See :issue:`61781`
Description
===========
The include_once array of the ClickMenuController, which is filled with paths from the
:code:`$GLOBALS['TBE_MODULES_EXT']['xMOD_alt_clickmenu']['extendCMclasses']['path']` setting, has been removed.
Impact
======
Extension classes relying on the :code:`$GLOBALS['TBE_MODULES_EXT']['xMOD_alt_clickmenu']['extendCMclasses']['path']` registration for autoloading will not be loaded anymore.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed class loading registration method.
Migration
=========
All classes are autoloaded automatically by TYPO3 CMS Core.
.. index:: PHP-API, Backend
@@ -0,0 +1,40 @@
.. include:: /Includes.rst.txt
.. _breaking-61782:
==============================================================
Breaking: #61782 - deprecated DocumentTemplate classes removed
==============================================================
See :issue:`61782`
Description
===========
The following deprecated classes have been removed:
:code:`\TYPO3\CMS\Backend\Template\MediumDocumentTemplate`
:code:`\TYPO3\CMS\Backend\Template\SmallDocumentTemplate`
:code:`\TYPO3\CMS\Backend\Template\StandardDocumentTemplate`
Impact
======
Extensions that still use one of the removed classes for their backend module won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses one of the removed classes.
Migration
=========
Use :code:`\TYPO3\CMS\Backend\Template\DocumentTemplate` instead.
.. index:: PHP-API, Backend
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-61783:
=================================================
Breaking: #61783 - Removed deprecated mailing API
=================================================
See :issue:`61783`
Description
===========
The deprecated methods to send email are removed.
This includes the :code:`MailUtility::mail()` method, the mail delivery substitution API and the :code:`plainMailEncoded()` methods.
Impact
======
Any call to :code:`MailUtility::mail()` or :code:`GeneralUtility::plainMailEncoded()` will result in a fatal error.
The option :code:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/utility/class.t3lib_utility_mail.php']['substituteMailDelivery']`
does not have any effect.
Affected installations
======================
Any installation using an extension still using the deprecated API will fail.
Migration
=========
Use the :code:`\TYPO3\CMS\Core\Mail\Mailer` API for sending email.
.. index:: PHP-API
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-61785-1668719172:
================================================================================================
Breaking: #61785 - getCompressedTCarray and includeTCA from TypoScriptFrontendController removed
================================================================================================
See :issue:`61785`
Description
===========
Methods :code:`getCompressedTCarray()` and :code:`includeTCA()` from :code:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController`
have been removed.
Impact
======
Extensions that still use :code:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::getCompressedTCarray()`
or :code:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::includeTCA()` will trigger a fatal error.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses one of the removed functions.
Migration
=========
Full TCA is always loaded during bootstrap in FE, the methods are obsolete.
If an eid script calls this method to load TCA, use :code:`\TYPO3\CMS\Frontend\Utility\EidUtility::initTCA()` instead.
.. index:: PHP-API, Frontend
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-61785:
=============================================================
Breaking: #61785 - loadTCA function in GeneralUtility removed
=============================================================
See :issue:`61785`
Description
===========
Method :code:`loadTCA()` from :code:`\TYPO3\CMS\Core\Utility\GeneralUtility` is removed.
Impact
======
Extensions that still use :code:`\TYPO3\CMS\Core\Utility\GeneralUtility::loadTCA()` will trigger a fatal error.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension still calls :code:`loadTCA`.
Migration
=========
The method is obsolete, full TCA is always loaded in all context except eID.
It is safe to remove the method call.
.. index:: PHP-API
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-61786:
===================================================================
Breaking: #61786 - remove deprecated TypeHandlingService in extbase
===================================================================
See :issue:`61786`
Description
===========
The TypeHandlingService class is removed from the extbase extension.
Impact
======
Extensions that still use :code:`\TYPO3\CMS\Extbase\Service\TypeHandlingService` won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed class :code:`\TYPO3\CMS\Extbase\Service\TypeHandlingService`.
Migration
=========
Replace all calls to :code:`\TYPO3\CMS\Extbase\Service\TypeHandlingService` functions to their new static functions
in :code:`\TYPO3\CMS\Extbase\Utility\TypeHandlingUtility`
.. index:: PHP-API, ext:extbase
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-61802:
==================================================================
Breaking: #61802 - deprecated isLocalconfWritable function removed
==================================================================
See :issue:`61802`
Description
===========
The function :code:`isLocalconfWritable()` :code:`from \TYPO3\CMS\Core\Utility\ExtensionManagementUtility` has been removed.
The bootstrap now just checks for the existence of the file and redirects to the install tool if it doesn't exist.
Impact
======
Extensions that still use the function :code:`isLocalconfWritable()` won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed function.
Migration
=========
Remove the call to this function. The bootstrap takes care to check the existence of the file.
.. index:: PHP-API
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-61820:
=================================================================
Breaking: #61820 - deprecated PhpOptionsUtility functions removed
=================================================================
See :issue:`61820`
Description
===========
The :code:`\TYPO3\CMS\Core\Utility\PhpOptionsUtility` functions isSafeModeEnabled and isMagicQuotesGpcEnabled are removed.
Impact
======
Extensions that still use one of the removed functions won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses one of the removed functions.
Migration
=========
Remove the call to :code:`\TYPO3\CMS\Core\Utility\PhpOptionsUtility::isSafeModeEnabled()`
or :code:`\TYPO3\CMS\Core\Utility\PhpOptionsUtility::isMagicQuotesGpcEnabled()` functions.
The Install Tool takes care of the removed checks now.
.. index:: PHP-API
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-61821:
==================================================================
Breaking: #61821 - classFile option in makeInstanceService removed
==================================================================
See :issue:`61821`
Description
===========
The option "classFile" in :code:`\TYPO3\CMS\Core\Utility\GeneralUtility\makeInstanceService()` is removed.
This should now be done by the respective ext_autoload.php of each extension.
Impact
======
Extension classes relying on the "classFile" registration for autoloading will not be loaded anymore.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed class loading registration method.
Migration
=========
Use the ext_autoload.php file to autoload the class.
.. index:: PHP-API
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-61822:
================================================================
Breaking: #61822 - deprecated function getUniqueFields() removed
================================================================
See :issue:`61822`
Description
===========
The function :code:`getUniqueFields()` from :code:`\TYPO3\CMS\Core\DataHandling\DataHandler` has been removed.
The function is available in :code:`\TYPO3\CMS\Version\Hook\DataHandlerHook`.
Impact
======
Extensions that still use the function :code:`getUniqueFields()` won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed function.
Migration
=========
Replace all calls to :code:`\TYPO3\CMS\Core\DataHandling\DataHandler::getUniqueFields()`
with calls to :code:`\TYPO3\CMS\Version\Hook\DataHandlerHook::getUniqueFields()`
.. index:: PHP-API, Backend, ext:workspaces
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-61823:
==================================================
Breaking: #61823 - Remove magic setter for $fromTC
==================================================
See :issue:`61823`
Description
===========
The magic setter for :code:`$fromTC` in \TYPO3\CMS\Core\Database\RelationHandler is removed.
Impact
======
Directly setting the protected property :code:`$fromTC` will trigger a PHP warning.
Affected installations
======================
Any installation using an extension that sets :code:`$fromTC` property directly.
Migration
=========
Use :code:`\TYPO3\CMS\Core\Database\RelationHandler::setFetchAllFields()` instead.
.. index:: PHP-API, Backend
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-61859:
=================================================================
Breaking: #61859 - deprecated file type FILETYPE_SOFTWARE removed
=================================================================
See :issue:`61859`
Description
===========
The constant :code:`\TYPO3\CMS\Core\Resource\AbstractFile::FILETYPE_SOFTWARE` has been removed.
Impact
======
Using the removed constant will result in a fatal error.
Affected installations
======================
Any installation using an extension that uses the constant :code:`\TYPO3\CMS\Core\Resource\AbstractFile::FILETYPE_SOFTWARE`.
Migration
=========
Use :code:`\TYPO3\CMS\Core\Resource\AbstractFile::FILETYPE_APPLICATION` instead, which matches the Iana standard.
.. index:: PHP-API, FAL
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-61860:
===========================================================
Breaking: #61860 - deprecated function int_from_ver removed
===========================================================
See :issue:`61860`
Description
===========
Function :code:`int_from_ver()` from :code:`\TYPO3\CMS\Core\Utility\GeneralUtility` has been removed.
Impact
======
Extensions that still use the function :code:`int_from_ver()` won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed function.
Migration
=========
Replace the usage of the removed function with :code:`\TYPO3\CMS\Core\Utility\VersionNumberUtility::convertVersionNumberToInteger()`
.. index:: PHP-API
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-61863:
===============================================================
Breaking: #61863 - deprecated connectDB from EidUtility removed
===============================================================
See :issue:`61863`
Description
===========
Method :code:`connectDB()` from :code:`\TYPO3\CMS\Frontend\Utility\EidUtility` has been removed.
Impact
======
Extensions that still use the function :code:`connectDB()` will trigger a fatal
PHP error when an eID script is called.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed function.
Migration
=========
The function can be removed safely. The database will connect itself if needed.
.. index:: PHP-API, Frontend
@@ -0,0 +1,98 @@
.. include:: /Includes.rst.txt
.. _breaking-61890:
==============================================================
Breaking: #61890 - TBE Styling removed from FormEngine and TCA
==============================================================
See :issue:`61890`
Description
===========
The styling functionality of FormEngine was based on a mixture of loose variables within :code:`$GLOBALS['TBE_STYLES']`
overridden by hardcoded values in various Backend PHP classes. This setup, additionally mixed with CSS classes
that followed a very complicated syntax to render certain fields differently, has been removed in order to allow
Backend styling for FormEngine completely based on CSS/LESS.
Impact
======
Using the following CSS classes within FormEngine don't have any effect anymore:
* class-main
* class-main1
* class-main2
* class-main3
* class-main4
* class-main5
* class-main11
* class-main12
* class-main13
* class-main14
* class-main15
* class-main21
* class-main22
* class-main23
* class-main24
* class-main25
* class-main31
* class-main32
* class-main33
* class-main34
* class-main35
* class-main41
* class-main42
* class-main43
* class-main44
* class-main45
* class-main51
* class-main52
* class-main53
* class-main54
* class-main55
* wrapperTable
* wrapperTable1
* wrapperTable2
* wrapperTable3
* wrapperTable4
* wrapperTable5
* formField
* formField1
* formField2
* formField3
* formField4
* formField5
Additionally, the following keys of $TBE_STYLES have no effect anymore:
* $TBE_STYLES['colorschemes']
* $TBE_STYLES['styleschemes']
* $TBE_STYLES['borderschemes']
They can safely removed from any third party extension.
The 5th parameter defining custom styleschemes in any field defined in $TCA[mytable][types][mytype][showitem] or
$TCA[mytable][palettes][mypalette][showitem] has no effect anymore and can be removed from any third party extension
(e.g. myfield;mylabel;usedpalette;extraDefinition;stylescheme).
Any styling is now done solely via LESS.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the CSS classes for styling or dynamic HTML via JavaScript.
Migration
=========
Use the available CSS classes for custom styling and modifying FormEngine. Clean up any custom TCA definitions with a
stylescheme in 3rd party extensions, where the fifth parameter of a field definition in
$TCA[mytable][types][mytype][showitem] or $TCA[mytable][palettes][mypalette][showitem] is used.
.. index:: PHP-API, TCA, Backend
@@ -0,0 +1,40 @@
.. include:: /Includes.rst.txt
.. _breaking-61959:
======================================================
Breaking: #61959 - Move flash message output to alerts
======================================================
See :issue:`61959`
Description
===========
Flash messages are now styled by using the native CSS classes of Twitter Bootstrap. The changed classes are:
* "typo3-message message-notice" => "alert alert-notice"
* "typo3-message message-information" => "alert alert-info"
* "typo3-message message-ok" => "alert alert-success"
* "typo3-message message-warning" => "alert alert-warning"
* "typo3-message message-error" => "alert alert-danger"
Impact
======
Extensions which use the old classes like "typo3-message message-information" rely on deprecated CSS classes
which might lead to non styled output.
Affected installations
======================
Any installation that uses the HTML of flash messages without calling the API.
Migration
=========
Change the used CSS classes to the new ones.
.. index:: Backend, Frontend
@@ -0,0 +1,45 @@
.. include:: /Includes.rst.txt
.. _breaking-62038:
============================================================
Breaking: #62038 - Deprecated DocumentTemplate functionality
============================================================
See :issue:`62038`
Description
===========
The Backend/DocumentTemplate class contains various options that have no effect in the core anymore:
:code:`$doc->JScodeLibArray`
:code:`$doc->docType` (as rendering is always as HTML5 by default)
:code:`$doc->inDocStyles` (use inDocStylesArray)
:code:`$doc->inDocStyles_TBEstyle` (now used as inDocStylesArray[tbeStyle]
:code:`$doc->charset` (always utf-8)
The methods :code:`$doc->formatTime()` and :code:`$doc->menuTable()` have also
been deprecated as they are not used anymore.
Impact
======
Extensions that still use the properties of DocumentTemplate will not see any changes in the output
of the code anymore.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the unused variables.
Migration
=========
The variables can be removed safely, any modifications is possible via hooks in DocumentTemplate.
.. index:: PHP-API, Backend
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-62039:
=================================================
Breaking: #62039 - Removed TBE_STYLES[mainColors]
=================================================
See :issue:`62039`
Description
===========
The values within :code:`$TBE_STYLES[mainColors]` are redundant and can be completely defined via CSS nowadays. The
corresponding PHP leftovers are removed from the core and have no effect anymore.
Impact
======
Setting the variables within :code:`$TBE_STYLES[mainColors]` and using the :code:`$doc->bgColor*` and :code:`$doc->hoverColor` properties
of DocumentTemplate have no effect anymore.
Affected installations
======================
Any installation using an extension that is overriding skin info via :code:`$TBE_STYLES[mainColors]`.
Migration
=========
Use CSS directly to modify the appearance of the Backend.
.. index:: PHP-API, Backend
@@ -0,0 +1,83 @@
.. include:: /Includes.rst.txt
.. _breaking-62291-1668719172:
============================================================
Breaking: #62291 - RTE Deprecated JavaScript methods removed
============================================================
See :issue:`62291`
Description
===========
The following RTE JavaScript methods, deprecated since TYPO3 4.7, have been removed:
HTMLArea.Editor.forceRedraw: use HTMLArea.Framework.doLayout instead
HTMLArea.Editor.convertNode: use HTMLArea.DOM.convertNode instead
HTMLArea.Editor.getBlockAncestors: use HTMLArea.DOM.getBlockAncestors instead
HTMLArea.getInnerText: use HTMLArea.DOM.getInnerText instead
HTMLArea.hasAllowedAttributes: use HTMLArea.DOM.hasAllowedAttributes instead
HTMLArea.isBlockElement: use HTMLArea.DOM.isBlockElement instead
HTMLArea.needsClosingTag: use HTMLArea.DOM.needsClosingTag instead
HTMLArea.Editor.rangeIntersectsNode: use HTMLArea.DOM.rangeIntersectsNode instead
HTMLArea.removeFromParent: use HTMLArea.DOM.removeFromParent instead
HTMLArea.Editor.cleanAppleStyleSpans: use HTMLArea.DOM.Node.cleanAppleStyleSpans instead
HTMLArea.Editor.removeMarkup: use HTMLArea.DOM.Node.removeMarkup instead
HTMLArea.Editor.wrapWithInlineElement: use HTMLArea.DOM.Node.wrapWithInlineElement instead
HTMLArea.Editor.addRangeToSelection: use HTMLArea.DOM.Selection.addRange instead
HTMLArea.Editor._createRange: use HTMLArea.DOM.Selection.createRange instead
HTMLArea.Editor.emptySelection: use HTMLArea.DOM.Selection.empty instead
HTMLArea.Editor.endPointsInSameBlock: use HTMLArea.DOM.Selection.endPointsInSameBlock instead
HTMLArea.Editor.execCommand: use HTMLArea.DOM.Selection.execCommand instead
HTMLArea.Editor._getSelection: use HTMLArea.DOM.Selection.get instead
HTMLArea.Editor.getAllAncestors: use HTMLArea.DOM.Selection.getAllAncestors instead
HTMLArea.Editor.getSelectedElement: use HTMLArea.DOM.Selection.getElement instead
HTMLArea.Editor.getEndBlocks: use HTMLArea.DOM.Selection.getEndBlocks instead
HTMLArea.Editor._getFirstAncestor: use HTMLArea.DOM.Selection.getFirstAncestorOfType instead
HTMLArea.Editor.getFullySelectedNode: use HTMLArea.DOM.Selection.getFullySelectedNode instead
HTMLArea.Editor.getSelectedHTML: use HTMLArea.DOM.Selection.getHtml instead
HTMLArea.Editor.getSelectedHTMLContents: use HTMLArea.DOM.Selection.getHtml instead
HTMLArea.Editor.getParentElement: use HTMLArea.DOM.Selection.getParentElement instead
HTMLArea.Editor.getSelectionRanges: use HTMLArea.DOM.Selection.getRanges instead
HTMLArea.Editor.getSelectionType: use HTMLArea.DOM.Selection.getType instead
HTMLArea.Editor.insertHTML: use HTMLArea.DOM.Selection.insertHtml instead
HTMLArea.Editor.insertNodeAtSelection: use HTMLArea.DOM.Selection.insertNode instead
HTMLArea.Editor._selectionEmpty: use HTMLArea.DOM.Selection.isEmpty instead
HTMLArea.Editor.hasSelectedText: use !HTMLArea.DOM.Selection.isEmpty instead
HTMLArea.Editor.selectNode: use HTMLArea.DOM.Selection.selectNode instead
HTMLArea.Editor.selectNodeContents: use HTMLArea.DOM.Selection.selectNodeContents instead
HTMLArea.Editor.selectRange: use HTMLArea.DOM.Selection.selectRange instead
HTMLArea.Editor.setSelectionRanges: use HTMLArea.DOM.Selection.setRanges instead
HTMLArea.Editor.surroundHTML: use HTMLArea.DOM.Selection.surroundHtml instead
HTMLArea.Editor.getBookmark: use HTMLArea.DOM.BookMark.get instead
HTMLArea.Editor.getBookmarkNode: use HTMLArea.DOM.BookMark.getEndPoint instead
HTMLArea.Editor.moveToBookmark: use HTMLArea.DOM.BookMark.moveTo instead
HTMLArea.htmlDecode: use HTMLArea.util.htmlDecode instead
HTMLArea.htmlEncode: use HTMLArea.util.htmlEncode instead
Impact
======
3rd party extensions adding plugins to the RTE and using the removed methods will fail.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension of the RTE refers to the removed methods.
Migration
=========
The affected 3rd party extensions must be modified to use the replacement methods.
.. index:: JavaScript, RTE, Backend
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-62339:
====================================================================
Breaking: #62339 - Move EXT:perm into EXT:beuser and remove EXT:perm
====================================================================
See :issue:`62339`
Description
===========
The extension EXT:perm is removed from core, the perms module is moved into EXT:beuser.
The BE module moved from "Web Access" to "System Access"
Impact
======
Extensions that use EXT:perm or maybe depends on it will cause problems
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses parts the removed extension.
Migration
=========
The logic is moved into EXT:beuser. No special migration is necessary.
.. index:: PHP-API, Backend, ext:beuser
@@ -0,0 +1,118 @@
.. include:: /Includes.rst.txt
.. _breaking-62416:
============================================================
Breaking: #62416 - Removal of deprecated code in sysext core
============================================================
See :issue:`62416`
Description
===========
DataHandler
-----------
:code:`DataHandler::clear_cache()` has been removed. Use :code:`->clear_cacheCmd()` instead. Alternatively you can
call :code:`->registerPageCacheClearing()` from a hook to not immediately clear the cache but register clearing after DataHandler operation finishes.
:code:`DataHandler::internal_clearPageCache()` has been removed, please use the cache manager directly.
The hook ['t3lib/class.t3lib_tcemain.php']['clearAllCache_additionalTables'] has been removed, use the caching framework with database backend instead.
DatabaseConnection
------------------
All connection parameters (host, username, password, db) for methods sql_connect(), sql_select_db() and connectDB() have been removed.
PackageManager
--------------
The globally defined REQUIRED_EXTENSIONS constant has been removed.
ExtensionManagementUtility
--------------------------
Parameter classPath of insertModuleFunction() is now unused. Leverage autoloading instead.
Removed PHP classes
-------------------
* TYPO3\CMS\Core\Resource\Service\IndexerService has been removed without replacement. Indexing is done internally.
* TYPO3\CMS\Core\Compatibility\GlobalObjectDeprecationDecorator has been removed without replacement.
Do not use $GLOBALS[\'typo3CacheManager\'] and $GLOBALS[\'typo3CacheFactory\'] anymore, use GeneralUtility::makeInstance() instead.
Removed PHP class members
-------------------------
* AbstractUserAuthentication::$cookieId has been removed. Use isCookieSet() instead.
Removed PHP methods
-------------------
* GeneralUtility::array_merge_recursive_overrule() has been removed. Use ArrayUtility::mergeRecursiveWithOverrule() instead.
WARNING: The new method changed its signature and does not return the first parameter anymore.
* GeneralUtility::htmlspecialchars_decode() has been removed in favor of the native PHP htmlspecialchars_decode() function.
* CategoryRegistry::get() has been removed. Use isRegistered() instead.
* CategoryRegistry::applyTca() has been removed. The functionality is obsolete.
* DataHandler::clear_cache() has been removed. Use ->clear_cacheCmd instead. Alternatively you can
call ->registerPageCacheClearing() from a hook to not immediately clear the cache but register clearing after DataHandler operation finishes.
* DataHandler::internal_clearPageCache() has been removed, use the cache manager directly.
* FileRepository::findByUid() has been removed without replacement.
* FileRepository::addToIndex() has been removed without replacement. Indexing is done transparently.
* FileRepository::getFileIndexRecordsForFolder() has been removed. Use FileIndexRepository::findByFolder() instead.
* FileRepository::getFileIndexRecord() has been removed. Use FileIndexRepository::findOneByFileObject() instead.
* FileRepository::findBySha1Hash() has been removed. Use FileIndexRepository::findByContentHash() instead.
* FileRepository::update() has been removed. Use FileIndexRepository::update() instead.
* ResourceStorage::getFolderByIdentifier() is replaced by getFolder().
* ResourceStorage::getFileByIdentifier() is replaced by getFileInfoByIdentifier().
* ResourceStorage::getFileList() is replaced by getFilesInFolder().
* ResourceStorage::getFolderList() has been removed. Use getFoldersInFolder() instead.
* ResourceStorage::fetchFolderListFromDriver() has been removed. Use getFoldersInFolder() instead.
* BasicFileUtility::getTotalFileInfo() has been removed. Use ResourceStorage instead via $GLOBALS['BE_USER']->getFileStorages()
* BasicFileUtility::checkFileNameLen() has been removed. Use ResourceStorage instead via $GLOBALS['BE_USER']->getFileStorages()
* BasicFileUtility::isPathValid() has been removed in favor of GeneralUtility::validPathStr().
* BasicFileUtility::blindPath() has been removed without replacement.
* BasicFileUtility::findTempFolder() has been removed without replacement.
* BasicFileUtility::rmDoubleSlash() has been removed without replacement.
* BasicFileUtility::cleanDirectoryName() has been removed. Use PathUtility::getCanonicalPath() instead.
* ExtendedFileUtility::init_actionPerms() is replaced with setActionPermissions().
* ExtendedFileUtility::printLogErrorMessages() is replaced with pushErrorMessagesToFlashMessageQueue().
* ExtendedFileUtility::findRecycler() has been removed. Use ResourceStorage instead.
* RteHtmlParser::rteImageStorageDir() and SelectImage::getRTEImageStorageDir() are removed.
Use $fileFactory->getFolderObjectFromCombinedIdentifier($GLOBALS['TYPO3_CONF_VARS']['BE']['RTE_imageStorageDir']); instead.
* Locales::getTerLocales() has been removed without replacement.
* Locales::getTerLocaleDependencies() has been removed without replacement.
* ExtensionManagementUtility::getRequiredExtensionListArray() has been removed without replacement.
* ExtensionManagementUtility::writeNewExtensionList() has been removed without replacement.
* PhpOptionsUtility::isSqlSafeModeEnabled() has been removed without replacement.
* ClassLoader::getAliasForClassName() is replaced with getAliasesForClassName().
Impact
======
A call to any of the aforementioned methods by third party code will result in a fatal PHP error.
Affected installations
======================
Any installation which contains third party code still using these deprecated methods.
Migration
=========
Replace the calls with the suggestions outlined above.
.. index:: PHP-API
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-62595:
===========================================
Breaking: #62595 - Remove SU change-to mode
===========================================
See :issue:`62595`
Description
===========
The permanent user switch has been removed from backend user list for a better UX.
Impact
======
The parameter "emulate" in the view helper "SwitchUser" is dropped. Using the
argument causes an error "Argument "emulate" was not registered".
Affected installations
======================
Any installation using an extension that uses the view helper "SwitchUser" with
"emulate" argument.
Migration
=========
Drop the "emulate" argument in the view helper call.
.. index:: Fluid, Backend
@@ -0,0 +1,99 @@
.. include:: /Includes.rst.txt
.. _breaking-62670:
=================================================================
Breaking: #62670 - Removal of deprecated code in multiple sysexts
=================================================================
See :issue:`62670`
Description
===========
DBAL DatabaseConnection
-----------------------
All connection parameters (host, username, password, db) for methods :code:`sql_connect()` and :code:`sql_select_db()` are removed.
CSS Styled Content
------------------
The old frontend plugin file `pi1/class.tx_cssstyledcontent_pi1.php` is removed.
Refer to `Classes/Controller/CssStyledContentController.php` instead.
Install Tool
------------
The check for PHP's magic_quotes_gpc settings is removed, as the feature is disabled since PHP 5.4.
Removed files
-------------
* lang/lang.php is removed. You don't need to include this file anymore, just use :code:`\TYPO3\CMS\Lang\LanguageService` directly.
* :file:`rtehtmlarea/htmlarea/plugins/DynamicCSS/dynamiccss.css` is removed. The file was not used.
Removed PHP classes
-------------------
* TYPO3\CMS\Scheduler\Task\FileIndexingTask is removed without replacement.
Removed PHP class members
-------------------------
* TypoScriptFrontendController::$absRefPrefix_force is removed without replacement.
Removed PHP methods
-------------------
* LanguageService::JScharCode is removed, use GeneralUtility::quoteJSvalue instead.
* ContentObjectRenderer::joinTSarrays is removed without replacement.
* TypoScriptFrontendController::tidyHTML is removed without replacement. You may use the tidy extension from TER.
* ElementBrowser::isWebFolder is removed without replacement.
* ElementBrowser::checkFolder is removed without replacement.
* AbstractDatabaseRecordList::getTreeObject is removed without replacement.
* FileList::dirData is removed without replacement.
* FilesContentObject::stdWrapValue is removed, use ContentObjectRenderer::stdWrapValue instead.
* ImportExportController::userTempFolder is removed, use getDefaultImportExportFolder instead.
* ImportExportController::userSaveFolder is removed, use getDefaultImportExportFolder instead.
* CrawlerHook::loadIndexerClass is removed without replacement.
* DatabaseIntegrityView::func_filesearch is removed without replacement.
* DatabaseIntegrityView::findFile is removed without replacement.
* RteHtmlAreaBase::buildStyleSheet is removed without replacement.
* RteHtmlAreaBase::loremIpsumInsert is removed without replacement.
* StagesService::checkCustomStagingForWS is removed without replacement.
Removed JS functions
--------------------
* tx_rsaauth_encrypt is removed without replacement.
* tx_rsaauth_feencrypt is removed without replacement.
Impact
======
A call to any of the aforementioned methods by third party code will result in a fatal PHP error.
Affected installations
======================
Any installation which contains third party code still using these deprecated methods.
Migration
=========
Replace the calls with the suggestions outlined above.
.. index:: PHP-API, Backend, Frontend, RTE, JavaScript
@@ -0,0 +1,71 @@
.. include:: /Includes.rst.txt
.. _breaking-62673:
=====================================================
Breaking: #62673 - Deprecated extbase code is removed
=====================================================
See :issue:`62673`
Description
===========
Generic\Qom\Statement
---------------------
You may no longer use bound variables without using a prepared statement.
ActionController
----------------
Support for old view configuration options templateRootPath, layoutRootPath and partialRootPath is dropped.
Use the new options with fallback mechanism.
Removed PHP classes
-------------------
* QueryObjectModelConstantsInterface
* QueryObjectModelFactoryInterface
Removed PHP class members
-------------------------
* ActionController::$viewObjectNamePattern is removed without replacement
* Repository::$backend is removed, use persistence manager instead
Removed PHP methods
-------------------
* ObjectManager::create() is removed, use ObjectManager::get() instead
* ObjectManagerInterface::create() is removed
* Persistence\Generic\Backend::replaceObject() is removed without replacement
* QuerySettingsInterface::setReturnRawQueryResult() is removed without replacement
* QuerySettingsInterface::getReturnRawQueryResult() is removed, use the parameter on $query->execute() directly
* Typo3QuerySettings::setSysLanguageUid() is removed, use setLanguageUid() instead
* Typo3QuerySettings::getSysLanguageUid() is removed, use getLanguageUid() instead
Impact
======
A call to any of the aforementioned methods by third party code will result in a fatal PHP error.
Affected installations
======================
Any installation which contains third party code still using these deprecated methods.
Migration
=========
Replace the calls with the suggestions outlined above.
.. index:: PHP-API, ext:extbase
@@ -0,0 +1,39 @@
.. include:: /Includes.rst.txt
.. _breaking-62291:
=============================================
Breaking: #62291 - RTE wizard classes renamed
=============================================
See :issue:`62291`
Description
===========
The following two RTE classes were renamed:
TYPO3\CMS\Rtehtmlarea\ContentParser renamed to TYPO3\CMS\Rtehtmlarea\Controller\ParseHtmlController
TYPO3\CMS\Rtehtmlarea\User renamed to TYPO3\CMS\Rtehtmlarea\Controller\UserElementsController
Impact
======
3rd party extensions referring to an old class name will fail.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension refers to a renamed class by its old name.
Migration
=========
The affected 3rd party extensions must be modified to use the new names of these classes.
.. index:: PHP-API, RTE, Backend
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-62733:
=============================================
Breaking: #62733 - RTE Javascript Files Moved
=============================================
See :issue:`62733`
Description
===========
Javascript files of the rtehtmlarea extension were moved from EXT:rtehtmlarea/htmlarea/ to
EXT:rtehtmlarea/Resources/Public/JavaScript/
Impact
======
Javascript or file not found errors.
Affected installations
======================
An installation is affected if a 3rd party extension loads any JavaScript file from EXT:rtehtmlarea/htmlarea/
Migration
=========
Any affected 3rd party extension must be modified to load any JavaScript file from EXT:rtehtmlarea/Resources/Public/JavaScript/ instead.
.. index:: JavaScript, RTE, Backend
@@ -0,0 +1,41 @@
.. include:: /Includes.rst.txt
.. _breaking-62793:
===========================================================
Breaking: #62793 - TypoScript config.notification_* removed
===========================================================
See :issue:`62793`
Description
===========
The following TypoScript options were removed:
:code:`config.notification_email_charset`
:code:`config.notification_email_encoding`
:code:`config.notification_email_urlmode`
Impact
======
Using those options have no effect anymore.
Affected installations
======================
Instances that set these options in FE TypoScript.
Migration
=========
Those options can be safely removed. They were used with old mail handling and
are substituted with a different engine that rendered those useless.
.. index:: TypoScript, Frontend
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-62804:
=====================================================================================
Breaking: #62804 - RTE JavaScript method HTMLArea.Editor::getNodeByPosition was moved
=====================================================================================
See :issue:`62804`
Description
===========
RTE JavaScript method :code:`getNodeByPosition()` was moved from HTMLArea.Editor to HTMLArea.DOM.Node where it belongs.
Impact
======
3rd party extensions referring to :code:`HTMLArea.Editor::getNodeByPosition()` will fail.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension refers to the method :code:`HTMLArea.Editor::getNodeByPosition()`.
Migration
=========
The affected 3rd party extensions must be modified to use method :code:`HTMLArea.DOM.Node::getNodeByPosition()`
instead.
.. index:: RTE, JavaScript, Backend
@@ -0,0 +1,48 @@
.. include:: /Includes.rst.txt
.. _breaking-62819:
==================================================
Breaking: #62819 - Remove php Localization Support
==================================================
See :issue:`62819`
Description
===========
The support for php files in localization, e.g. locallang.php files was deprecated with TYPO3 CMS 4.6. All translations
are done with XLF in the core, XML files are still supported.
The parsing of PHP localization files is now disabled by default, the parsing class is now deprecated.
Impact
======
Extensions using locallang.php files for translation will not show labels anymore.
Affected installations
======================
All installations with third-party extensions using locallang.php translation files.
Migration
=========
Third-party extensions should migrate their translation files to the XLIFF format (XLF file extension). The extension
development extension (Extension Key "extdeveval") can be used to transform locallang.php files to according XLF files.
Until this is done, it is possible to enable this option again by adding the following lines to
typo3conf/AdditionalConfiguration.php:
.. code-block:: php
$GLOBALS['TYPO3_CONF_VARS']['SYS']['lang']['format']['priority'] = 'xlf,xml,php';
$GLOBALS['TYPO3_CONF_VARS']['SYS']['lang']['format']['parser']['php'] = 'TYPO3\\CMS\\Core\\Localization\\Parser\\LocallangArrayParser';
.. index:: PHP-API, Backend, Frontend, LocalConfiguration
@@ -0,0 +1,35 @@
.. include:: /Includes.rst.txt
.. _breaking-62833:
======================================================
Breaking: #62833 - Removed dividers2tabs functionality
======================================================
See :issue:`62833`
Description
===========
The "dividers2tabs" option in the ctrl section of TCA allows to show tabs in FormEngine while editing records,
instead of showing all fields in one long column. This behaviour is the default since some TYPO3 versions.
This option has no effect anymore, as "dividers2tabs" is removed for TYPO3 CMS Core. The option can also be
safely removed from any extension that adds TCA data.
Impact
======
A third-party extension that overrides the dividers2tabs option for an existing table or that adds a TCA table
with this option disabled will have a record editing with tabs from now on.
Affected installations
======================
Installations with 3rd-party extensions with TCA tables that have "dividers2tabs" disabled.
.. index:: TCA, Backend
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-62859:
=========================================================
Breaking: #62859 - Removal of doc:link.action view helper
=========================================================
See :issue:`62859`
Description
===========
The view helper :code:`\TYPO3\CMS\Documentation\ViewHelpers\Link\Action` has been removed.
Impact
======
Extensions that rely on existence of :code:`\TYPO3\CMS\Documentation\ViewHelpers\Link\Action` won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed view helper.
Migration
=========
Either use f:be.buttons.icon or any of f:uri.* view helpers.
.. index:: Fluid, Backend, ext:documentation
@@ -0,0 +1,25 @@
.. include:: /Includes.rst.txt
.. _breaking-62888:
===============================================
Breaking: #62888 - Remove config.uniqueLinkVars
===============================================
See :issue:`62888`
Description
===========
The setting :code:`config.uniqueLinkVars` has been removed as the behaviour is
now always used.
Migration
=========
Remove the setting :code:`config.uniqueLinkVars` from the TypoScript.
.. index:: TypoScript, Frontend
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-62914:
==========================================================
Breaking: #62914 - Early check for PHP 5.5 in Install Tool
==========================================================
See :issue:`62914`
Description
===========
PHP 5.5 or above is a requirement for TYPO3 CMS7. As code is using specific PHP 5.5 features, an
early check is required in Install Tool.
Impact
======
Install Tool will throw an exception if PHP 5.5 or above is not detected.
Affected installations
======================
Any installation without at least PHP 5.5.0.
Migration
=========
Upgrade to PHP 5.5 or above.
.. index:: PHP-API
@@ -0,0 +1,29 @@
.. include:: /Includes.rst.txt
.. _breaking-62987:
======================================
Breaking: #62987 - Remove CSH Glossary
======================================
See :issue:`62987`
Description
===========
Early TYPO3 versions featured a glossary functionality, served by an extension, with built in switches in the core.
Those switches are now removed.
Impact
======
The functionality is no longer available.
Affected installations
======================
Any installation using the CSH Glossary functionality.
.. index:: PHP-API, Backend
@@ -0,0 +1,35 @@
.. include:: /Includes.rst.txt
.. _breaking-63056:
=================================================
Breaking: #63056 - Remove Template Selection Hack
=================================================
See :issue:`63056`
Description
===========
There has been an ancient hack for the former "freesite" extension, which enabled selection
of the template via GET variable.
This technique is outdated and has been removed.
Impact
======
Any extension using this hack will not be able to select the template this way anymore.
Affected installations
======================
Installations with third party extensions using the hack.
Migration
=========
No migration path intended.
.. index:: PHP-API, Frontend
@@ -0,0 +1,33 @@
.. include:: /Includes.rst.txt
.. _breaking-63069:
======================================================================================
Breaking: #63069 - Removed compatibility layer for submodules of func and info modules
======================================================================================
See :issue:`63069`
Description
===========
The web_info and web_func modules use the module dispatcher now and do not have
their own index scripts.
Therefore any submodule for those modules need to adjust links accordingly.
Impact
======
Any third party code creating links to either web_info or web_func module using the old entry scripts,
will not work anymore.
Migration
=========
Use :code:`BackendUtility::getModuleUrl()` instead to get the correct target for your links.
.. index:: PHP-API, Backend
@@ -0,0 +1,33 @@
.. include:: /Includes.rst.txt
.. _breaking-63110:
============================================
Breaking: #63110 - alt_doc_nodoc.php removed
============================================
See :issue:`63110`
Description
===========
Script entry point typo3/alt_doc_nodoc.php and NoDocumentsOpenController class are removed without substitution.
Impact
======
A script pointing to this file resource will trigger a 404 server response and a script instantiating the class will cause a fatal error.
Affected installations
======================
An extension needs to be adapted in the unlikely case that it uses this code.
Migration
=========
Redirecting to typo3/dummy.php instead.
.. index:: PHP-API, Backend
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-75942:
====================================================
Breaking: #75942 - BigDocumentTemplate class removed
====================================================
See :issue:`75942`
Description
===========
The following class has been removed:
:code:`\TYPO3\CMS\Backend\Template\BigDocumentTemplate`
Impact
======
Extensions that still use the removed class for their backend module won't work.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension uses the removed class.
Migration
=========
Use :code:`\TYPO3\CMS\Backend\Template\DocumentTemplate` instead.
.. index:: PHP-API, Backend
@@ -0,0 +1,49 @@
.. include:: /Includes.rst.txt
.. _deprecation-60574:
===============================================
Deprecation: #60574 - Client Related Conditions
===============================================
See :issue:`60574`
Description
===========
Conditions that depend on client details are unlovely for a number
of reasons:
* Per condition or permutation of conditions that matches, the frontend
creates a different cache entry. This can lead to a very high number
of cache entries per page
* Conditions based on browser or clients on server side are bad practice.
* The device information in the core is outdated (for example it is possible to match "AMIGA")
* Setups like reverse proxies give additional headaches with these types of conditions
* All client related condition types are deprecated with this patch.
Impact
======
Usage of client related TypoScript conditions will result in a deprecation log message. Client related conditions
are browser, version, system and useragent.
Affected installations
======================
Installations using TypoScript conditions for browser, version, system or useragent.
Migration
=========
* Most usual conditions for specific browsers can nowadays be turned into conditional CSS includes
* Use libraries such as modernizr for browser support
* If conditions for specific clients or devices are still needed, they
should be done with a userFunc condition and a project like WURFL
that keep the device information more recent than the current core
code like matching AMIGA
.. index:: TypoScript, Frontend
@@ -0,0 +1,33 @@
.. include:: /Includes.rst.txt
.. _deprecation-61513:
============================================================================
Deprecation: #61513 - Use native htmlspecialchars in ExtendedTemplateService
============================================================================
See :issue:`61513`
Description
===========
In previous versions the ExtendedTemplateService used a conditional wrapper method to apply htmlspecialchars()
for rendering TypoScript search labels, keys and comments in the backend. This option was never used, so
htmlspecialchars() was always activated rendering the option and method redundant and not necessary.
Calls to the method are removed. The ExtendedTemplateServer method and property are now marked as deprecated
for removal with CMS 8.
Impact
======
Custom extensions using the flag ExtendedTemplateService->ext_noSpecialCharsOnLabels or a custom implementation
of ExtendedTemplateService might get different results when using this switch within the class.
Affected installations
======================
Installations using ExtendedTemplateService in their own extensions.
.. index:: PHP-API, Backend
@@ -0,0 +1,41 @@
.. include:: /Includes.rst.txt
.. _deprecation-62363:
=====================================================
Deprecation: #62363 - TSFE->JSeventFuncCalls disabled
=====================================================
See :issue:`62363`
Description
===========
TYPO3 CMS provides a way to register direct JS calls to be added to the body tag of the frontend output
to allow several functions to register for e.g. "onload". Nowadays this is done via JS frameworks directly,
or via JS variables.
The functionality has been marked as deprecated.
Impact
======
The core does not use this functionality anymore. Installations with menus using "GMENU_LAYERS",
which has been removed from the core a while ago, but still use it via third-party extensions,
might not work anymore as expected.
Affected installations
======================
All installations which use the :code:`$TSFE->JSeventFuncCalls` option, e.g. like GMENU_LAYERS.
Migration
=========
Every call of a 3rd party extension to the mentioned method must be changed to use their own
JS function registration.
.. index:: JavaScript, TypoScript, Frontend
@@ -0,0 +1,39 @@
.. include:: /Includes.rst.txt
.. _deprecation-62794:
====================================================
Deprecation: #62794 - Mail methods in GeneralUtility
====================================================
See :issue:`62794`
Description
===========
The following methods of the class \TYPO3\CMS\Core\Utility\GeneralUtility have been marked as deprecated:
- quoted_printable()
- encodeHeader()
- substUrlsInPlainText()
Impact
======
The methods were used together with the old mail API and are now obsolete. Deprecation warnings will be triggered if used.
Affected installations
======================
Installations that still use those methods will trigger deprecations warnings.
Migration
=========
Code that still uses these methods should be refactored to the mail API using
TYPO3\CMS\Core\Mail\Mailer class.
.. index:: PHP-API, Backend
@@ -0,0 +1,31 @@
.. include:: /Includes.rst.txt
.. _deprecation-62795:
===================================================
Deprecation: #62795 - DocumentTemplate->endPageJS()
===================================================
See :issue:`62795`
Description
===========
Method :code:`TYPO3\CMS\Backend\Template\DocumentTemplate::endPageJS()` and the according property :code:`endJS` have been marked as deprecated.
Impact
======
None, as it isn't in use anymore since TYPO3 CMS 4.5 and was responsible for notifying the browser that the session
is still active.
Affected installations
======================
Installations misusing top.busy until now for their own good will break.
.. index:: PHP-API, JavaScript, Backend
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _deprecation-62800:
==========================================================
Deprecation: #62800 - Workspaces ToolbarItem via ExtDirect
==========================================================
See :issue:`62800`
Description
===========
The PHP functionality for switching a workspace was done with the ExtDirect call :code:`TYPO3.Ajax.ExtDirect.ToolbarMenu`
until now. This has been replaced by a simple AJAX JSON call, based on jQuery and the refactored ToolbarItem Menu for
the workspaces module.
Impact
======
The core does not use this functionality anymore, and also removed the ExtDirect registration for this class.
Affected installations
======================
All installations which directly used the ExtDirect :code:`TYPO3.Ajax.ExtDirect.ToolbarMenu` to fetch the data.
Migration
=========
Use the new AjaxHandler :code:`Workspaces::setWorkspace()` directly instead.
.. index:: PHP-API, JavaScript, Backend, ext:workspaces
@@ -0,0 +1,31 @@
.. include:: /Includes.rst.txt
.. _deprecation-62854:
=========================================================
Deprecation: #62854 - Abstractplugin->pi_list_searchBox()
=========================================================
See :issue:`62854`
Description
===========
Method :code:`pi_list_searchBox()` of AbstractPlugin (aka pibase) was used with very old
search solutions and is hopelessly outdated. It is now discouraged to be used
and will be removed with next major version.
Impact
======
Extensions still using :code:`pi_list_searchBox()` will throw a deprecation warning.
Affected installations
======================
Any extension still using this method needs to be adapted.
.. index:: PHP-API, Frontend
@@ -0,0 +1,34 @@
.. include:: /Includes.rst.txt
.. _deprecation-62864:
=============================================================
Deprecation: #62864 - BackendUtility->helpTextIcon deprecated
=============================================================
See :issue:`62864`
Description
===========
The function :code:`helpTextIcon()` in BackendUtility has been marked as deprecated.
Impact
======
The core does not use this functionality anymore.
Affected installations
======================
All installations which use the function :code:`helpTextIcon()`.
Migration
=========
Use :code:`BackendUtility::cshItem()` instead.
.. index:: PHP-API, Backend
@@ -0,0 +1,52 @@
.. include:: /Includes.rst.txt
.. _deprecation-62893:
==================================================================================
Deprecation: #62893 - Flashmessage JavaScript object TYPO3.Flashmessages was moved
==================================================================================
See :issue:`62893`
Description
===========
Flashmessages JavaScript object has been moved from `TYPO3.Flashmessages` to `top.TYPO3.Flashmessages`.
The severity constant values has been changed to correspond to the same values (-2,-1,0,1,2) of the constants as in PHP.
The constants `TYPO3.Severity.information` have been marked as deprecated.
3rd party extensions referring to `TYPO3.Severity.information` will work until CMS 9.
A compatibility file was introduced to map `TYPO3.Flashmessages` to `top.TYPO3.Flashmessages`, will also work until CMS 9.
Impact
======
If a 3rd party extension calls the mentioned methods directly, a deprecation log will be written to the browser console.
Affected installations
======================
A TYPO3 instance is affected if a 3rd party extension refers to the method `TYPO3.Flashmessages.display()` or uses `TYPO3.Severity.information` constants.
Migration
=========
The affected 3rd party extensions must be modified to use `top.TYPO3.Flashmessages` instead of `TYPO3.Flashmessages`.
Example:
.. code-block:: javascript
// Old and deprecated:
TYPO3.Flashmessages.display(TYPO3.Severity.notice)
// New and the only correct way:
top.TYPO3.Flashmessages.display(top.TYPO3.Severity.notice)
The `TYPO3.Severity` object has been moved to `top.TYPO3.Severity`. Use `top.TYPO3.Severity.*` instead.
.. index:: JavaScript, Backend
@@ -0,0 +1,49 @@
.. include:: /Includes.rst.txt
.. _deprecation-62988:
========================================================================
Deprecation: #62988 - Deprecate unused/non-unified DocumentTemplate code
========================================================================
See :issue:`62988`
Description
===========
Several functions within DocumentTemplate are not encouraged to be used anymore.
The hard-coded background image setting via :code:`$TBE_STYLES['background']` is removed and its usage is deprecated.
Additionally, the font-wrapping methods *rfw()* and *dfw()* are deprecated.
The according CSS was removed from the core.
The method *collapseableSection()*, which was used solely by the reports module for ages in a buggy
way, is also deprecated in favor of Bootstrap collapseables and localstorage.
Impact
======
The core does not use this functionality anymore.
Affected installations
======================
All installations which use the setting :code:`$GLOBALS['TBE_STYLES']['background']` or any of the functions:
* dfw()
* rfw()
* collapseableSection()
Migration
=========
* Use CSS directly instead of :code:`$GLOBALS['TBE_STYLES']['background']`
* Use the CSS class *text-muted* instead of the method :code:`dfw()`
* Use the CSS class *text-danger* instead of the method :code:`rfw()`
* Use HTML bootstrap classes, localStorage etc. instead of :code:`collapseableSection()`
.. index:: PHP-API, Backend
@@ -0,0 +1,58 @@
.. include:: /Includes.rst.txt
.. _feature-47919:
=========================================================================================================
Feature: #47919 - Possibility to configure an exception handler when rendering TypoScript content objects
=========================================================================================================
See :issue:`47919`
Description
===========
Exceptions which occur during rendering of content objects (typically plugins) will now be caught
by default in production context and an error message is shown as rendered output.
If this is done, the page will remain available while the section of the page that produces an error (throws an exception)
will show a configurable error message. By default this error message contains a random code which references
the exception which is also logged by the logging framework for developer reference.
Usage:
.. code-block:: typoscript
# Use 1 for the default exception handler (enabled by default in production context)
config.contentObjectExceptionHandler = 1
# Use a class name for individual exception handlers
config.contentObjectExceptionHandler = TYPO3\CMS\Frontend\ContentObject\Exception\ProductionExceptionHandler
# Customize the error message. A randomly generated code is replaced within the message if needed.
config.contentObjectExceptionHandler.errorMessage = Oops an error occurred. Code: %s
# Configure exception codes which will not be handled, but bubble up again (useful for temporary fatal errors)
tt_content.login.20.exceptionHandler.ignoreCodes.10 = 1414512813
# Disable the exception handling for an individual plugin/ content object
tt_content.login.20.exceptionHandler = 0
# ignoreCodes and errorMessage can be both configured globally …
config.contentObjectExceptionHandler.errorMessage = Oops an error occurred. Code: %s
config.contentObjectExceptionHandler.ignoreCodes.10 = 1414512813
# … or locally for individual content objects
tt_content.login.20.exceptionHandler.errorMessage = Oops an error occurred. Code: %s
tt_content.login.20.exceptionHandler.ignoreCodes.10 = 1414512813
..
Impact
======
Instead of breaking the whole page when an exception occurs, an error message is shown for the part of the page that is broken.
Be aware that unlike before, it is now possible that a page with error message gets cached.
To get rid of the error message not only the actual error needs to be fixed, but the cache must be cleared for this page.
.. index:: TypoScript, Frontend
@@ -0,0 +1,34 @@
.. include:: /Includes.rst.txt
.. _feature-50039:
========================================================
Feature: #50039 - Multiple CSS Files in Rich Text Editor
========================================================
See :issue:`50039`
Description
===========
It is now possible to import more than one CSS file for the Rich Text Editor.
New syntax is:
.. code-block:: typoscript
RTE.default.contentCSS {
file1 = fileadmin/myStylesheet1.css
file2 = fileadmin/myStylesheet2.css
}
Impact
======
The old syntax may still be used. If no CSS files are set, the RTE default CSS
file is used as before.
.. index:: TSConfig, RTE, Backend
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _feature-51905:
==========================================================================
Feature: #51905 - Add dependencies between classes in the Rich Text Editor
==========================================================================
See :issue:`51905`
Description
===========
It is now possible to configure a class as requiring other classes.
The syntax of this new property is
.. code-block:: typoscript
RTE.classes.[ *classname* ] {
.requires = list of class names; list of classes that are required by the class;
if this property, in combination with others, produces a circular relationship, it is ignored;
when a class is added on an element, the classes it requires are also added, possibly recursively;
when a class is removed from an element, any non-selectable class that is not required by any of the classes
remaining on the element is also removed.
}
Impact
======
There is no impact on previous configurations.
.. index:: TSConfig, RTE, Backend
@@ -0,0 +1,41 @@
.. include:: /Includes.rst.txt
.. _feature-54518:
===================================================
Feature: #54518 - Provide TSconfig to link checkers
===================================================
See :issue:`54518`
Description
===========
The active TSconfig of the linkvalidator is stored in the LinkAnalyzer and made
publicly available to the link checkers.
The TSconfig is read either from the currently active TSconfig in the Backend
when the linkvalidator is used in the info module or from the configuration
provided in the linkvalidator scheduler task.
This allows passing configuration to the different link checkers.
Usage:
.. code-block:: typoscript
# The configuration in mod.linkvalidator can be read by the link checkers.
mod.linkvalidator.mychecker.myvar = 1
..
Impact
======
The method signature of `\TYPO3\CMS\Linkvalidator::LinkAnalyzer::init()` is changed. A new parameter has been added
for submitting the current TSconfig. This can break third party code that extends this method.
.. index:: TSConfig, Backend, ext:linkvalidator
@@ -0,0 +1,35 @@
.. include:: /Includes.rst.txt
.. _feature-54519:
==============================================================
Feature: #54519 - Report links to disabled linkhandler records
==============================================================
See :issue:`54519`
Description
===========
A new configuration option has been introduced for the linkhandler link checker
in the linkvalidator extension:
.. code-block:: typoscript
mod.linkvalidator.linkhandler.reportHiddenRecords = 1
..
When enabled links will be considered invalid when they point to disabled records.
By default only links to deleted records are reported.
Impact
======
The `\TYPO3\CMS\Linkvalidator\Linktype::checkLink()` method has been restructured
and will now determine if the linked record is deleted or hidden and report
a error depending on the `reportHiddenRecords` configuration.
.. index:: PHP-API, Backend, ext:linkvalidator
@@ -0,0 +1,32 @@
.. include:: /Includes.rst.txt
.. _feature-58122:
=======================================================================
Feature: #58122 - Configure class as non-selectable in Rich Text Editor
=======================================================================
See :issue:`58122`
Description
===========
It is now possible to configure a class as non-selectable in the style selectors of the Rich Text Editor.
The syntax of this new property is
.. code-block:: typoscript
RTE.classes.[ *classname* ] {
.selectable = boolean; if set to 0, the class is not selectable in the style selectors; if the property is omitted or set to 1, the class is selectable in the style selectors
}
Impact
======
There is no impact on previous configurations.
.. index:: RTE, TSConfig, Backend
@@ -0,0 +1,58 @@
.. include:: /Includes.rst.txt
.. _feature-59396:
====================================
Feature: #59396 - TypolinkViewHelper
====================================
See :issue:`59396`
Description
===========
Adding Link and Uri ViewHelper that cope with the contents of any field that was filled with a link wizard in
TYPO3 CMS Backend.
Those fields contain various parts split by a space and being escaped to provide input for the
typoLink function.
In order to use those fields natively in Fluid without the need of TypoScript in between, this ViewHelper
was introduced.
It takes the field content as a whole and can additionally take some parameters directly from Fluid.
The full parameter usage in Fluid might look like this, where {link} is the field content:
.. code-block:: php
<f:link.typolink parameter="{link}" target="_blank" class="ico-class" title="some title" additionalParams="b=u" additionalAttributes="{type:'button'}">
<f:uri.typolink parameter="{link}" additionalParameters="b=u">
Only *parameter* is required, all other parameters are optional.
While passing additional parameters to the ViewHelper, following rules apply:
- target is overridden, the value from Fluid applies
- class is merged from the values passed from the database and those of *class*
- title is overridden, the value from Fluid applies
- additionalParams is merged from the values passed from the database and those of *additionalParams*
- additionalAttributes is (as usual) added to the resulting tag as *type="button"*
{link} contains *19 _blank - "testtitle with whitespace" &X=y*.
In case of the Uri.Typolink Viewhelper, only the first and the fourth parameter of the field content are taken into account,
the tag related properties are discarded.
For the given examples, the output is:
.. code-block:: php
<a href="index.php?id=19&X=y&b=u" title="some title" target="_blank" class="ico-class" type="button">
index.php?id=19&X=y&b=u
</a>
Impact
======
The new ViewHelper can be used in all new projects. There is no interference with any part of existing code.
.. index:: Fluid
@@ -0,0 +1,26 @@
.. include:: /Includes.rst.txt
.. _feature-59830:
============================================================
Feature: #59830 - Introduce read-only column for file mounts
============================================================
See :issue:`59830`
Description
===========
File mount records now have a new flag "read only". This flag replaces the virtual flag introduced earlier,
so it can be defined natively in the record.
Impact
======
The impact is low as the old behavior still exists. A storage was never marked as read-only before. There is
an option to set this through UserTs, but now it is also possible to set it on the storage record directly.
.. index:: FAL, Backend
@@ -0,0 +1,30 @@
.. include:: /Includes.rst.txt
.. _feature-60064:
===========================================================
Feature: #60064 - Logging Framework Introspection Processor
===========================================================
See :issue:`60064`
Description
===========
The introspection processor of the logging framework has been extended to log the full PHP backtrace and not only the last
element of a backtrace.
Two options were added to enable this feature:
- :code:`appendFullBackTrace`, boolean, not mandatory` Add full backtrace to the log
- :code:`shiftBackTraceLevel`, integer, default 0, not mandatory` Removes the given number of entries from the top of the backtrace stack.
Impact
======
The introspection processor behaves as before as long as the feature is not explicitly configured.
.. index:: PHP-API, Backend
@@ -0,0 +1,27 @@
.. include:: /Includes.rst.txt
.. _feature-60123:
========================================================
Feature: #60123 - Unit base test case removes test files
========================================================
See :issue:`60123`
Description
===========
Some unit tests need to create test files or directories to check the system
under test. Those files should be removed again.
A test can now register absolute file paths in :code:`$this->testFilesToDelete`, and
the generic :code:`tearDown()` method will then remove them. Only files, links and directories
within typo3temp/ are allowed.
Impact
======
This allows tests to clean up the environment without leaving obsolete test files behind.
.. index:: PHP-API
@@ -0,0 +1,24 @@
.. include:: /Includes.rst.txt
.. _feature-60567:
==========================================================
Feature: #60567 - Show Styles Segment in TS Object Browser
==========================================================
See :issue:`60567`
Description
===========
The TypoScript Object Browser now shows the setup segment :code:`styles.`
Impact
======
The segment is cached in the Frontend and not unset anymore, page cache entries increase slightly in size.
.. index:: TypoScript, Backend
@@ -0,0 +1,43 @@
.. include:: /Includes.rst.txt
.. _feature-60822:
=================================================================
Feature: #60822 - Class annotations in extbase reflection service
=================================================================
See :issue:`60822`
Description
===========
The extbase reflection service can now return tags/annotations added to a class.
Suppose the given class:
.. code-block:: php
/**
* @SomeClassAnnotation A value
*/
class Foo {
}
Those annotation can be fetched with the reflection service:
.. code-block:: php
$service = new \TYPO3\CMS\Extbase\Reflection\ReflectionService();
$classValues = $service->getClassTagsValues('Foo');
$classValue = $service->getClassTagValue('Foo', 'SomeClassAnnotation');
Impact
======
Getting class tags by ReflectionService is now possible.
.. index:: PHP-API, ext:extbase
@@ -0,0 +1,24 @@
.. include:: /Includes.rst.txt
.. _feature-66185:
===================================================
Feature: #66185 - Allow Svg Files as Extension icon
===================================================
See :issue:`66185`
Description
===========
Extension authors can ship Extensions with an ext_icon file with the suffixes .png, .svg and .gif.
Impact
======
Extension icons might be rendered better when provided as vector graphics and not as bitmaps.
.. index:: PHP-API, Backend
@@ -0,0 +1,28 @@
.. include:: /Includes.rst.txt
.. _feature-61289:
==============================================================
Feature: #61289 - Signal for IconUtility html tag manipulation
==============================================================
See :issue:`61289`
Description
===========
This signal allows to manipulate the rendered html code for a sprite icon by an extension.
Currently all sprite icons are rendered as
:code: <span class="">&nbsp;</span>`.
Extensions can now adjust the html tag, add or remove attributes and define own content in between the html tags.
Impact
======
The rendered html code is no longer a span with fixed classes, but can be modified by an extension.
.. index:: PHP-API, Backend
@@ -0,0 +1,32 @@
.. include:: /Includes.rst.txt
.. _feature-61351:
=========================================================
Feature: #61351 - Add data attribute to Fluid ViewHelpers
=========================================================
See :issue:`61351`
Description
===========
Since HTML5 Elements can contain a generic data attribute,
Fluid provides for those elements the possibility to add
key-value pairs as array, which will be rendered as
`data-$key="$value"`.
.. code-block:: html
<f:form.textfield data="{foo: 'bar', baz: 'foos'}" />
Impact
======
Generic data attributes do not need to be passed by the
`additionalAttributes` array anymore making the viewhelper
more straightforward to use.
.. index:: Fluid
@@ -0,0 +1,90 @@
.. include:: /Includes.rst.txt
.. _feature-61361:
===================================================================================
Feature: #61361 - Template Path Fallback for Fluid StandaloneView and FLUIDTEMPLATE
===================================================================================
See :issue:`61361`
Description
===========
StandaloneView
--------------
Earlier in the development of Fluid, a template fallback was introduced
in the TemplateView, providing the possibility to pass a set of possible
file locations to the View Configuration, where Templates, Layouts and Partials
can be found.
The same functionality is now available in the StandaloneView. It is possible to
let the system look up the fitting paths for Partials and Layouts. It is
in the nature of the StandaloneView to get a specific template file set, so
for Templates there is no lookup requirement.
As a developer or integrator, you can configure your View as follows:
.. code-block:: php
$view = $this->objectManager->get(\TYPO3\CMS\Fluid\View\StandaloneView::class);
$view->setFormat('html');
$view->setTemplatePathAndFileName(ExtensionManagementUtility::extPath('myExt') . 'Resources/Private/Templates/Email.html');
$view->setLayoutRootPaths(array(
'default' => ExtensionManagementUtility::extPath('myExt') . 'Resources/Private/Layouts',
'specific' => ExtensionManagementUtility::extPath('myTemplateExt') . 'Resources/Private/Layouts/MyExt',
));
$view->setPartialRootPaths(array(
'default' => ExtensionManagementUtility::extPath('myExt') . 'Resources/Private/Partials',
'specific' => ExtensionManagementUtility::extPath('myTemplateExt') . 'Resources/Private/Layouts/MyExt',
'evenMoreSpecific' => 'fileAdmin/templates/myExt/Partials',
));
With this, the View will first look up the requested layout file in the path with the key
:code:`specific`, and in case there is no such file, it will fall back to :code:`default`. For the partials the
sequence would be :code:`evenMoreSpecific`, then :code:`specific`, then fall back to :code:`default`.
You are free in the naming
of the keys. The paths are searched from bottom to top.
In case you choose for numeric array keys, the array is ordered first, then reversed for the lookup, so
the highest index is accessed first.
FLUIDTEMPLATE
-------------
Additionally the TypoScript Content Object FLUIDTEMPLATE, which is based on StandaloneView, also supports this
kind of fallback mechanism.
Two new TypoScript options are added for this purpose:
- partialRootPaths
- layoutRootPaths
Example usage:
.. code-block:: typoscript
page.10 = FLUIDTEMPLATE
page.10.file = EXT:sitedesign/Resources/Private/Templates/Main.html
page.10.partialRootPaths {
10 = EXT:sitedesign/Resources/Private/Partials
20 = EXT:sitemodification/Resources/Private/Partials
}
In case you're using the old options (partialRootPath, layoutRootPath) together with the new options, the content of
the old options will be placed at the first position (index zero) in the fallback list.
Impact
======
In order to change the skin of an extension output, provided by the Fluid StandaloneView, you are no longer required to
copy the whole Resources folder into fileadmin or to some specific location, but you can pick only the files you want
to change. Those need to be organized in folders, which are then configured for the view. The system will fall through
all the provided locations, taking the first fitting file it finds.
.. index:: PHP-API, TypoScript, Fluid
@@ -0,0 +1,46 @@
.. include:: /Includes.rst.txt
.. _feature-61489:
================================================================
Feature: #61489 - Allow own TypoScript Condition implementations
================================================================
See :issue:`61489`
Description
===========
It is now possible to add own TypoScript conditions via a
separate API.
An extension / package can now ship an implementation of a new
abstract class AbstractCondition. Via the existing TypoScript
Condition Syntax the class is called by the simple full namespaced
class name.
The class's main function "matchCondition" can flexibly evaluate
any parameters given after the class name.
Usage:
.. code-block:: typoscript
[BigCompanyName\TypoScriptLovePackage\BennisTypoScriptCondition]
[BigCompanyName\TypoScriptLovePackage\BennisTypoScriptCondition = 7]
[BigCompanyName\TypoScriptLovePackage\BennisTypoScriptCondition = 7, != 6]
[BigCompanyName\TypoScriptLovePackage\BennisTypoScriptCondition = {$mysite.myconstant}]
where the TypoScript Condition class deals with =/!= etc itself.
Impact
======
If you've previously used the "userFunc" condition, you are encouraged
to use this new API for your own TypoScript conditions.
.. index:: PHP-API, TypoScript, Frontend
@@ -0,0 +1,34 @@
.. include:: /Includes.rst.txt
.. _feature-61529:
===========================================================
Feature: #61529 - Add multiple parameter to f:form.checkbox
===========================================================
See :issue:`61529`
Description
===========
Introduce parameter "multiple" for f:form.checkbox ViewHelper.
.. code-block:: html
<f:form action="create" method="POST" name="pizza" object="{pizza}">
<f:form.checkbox property="covering" multiple="1" value="salami" /><br />
<f:form.checkbox property="covering" multiple="1" value="ham" /><br />
<f:form.checkbox property="covering" multiple="1" value="cheese" /><br />
<f:form.submit value="Send" />
</f:form>
Impact
======
If you add the parameter "multiple" to your checkboxes, it automatically
appends [] to the name of your checkbox.
.. index:: Fluid
@@ -0,0 +1,34 @@
.. include:: /Includes.rst.txt
.. _feature-61577:
===========================================================
Feature: #61577 - Backend markup for checkboxes with labels
===========================================================
See :issue:`61577`
Description
===========
A typical checkbox with label form element should now be rendered as:
.. code-block:: html
<div class="checkbox">
<label for="someId">
<input type="checkbox" id="someId" />
Label text
</label>
</div>
Impact
======
If this HTML markup is applied, CSS styles by the TYPO3 core will take care of optimized view
and custom CSS has become obsolete.
.. index:: Backend
@@ -0,0 +1,25 @@
.. include:: /Includes.rst.txt
.. _feature-61668:
========================================================================
Feature: #61668 - Video and audio playback in backend record information
========================================================================
See :issue:`61668`
Description
===========
The record information popup ("i" symbol) can play certain html5 video and audio
types. This is especially useful in the "file list" module.
Impact
======
Better usability of media files.
.. index:: Backend
@@ -0,0 +1,54 @@
.. include:: /Includes.rst.txt
.. _feature-61800:
============================================================
Feature: #61800 - Registry for adding file rendering classes
============================================================
See :issue:`61800`
Description
===========
To be able to render all kinds of media files a file rendering registry is needed where you can register
a "renderer" class that can generate the needed HTML output.
Every renderer has a priority between 1 and 100, 100 is more important than 1.
When the rendererRegistry is asked for a renderer that fits a given file all registered renderer classes are "asked",
in order of priority, if they are able to render the file. The first renderer class that can render the file an
instance is returned by the rendererRegistry.
Every registered renderer class needs to implement the FileRendererInterface. This makes sure the class has a
getPriority(), canRender() and render() method.
- getPriority() returns integer between 1 and 100
- canRender() gets a file(Reference) object as parameter and returns TRUE if the class is able to render the file
It checks on mime-type but also storage type etc. can be performed to determine if creating the correct output
is possible
- render() also gets the file(Reference) object as parameter together with width, height and an optional options array
the return value is the HTML output
A AudioTagRenderer and VideoTagRenderer have already been added.
It is possible to register your own renderer classes in the ext_localconf.php of an extension.
Example:
.. code-block:: php
$rendererRegistry = \TYPO3\CMS\Core\Resource\Rendering\RendererRegistry::getInstance();
$rendererRegistry->registerRendererClass(
'MyCompany\\MySpecialMediaFile\\Rendering\\MySpecialMediaFileRenderer'
);
Impact
======
The registry on its own doesn't do anything. Some followup patches are needed to use this registry
to find the correct renderer class for rendering videos and other media files in BE preview and FE.
.. index:: PHP-API, FAL, Backend
@@ -0,0 +1,40 @@
.. include:: /Includes.rst.txt
.. _feature-62147:
===============================================
Feature: #62147 - New eval option in TCA: email
===============================================
See :issue:`62147`
Description
===========
A new option has been added to the eval field: email. This will
check if the entered value is a valid e-mail address server-side.
If not, a flash error message will be shown.
Usage:
.. code-block:: php
'email' => array(
'exclude' => 1,
'label' => 'LLL:EXT:wd_products/Resources/Private/Language/locallang_db.xlf:tx_wdproducts_domain_model_contactperson.email',
'config' => array(
'type' => 'input',
'size' => 30,
'eval' => 'email,trim'
),
)
Impact
======
Users don't have to write their own validation classes for e-mail validation.
.. index:: TCA, Backend
+42
View File
@@ -0,0 +1,42 @@
:template: changelogOverview.html
.. include:: /Includes.rst.txt
.. _changelog-7-0:
7.0 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-*