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,73 @@
.. include:: /Includes.rst.txt
.. _breaking-43085:
===========================================================================
Breaking: #43085 - Change GFX settings prefix im\_* to generic processor\_*
===========================================================================
See :issue:`43085`
Description
===========
Graphics processor settings for Image- or GraphicsMagick have been renamed
in `LocalConfiguration.php`. The former prefix `im\_` has been replaced with
the unified prefix `processor\_`.
Negative namings like `noScaleUp` have been changed positive counterparts.
During the conversion the previous configuration values are negated to reflect
the changes in semantics of these options.
In addition references to specific versions of ImageMagick/GraphicsMagick
have been removed from settings names and values. For a detailed list of
changes please consult the information in the migration section.
The unused configuration option `image\_processing` has been removed without
replacement.
The processor specific configuration option `colorspace` has been namespaced
below the `processor\_` hierarchy.
Impact
======
Existing settings in `LocalConfiguration.php` are automatically migrated
through a silent upgrader when entering the Install Tool. If you modify
the settings in `AdditionalConfiguration.php` or rely on them inside an
extension you need to update those.
Affected Installations
======================
Installations which modify those settings directly or access them.
Migration
=========
The following table lists the changed configuration keys and the appropriate
values if these have changed.
============================ ===============================================
Old name New name
============================ ===============================================
im\_version\_5 processor
The configuration value "im6" has been replaced
by "ImageMagick", "gm" by "GraphicsMagick"
im processor\_enabled
im\_v5effects processor\_effects
im\_noScaleUp processor\_allowUpscaling
im\_noFramePrepended processor\_allowFrameSelection
im\_mask\_temp\_ext\_gif processor\_allowTemporaryMasksAsPng
im\_path processor\_path
im\_path\_lzw processor\_path\_lzw
im\_stripProfileCommand processor\_stripColorProfileCommand
im\_useStripProfileByDefault processor\_stripColorProfileByDefault
colorspace processor\_colorspace
============================ ===============================================
.. index:: LocalConfiguration
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-45899-1668719172:
==========================================================================
Breaking: #45899 - Split class ImportExport into classes Import and Export
==========================================================================
See :issue:`45899`
Description
===========
Class TYPO3\CMS\Impexp\ImportExport (typo3/sysext/impexp/Classes/ImportExport.php)
has been split into a class dedicated for import and another one for export.
Impact
======
Using and extending the class is not possible anymore.
Affected Installations
======================
Extensions using the class and its methods directly or extending the class.
Migration
=========
Use or extend one or both of the new classes (TYPO3\CMS\Impexp\Import and TYPO3\CMS\Impexp\Export).
.. index:: PHP-API, ext:impexp
@@ -0,0 +1,35 @@
.. include:: /Includes.rst.txt
.. _breaking-45943:
===============================================================
Breaking: #45943 - Remove unused Images in "t3skin/icons/gfx/i"
===============================================================
See :issue:`45943`
Description
===========
A lot of unused icons from `EXT:t3skin/icons/gfx/i` have been removed.
Impact
======
References to the images of EXT:t3skin/icons/gfx/i will throw a 404 not found.
Affected Installations
======================
Installations or extensions which have references to icons in EXT:t3skin/icons/gfx/i.
Migration
=========
No migration
.. index:: Frontend, Backend, ext:t3skin
@@ -0,0 +1,43 @@
.. include:: /Includes.rst.txt
.. _breaking-51099-1668719172:
=================================================
Breaking: #51099 - Streamline settings/conditions
=================================================
See :issue:`51099`
Description
===========
The default TypoScript for the `pi2` (extbase) plugin of EXT:indexed_search sets a TypoScript
variable `plugin.tx_indexedsearch.settings.displayRules = 1`, while the default fluid template
uses the TypoScript setting `plugin.tx_indexedsearch.settings.showRules`. This change makes the
default fluid template for the extbase plugin of EXT:indexed_search use the correct TypoScript
setting.
Impact
======
Instances of the extbase plugin (`pi2`) of EXT:indexed_search using the default fluid template and
explicitly configured to *hide* the search rules deliberately using the wrong TypoScript setting
`plugin.tx_indexedsearch.settings.showRules = 0` *will show* the search rules after this update.
Affected Installations
======================
Installations using the extbase plugin (`pi2`) of EXT:indexed_search with default template and relying
on the undocumented TypoScript setting `plugin.tx_indexedsearch.settings.showRules = 0`.
Migration
=========
Change all occurrences of the TypoScript setting `plugin.tx_indexedsearch.settings.showRules = 0`
to `plugin.tx_indexedsearch.settings.displayRules = 1`.
.. index:: TypoScript, ext:indexed_search, Frontend
@@ -0,0 +1,39 @@
.. include:: /Includes.rst.txt
.. _breaking-65165:
=====================================================
Breaking: #65165 - AdditionalMethodsInFolderInterface
=====================================================
See :issue:`65165`
Description
===========
The interface `FolderInterface` has received two additional methods. Classes that implement
`FolderInterface` have to implement those methods as well. The new methods are:
* `getModificationTime()` - Returns the modification time of the folder as Unix timestamp.
* `getCreationTime()` - Returns the creation time of the folder as Unix timestamp.
Impact
======
Classes implementing the `FolderInterface` no longer fulfill the requirements of the interface.
Affected Installations
======================
Installations that use custom implementations of the `FolderInterface`.
Migration
=========
Implement the two new methods in custom implementations of the `FolderInterface`.
.. index:: PHP-API, FAL
@@ -0,0 +1,33 @@
.. include:: /Includes.rst.txt
.. _breaking-68890:
=======================================================================================
Breaking: #68890 - Remove dual-use of auth_timeout_field in AbstractUserAuthentication
=======================================================================================
See :issue:`68890`
Description
===========
In `AbstractUserAuthentication` class the property `auth_timeout_field` could
previously either contain the name of a field or a timeout-value in seconds. To
specify a field name the property can be used as before.
To specify a timeout-value, a new property called `sessionTimeout` is introduced
that can be set to an integer >= 0.
Impact
======
If some extension reads the value, the default is changed from an integer (0) to an empty string.
Migration
=========
Extensions modifying `auth_timeout_field` to a numeric value should switch to using `sessionTimeout`.
.. index:: PHP-API
@@ -0,0 +1,79 @@
.. include:: /Includes.rst.txt
.. _breaking-69863-1668719184:
===============================================================
Breaking: #69863 - Changes in ViewHelpers post Standalone-Fluid
===============================================================
See :issue:`69863`
Description
===========
The following ViewHelpers have changed behaviours in Fluid:
* The `f:case` ViewHelper argument `default` has been marked as deprecated. To indicate which case is the default, use `f:defaultCase`.
* Tag content of `f:render` is no longer ignored and will be output if called with `optional="1"`.
* Arguments `iconOnly` and `styleAttributes` have been removed from `f:be.buttons.csh`.
* Argument `alternateBackgroundColors` has been removed from `f:be.tableList`.
* ViewHelpers no longer use the `escapingInterceptorEnabled` property but instead use `escapeChildren` and `escapeOutput` to control each behavior.
* All ViewHelpers no longer initialize standard arguments ("additionalArguments" and "data") in `__construct()`, but instead do this in `initializeArguments()`. If you override this method, you need to make sure you include a call to `parent::initializeArguments()` in your subclass.
The following ViewHelper classes are now only found in namespace `TYPO3Fluid\Fluid\ViewHelpers` and no longer exist in `TYPO3\CMS\Fluid\ViewHelpers`:
* `TYPO3\CMS\Fluid\ViewHelpers\AliasViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\SwitchViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\CaseViewHelper` (present as deprecated alias until final removal)
* `TYPO3\CMS\Fluid\ViewHelpers\CommentViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\CycleViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\ForViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\GroupedForViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\IfViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\ThenViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\ElseViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\LayoutViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\RenderViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\SectionViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\SpacelessViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\Format\CdataViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\Format\HtmlspecialcharsViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\Format\PrintfViewHelper`
* `TYPO3\CMS\Fluid\ViewHelpers\Format\RawViewHelper`
Impact
======
* A warning about use of an unregistered argument `default` will be displayed if templates contain `f:case` with `default` argument.
* Unexpected template output will be output if templates are rendered which contain `<f:render partial/section optional="1">will be output now</f:render>`.
* A warning about use of an unregistered argument `iconOnly` and/or `styleAttributes` will be displayed if templates contain `f:be.buttons.csh` with either argument.
* A warning about use of an unregistered argument `alternateBackgroundColors` will be displayed if templates contain `f:be.tableList` with that argument.
* Any third-party ViewHelpers subclassing any of the classes listed above must change parent class to new namespace.
* Any third-party ViewHelpers using `escapingInterceptorEnabled` property to disable escaping.
Affected Installations
======================
Any TYPO3 instance that uses a template which contains:
* An `f:case` with `default` argument.
* An `f:render` with `optional="1"` and having content in the `<f:render>` tag.
* An `f:be.buttons.csh` with either `iconOnly` or `styleAttributes` (value irrelevant).
* An `f:be.tableList` with `alternateBackgroundColors` (value irrelevant).
* Any third-party ViewHelper which subclasses any of the classes listed above.
* Any third-party ViewHelper which uses `escapingInterceptorEnabled` property to disable escaping.
Migration
=========
* Remove the `default` option and change `f:case` to `f:defaultCase` for that case.
* Remove the tag contents of `f:render`.
* Remove arguments `iconOnly` and `styleAttributes` from `f:be.buttons.csh` where found.
* Remove argument `alternateBackgroundColors` from `f:be.tableList` where found.
* Update namespace of parent class in ViewHelpers subclassing any of the classes listed above.
* Update ViewHelper class to use `escapeChildren` and/or `escapeOutput` depending on desired behavior.
.. index:: Fluid
@@ -0,0 +1,40 @@
.. include:: /Includes.rst.txt
.. _breaking-69863:
=================================================================================
Breaking: #69863 - Fluid escaping behaviour changed from ENT_COMPAT to ENT_QUOTES
=================================================================================
See :issue:`69863`
Description
===========
The escaping behaviour in Fluid has been changed. Before, `ENT_COMPAT` was used.
Now, `ENT_QUOTES` is used.
Impact
======
Fluid templates which depend on single quotes not being escaped when escaping variables. Affects
ObjectAccessor (variable access in general) and calls to `f:format.htmlentities` and `f:format.htmlspecialchars`.
Affected Installations
======================
Any TYPO3 site containing Fluid templates which depend on single quotes not being escaped.
Migration
=========
Change template to not depend on single quotes being escaped in any ObjectAccessor, consider adding
`{variable -> f:format.htmlspecialchars(keepQuotes: 1)}` or
`<f:format.htmlspecialchars keepQuotes="1">{variable}</f:format.htmlentities>`
when accessing variables but be aware of possible XSS implications due to incomplete escaping.
.. index:: Fluid
@@ -0,0 +1,60 @@
.. include:: /Includes.rst.txt
.. _breaking-69863-1668719172:
=========================================================
Breaking: #69863 - Removed deprecated code from EXT:fluid
=========================================================
See :issue:`69863`
Description
===========
Removed deprecated code from EXT:fluid
The ChangeLog file has been removed.
The renderMode option in `FlashMessagesViewHelper` has been removed.
The following methods have been removed:
* `StandaloneView::setLayoutRootPath`
* `StandaloneView::getLayoutRootPath`
* `StandaloneView::setPartialRootPath`
* `StandaloneView::getPartialRootPath`
* `AbstractFormFieldViewHelper::getValue`
The following class has been removed:
`IconViewHelper`
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Relying on the renderMode option might lead to different frontend output.
Affected Installations
======================
Instances which use calls to the methods above, use the removed `IconViewHelper` or use the `renderMode` option in `FlashMessagesViewHelper`.
Migration
=========
* For `StandaloneView::setLayoutRootPath` use `StandaloneView::setLayoutRootPaths` instead.
* For `StandaloneView::getLayoutRootPath` use `StandaloneView::getLayoutRootPaths` instead.
* For `StandaloneView::setPartialRootPath` use `StandaloneView::setPartialRootPaths` instead.
* For `StandaloneView::getPartialRootPath` use `StandaloneView::setPartialRootPaths` instead.
Keep in mind that these methods expect an **array** instead of a string.
For `IconViewHelper` use `\TYPO3\CMS\Core\ViewHelpers\IconViewHelper` instead.
.. index:: PHP-API, Fluid
@@ -0,0 +1,41 @@
.. include:: /Includes.rst.txt
.. _breaking-71458:
==========================================================================
Breaking: #71458 - FullQuoteArray can't handle boolean values for $noQuote
==========================================================================
See :issue:`71458`
Description
===========
The API for `fullQuoteArray` allows the parameter `$noQuote` to be boolean but
converted it automatically to false as `$noQuote` is neither a string nor an
array. This behavior has been fixed, passing `true` for `$noQuote` now disables
quoting of any passed in values.
Impact
======
Passing in boolean `true` results in escaping being disabled for all values.
Affected Installations
======================
All installations making use of `INSERTmultipleRows()`, `INSERTquery()`,
`UPDATEquery()` or `fullQuoteArray()` and relying on the fact that quoting
remains enabled when `true` is passed as value for `$noQuote`.
Migration
=========
Pass the correct list of fields to disable quoting for unless none of the
fields should be quoted.
.. index:: PHP-API, Database
@@ -0,0 +1,31 @@
.. include:: /Includes.rst.txt
.. _breaking-71521:
=============================================================================
Breaking: #71521 - Property userAuthentication removed from CommandController
=============================================================================
See :issue:`71521`
Description
===========
The property `$userAuthentication` was removed from the Extbase `CommandController` class and
has been migrated to the newly introduced `getBackendUserAuthentication()` method.
Impact
======
All command controllers deriving from `CommandController` with see a fatal error when accessing
properties or methods of the removed `$userAuthentication` property.
Migration
=========
Use the newly introduced `getBackendUserAuthentication()` method.
.. index:: PHP-API, ext:extbase
@@ -0,0 +1,30 @@
.. include:: /Includes.rst.txt
.. _breaking-72022:
============================================================
Breaking: #72022 - Removed class loading fallback in cObject
============================================================
See :issue:`72022`
Description
===========
The method `ContentObjectRenderer->isClassAvailable()` was used internally to check for a TypoScript property
`plugin.tx_myextension_pi1.includeLibs` that included a PHP file when `class_exists()` failed.
With TYPO3 CMS 7, the spl_autoload mechanism checks for all places within extensions, alternatively composer does this
on build-time. All needed classes are known, making this check and the option obsolete.
The functionality was introduced in TYPO3 4.3 before autoloading was available,
and has now been removed.
Impact
======
The option `.includeLibs` on a plugin TypoScript object has no effect anymore.
.. index:: PHP-API, TypoScript
@@ -0,0 +1,43 @@
.. include:: /Includes.rst.txt
.. _breaking-72293:
==========================================================
Breaking: #72293 - API change in ExceptionHandlerInterface
==========================================================
See :issue:`72293`
Description
===========
The class `\Throwable` was added in PHP7 as new parent of `\Exceptions`. So we
were in need to remove the type hint in :issue:`72117`, which we now read as `\Throwable`
instead of `\Exception` as we only support PHP 7.0 or newer.
See https://php.net/manual/en/migration70.incompatible.php
Impact
======
A fatal error will be thrown if you use own ExceptionHandlers implementing
`TYPO3\CMS\Core\Error\ExceptionHandlerInterface` "Fatal error: Declaration of ...
must be compatible with ..."
Affected Installations
======================
Installations which use an own ExceptionHandler implementing TYPO3s
`ExceptionHandlerInterface`.
Migration
=========
Add `\Throwable` as type hinting in your implementation of
`ExceptionHandlerInterface`. Check the API/type hinting of the method where you
process the exception.
.. index:: PHP-API
@@ -0,0 +1,59 @@
.. include:: /Includes.rst.txt
.. _breaking-72310:
==========================================================================
Breaking: #72310 - EXT:form - Outsource labels and legends to own partials
==========================================================================
See :issue:`72310`
Description
===========
Labels and legends have been outsourced to their own partials. This step is slightly (but thankfully) breaking.
With this change the duplication of code can be avoided. This helps the integrator to customize the labels/ legends with just one small and central override.
Impact
======
No deep impact. If an EXT:form template was overridden, it mostly contains the `label` and/or `legend` tags and acts like it used to do.
Affected Installations
======================
Any installation using EXT:form since TYPO3 7.5.
Migration
=========
Overridden EXT:form partials could be migrated to use the new central label/ legend partials.
Example changes for `Resources/Private/Partials/Default/Show/FlatElements/Checkbox.html`.
Old:
.. code-block:: html
<label for="{model.additionalArguments.id}">
{model.additionalArguments.label}
<f:if condition="{model.mandatoryValidationMessages}">
<em><f:for each="{model.mandatoryValidationMessages}" as="mandatoryValidationMessage" iteration="iterator">{mandatoryValidationMessage}<f:if condition="{iterator.isLast}"><f:else> - </f:else></f:if></f:for></em>
</f:if>
<f:if condition="{model.validationErrorMessages}">
<strong><f:for each="{model.validationErrorMessages}" as="errorValidationMessage" iteration="iterator">{errorValidationMessage}<f:if condition="{iterator.isLast}"><f:else> - </f:else></f:if></f:for></strong>
</f:if>
</label>
New:
.. code-block:: html
{f:render(partial: '{themeName}/Show/AdditionalElements/Label', arguments: {model: model, themeName: themeName})}
.. index:: Fluid, ext:form
@@ -0,0 +1,46 @@
.. include:: /Includes.rst.txt
.. _breaking-72334:
==========================================================
Breaking: #72334 - Removed utf8 conversion in EXT:recycler
==========================================================
See :issue:`72334`
Description
===========
The recycler module previously handled conversions of labels to and from UTF-8 in order to send proper UTF-8
encoded data via JavaScript. The TYPO3 backend is running with UTF-8 since TYPO3 4.5.
The logic and the according functions have been removed as they are not needed anymore.
Impact
======
The following methods have been removed:
.. code-block:: php
RecyclerUtility::getUtf8String()
RecyclerUtility::isNotUtf8Charset()
RecyclerUtility::getCurrentCharset()
Affected Installations
======================
Any TYPO3 instance directly accessing any of the mentioned `RecyclerUtility`
methods above via a custom extension.
Migration
=========
Remove the usages to these methods, and use the strings directly.
.. index:: PHP-API, ext:recycler
@@ -0,0 +1,42 @@
.. include:: /Includes.rst.txt
.. _breaking-72338:
============================================================
Breaking: #72338 - Removed GraphicalFunctions->nativeCharset
============================================================
See :issue:`72338`
Description
===========
The property `nativeCharset` to allow GifBuilder to use other character-sets than UTF-8 for rendering text
for has been removed. The default behaviour is now to always consider multi-byte strings via CharsetConverter,
as the data is expected to be UTF-8 at all times.
Additionally the methods `recodeString()` and `singleChars()` have been removed as the direct equivalent from
CharsetConverter is used.
Impact
======
Calling any of the two methods above directly in PHP will result in a fatal error.
Setting `$nativeCharset` to something else than UTF-8 will have no effect anymore.
Affected Installations
======================
Installations with custom setups and third-party PHP code using GifBuilder or GraphicalFunctions and the `$nativeCharset` option.
Migration
=========
Use `CharsetConverter->utf8_to_numberarray()` instead of the method `singleChars()`.
.. index:: PHP-API
@@ -0,0 +1,74 @@
.. include:: /Includes.rst.txt
.. _breaking-72342:
==============================================================
Breaking: #72342 - Removed deprecated code from GeneralUtility
==============================================================
See :issue:`72342`
Description
===========
The following methods have been removed from `GeneralUtility`
`gif_compress()`
`png_to_gif_by_imagemagick()`
`read_png_gif()`
`modifyHTMLColor()`
`modifyHTMLColorAll()`
`isBrokenEmailEnvironment()`
`normalizeMailAddress()`
`formatForTextarea()`
`inArray()`
`removeArrayEntryByValue()`
`keepItemsInArray()`
`addSlashesOnArray()`
`stripSlashesOnArray()`
`slashArray()`
`remapArrayKeys()`
`array_merge()`
`arrayDiffAssocRecursive()`
`naturalKeySortRecursive()`
`getThisUrl()`
`readLLfile()`
`quoted_printable()`
`encodeHeader()`
`substUrlsInPlainText()`
`cleanOutputBuffers()`
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use calls to the methods above.
Migration
=========
For `gif_compress()` use `\TYPO3\CMS\Core\Imaging\GraphicalFunctions::gifCompress()` instead.
For `png_to_gif_by_imagemagick()` use `\TYPO3\CMS\Core\Imaging\GraphicalFunctions::pngToGifByImagemagick()` instead.
For `read_png_gif()` use `\TYPO3\CMS\Core\Imaging\GraphicalFunctions::readPngGif()` instead.
For `inArray()` use `ArrayUtility::inArray()` instead.
For `removeArrayEntryByValue()` use `ArrayUtility::removeArrayEntryByValue()` instead.
For `keepItemsInArray()` use `ArrayUtility::keepItemsInArray()` instead.
For `remapArrayKeys()` use `ArrayUtility::remapArrayKeys()` instead.
For `array_merge()` use native php '+' operator instead.
For `arrayDiffAssocRecursive()` use `ArrayUtility::arrayDiffAssocRecursive()` instead.
For `naturalKeySortRecursive()` use `ArrayUtility::naturalKeySortRecursive()` instead.
For `getThisUrl()` use `GeneralUtility::getIndpEnv*` instead.
For `quoted_printable()` use mailer API instead.
For `encodeHeader()` use mailer API instead.
For `substUrlsInPlainText()` use mailer API instead.
For `cleanOutputBuffers()` use ob_* functions directly or `self::flushOutputBuffers.`
.. index:: PHP-API
@@ -0,0 +1,59 @@
.. include:: /Includes.rst.txt
.. _breaking-72360:
==========================================================
Breaking: #72360 - Removed deprecated entry point fallback
==========================================================
See :issue:`72360`
Description
===========
The entry point fallback mechanism introduced with :issue:`68812` has been removed.
The following entry points won't work anymore.
.. code-block:: shell
typo3/ajax.php
typo3/alt_clickmenu.php
typo3/alt_db_navframe.php
typo3/alt_doc.php
typo3/alt_file_navframe.php
typo3/browser.php
typo3/db_new.php
typo3/dummy.php
typo3/init.php
typo3/login_frameset.php
typo3/logout.php
typo3/mod.php
typo3/move_el.php
typo3/show_item.php
typo3/tce_db.php
typo3/tce_file.php
typo3/thumbs.php
Impact
======
All references / links to these entry points directly without using the proper API calls will result
in a 404 error.
Affected Installations
======================
Installations with third-party extensions that link directly to these files.
Migration
=========
Move all existing code in extensions that link to the deprecated entry points to use methods
like `BackendUtility::getModuleUrl()` and `BackendUtility::getAjaxUrl()` or the UriBuilder class.
.. index:: PHP-API, Backend
@@ -0,0 +1,73 @@
.. include:: /Includes.rst.txt
.. _breaking-72361:
=============================================================
Breaking: #72361 - Removed deprecated content object wrappers
=============================================================
See :issue:`72361`
Description
===========
The following wrapper methods for ContentObject rendering within ContentObjectRenderer
have been removed:
.. code-block:: php
FLOWPLAYER()
TEXT()
CLEARGIF()
COBJ_ARRAY()
USER()
FILE()
FILES()
IMAGE()
IMG_RESOURCE()
IMGTEXT()
CONTENT()
RECORDS()
HMENU()
CTABLE()
OTABLE()
COLUMNS()
HRULER()
CASEFUNC()
LOAD_REGISTER()
FORM()
SEARCHRESULT()
TEMPLATE()
FLUIDTEMPLATE()
MULTIMEDIA()
MEDIA()
SWFOBJECT()
QTOBJECT()
SVG()
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use custom calls to ContentObjects via the methods above.
Migration
=========
Replace the direct method calls to `$contentObject->COBJECT()` with the common method.
Example for the SVG() ContentObject call:
.. code-block:: php
$cObj->cObjGetSingle('SVG', $conf);
.. index:: PHP-API, Frontend
@@ -0,0 +1,50 @@
.. include:: /Includes.rst.txt
.. _breaking-72361-1668719172:
======================================================================
Breaking: #72361 - Removed deprecated methods in ContentObjectRenderer
======================================================================
See :issue:`72361`
Description
===========
The following methods have been removed:
* `cleanFormName`
* `stdWrap_offsetWrap`
* `textStyle`
* `tableStyle`
The TypoScript `jumpurl` configuration has been removed for file links.
The TypoScript property `andWhere` from `.select` has been removed.
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use custom calls to ContentObjects via the methods above.
Migration
=========
`cleanFormName` has been moved to `FormContentObject`.
`stdWrap_offsetWrap` has not been replaced by a new function.
`textStyle` TypoScript option should be done with CSS.
`tableStyle` TypoScript option should be done with CSS.
TypoScript option `jumpurl` can be passed in the `typolinkConfiguration` property.
TypoScript property `andWhere` can be migrated to `where`.
.. index:: PHP-API, TypoScript, Frontend
@@ -0,0 +1,39 @@
.. include:: /Includes.rst.txt
.. _breaking-72368:
==========================================
Breaking: #72368 - TYPO3 Constants removed
==========================================
See :issue:`72368`
Description
===========
The PHP constants `TYPO3_enterInstallScript` and `TYPO3_cliMode` and the global variable `$GLOBALS['TYPO3_AJAX']` which were used when a TYPO3
Request was initialized have been removed. They have been replaced by an alternative to use the `TYPO3_REQUESTTYPE` constant at the very beginning of each
TYPO3 request.
Impact
======
Checking for the mentioned constants and global variable have no effect anymore and may lead to unexpected behaviour.
If not checked if the constant even was defined, the application will stop immediately.
Affected Installations
======================
Any installation which uses a third-party extension using these constants.
Migration
=========
Use `TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_CLI` or `TYPO3_REQUESTTYPE & TYPO3_REQUESTTYPE_INSTALL` instead.
.. index:: PHP-API
@@ -0,0 +1,40 @@
.. include:: /Includes.rst.txt
.. _breaking-72370:
=======================================================
Breaking: #72370 - Removed deprecated code from extbase
=======================================================
See :issue:`72370`
Description
===========
Remove deprecated code from extbase
The ChangeLog file has been removed.
`TYPO3\CMS\Extbase\DomainObject\AbstractDomainObject::__wakeup()` has been removed.
`TYPO3\CMS\Extbase\Utility\ExtensionUtility::configureModule()` has been removed.
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use calls to the methods above.
Migration
=========
Use the according method in `\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::configureModule()` instead of the removed one from ext:extbase.
Objects are instantiated differently calling `parent::__wakeup()` is no longer necessary. No migration needed.
.. index:: PHP-API, ext:extbase
@@ -0,0 +1,39 @@
.. include:: /Includes.rst.txt
.. _breaking-72372:
======================================================
Breaking: #72372 - Removed deprecated code from beuser
======================================================
See :issue:`72372`
Description
===========
The following methods have been removed from `PermissionAjaxController`
`renderOwnername`
`renderPermissions`
`renderGroupname`
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use calls to the methods above.
Migration
=========
Migrate your code that calls one of the methods to Fluid templates.
.. index:: PHP-API, ext:beuser, Backend
@@ -0,0 +1,39 @@
.. include:: /Includes.rst.txt
.. _breaking-72373:
==================================================================
Breaking: #72373 - Removed deprecated code from css_styled_content
==================================================================
See :issue:`72373`
Description
===========
The following methods have been removed from `CssStyledContentController`
`render_bullets`
`render_uploads`
`beautifyFileLink`
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use calls to the methods above.
Migration
=========
Use default TypoScript from CSS Styled Content derived from the current version.
.. index:: PHP-API, Frontend, ext:css_styled_content
@@ -0,0 +1,35 @@
.. include:: /Includes.rst.txt
.. _breaking-72378:
================================================================
Breaking: #72378 - Removed CSS Styled Content TypoScript for 6.2
================================================================
See :issue:`72378`
Description
===========
The compatibility TypoScript code for CSS Styled Content, which renders the Frontend output to behave like TYPO3 CMS 6.2, has been removed.
Impact
======
Referencing the file via sys_template or including the TypoScript files in `EXT:css_styled_content/static/6.2/` will not work anymore.
Affected Installations
======================
Any installation that still uses the compatibility TypoScript code from TYPO3 CMS 6.2.
Migration
=========
Use the current TypoScript used in CSS Styled Content.
.. index:: TypoScript, Frontend, ext:css_styled_content
@@ -0,0 +1,41 @@
.. include:: /Includes.rst.txt
.. _breaking-72381:
========================================================
Breaking: #72381 - Removed deprecated code from EXT:dbal
========================================================
See :issue:`72381`
Description
===========
The following methods of `\TYPO3\CMS\Dbal\Database\DatabaseConnection` have been removed:
* `MySQLActualType`
* `MySQLMetaType`
* `MetaType`
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use custom calls to DatabaseConnection class via the methods above.
Migration
=========
`MySQLActualType` call `dbmsSpecifics->getNativeFieldType` instead
`MySQLMetaType` call `dbmsSpecifics->getMetaFieldType` instead
`MetaType` call `getMetadata` instead
.. index:: PHP-API, ext:dbal
@@ -0,0 +1,57 @@
.. include:: /Includes.rst.txt
.. _breaking-72384:
==========================================================
Breaking: #72384 - Removed deprecated code from HtmlParser
==========================================================
See :issue:`72384`
Description
===========
The following methods have been removed from HtmlParser:
* `getSubpart()`
* `substituteSubpart()`
* `substituteSubpartArray()`
* `substituteMarker()`
* `substituteMarkerArray()`
* `substituteMarkerAndSubpartArrayRecursive()`
* `XHTML_clean()`
* `processTag()`
* `processContent()`
The following method has been removed from RteHtmlParser:
* `evalWriteFile`
The TSconfig option `xhtml_cleaning` has been removed as well.
Impact
======
Using the methods above directly in any third party extension will result in a fatal error. Setting the xhtml
processing option when parsing HTML has no effect anymore as well.
Affected Installations
======================
Instances which use custom calls to HtmlParser via the methods above.
Migration
=========
`getSubpart()` use `MarkerBasedTemplateService::getSubpart()` instead
`substituteSubpart()` call `MarkerBasedTemplateService::substituteSubpart()` instead
`substituteSubpartArray()` call `MarkerBasedTemplateService::substituteSubpartArray()` instead
`substituteMarker()` call `MarkerBasedTemplateService::substituteMarker()` instead
`substituteMarkerArray()` call `MarkerBasedTemplateService::substituteMarkerArray()` instead
`substituteMarkerAndSubpartArrayRecursive()` call `MarkerBasedTemplateService::substituteMarkerAndSubpartArrayRecursive()` instead
`XHTML_clean()` call `HtmlParser::HTMLcleaner()` instead
.. index:: PHP-API, Frontend
@@ -0,0 +1,51 @@
.. include:: /Includes.rst.txt
.. _breaking-72385:
===========================================================
Breaking: #72385 - Removed deprecated code from DataHandler
===========================================================
See :issue:`72385`
Description
===========
Removed deprecated code from DataHandler
The following properties have been removed:
`stripslashes_values`
`clear_flexFormData_vDEFbase`
`include_filefunctions`
The following methods have been removed:
`checkValue_text()`
`checkValue_input()`
`checkValue_check()`
`checkValue_radio()`
`checkValue_group_select()`
`checkValue_flex()`
Additionally, the method `getLocalTCE()` does not accept any parameter anymore.
Impact
======
Using one of these methods or properties will throw a fatal error.
Affected Installations
======================
An extension relying on one of these public properties or methods will fail.
Migration
=========
These functions are internal and should not be used outside of the core.
.. index:: PHP-API, Backend
@@ -0,0 +1,48 @@
.. include:: /Includes.rst.txt
.. _breaking-72390:
===============================================================
Breaking: #72390 - Removed deprecated code from EXT:rtehtmlarea
===============================================================
See :issue:`72390`
Description
===========
The following methods have been removed:
* `UserElementsController::main()`
* `UserElementsController::printContent()`
* `ParseHtmlController::main()`
* `ParseHtmlController::printContent()`
Furthermore a JavaScript function has been removed:
* `initEventListeners()`
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use custom calls to UserElementsController, ParseHtmlController via the methods above, or rely on the JavaScript function mentioned above being executed.
Migration
=========
`initEventListener()` no replacement for this
`UserElementsController::main()` call `UserElementsController::main_user()` instead
`UserElementsController::printContent()` call `UserElementsController::mainAction()` instead
`ParseHtmlController::main()` call `ParseHtmlController::main_parse_html()` instead
`ParseHtmlController::printContent()` call `ParseHtmlController::mainAction()` instead
.. index:: PHP-API, RTE
@@ -0,0 +1,76 @@
.. include:: /Includes.rst.txt
.. _breaking-72392:
================================================================
Breaking: #72392 - Removed deprecated code from DocumentTemplate
================================================================
See :issue:`72392`
Description
===========
Remove deprecated code from DocumentTemplate
The following properties have been removed:
`JScodeLibArray`
`docType`
`inDocStyles`
`endJS`
`bgColor`
`bgColor2`
`bgColor3`
`bgColor4`
`bgColor5`
`bgColor6`
`hoverColor`
`backGroundImage`
`inDocStyles_TBEstyle`
`parseTimeFlag`
`charset`
The following methods have been removed:
`getPageRenderer()`
`wrapClickMenuOnIcon()`
`issueCommand()`
`formatTime()`
`parseTime()`
`spacer()`
`endPageJS()`
`dfw()`
`rfw()`
`table()`
`menuTable()`
`getDynamicTabMenu()`
`getDynTabMenu()`
`getDynTabMenuId()`
`collapseableSection()`
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use calls to any of the above mentioned methods.
Migration
=========
For `wrapClickMenuOnIcon()` use `BackendUtility::wrapClickMenuOnIcon()` instead.
For `issueCommand()` use `BackendUtility::getLinkToDataHandlerAction()` instead.
For `formatTime()` and `parseTime()` use the corresponding methods in BackendUtility.
For `rfw()` and `dfw()` use proper HTML directly instead.
For `getDynamicTabMenu()` use `getDynamicTabMenu()` from ModuleTemplate instead.
For `collapseableSection()` use HTML bootstrap classes, localStorage etc.
.. index:: PHP-API, Backend
@@ -0,0 +1,47 @@
.. include:: /Includes.rst.txt
.. _breaking-72398:
==============================================================
Breaking: #72398 - Removed deprecated code from EXT:recordlist
==============================================================
See :issue:`72398`
Description
===========
The following deprecated methods have been removed:
* `RecordList::printContent()`
* `ElementBrowserFramesetController::printContent()`
The following deprecated data members have been removed:
* `RecordList::$MCONF`
Support for multiple UIDs in the URL parameter `act` in `AbstractLinkBrowserController::initVariables()` has been removed.
Impact
======
Using the methods or variables above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use custom calls to RecordList, AbstractLinkBrowserController, ElementBrowserFramesetController via the methods above, or use one of the variables mentioned above.
Migration
=========
`$MCONF` no replacement for this
`RecordList::printContent()` use `RecordList::mainAction()` instead
`AbstractLinkBrowserController::initVariables()` no replacement for using multiple UIDs
`ElementBrowserFramesetController::printContent()` use `ElementBrowserFramesetController::mainAction()` instead
.. index:: PHP-API, ext:recordlist, Backend
@@ -0,0 +1,54 @@
.. include:: /Includes.rst.txt
.. _breaking-72399:
==============================================================
Breaking: #72399 - Removed deprecated code from BackendUtility
==============================================================
See :issue:`72399`
Description
===========
Remove deprecated code from BackendUtility
The following methods have been removed:
`getExcludeFields()`
`getExplicitAuthFieldValues()`
`getSystemLanguages()`
`getRegisteredFlexForms()`
`implodeTSParams()`
`getThumbNail()`
`helpTextIcon()`
`getUrlToken()`
`exec_foreign_table_where_query()`
`replaceMarkersInWhereClause()`
`RTEgetObj()`
`countVersionsOfRecordsOnPage()`
`getPathType_web_nonweb()`
`isTableMovePlaceholderAware()`
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use custom calls to one of the above mentioned methods.
Migration
=========
For `helpTextIcon()` use `cshItem()` instead.
For `isTableMovePlaceholderAware()` use `isTableWorkspaceEnabled()` directly.
For `countVersionsOfRecordsOnPage()` use `\TYPO3\CMS\Workspaces\Service\WorkspaceService::hasPageRecordVersions` to check for record versions.
.. index:: PHP-API, Backend
@@ -0,0 +1,40 @@
.. include:: /Includes.rst.txt
.. _breaking-72400:
===================================================================
Breaking: #72400 - Removed deprecated IconUtility and SpriteManager
===================================================================
See :issue:`72400`
Description
===========
Removed deprecated IconUtility class completely.
All SpriteManager related code has been removed from the core.
The Install Tool option `BE/spriteIconGenerator_handler` has no effect anymore.
`Bootstrap::initializeSpriteManager()` has been removed.
Impact
======
Using the static class IconUtility or the SpriteManager will result in a fatal error.
Affected Installations
======================
Instances which use custom calls to one of the above mentioned classes.
Migration
=========
Use the new introduced IconAPI that is available since 7LTS.
.. index:: PHP-API, Backend, Frontend
@@ -0,0 +1,40 @@
.. include:: /Includes.rst.txt
.. _breaking-72405:
==========================================================
Breaking: #72405 - Removed traditional BE modules handling
==========================================================
See :issue:`72405`
Description
===========
The traditional way of registering backend modules done via custom `mod1/index.php` and `mod1/conf.php` has been removed.
Impact
======
Calling `ExtensionManagementUtility::addModulePath()` will result in a fatal error. Additionally, all modules that
are registered via `ExtensionManagementUtility::addModule()` and setting a path will not be registered properly
anymore.
`$TBE_MODULES['_PATHS']` is always empty now. Additionally, the options `script` and `navFrameScript` and
`navFrameScriptParam` will have no effect anymore when registering a module.
Affected Installations
======================
Any installation using an extension that registers a module via the traditional way using standalone scripts.
Migration
=========
Use the option `routeTarget` when registering a module, and PSR-7 equivalent entry-points in module controllers.
.. index:: PHP-API, Backend
@@ -0,0 +1,47 @@
.. include:: /Includes.rst.txt
.. _breaking-72412:
=============================================================================
Breaking: #72412 - Removed deprecated code from language processing functions
=============================================================================
See :issue:`72412`
Description
===========
The following deprecated code has been removed:
* `LocalizationFactory::getParsedData` no support for moved language files
* class `LocallangArrayParser` has been removed completely
The following deprecated methods have been removed:
* `LanguageService::localizedFileRef()`
Impact
======
Using old locations of language file will result in no text being displayed.
Using the removed class will result in a fatal error.
Using the methods above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use old locations of language files, instances which use the removed class LocallangArrayParser, instances
which use calls to the methods above.
Migration
=========
`LocalizationFactory::getParsedData` only supports the new location of language files
`LocallangArrayParser` use XLIFF language files now
`\TYPO3\CMS\Lang\LanguageService::localizedFileRef` no replacement; not needed when XLIFF files are used
.. index:: PHP-API
@@ -0,0 +1,35 @@
.. include:: /Includes.rst.txt
.. _breaking-72416:
=========================================================
Breaking: #72416 - Remove EXT:t3skin/stylesheets/sprites/
=========================================================
See :issue:`72416`
Description
===========
The sprites and related icons from EXT:t3skin/stylesheets/sprites/ have been removed.
Impact
======
References to the sprites or images of EXT:t3skin/ will throw a 404 not found.
Affected Installations
======================
Installations or extensions which have references to icons in EXT:t3skin/images/icons/* or EXT:t3skin/stylesheets/sprites/.
Migration
=========
No migration, remove all references and use the IconFactory for all icon related stuff.
.. index:: PHP-API, Backend, Frontend, ext:t3skin
@@ -0,0 +1,25 @@
.. include:: /Includes.rst.txt
.. _breaking-72417:
==========================================
Breaking: #72417 - Removed old locking API
==========================================
See :issue:`72417`
Description
===========
The old locking mechanism was replaced by a more sophisticated a robust LockFactory,
and is now completely removed from the TYPO3 Core.
Impact
======
Using the `Locker` class will result in a fatal error. The option `$TYPO3_CONF_VARS[SYS][lockingMode]` has
no effect anymore.
.. index:: PHP-API, LocalConfiguration
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-72418:
=========================================================
Breaking: #72418 - Deprecated backend-related PHP classes
=========================================================
See :issue:`72418`
Description
===========
The following PHP classes have been removed:
* `TYPO3\CMS\Backend\Module\ModuleController`
* `TYPO3\CMS\Backend\Module\ModuleSettings`
* `TYPO3\CMS\Backend\View\LogoView`
* `TYPO3\CMS\Backend\View\ModuleMenuView`
* `TYPO3\CMS\Backend\View\PageLayout\ExtDirect\ExtdirectPageCommands`
* `TYPO3\CMS\Backend\View\ThumbnailView`
Impact
======
Calling any of these PHP classes directly will result in a fatal error.
Affected Installations
======================
Any installation with a custom PHP code accessing these PHP classes.
.. index:: PHP-API, Backend
@@ -0,0 +1,63 @@
.. include:: /Includes.rst.txt
.. _breaking-72419:
==================================================================
Breaking: #72419 - Remove deprecated code from backend controllers
==================================================================
See :issue:`72419`
Description
===========
Remove deprecated code from backend controllers
The following methods have been removed:
`BackendController::getPageRenderer`
`BackendController::addToolbarItem`
`ClickMenuController::init`
`ClickMenuController::main`
`ClickMenuController::printContent`
`ElementInformationController::printContent`
`MoveElementController::printContent`
`NewContentElementController::getWizardItems`
`DummyController::printContent`
`EditDocumentController::printContent`
`EditDocumentController::editRegularContentFromId`
`FileSystemNavigationFrameController::printContent`
`LoginFramesetController::printContent`
`NewRecordController::printContent`
`SimpleDataHandlerController::finish`
`ColorpickerController::printContent`
`EditController::closeWindow`
`RteController::printContent`
`TableController::printContent`
The following classes have been removed completely:
`ListFrameLoaderController`
`PageTreeNavigationController`
Impact
======
Using the one of the methods or classes above will result in a fatal error.
Affected Installations
======================
Instances which use custom calls to the methods or classes above.
Migration
=========
For `BackendController::addToolbarItem` Toolbar items are registered in $GLOBALS['TYPO3_CONF_VARS']['BE']['toolbarItems'] now.
.. index:: PHP-API, Backend
@@ -0,0 +1,43 @@
.. include:: /Includes.rst.txt
.. _breaking-72421:
============================================================================
Breaking: #72421 - Removed deprecated code from database and query functions
============================================================================
See :issue:`72421`
Description
===========
Removed deprecated code from database and query functions
The following methods have been removed:
`DatabaseConnection::splitGroupOrderLimit`
`QueryGenerator::formatQ`
`QueryGenerator::JSbottom`
`ReferenceIndex::error`
`RelationHandler::convertPosNeg`
The following properties have been removed:
`QueryGenerator::$extJSCODE`
`ReferenceIndex::$errorLog`
The option to set soft reference parsers has been removed.
Impact
======
Using the one of the methods or properties above will result in a fatal error.
Affected Installations
======================
Instances which use custom calls to the methods or classes above.
.. index:: PHP-API, Database
@@ -0,0 +1,57 @@
.. include:: /Includes.rst.txt
.. _breaking-72424:
======================================================================================
Breaking: #72424 - Removed deprecated TypoScriptFrontendController options and methods
======================================================================================
See :issue:`72424`
Description
===========
The following methods from `TypoScriptFrontendController` have been removed:
* `getPageRenderer()`
* `setExternalJumpUrl()`
* `jumpUrl()`
* `acquirePageGenerationLock()`
* `releasePageGenerationLock()`
* `doXHTML_cleaning()`
* `doLocalAnchorFix()`
* `checkFileInclude()`
* `prefixLocalAnchorsWithScript()`
* `getStorageSiterootPids()`
Additionally, the public properties `jumpurl`, `JSeventFuncCalls` and `anchorPrefix` have been removed. The
request parameter `jumpurl` is not evaluated anymore.
The TypoScript property `config.additionalHeaders` has been removed.
Impact
======
Calling any of the PHP methods directly will result in a fatal error. Accessing the properties will result in a PHP
warning. Setting the TypoScript property has no effect anymore.
Additionally, if EXT:felogin is misconfigured and lacks the `storagePid` property, an exception will be thrown.
Affected Installations
======================
Any installation using the TypoScript property above, or a TYPO3 instance having third-party extensions calling
the methods or properties directly.
Migration
=========
Use the TER extension `jumpurl` to implement the jumpurl functionality.
Use the `config.additionalHeaders` subproperties (see https://docs.typo3.org/typo3cms/TyposcriptReference/Setup/Config/Index.html#additionalheaders for details) to add the additional header lines.
.. index:: PHP-API, TypoScript, Frontend, ext:jumpurl
@@ -0,0 +1,51 @@
.. include:: /Includes.rst.txt
.. _breaking-72426:
===================================================================================
Breaking: #72426 - Removed deprecated code from file and image processing functions
===================================================================================
See :issue:`72426`
Description
===========
The following deprecated methods have been removed:
* `LocalImageProcessor::getTemporaryImageWithText`
* `ResourceCompressor::compressCssPregCallback`
* `FileList::getButtonsAndOtherMarkers`
* `GraphicalFunctions::pngToGifByImagemagick`
The following deprecated data members have been removed:
* `DuplicationBehavior::$legacyValueMap`
* `ExtendeFileUtillity::$dontCheckForUnique`
* `FileListController::$MCONF`
Impact
======
Using the methods or variables above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use custom calls to LocalImageProcessor, ResourceCompressor, FileList, GraphicalFunctions via the methods above, or use one of the variables mentioned above.
Migration
=========
`LocalImageProcessor::getTemporaryImageWithText` use `\TYPO3\CMS\Core\Imaging\GraphicalFunctions::getTemporaryImageWithText()` instead
`ResourceCompressor::compressCssPregCallback` no replacement, functionality is implemented in a different way
`ExtendeFileUtillity::$dontCheckForUnique` use `setExistingFilesConflictMode(DuplicationBehavior::REPLACE)` instead
`FileListController::$MCONF` no replacement, configuration is done when registering the module in ext_tables.php
`FileList::getButtonsAndOtherMarkers` buttons are now defined in FileListController
`GraphicalFunctions::pngToGifByImagemagick` no replacement, the png_to_gif option has been removed
.. index:: PHP-API, Frontend, Backend
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-72427:
====================================================================
Breaking: #72427 - Removed TypoScript-related methods and properties
====================================================================
See :issue:`72427`
Description
===========
The following methods and properties have been removed:
* `TYPO3\CMS\Core\TypoScript\ConfigurationForm::ext_getKeyImage()`
* `TYPO3\CMS\Core\TypoScript\ExtendedTemplateService::ext_noSpecialCharsOnLabels`
* `TYPO3\CMS\Core\TypoScript\ExtendedTemplateService::makeHtmlspecialchars()`
* `TYPO3\CMS\Core\TypoScript\ExtendedTemplateService::ext_getKeyImage()`
* `TYPO3\CMS\Core\TypoScript\TemplateService::tempPath`
* `TYPO3\CMS\Core\TypoScript\TemplateService::wrap()`
* `TYPO3\CMS\T3editor\T3editor::isEnabled()`
* `TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateObjectBrowserModuleFunctionController::verify_TSobjects()`
The TypoScript conditions "browser", "version", "device", "system" and "useragent" have been removed.
Impact
======
Calling the methods above will result in a PHP fatal error.
Using the removed TypoScript conditions will have no effect anymore.
.. index:: PHP-API, TypoScript
@@ -0,0 +1,45 @@
.. include:: /Includes.rst.txt
.. _breaking-72431:
=============================================================================
Breaking: #72431 - Remove deprecated code from lowlevel and utility functions
=============================================================================
See :issue:`72431`
Description
===========
The following deprecated methods have been removed:
* `ConfigurationView->printContent()`
* `DatabaseIntegrityView->printContent()`
* `StringUtility::isLastPartOfString()`
* `Bootstrap->executeExtTablesAdditionalFile()`
* `DatabaseTreeDataProvider->emitDeprecatedPostProcessTreeDataSignal()`
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use calls to the methods above.
Instances which use TYPO3_extTableDef_script for TCA overrides.
Instances which use the signal `TYPO3\\CMS\\Core\\Tree\\TableConfiguration\\TableConfiguration\\DatabaseTreeDataProvider`
Migration
=========
* `StringUtility::isLastPartOfString()` use endsWith() instead
* `Bootstrap->executeExtTablesAdditionalFile()` (TYPO3_extTableDef_script) Move your TCA overrides to Configuration/TCA/Overrides of your project specific extension, or slot the signal "tcaIsBeingBuilt" for further processing.
* `DatabaseTreeDataProvider->emitDeprecatedPostProcessTreeDataSignal()` Update the signal name to TYPO3\\CMS\\Core\\Tree\\TableConfiguration\\DatabaseTreeDataProvider.
.. index:: PHP-API, TCA
@@ -0,0 +1,87 @@
.. include:: /Includes.rst.txt
.. _breaking-72438:
===========================================================
Breaking: #72438 - Remove deprecated code from FlashMessage
===========================================================
See :issue:`72438`
Description
===========
The deprecated :php:`render()` method has been removed.
Impact
======
Using the :php:`render()` method directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use calls to the :php:`render()` method.
Migration
=========
For FlashMessages that are displayed on top of a page you can replace the :php:`render()` method with code that enqueues the message to the FlashMessageService.
Replace
.. code-block:: php
$flashMessage = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Messaging\FlashMessage::class,
$message,
$title,
\TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
$content .= $flashMessage->render();
with
.. code-block:: php
$flashMessage = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Messaging\FlashMessage::class,
$message,
$title,
\TYPO3\CMS\Core\Messaging\FlashMessage::ERROR);
$flashMessageService = GeneralUtility::makeInstance(FlashMessageService::class);
$defaultFlashMessageQueue = $flashMessageService->getMessageQueueByIdentifier();
$defaultFlashMessageQueue->enqueue($flashMessage);
FlashMessages that are used as inline notification should be removed and replaced with custom HTML code.
For the core we have defined output and usage for messages:
1) FlashMessages
----------------
FlashMessages are designed to inform a user about success or failure of an action, which was **triggered** by the user.
Example: If the user deletes a record, a FlashMessage informs the user about success or failure.
This kind of information is not static, it is a temporary and volatile information and triggered by a user action.
Keep in mind that you **must not** use HTML markup here, since this information
might be shown in a context different from HTML, like processing it via Javascript or
showing the message on the command line.
2) Callouts (InfoBox-ViewHelper)
--------------------------------
Callouts are designed to display permanent information, a very good example is the usage in the Page-Module.
If a user opens a system folder with the page module, the callout explains: 'Hey, you try to use the page module on a sysfolder, please switch to the list module'.
This ViewHelper can also be used to show some help or instruction how to use a backend module.
3) Any other information
------------------------
For any other information e.g. a list of files which has changed, must be handled in the action / view of the module or plugin. This is not a use case for a FlashMessage or Callout!
Example: Display a list of a hundred files within a FlashMessage or Callout is a bad idea, build custom markup in the view to handle this kind of message.
.. index:: PHP-API, Frontend, Backend
@@ -0,0 +1,55 @@
.. include:: /Includes.rst.txt
.. _breaking-72451:
=================================================================
Breaking: #72451 - Removed deprecated code from backend functions
=================================================================
See :issue:`72451`
Description
===========
Removed deprecated code from backend functions
The following methods have been removed:
`ClickMenu::wrapColorTableCM`
`ClickMenu::excludeIcon`
`ContextMenuAction::getClass`
`ContextMenuAction::setClass`
`SuggestWizardDefaultReceiver::getIcon`
`BackendUserAuthentication::checkCLIuser`
`PageFunctionsController::printContent`
`InfoModuleController::printContent`
The following display condition option have been removed:
* Evaluates conditions concerning extensions
* Evaluates whether the field is a value for the default language.
The property `$OS` has been removed from `BackendUserAuthentication`
The property `$doc` has been removed from `InfoModuleController`
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use custom calls to one of the methods above.
Migration
=========
For property `$OS` use the constant TYPO3_OS directly.
.. index:: PHP-API, Backend
@@ -0,0 +1,46 @@
.. include:: /Includes.rst.txt
.. _breaking-72462:
=====================================================
Breaking: #72462 - Removed deprecated JavaScript code
=====================================================
See :issue:`72462`
Description
===========
Removed deprecated JavaScript code
The following JavaScript functions have been removed:
`showClickmenu_raw`
`Clickmenu.show`
`Clickmenu.populateData`
`ShortcutManager.createShortcut`
`jsfunc.tbe_editor.getBackendPath`
Impact
======
Using one of the methods above will result in JavaScript errors in the TYPO3 CMS backend.
Affected Installations
======================
Instances which use custom calls to one of the methods above.
Migration
=========
For `Clickmenu.show` use `TYPO3.ClickMenu` instead.
For `Clickmenu.populateData` use `TYPO3.ClickMenu` instead.
For `showClickmenu_raw` use `TYPO3.ClickMenu` instead.
For `ShortcutManager.createShortcut` use `TYPO3.ShortcutMenu` directly.
.. index:: JavaScript, Backend
@@ -0,0 +1,53 @@
.. include:: /Includes.rst.txt
.. _breaking-72464:
==============================================================
Breaking: #72464 - Removed deprecated code from EXT:workspaces
==============================================================
See :issue:`72464`
Description
===========
The following components have been changed during the development of TYPO3 CMS 7
and lead to deprecated code which is removed in TYPO3 CMS 8.
* remove rewritten toolbar item (:issue:`62800`)
* remove rewritten notification parts (:issue:`35245`)
Impact
======
Using or extending :php:`\TYPO3\CMS\Workspaces\ExtDirect\ToolbarMenu` will fail since
it has been removed.
Using :php:`\TYPO3\CMS\Workspaces\Service\StagesService::getNotificationMode($stageId)`
will fail.
Relying on the following database fields in the tables sys_workspace and
sys_workspace_stage will fail:
* sys_workspace.edit_notification_mode
* sys_workspace.publish_notification_mode
* sys_workspace.execute_notification_mode
* sys_workspace_stage.notification_mode
Affected Installations
======================
All installations using workspaces and notifications that have not been migrated
to TYPO3 CMS 7, yet.
Migration
=========
First migrate to TYPO3 CMS 7 and use the accordant upgrade wizard
(WorkspacesNotificationSettingsUpdate) and then upgrade to TYPO3 CMS 8.
.. index:: PHP-API, Backend, ext:workspaces
@@ -0,0 +1,53 @@
.. include:: /Includes.rst.txt
.. _breaking-72473:
=============================================================
Breaking: #72473 - Removed deprecated miscellaneous functions
=============================================================
See :issue:`72473`
Description
===========
Removed deprecated miscellaneous functions
The following methods have been removed:
`FlexFormTools::getAvailableLanguages`
`AbstractPlugin::pi_list_searchBox`
`ImportExportController::printContent`
`SearchFormController::checkExistance`
`SearchFormController::checkExistence`
`SchedulerModuleController::render`
`SchedulerModuleController::checkDate`
`SetupModuleController::printContent`
`TypoScriptTemplateModuleController::printContent`
`VersionModuleController::printContent`
Last parameter `addTofeInterface` for `ExtensionManagementUtility::addTCAcolumns` has been removed.
The following options in the Install Tool have been removed:
`FE\strictFormmail`
`FE\secureFormmail`
`FE\formmailMaxAttachmentSize`
`SC_OPTIONS\GLOBAL\softRefParser_GL'`
Impact
======
Using the methods above directly in any third party extension will result in a fatal error.
Using one of the options from the Install Tool won't have any effect anymore.
Affected Installations
======================
Instances which use one of the methods above or use one of the removed Install Tool options.
.. index:: PHP-API
@@ -0,0 +1,33 @@
.. include:: /Includes.rst.txt
.. _breaking-72474:
========================================================
Breaking: #72474 - RequestHandler only works with Routes
========================================================
See :issue:`72474`
Description
===========
The default backend RequestHandler had a fallback that triggered the backend initialization without having
a `&route=` request parameter set. This was used for the transition when deprecating the traditional entry-scripts. The
logic has been removed.
Impact
======
Any regular backend request (non-module and non-AJAX) will now require a
`&route=` request parameter, otherwise will fallback to the default route
(login) when not provided.
Migration
=========
For all backend-related calls, either use a custom RequestHandler or switch to Backend Routing.
.. index:: Backend, PHP-API
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-72476:
================================================================
Breaking: #72476 - PHP Constant TYPO3_PROCEED_IF_NO_USER removed
================================================================
See :issue:`72476`
Description
===========
The PHP constant `TYPO3_PROCEED_IF_NO_USER` has been removed.
Impact
======
Any checks on this constant will result in a fatal PHP error.
Any definition in custom entry-scripts of extensions will have no effect anymore.
Affected Installations
======================
Installations with custom entry-points for the TYPO3 Backend.
Migration
=========
Use a custom RequestHandler, the Backend Routing, AJAX Registration or the Module Configuration for skipping the user authentication when necessary.
.. index:: PHP-API
@@ -0,0 +1,35 @@
.. include:: /Includes.rst.txt
.. _breaking-72492:
=========================================
Breaking: #72492 - Removed XHTML2 support
=========================================
See :issue:`72492`
Description
===========
The support for XHTML2 documents in the TYPO3 Frontend has been removed.
Impact
======
The TypoScript option `config.doctype = xhtml_2` has no effect anymore.
Affected Installations
======================
Any TYPO3 instance using XHTML2 for frontend rendering.
Migration
=========
Disable all header code and set your own doctype.
.. index:: Frontend, TypoScript
@@ -0,0 +1,29 @@
.. include:: /Includes.rst.txt
.. _breaking-72493:
=========================================================
Breaking: #72493 - Removed TypoScript property page.bgImg
=========================================================
See :issue:`72493`
Description
===========
The TypoScript property `page.bgImg` has been removed.
Impact
======
The option has no effect anymore and will not be evaluated anymore.
Migration
=========
Use the TypoScript property `page.bodyTagCObject` instead.
.. index:: TypoScript, Frontend
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-72497:
================================================================
Breaking: #72497 - Removed recode support for Charset Conversion
================================================================
See :issue:`72497`
Description
===========
The support for GNU-recode when converting from one charset to another has been dropped. The CharsetConverter
now only supports `mbstring`. In case `mbstring` is not present a polyfill will kick in.
Impact
======
Setting `$TYPO3_CONF_VARS[SYS][t3lib_cs_convMethod] = 'recode';` will have no effect anymore.
Conversion is then done through the default TYPO3-internal conversion.
Affected Installations
======================
Installations that have the option `$TYPO3_CONF_VARS[SYS][t3lib_cs_convMethod]` set to `recode`.
Migration
=========
No migration.
.. index:: PHP-API, LocalConfiguration
@@ -0,0 +1,52 @@
.. include:: /Includes.rst.txt
.. _breaking-72572:
=============================================================================
Breaking: #72572 - Remove more deprecated miscellaneous functions and options
=============================================================================
See :issue:`72572`
Description
===========
Removed more deprecated miscellaneous functions and options:
* Linking to a php file directly in `ClickMenu` has been removed.
* Functionality of `$TBE_STYLES['background']` has been removed.
* The option `DocumentTemplate->JScodeLibArray` has been removed.
* The option `$TYPO3_CONF_VARS[SYS][displayErrors]` set to "2" will throw an exception.
* The deprecated icons fallback for `actions-system-refresh` and `actions-system-extension-update-disabled` has been removed.
* An extension may not refer to `ext:cms` in composer.json or ext_emconf.php file. The fallback has been removed.
* The method `loadNewTcaColumnsConfigFiles` has been removed.
* Usage of the field "static_lang_isocode" has stopped working. Use the built-in language field "language_isocode" in sys_language records.
Impact
======
Using one of the mentioned options or methods will result in a fatal error or won't have any effect anymore.
Registration of `TCA` within `ext_tables.php` now finally stops working and
code to resolve `dynamicConfigFile` option from `TCA` has been removed.
Extensions still relying on this will fail.
Affected Installations
======================
Instances which use one of the methods above or use one of the removed options.
Migration
=========
For `DocumentTemplate->JScodeLibArray` use PageRenderer instead.
If the option `$TYPO3_CONF_VARS[SYS][displayErrors]` is set to "2" use "-1" instead.
All table definitions should be moved to <your_extension>/Configuration/TCA/<table_name>
.. index:: PHP-API, TCA, Backend, LocalConfiguration
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _breaking-72602:
==============================================
Breaking: #72602 - Removed unzip functionality
==============================================
See :issue:`72602`
Description
===========
The legacy functionality to unzip files from outside the document root has been removed.
Additionally, the corresponding option `$TYPO3_CONF_VARS[BE][unzip_path]` and
the class member `ExtendedFileUtility::$unzipPath` have been removed as well.
Legacy methods from the Extbase domain model BackendUser named `isFileUnzipAllowed`
and `setFileUnzipAllowed` have been removed.
Impact
======
Calling the entry point `FileController` using unzip action will have no effect anymore.
Using the Extbase domain model methods will result in a fatal PHP error.
Migration
=========
Use a third-party extension to integrate unzip functionality into TYPO3.
.. index:: PHP-API, LocalConfiguration, Backend
@@ -0,0 +1,23 @@
.. include:: /Includes.rst.txt
.. _breaking-72604:
==================================================
Breaking: #72604 - Remove option maxFileNameLength
==================================================
See :issue:`72604`
Description
===========
The option `$TYPO3_CONF_VARS[SYS][maxFileNameLength]` was removed.
Impact
======
Using the option will have no effect anymore.
.. index:: LocalConfiguration
@@ -0,0 +1,40 @@
.. include:: /Includes.rst.txt
.. _breaking-72661:
======================================================
Breaking: #72661 - RTE Transformation ts_strip removed
======================================================
See :issue:`72661`
Description
===========
The Rich Text Editor transformation that removes all HTML tags except a hard-coded white-list of allowed
HTML tags when saving data from the RTE to the database - called `ts_strip` - has been removed.
Impact
======
Using the command `ts_strip` in the list of transformations via PageTSconfig or TCA directly will result in keeping
the HTML tags inside the database.
Affected Installations
======================
TYPO3 installations that use `ts_strip` explicitly in their TSconfig options, or instances with extensions that set this
option.
Migration
=========
Use TSconfig options like `RTE.default.removeTags` to specify which tags should be removed when saving data
to the database, or even better `RTE.default.proc.allowTags` which tags are whitelisted to the database together
with the default RTE processing command `ts_css`.
.. index:: TSConfig, Backend, RTE
@@ -0,0 +1,30 @@
.. include:: /Includes.rst.txt
.. _breaking-72666:
=========================================================
Breaking: #72666 - RTE: Remove relative path calculations
=========================================================
See :issue:`72666`
Description
===========
Since the removal of the feature editing static files with the Rich Text Editor (option "static_file_edit"), the path calculations for files
within the HtmlParser including the method `RteHtmlParser->setRelPath()` have been removed as well.
Impact
======
Using the method `RteHtmlParser->setRelPath()` will result in a fatal PHP error.
Affected Installations
======================
Any installations with custom RTE transformations that use a custom implementation of the RteHtmlParser PHP class.
.. index:: PHP-API, Backend, RTE
@@ -0,0 +1,40 @@
.. include:: /Includes.rst.txt
.. _breaking-72667:
=======================================================
Breaking: #72667 - RTE: Unused internal methods removed
=======================================================
See :issue:`72667`
Description
===========
The HTML parsing features for the Rich Text Editor feature related to
xhtml_cleaning have been removed. The following now obsolete methods have been
removed as well:
* `HtmlParser->checkTagTypeCounts()`
* `HtmlParser->unprotectTags()`
* `HtmlParser->get_tag_attributes_classic()`
* `HtmlParser->cleanFontTags()`
* `HtmlParser->indentLines()`
Additionally, the third parameter for the method `HtmlParser->getAllParts()` has been removed, resulting that the method will always include
the parsed tags in the result set.
Impact
======
Calling any of the methods will result in a fatal PHP error.
Affected Installations
======================
Any installation which uses a third-party extension that modifies the HtmlParsing via PHP.
.. index:: PHP-API, Backend, RTE
@@ -0,0 +1,24 @@
.. include:: /Includes.rst.txt
.. _breaking-72671:
===================================================
Breaking: #72671 - Extension "aboutmodules" removed
===================================================
See :issue:`72671`
Description
===========
The system extension "aboutmodules" has been removed, as all functionality has been
moved to the system extension "about".
Impact
======
It is not possible to have just "aboutmodules" or "about" installed without having the other module show as well.
.. index:: PHP-API, Backend, ext:about
@@ -0,0 +1,47 @@
.. include:: /Includes.rst.txt
.. _breaking-72686:
================================================
Breaking: #72686 - Removed RteHtmlParser methods
================================================
See :issue:`72686`
Description
===========
The following methods within `RteHtmlParser` have been removed without substitution:
* `RteHtmlParser->siteUrl()`
* `RteHtmlParser->getUrl()`
The second method parameter of the following methods have been removed as they have no effect anymore:
* `RteHtmlParser->HTMLcleaner_db()`
* `RteHtmlParser->getKeepTags()`
Impact
======
Calling either `RteHtmlParser->siteUrl()` or `RteHtmlParser->getUrl()` will result in a PHP fatal error.
Calling `RteHtmlParser->HTMLcleaner_db()` or `RteHtmlParser->getKeepTags()` with a second parameter will have no effect anymore.
Affected Installations
======================
TYPO3 instances which use RteHtmlParser methods directly within a third-party extension for HTML transformation.
Migration
=========
Use `GeneralUtility::getUrl()` instead of `RteHtmlParser->getUrl()`.
Use `GeneralUtility::getIndpEnv('TYPO3_SITE_URL')` instead of `RteHtmlParser->siteUrl()`.
.. index:: PHP-API, RTE
@@ -0,0 +1,41 @@
.. include:: /Includes.rst.txt
.. _breaking-72701:
===============================================================
Breaking: #72701 - Remove unused properties in DocumentTemplate
===============================================================
See :issue:`72701`
Description
===========
Remove deprecated code from DocumentTemplate
The following properties have been removed:
`tableLayout`
`table_TR`
`table_TABLE`
Impact
======
Using the properties above directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use calls to any of the above mentioned properties.
Migration
=========
No migration available.
.. index:: PHP-API, Backend
@@ -0,0 +1,35 @@
.. include:: /Includes.rst.txt
.. _breaking-72711:
=============================================================
Breaking: #72711 - Remove property strict in TypoScriptParser
=============================================================
See :issue:`72711`
Description
===========
The property `strict` of `\TYPO3\CMS\Core\TypoScript\Parser\TypoScriptParser` has been removed.
Impact
======
Using the property directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which call the above mentioned property.
Migration
=========
No migration available.
.. index:: PHP-API
@@ -0,0 +1,44 @@
.. include:: /Includes.rst.txt
.. _breaking-72783:
===================================================================
Breaking: #72783 - Removed RTE transformation option preserveTables
===================================================================
See :issue:`72783`
Description
===========
The RTE transformation option `preserveTables` that allowed keeping HTML table
tags and their contents has been removed.
Additionally, the methods `RteHtmlParser->removeTables` and `HtmlParser->getAllParts` have been removed
without substitution.
Impact
======
When the RTE is configured to use `overruleMode = ts` instead of the default "ts_css" the
option `RTE.default.proc.preserveTables = 1` will have no effect anymore.
Calling `RteHtmlParser->removeTables` or `HtmlParser->getAllParts` inside a custom extension will result in a fatal PHP error.
Affected Installations
======================
Any TYPO3 instance with a legacy-mode (overruleMode = ts) from TYPO3 3.x or an extension doing custom transformations
by using `RteHtmlParser->removeTables`.
Migration
=========
Use the overruleMode `ts_css` instead which keeps the tables as they are. If tables should be disallowed inside the RTE
the option `RTE.default.proc.denyTags := addToList(table)` can be used instead.
.. index:: PHP-API, RTE, TSConfig
@@ -0,0 +1,59 @@
.. include:: /Includes.rst.txt
.. _breaking-72826:
===================================================================
Breaking: #72826 - Removed custom charset configuration for locales
===================================================================
See :issue:`72826`
Description
===========
The TYPO3 Frontend resolved the TypoScript option `config.locale_all` and stored the charset part within
`$TSFE->localeCharset`. If the option `locale_all` did not provide a charset (e.g. when it is set to `de_AT`
instead of `de_AT.UTF-8` a "best guess" was done based on a static list set up in 2004.
The option `$TSFE->localeCharset` has been removed, along with the following calculation options and methods
available in the CharsetConverter class:
* CharsetConverter->lang_to_script
* CharsetConverter->script_to_charset_unix
* CharsetConverter->script_to_charset_windows
* CharsetConverter->locale_to_charset
* CharsetConverter->get_locale_charset()
The localeCharset option was solely used within the TypoScript functionality `stdWrap.strftime` when no
custom character set was given, and a character set conversion from the "localeCharset" (based on the best guess
or explicitly set via `config.locale_all = de_AT.UTF-8` and it was different than the renderCharset option of
the TYPO3 Frontend.
Impact
======
When custom locales are configured in TypoScript which are not present on the server, or the character set of
`config.locale_all` differs from the `config.renderCharset`, or `config.locale_all` does not set a character set,
could lead to unexpected output in the TYPO3 Frontend.
Affected Installations
======================
Instances which have a different `config.locale_all` character set given than set via `config.renderCharset`, or on
servers that don't have the charset of the locale available but the output should be a certain but not given character set.
Migration
=========
As this is a misconfiguration and only necessary if e.g. can not handle UTF-8 locales, `config.set_locale` can explicitly
be set to `de_AT@iso-8859-15` and the output should be renderCharset. On instances where `stdWrap.strftime` is used,
the subproperty `charset` can be set to the custom character set (e.g. `iso-8859-15`).
In each case, it should be configured that the `config.locale_all` option should have a character set given, to avoid
any side-effects with the TypoScript stdWrap option `strftime`.
.. index:: PHP-API, TypoScript, Frontend
@@ -0,0 +1,40 @@
.. include:: /Includes.rst.txt
.. _breaking-72830:
===========================================================================
Breaking: #72830 - Removed deprecated RTE transformations ts & ts_transform
===========================================================================
See :issue:`72830`
Description
===========
The transformation option "ts" and "ts_transform" are outdated since the
introduction of CSS Styled Content and have been removed from the TYPO3 Core.
The two related PHP methods `TS_transform_rte` and `TS_transform_db` had the
second method parameter dropped.
Impact
======
Setting the TSconfig option `RTE.proc.overruleMethod = ts` or `RTE.proc.overruleMethod = ts_transform` will result
in not having any transformation applied to the content anymore.
Affected Installations
======================
Any installation with custom RTE transformation options to render legacy HTML code.
Migration
=========
Use `ts_css` instead, which is set by default since TYPO3 4.0.
.. index:: TSConfig, Frontend, RTE
@@ -0,0 +1,43 @@
.. include:: /Includes.rst.txt
.. _breaking-72837:
======================================================================================================
Breaking: #72837 - RTE transformations: Allow div sections by default and remove font-specific parsing
======================================================================================================
See :issue:`72837`
Description
===========
The TSconfig `RTE.default.proc` options `preserveDIVSections` and `allowedFontColors` for transforming data between the Rich
Text Editor and the database have been removed.
The `preserveDIVSections` option is now built-in by default "always on", and DIV tags are always treated as block elements.
Special handling for `<font>` tags is done via the regular tag processing options like any other tag.
Impact
======
Setting the TSconfig option `RTE.default.proc.preserveDIVSections = 0` or `RTE.default.proc.allowedFontColors` will have no effect anymore.
Affected Installations
======================
Any installation using custom TSconfig configurations for the RTE and using `RTE.default.proc.preserveDIVSections` set to 0 or `RTE.default.proc.allowedFontColors` to any value.
Migration
=========
If DIV HTML elements should not treated like block elements, the RTE option `RTE.proc.blockElementList` can be manually
customized to not include DIV elements.
If the option `allowedFontColors` is still needed, the existing functionality can be achieved by using the `keepTags` functionality to sort out correct values for a property.
.. index:: TSConfig, Backend, RTE
@@ -0,0 +1,116 @@
.. include:: /Includes.rst.txt
.. _breaking-72853:
=================================================
Breaking: #72853 - Remove unused Images from core
=================================================
See :issue:`72853`
Description
===========
A lot of unused images from the core have been removed.
Although it is not a good style, some extensions use references to one or more files.
Impact
======
References to the images listed below can throw a 404 not found.
Deleted images:
.. code-block:: none
typo3/sysext/backend/Resources/Public/Images/Overlay/default.gif
typo3/sysext/backend/Resources/Public/Images/Overlay/overlay_deleted.gif
typo3/sysext/backend/Resources/Public/Images/Overlay/overlay_group.gif
typo3/sysext/backend/Resources/Public/Images/Overlay/overlay_hidden.gif
typo3/sysext/backend/Resources/Public/Images/Overlay/overlay_hidden_timing.gif
typo3/sysext/backend/Resources/Public/Images/Overlay/overlay_no_icon_found.gif
typo3/sysext/backend/Resources/Public/Images/Overlay/overlay_sub5.gif
typo3/sysext/backend/Resources/Public/Images/Overlay/overlay_timing.gif
typo3/sysext/filemetadata/Resources/Public/Icons/status_1.png
typo3/sysext/filemetadata/Resources/Public/Icons/status_2.png
typo3/sysext/filemetadata/Resources/Public/Icons/status_3.png
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/bullet_list.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/div.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/filelinks.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/html.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/images_only.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/login_form.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/mailform.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/multimedia.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/regular_header.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/regular_text.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/searchform.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/shortcut.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/sitemap.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/sitemap2.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/table.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/text_image_below.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/text_image_right.gif
typo3/sysext/frontend/Resources/Public/Icons/ContentElementWizard/user_defined.gif
typo3/sysext/frontend/Resources/Public/Icons/ImageOrientation/above_center.gif
typo3/sysext/frontend/Resources/Public/Icons/ImageOrientation/above_left.gif
typo3/sysext/frontend/Resources/Public/Icons/ImageOrientation/above_right.gif
typo3/sysext/frontend/Resources/Public/Icons/ImageOrientation/below_center.gif
typo3/sysext/frontend/Resources/Public/Icons/ImageOrientation/below_left.gif
typo3/sysext/frontend/Resources/Public/Icons/ImageOrientation/below_right.gif
typo3/sysext/frontend/Resources/Public/Icons/ImageOrientation/intext_left.gif
typo3/sysext/frontend/Resources/Public/Icons/ImageOrientation/intext_left_nowrap.gif
typo3/sysext/frontend/Resources/Public/Icons/ImageOrientation/intext_right.gif
typo3/sysext/frontend/Resources/Public/Icons/ImageOrientation/intext_right_nowrap.gif
typo3/sysext/frontend/Resources/Public/Images/wizard_backend_layout.png
typo3/sysext/opendocs/Resources/Public/Icons/opendocs.png
typo3/sysext/opendocs/Resources/Public/Images/toolbar_item_active_bg.png
typo3/sysext/tstemplate/Resources/Public/gfx/BUG_basic.gif
typo3/sysext/tstemplate/Resources/Public/gfx/BUG_menu.gif
typo3/sysext/tstemplate/Resources/Public/gfx/BUG_menu2.gif
typo3/sysext/tstemplate/Resources/Public/gfx/BUSINESS_basic.gif
typo3/sysext/tstemplate/Resources/Public/gfx/BUSINESS_menu.gif
typo3/sysext/tstemplate/Resources/Public/gfx/CANDIDATE_basic.gif
typo3/sysext/tstemplate/Resources/Public/gfx/CANDIDATE_menu.gif
typo3/sysext/tstemplate/Resources/Public/gfx/CANDIDATE_page.gif
typo3/sysext/tstemplate/Resources/Public/gfx/CrCPH_basic.gif
typo3/sysext/tstemplate/Resources/Public/gfx/FIRST_basic.gif
typo3/sysext/tstemplate/Resources/Public/gfx/FIRST_menu.gif
typo3/sysext/tstemplate/Resources/Public/gfx/GLCK_basic.gif
typo3/sysext/tstemplate/Resources/Public/gfx/GLCK_columns.gif
typo3/sysext/tstemplate/Resources/Public/gfx/GLCK_menu.gif
typo3/sysext/tstemplate/Resources/Public/gfx/GREEN_basic.gif
typo3/sysext/tstemplate/Resources/Public/gfx/GREEN_menu.gif
typo3/sysext/tstemplate/Resources/Public/gfx/GREEN_menu2.gif
typo3/sysext/tstemplate/Resources/Public/gfx/GREEN_menu3.gif
typo3/sysext/tstemplate/Resources/Public/gfx/HYPER_basic.gif
typo3/sysext/tstemplate/Resources/Public/gfx/HYPER_menu.gif
typo3/sysext/tstemplate/Resources/Public/gfx/HYPER_menu2.gif
typo3/sysext/tstemplate/Resources/Public/gfx/HYPER_page.gif
typo3/sysext/tstemplate/Resources/Public/gfx/HYPER_toptitle.gif
typo3/sysext/tstemplate/Resources/Public/gfx/MM_basic.gif
typo3/sysext/tstemplate/Resources/Public/gfx/MM_menu.gif
typo3/sysext/tstemplate/Resources/Public/gfx/MM_right.gif
typo3/sysext/tstemplate/Resources/Public/gfx/NEWSLETTER_basic.gif
typo3/sysext/tstemplate/Resources/Public/gfx/RE_basic.gif
typo3/sysext/tstemplate/Resources/Public/gfx/RE_leftmenu.gif
typo3/sysext/tstemplate/Resources/Public/gfx/RE_menu.gif
typo3/sysext/tstemplate/Resources/Public/gfx/RE_top.gif
typo3/sysext/tstemplate/Resources/Public/gfx/TU_basic.gif
typo3/sysext/tstemplate/Resources/Public/gfx/TU_menu.gif
Affected Installations
======================
Installations or extensions which have references to this images.
Migration
=========
No migration
.. index:: Frontend, Backend
@@ -0,0 +1,53 @@
.. include:: /Includes.rst.txt
.. _breaking-72861:
====================================================
Breaking: #72861 - EXT:form - Remove deprecated code
====================================================
See :issue:`72861`
Description
===========
The compatibility layer of EXT:form has been removed. The layer made sure that
EXT:form acts almost like in TYPO3 6.2. This mainly applies to the layout
configuration and rendering. In the former days integrators could use `.layout`
settings on different levels to change the output of the form elements in the
frontend. Nowadays, changing the frontend output is only possible by utilizing own
fluid templates.
Furthermore the SELECT, TEXTAREA and TEXTBLOCK elements have been adjusted. The
automatic transformation of the `.data` (SELECT, TEXTAREA) and `.content`
(TEXTBLOCK) attribute has been removed. That way `.text` is the only valid
attribute for adding a human readable text to the above mentioned elements.
Impact
======
Using `.layout` will have no effect anymore.
Using the `.data` attribute for SELECT, TEXTAREA and `.content` for TEXTBLOCK
elements will also have no effect.
Affected Installations
======================
Any installation using `.layout` and/ or `.data` and/ or `.content` settings.
Most of the older installations (mainly 6.2 LTS) will be affected when upgrading to
8 LTS.
Migration
=========
All `.layout` settings have to be removed and ported to own fluid templates.
All occurrences of the `.data` and `.content` attribute have to be substituted
by `.text`.
.. index:: TypoScript, ext:form
@@ -0,0 +1,32 @@
.. include:: /Includes.rst.txt
.. _breaking-72866:
==================================================================================
Breaking: #72866 - Removed RTE processing option to use div tags instead of p tags
==================================================================================
See :issue:`72866`
Description
===========
The Rich Text Editor TSconfig processing instructions `RTE.default.proc.useDIVasParagraphTagForRTE` and
`RTE.default.proc.remapParagraphTag` have been removed.
The Rich Text Editor is now always getting HTML content wrapped with <p> tags instead of the optional <div> tags.
Impact
======
Using any of the options above will have no effect anymore.
Affected Installations
======================
TYPO3 instances with custom Rich Text Editors (EXT:rtehtmlarea is not affected).
.. index:: TSConfig, Frontend, Backend, RTE
@@ -0,0 +1,43 @@
.. include:: /Includes.rst.txt
.. _breaking-72870:
==========================================================================
Breaking: #72870 - Removed RTE transformation ts_preserve and preserveTags
==========================================================================
See :issue:`72870`
Description
===========
The RTE configuration TSconfig option `RTE.default.proc.preserveTags` to preserve special tags has been removed.
The RTE transformation mode "ts_preserve" to change special preserved tags and migrate to <span> tags has been removed.
The according methods `TS_preserve_db` and `TS_preserve_rte` within RteHtmlParser have been removed.
Impact
======
Setting the TSconfig option or the RTE transformation mode has no effect anymore.
Calling the removed PHP methods directly will result in fatal PHP errors.
Affected Installations
======================
TYPO3 instances with custom RTE transformations using the removed "ts" transformation mode, or a custom transformation mode.
Migration
=========
Use the RTE processing option `RTE.default.proc.allowTags` to include the tags without rewriting them to custom <span> tags.
If special handling is still necessary, an existing hook can be used to re-implement the logic.
.. index:: TSConfig, Backend, RTE
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-72888:
===========================================================
Breaking: #72888 - Removed HtmlParser mapTags functionality
===========================================================
See :issue:`72888`
Description
===========
The functionality to map tags explicitly from the HtmlParser code has been removed:
* `HtmlParser::mapTags()`
* `RteHtmlParser::defaultTStagMapping()`
Impact
======
Calling one of the two methods above will result in a PHP fatal error.
Affected Installations
======================
Any installation using custom RTE transformation and wanting to remap tags while parsing HTML.
Migration
=========
Use the "remap" functionality of the `keepTags` logic within HtmlParser to achieve the same in custom transformations.
.. index:: PHP-API, RTE
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-72889:
==================================================================================
Breaking: #72889 - Removed RteHtmlParser htmlspecialchars() transformation options
==================================================================================
See :issue:`72889`
Description
===========
The TSconfig options `RTE.default.proc.dontHSC_rte` and `RTE.default.proc.dontUndoHSC_db` have been removed from the TYPO3 Core.
Impact
======
Setting these options has no effect anymore.
Affected Installations
======================
Any installation using these options for properly applying htmlspecialchars() to the RTE content when cleaning the HTML
input from an RTE and vice versa.
Migration
=========
Use `entryHtmlParser` and `exitHtmlParser` to apply htmlspecialchars while transforming content from the RTE or to the RTE.
.. index:: TSConfig, Backend, RTE
@@ -0,0 +1,32 @@
.. include:: /Includes.rst.txt
.. _breaking-72897:
====================================================================
Breaking: #72897 - RteHtmlParser: Dropped ts_reglinks transformation
====================================================================
See :issue:`72897`
Description
===========
The RTE transformation mode `ts_reglinks` which transforms relative links to absolute links when using the Rich Text Editor
has been removed, along with the according PHP method `RteHtmlParser->TS_reglinks()`.
Impact
======
Using the transformation mode, set via TCA or TSconfig (`RTE.default.proc.mode = ts_reglinks`) will have no effect anymore.
Calling the PHP method will result in a PHP fatal error.
Affected Installations
======================
Any installation using obsolete transformation mode or special RTE transformations.
.. index:: TSConfig, Backend, RTE
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-73044:
================================================
Breaking: #73044 - JSON for ClickMenu in Backend
================================================
See :issue:`73044`
Description
===========
The ClickMenu in the TYPO3 Backend now uses JSON to transport data between the server and the client.
Before, a proprietary <t3ajax> syntax with XML was used to transport the contents of the ClickMenu.
Impact
======
Using ClickMenu to implement a custom ClickMenu JavaScript handler instead of the default ClickMenu.js could result in
unexpected behaviour.
Affected Installations
======================
Installations with extensions that use custom ClickMenu.js behaviour.
Migration
=========
Adapt the custom code to handle JSON responses instead of XML responses.
.. index:: JavaScript, Backend
@@ -0,0 +1,47 @@
.. include:: /Includes.rst.txt
.. _breaking-73046:
===================================================================================
Breaking: #73046 - Alias AbstractNode -> ViewHelperNode for backwards compatibility
===================================================================================
See :issue:`73046`
Description
===========
`ViewHelperInterface::compile()` in standalone Fluid now requires an actual `ViewHelperNode` instead of `AbstractNode` as it was before.
The reason for changing this should be fairly obvious. In order to preserve signature compatibility an alias is put in place.
The alias is created so that `TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\AbstractNode` becomes an alias of `TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\ViewHelperNode`.
This is obviously less than ideal but solves the problem immediately and prioritises not breaking the public API by breaking the non-public API.
Impact
======
This signature change means that ViewHelpers which implement a custom `compile()` method must update their signature (does not apply to ViewHelpers implementing
only renderStatic). Two ViewHelpers in TYPO3 CMS Fluid were migrated as part of the standalone Fluid
merge - but third-party ViewHelpers would require either migration or an alias.
* Overridden TemplateParsers (before standalone Fluid merge) might not work, depending on the nature of overrides (conditions
checking class names may fail)
* Custom Nodes (implemented via an overridden TemplateParser, before standalone Fluid) would break either in function or form
(incompatible constructor signatures on PHP7 at least)
Affected Installations
======================
Any TYPO3 site using an extension which replaces or directly interacts with TemplateParser or TemplateCompiler from Fluid. Only
known affected community extension is at this point EXT:builder, specifically the template validation/analysis feature.
Migration
=========
Change any reference to classes in `TYPO3\CMS\Fluid\Core\TemplateParser` to `TYPO3Fluid\Fluid\Core\TemplateParser`.
.. index:: PHP-API, Fluid
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-73106:
==============================================================
Breaking: #73106 - Convert thumbnails only for non-image files
==============================================================
See :issue:`73106`
Description
===========
`$TYPO3_CONF_VARS[GFX][thumbnails_png]` must be taken into account only for non-image files.
Impact
======
`$TYPO3_CONF_VARS[GFX][thumbnails_png]` is now a boolean value. If the value is true, the processed
thumbnails that are not an image will be converted in png, otherwise these will be converted to gif.
It is not possible anymore to convert the processed thumbnails that are png or gif to jpg files.
Affected Installations
======================
Installations who have set the value of `$TYPO3_CONF_VARS[GFX][thumbnails_png]` to 2 or 3.
Migration
=========
The install tool automatically sets the value of `$TYPO3_CONF_VARS[GFX][thumbnails_png]` to true,
if it has been set to 1, 2 or 3 previously.
.. index:: LocalConfiguration
@@ -0,0 +1,56 @@
.. include:: /Includes.rst.txt
.. _breaking-73152:
===================================================
Breaking: #73152 - Symfony console helpers replaced
===================================================
See :issue:`73152`
Description
===========
By upgrading to Symfony Console 3.x the `DialogHelper`, `ProgressHelper` and
`TableHelper` have been replaced. The internal getter methods for these classes
have been replaced in Extbase `ConsoleOutput`.
Impact
======
Calling the following methods with result in a fatal error:
- `ConsoleOutput::getDialogHelper()`
- `ConsoleOutput::getProgressHelper()`
- `ConsoleOutput::getTableHelper()`
The 2nd argument of the following methods is ignored now:
- `ConsoleOutput::progressAdvance()`
- `ConsoleOutput::progressSet()`
Affected Installations
======================
Extensions which have directly called these methods in favor of the Extbase
`ConsoleOutput` helper methods.
Migration
=========
Use the following methods instead:
- `ConsoleOutput::getQuestionHelper()`
- `ConsoleOutput::getProgressBar()`
- `ConsoleOutput::getTable()`
Remove the 2nd argument when calling these methods:
- `ConsoleOutput::progressAdvance()`
- `ConsoleOutput::progressSet()`
.. index:: PHP-API, Backend, CLI
@@ -0,0 +1,29 @@
.. include:: /Includes.rst.txt
.. _breaking-73445:
=================================================================
Breaking: #73445 - Remove flashmessage_compatibility.js from core
=================================================================
See :issue:`73445`
Description
===========
The `flashmessage_compatibility.js` has been removed from the core.
Impact
======
Extensions which make use of :js:`TYPO3.Flashmessage` JavaScript function will not work anymore.
Migration
=========
Use :js:`top.TYPO3.Notification.*` to create flash messages within JavaScript for the TYPO3 backend.
.. index:: JavaScript, Backend
@@ -0,0 +1,35 @@
.. include:: /Includes.rst.txt
.. _breaking-73504:
===============================================
Breaking: #73504 - Make TimeTracker a singleton
===============================================
See :issue:`73504`
Description
===========
The class `\TYPO3\CMS\Core\TimeTracker\TimeTracker` has been marked as singleton and is no longer stored in `$GLOBALS['TT']`.
Impact
======
Using methods of `$GLOBALS['TT']` will result in a fatal error.
Affected Installations
======================
All installations or 3rd party extensions using `$GLOBALS['TT']`.
Migration
=========
Use `\TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\TimeTracker\TimeTracker::class)` instead.
.. index:: PHP-API
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-73514:
============================================================
Breaking: #73514 - TypoScript property "includeLibs" removed
============================================================
See :issue:`73514`
Description
===========
The TypoScript property to load additional PHP libraries via `.includeLibs` has been removed from the Content
Objects `COA/COA_INT` and `USER/USER_INT`.
Impact
======
Setting the `.includeLibs` property will have no effect anymore.
Affected Installations
======================
Any installation using a very old pi_based extension that does not ship proper class naming or autoloading
information.
Migration
=========
Make sure everything that was previously loaded via includeLibs is now encapsulated in proper PHP classes,
which is referenced by USER/USER_INT when needed.
.. index:: PHP-API, TypoScript
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-73516:
==============================================================================================
Breaking: #73516 - GeneralUtility::getFileAbsFileName allows for typo3/ maindir specific paths
==============================================================================================
See :issue:`73516`
Description
===========
The PHP method `GeneralUtility::getFileAbsFileName` used for resolving absolute paths has the option removed to only
resolve relative paths or paths to the typo3/ main directory.
Impact
======
The two removed parameters are not evaluated anymore, thus always resolving any path, and additionally
always relative to the `PATH_site` variable (the installations' base directory).
Affected Installations
======================
Any installation with an extension using the removed options to fetch data relative to the typo3/ directory.
Migration
=========
Use the `EXT:` syntax everywhere to resolve files within extension directories. If the path relative to the
typo3/ main directory is explicitly needed, the constant `TYPO3_mainDir` can be used as a prefix to the file.
.. index:: PHP-API, TypoScript
@@ -0,0 +1,40 @@
.. include:: /Includes.rst.txt
.. _breaking-73602:
===================================================
Breaking: #73602 - Short-URL without ?id=ID removed
===================================================
See :issue:`73602`
Description
===========
The support for resolving URLs using `index.php?23` instead of `index.php?id=23` with no real GET parameter given
has been removed.
The method `$TSFE->setIDfromArgV()` has been removed as well.
Impact
======
Calling a frontend page with the short-handed URL will result in not detecting a page ID at all.
Calling `$TSFE->setIDfromArgV()` directly within PHP will result in a fatal PHP error.
Affected Installations
======================
Any TYPO3 installation with an extension using the pre-4.0 syntax.
Migration
=========
Use the proper `index.php?id=23` when using URLs to be called in the frontend.
.. index:: PHP-API, Frontend
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-73611:
===================================================================
Breaking: #73611 - Removed ResourceCompressor relative path methods
===================================================================
See :issue:`73611`
Description
===========
The methods `ResourceCompressor::setInitialPaths()` and `ResourceCompressor::setRelativePath()` have been removed.
Impact
======
Calling one of the methods above will result in a fatal PHP error.
Affected Installations
======================
Any TYPO3 instance with custom extensions manually using the ResourceCompressor instead of using the PageRenderer API.
Migration
=========
Simply remove the methods from the affected code, as these methods are not needed anymore. All calculations
for the paths are now done automatically.
.. index:: PHP-API
@@ -0,0 +1,24 @@
.. include:: /Includes.rst.txt
.. _breaking-73655:
=================================
Breaking: #73655 - PHP 7 required
=================================
See :issue:`73655`
Description
===========
TYPO3 CMS 8 requires PHP 7. The system will exit with a message if this
requirement is not fulfilled.
Migration
=========
Upgrade to at least PHP 7.0.0.
.. index:: PHP-API
@@ -0,0 +1,77 @@
.. include:: /Includes.rst.txt
.. _breaking-73698:
=====================================================
Breaking: #73698 - Streamline layout of FlashMessages
=====================================================
See :issue:`73698`
Description
===========
The layout and usage of FlashMessages has been streamlined in the TYPO3 backend.
All FlashMessages in the TYPO3 backend are now rendered as <div> markup and
contain an icon, the message and an optional title.
Example:
.. code-block:: html
<div class="alert alert-danger">
<div class="media">
<div class="media-left">
<span class="fa-stack fa-lg">
<i class="fa fa-circle fa-stack-2x"></i>
<i class="fa fa-times fa-stack-1x"></i>
</span>
</div>
<div class="media-body">
<h4 class="alert-title">The optional title</h4>
<p class="alert-message">The message goes here</p>
</div>
</div>
</div>
FlashMessages that are used as inline notification should be removed and replaced with custom HTML code.
For the core we have defined output and usage for messages:
1) FlashMessages
----------------
FlashMessages are designed to inform a user about success or failure of an action, which was **triggered** by the user.
Example: If the user deletes a record, a FlashMessage informs the user about success or failure.
This kind of information is not static, it is a temporary and volatile information and triggered by a user action.
Keep in mind that you **must not** use HTML markup here, since this information
might be shown in a context different from HTML, like processing it via Javascript or
showing the message on the command line.
2) Callouts (InfoBox-ViewHelper)
--------------------------------
Callouts are designed to display permanent information, a very good example is the usage in the Page-Module.
If a user opens a system folder with the page module, the callout explains: 'Hey, you try to use the page module on a sys folder, please switch to the list module'.
This ViewHelper can also be used to show some help or instruction how to use a backend module.
3) Any other information
------------------------
For any other information e.g. a list of files which has changed, must be handled in the action / view of the module or plugin. This is not a use case for a FlashMessage or Callout!
Example: Display a list of a hundred files within a FlashMessage or Callout is a bad idea, build custom markup in the view to handle this kind of message.
Impact
======
Extensions which use the FlashMessageViewHelper with the default rendering will now get a list of <div>-messages instead of a <ul>-list.
Migration
=========
No migration needed, the generated output should be as expected. If the rendering is broken please consider about the correct usage of FlashMessages and read the explanation about message types above.
.. index:: Backend, Fluid
@@ -0,0 +1,30 @@
.. include:: /Includes.rst.txt
.. _breaking-73711:
=========================================================================
Breaking: #73711 - Removed deprecated code from Form Domain Model Element
=========================================================================
See :issue:`73711`
Description
===========
The protected variable `$layout` is deprecated and has been removed together with
their getter and setter.
Impact
======
Using the methods `getLayout()` and `setLayout()` directly in any third party extension will result in a fatal error.
Affected Installations
======================
Instances which use the methods above to access the protected `$layout` variable.
.. index:: PHP-API, ext:form
@@ -0,0 +1,52 @@
.. include:: /Includes.rst.txt
.. _breaking-73719:
==================================================================================
Breaking: #73719 - Unused JavaScript configuration options for the Backend removed
==================================================================================
See :issue:`73719`
Description
===========
The following JavaScript options from TYPO3.configuration and the global JavaScript property `TS` have been removed:
.. code-block:: javascript
TYPO3.configuration.PATH_typo3
TYPO3.configuration.PATH_typo3_enc
TYPO3.configuration.userUid
TYPO3.configuration.securityLevel
TYPO3.configuration.TYPO3_mainDir
TYPO3.configuration.veriCode
TYPO3.configuration.denyFileTypes
TS.PATH_typo3
TS.PATH_typo3_enc
TS.securityLevel
TS.veriCode
TS.denyFileTypes
TS.decimalSign
Impact
======
Calling any of the JavaScript options above from within JavaScript will result in a undefined JavaScript error.
Affected Installations
======================
Any TYPO3 installation using a legacy TYPO3 extension that uses these options within JavaScript.
Migration
=========
Remove the values from the JavaScript code or provide a PHP alternative to make the options available again for
JavaScript, if needed.
.. index:: JavaScript, Backend
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-73763:
=====================================================
Breaking: #73763 - Removed backPath from PageRenderer
=====================================================
See :issue:`73763`
Description
===========
The PageRenderer class responsible for rendering Frontend output and Backend modules has no option to resolve
the so-called backPath anymore. The second parameter has been dropped from the constructor method. Additionally
the public property `backPath` as well as the method `PageRenderer->setBackPath()` have been removed.
Impact
======
Calling the constructor of PageRenderer with a second parameter, or setting PageRenderer->backPath has no
effect anymore. Calling `PageRenderer->setBackPath()` directly will result in a PHP error.
Affected Installations
======================
Custom installations using the PageRenderer API directly in an extension.
Migration
=========
Simply remove the call to `PageRenderer->setBackPath()` in your own scripts.
.. index:: PHP-API, Backend
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-73793:
=============================================================
Breaking: #73793 - Removed AbstractPlugin->LOCAL_LANG_charset
=============================================================
See :issue:`73793`
Description
===========
The public property `$LOCAL_LANG_charset` within AbstractPlugin (formerly known as pi_base) has been removed.
The property was used to hold information which labels, coming from TypoScript that override Language files, need
to be converted to UTF-8.
Impact
======
Accessing the property within own extensions has no effect anymore.
Affected Installations
======================
Installations with extensions that provide plugins derived from `AbstractPlugin` and use this property.
Migration
=========
No migration needed. Make sure that all external TypoScript configuration files are stored with UTF-8 character set.
.. index:: PHP-API, Frontend
@@ -0,0 +1,42 @@
.. include:: /Includes.rst.txt
.. _breaking-73794:
===============================================
Breaking: #73794 - renderCharset option removed
===============================================
See :issue:`73794`
Description
===========
The TypoScript option `config.renderCharset` which was used as character set for internal conversion within a frontend
request has been removed, as internal conversions are always set to UTF-8 now.
The property `$TSFE->renderCharset` is now always set to `utf-8`, and is not used within the TYPO3 Core anymore.
Please note that it is still possible to define the character set of the returned content via `config.metaCharset`.
Impact
======
Using TYPO3 with a different datasource which is not UTF-8 (e.g. a database with latin1) might return unexpected results.
Non-UTF-8 databases work as expected if the connection charset is still UTF-8, as the DBMS takes
care of converting the data to UTF-8.
Affected Installations
======================
Any installation that uses the `config.renderCharset` TypoScript option with a different value than `utf-8`.
Migration
=========
Remove the TypoScript option from any TypoScript settings. If data sources (files, database input) are used that are
different than UTF-8, a manual conversion via the CharsetConverter PHP class is needed.
.. index:: TypoScript, Frontend
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _breaking-74029:
=========================================================
Breaking: #74029 - Remove ModuleLoader->getRelativePath()
=========================================================
See :issue:`74029`
Description
===========
The method `ModuleLoader->getRelativePath()` has been removed. It was previously part when registering
traditional script-based modules, which did not use the new Icon API for the backend.
Impact
======
Calling the method above directly will result in a fatal PHP error.
Affected Installations
======================
Any installation working with extensions that set up the ModuleLoader class and call the method `getRelativePath()` directly.
Migration
=========
Use `PathUtility::getRelativePath()` when the functionality is still needed.
.. index:: PHP-API, Backend
@@ -0,0 +1,43 @@
.. include:: /Includes.rst.txt
.. _breaking-74031:
======================================================
Breaking: #74031 - CharsetConverter parameters removed
======================================================
See :issue:`74031`
Description
===========
The second parameter for the method `CharsetConverter->entities_to_utf8()` has been removed.
The second and the third parameter of `CharsetConverter->utf8_to_numberarray()` has been removed.
Impact
======
When calling `CharsetConverter->entities_to_utf8()`, string-HTML entities (like &amp; or &pound;) will be converted
to UTF-8 as well at all times. Previously this behaviour was configurable.
When calling `CharsetConverter->utf8_to_numberarray()`, string-HTML entities (like
&amp; or &pound;) will be converted to UTF-8 as well at all times. Additionally instead
of integer numbers the real UTF-8 char is returned at any times. Previously these
behaviours were configurable.
Affected Installations
======================
Installations with custom extensions that used these methods directly in PHP code.
Migration
=========
Remove these parameters from the calling PHP code.
.. index:: PHP-API
@@ -0,0 +1,39 @@
.. include:: /Includes.rst.txt
.. _breaking-74124:
================================================================
Breaking: #74124 - Removed sys_file_reference field downloadname
================================================================
See :issue:`74124`
Description
===========
The database table `sys_file_reference` comes with the database field `downloadname` but it is not used or displayed anywhere.
The database field has been removed.
Impact
======
Using this field in SQL statements will result in no output of files and
potentially SQL errors.
Affected Installations
======================
Any installation with an extension using this database field. Any installation with TypoScript using this field
directly in the SQL definition when fetching a sys_file_reference record.
Migration
=========
If this field was used before and is still needed, re-create this field in the `ext_tables.sql` of your extension.
.. index:: Database, FAL
@@ -0,0 +1,35 @@
.. include:: /Includes.rst.txt
.. _breaking-75150:
==========================================================
Breaking: #75150 - Removed TypoScript option includeJSlibs
==========================================================
See :issue:`75150`
Description
===========
The deprecated TypoScript property `page.includeJSlibs` has been removed.
Impact
======
Setting parameters to this property will have no effect anymore.
Affected Installations
======================
Any installation using this TypoScript option.
Migration
=========
Use the TypoScript property `page.includeJSLibs` instead, which is in line with naming of `includeCSSLibs`.
.. index:: TypoScript, Frontend
@@ -0,0 +1,64 @@
.. include:: /Includes.rst.txt
.. _breaking-76155:
=============================================================================
Breaking: #76155 - ViewHelper Namespace imports with `xmlns` are now singular
=============================================================================
See :issue:`76155`
Description
===========
Fluid templates which use **multiple** ´<div xmlns:xyz="...">` in one template file are affected. Only the first
such node is now detected and respected. The reasons for this new limitation are the reworked internals of Fluid since
the standalone version.
Before, namespace nodes were handled internally by the TemplateParser. They worked in a way that the namespace
dictated by the node would **only apply inside that node**.
After, namespace nodes are handled by template pre-processing and handed off to the ViewHelperResolver without going
through the TemplateParser first. Since it happens in pre-processing, namespaces dictated by such nodes now **apply
across the entire template file**.
This has two effects on template parsing:
1. Extraction of `xmlns:xyz` style imports happens **once** and detects only a single node.
2. Nesting no longer matters; a namespace imported with this method will apply to the entire template file since it
is extracted during pre-processing and is not recursive.
Most templates will not be affected by this since the norm is already to include a single such namespace import and
put it as the outermost surrounding tag, then add all imported namespaces on that single node. This usage is still
fully supported.
Impact
======
The change affects template files which fulfill one or both of the following conditions:
1. Any template file which contains multiple nodes with `xmlns:xyz` imports will see only the first node detected.
2. Any template file which assumes an imported namespace is removed when the enclosing tag is closed and uses a
previously imported namespace after the closing node will likely see errors with `ViewHelper could not be resolved`
since Fluid will attempt to translate matching XHTML nodes with namespace prefixes to ViewHelper classes.
Affected Installations
======================
TYPO3 8.0 and above, any site matching conditions stated in `Impact`.
Migration
=========
There is one migration for each of the conditions above:
1. Templates with multiple `xmlns:xyz` nodes can be migrated by combining all those nodes into one.
2. Templates which assume a closing container tag removes the namespace will have to migrate by extracting the XHTML
that collides with the Fluid namespace and placing it in a separate template file (e.g. Partial template).
.. index:: Fluid
@@ -0,0 +1,36 @@
.. include:: /Includes.rst.txt
.. _deprecation-68748:
=========================================================================
Deprecation: #68748 - Deprecate AbstractContentObject::getContentObject()
=========================================================================
See :issue:`68748`
Description
===========
The method has been renamed to `getContentObjectRenderer()`. The old method name is
still present as a deprecated alias, which will be removed in TYPO3 v9.
Impact
======
Calling this method will trigger a deprecation log entry.
Affected Installations
======================
Any extensions calling `getContentObject()`.
Migration
=========
Replace calls to `getContentObject()` with `getContentObjectRenderer()`.
.. index:: PHP-API, Frontend
@@ -0,0 +1,39 @@
.. include:: /Includes.rst.txt
.. _deprecation-69863:
=====================================================================
Deprecation: #69863 - Deprecate getTemplateVariableContainer function
=====================================================================
See :issue:`69863`
Description
===========
`RenderingContext->getTemplateVariableContainer` has been marked as deprecated in
favor of getVariableProvider due to a changed concept for variable provisioning in
standalone fluid. It now does more than just contain variables so a change in naming
is necessary.
Impact
======
Calling this method directly will trigger a deprecation log entry.
Affected Installations
======================
Any TYPO3 instance using `getTemplateVariableContainer` method directly within an
extension or third-party code.
Migration
=========
Use `getVariableProvider` instead of `getTemplateVariableContainer`.
.. index:: PHP-API, Fluid
@@ -0,0 +1,35 @@
.. include:: /Includes.rst.txt
.. _deprecation-71255:
=================================================================================
Deprecation: #71255 - ExtendedFileUtility::pushErrorMessagesToFlashMessageQueue()
=================================================================================
See :issue:`71255`
Description
===========
Method `\TYPO3\CMS\Core\Utility\File\ExtendedFileUtility::pushErrorMessagesToFlashMessageQueue()` has been marked as deprecated.
Impact
======
Using the method will trigger a deprecation log entry.
Affected Installations
======================
Instances with custom backend modules that use this method.
Migration
=========
Implement the method by yourself.
.. index:: PHP-API, FAL

Some files were not shown because too many files have changed in this diff Show More