TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-38496:
|
||||
|
||||
===============================================================
|
||||
Breaking: #38496 - Shortcut redirects append all URL parameters
|
||||
===============================================================
|
||||
|
||||
See :issue:`38496`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
When a user accesses a shortcut page, all provided URL parameters are appended to
|
||||
the target URL.
|
||||
|
||||
**Example:**
|
||||
|
||||
Page with UID 2 is a shortcut to page with UID 1 and these `linksVars` are configured:
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
config.linkVars = L
|
||||
|
||||
..
|
||||
|
||||
Old behavior:
|
||||
|
||||
http://mydomain.tld?id=2&L=1&customparam=X will redirect to http://mydomain.tld?id=1&L=1
|
||||
|
||||
New behavior:
|
||||
|
||||
http://mydomain.tld?id=2&L=1&customparam=X will redirect to http://mydomain.tld?id=1&L=1&customparam=X
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The target URL of a shortcut may change when additional parameters are provided in the URL.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations using shortcut pages are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
There is no migration available.
|
||||
|
||||
.. index:: Frontend, TypoScript
|
||||
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-52877:
|
||||
|
||||
========================================
|
||||
Breaking: #52877 - Remove ExtJS Viewport
|
||||
========================================
|
||||
|
||||
See :issue:`52877`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The ExtJS component `TYPO3.Viewport` has been removed from the TYPO3 Core, `Ext.layout` and `Ext.Viewport` are no longer
|
||||
used in the backend viewport.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
- Calling the removed ExtJS components `TYPO3.Viewport` or `TYPO3.backendContentIframePanel` will result in an error
|
||||
- The ability to stack content with cards with `TYPO3.Viewport.ContentCards` is no longer supported
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installations using custom extensions based on ExtJS which rely on the above mentioned components.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
There is no migration available.
|
||||
|
||||
.. index:: Backend, JavaScript
|
||||
@@ -0,0 +1,56 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-66995:
|
||||
|
||||
=================================================
|
||||
Breaking: #66995 - ObjectAccess behaviors changed
|
||||
=================================================
|
||||
|
||||
See :issue:`66995`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following changes have been implemented in ObjectAccess:
|
||||
|
||||
* Uses more native PHP methods where reasonable
|
||||
* Uses fewer method calls where reasonable
|
||||
* Gets rid of a variables passed by reference
|
||||
* More cases return ``null`` rather than throw Exceptions
|
||||
* Fastest decisions and access methods come first
|
||||
* Reflection-based access isolated to edge cases and
|
||||
access with the "force direct access" flag enabled.
|
||||
* Sacrifices ability to read objects of types other
|
||||
than persisted objects contained in an ObjectStorage
|
||||
or subclass of ObjectStorage.
|
||||
* Changes verdict from ``false`` to ``true`` when
|
||||
determining if a dynamically added property exists on
|
||||
an object (these are by definition publicly accessible).
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
* Performance improvement; optimising for most frequent case coming first, skipping expensive Reflection etc.
|
||||
* Reflection based access only happens when "force" flag is set to true in getProperty / getPropertyPath
|
||||
* Removes support for using objects of types other than persisted objects in any ObjectStorage implementation.
|
||||
* Changes behavior when accessing dynamically added properties on objects from previously false to now true (by definition they are public). This
|
||||
improves compatibility with JSON sources decoded to stdClass for example.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
* Any code using `ObjectStorage` combined with objects that are not persistent objects (Extbase models)
|
||||
* Any code passing `stdClass` with dynamic properties to ``ObjectAccess::getProperty()`` and expecting ``null`` (real value will now be returned)
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
* If you have any `ObjectStorage` implementation containing other types than persisted objects, switch to any alternative (`Iterator`, `ArrayAccess`, etc.)
|
||||
* If you have Extbase code or Fluid templates using `ObjectAccess` to read `stdClass` instances with dynamically added properties and your code expects a
|
||||
false verdict for such properties (highly unlikely!) inverse any conditions depending on the resolved value being null or empty to expect the actual
|
||||
value of the value you address.
|
||||
|
||||
.. index:: PHP-API, ext:extbase
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75031:
|
||||
|
||||
==========================================================================================
|
||||
Breaking: #75031 - Fluidification of TypoScriptTemplateInformationModuleFunctionController
|
||||
==========================================================================================
|
||||
|
||||
See :issue:`75301`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
:php:`TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateInformationModuleFunctionController->tableRow();` has been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling this method will result in a fatal error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installations calling :php:`TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateInformationModuleFunctionController->tableRow();`
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
There is no migration available.
|
||||
|
||||
.. index:: PHP-API, Backend, ext:tstemplate
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75032:
|
||||
|
||||
=============================================================================================
|
||||
Breaking: #75032 - Fluidification of TypoScriptTemplateConstantEditorModuleFunctionController
|
||||
=============================================================================================
|
||||
|
||||
See :issue:`75032`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
:php:`TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateConstantEditorModuleFunctionController->displayExample();` has been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling this method will result in a fatal error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations using :php:`TYPO3\CMS\Tstemplate\Controller\TypoScriptTemplateConstantEditorModuleFunctionController->displayExample();`
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
There is no migration available, pleas write your own function.
|
||||
|
||||
.. index:: PHP-API, Backend, ext:tstemplate
|
||||
@@ -0,0 +1,40 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77379:
|
||||
|
||||
===============================================
|
||||
Breaking: #77379 - Doctrine: Typo3DbQueryParser
|
||||
===============================================
|
||||
|
||||
See :issue:`77379`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
While migrating the database endpoint for the persistence functionality of Extbase to Doctrine DBAL, the `Typo3DbQueryParser` class
|
||||
has been completely rewritten to work on a `QueryBuilder` object instead of plain arrays and strings. The PHP method
|
||||
:php:`Typo3DbQueryParser->parseQuery()` has been removed, instead the new equivalent
|
||||
:php:`Typo3DbQueryParser->convertQueryToDoctrineQueryBuilder()` has been introduced.
|
||||
|
||||
Additionally, the PHP method :php:`Typo3DBBackend->injectQueryParser()` has been removed, as the `Typo3DbQueryParser` class is not a
|
||||
singleton instance anymore but always rebuilt when needed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the methods above will result in a fatal PHP error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
TYPO3 instances with custom Extbase database backend and parsing functionality.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Switch to Doctrine DBAL and :php:`Typo3DbQueryParser->convertQueryToDoctrineQueryBuilder()` which results in the same behaviour.
|
||||
|
||||
.. index:: PHP-API, Database
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77547:
|
||||
|
||||
=============================================================================
|
||||
Breaking: #77547 - Behaviour of RecordCollectionRepository::findByUid changed
|
||||
=============================================================================
|
||||
|
||||
See :issue:`77547`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The behaviour of :php:`RecordCollectionRepository::findByUid()` has changed.
|
||||
When TYPO3 is in Frontend mode, the method will now respect the configured enable fields.
|
||||
Instead of returning an object that is supposed to be disabled due to being hidden or
|
||||
having a start date in the future, or an end date in the past, it will now return :php:`null`.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using the `RecordCollectionRepository` expecting to fetch disabled records while TYPO3 is
|
||||
in Frontend mode will not yield the expected result.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation that uses the :typoscript:`FILES` cObject, e.g. via the `uploads` CType, as well as
|
||||
any installation with a 3rd party extension that uses the named method.
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
If the previous behaviour is wanted, the TCA of the used collection table needs to
|
||||
be overridden to not use the configured enable columns.
|
||||
|
||||
.. index:: PHP-API, Frontend
|
||||
@@ -0,0 +1,37 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77592:
|
||||
|
||||
=============================================================
|
||||
Breaking: #77592 - Dropped TCA option showIfRTE in type=check
|
||||
=============================================================
|
||||
|
||||
See :issue:`77592`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The TCA setting `showIfRTE` for type=check is not evaluated anymore and has been removed from the TCA on all fields.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
All TCA columns having this option set will be shown at any time inside FormEngine. The option has been removed from the final TCA
|
||||
used inside TYPO3.
|
||||
|
||||
The TCA migration will throw a deprecation message when building the final TCA.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
TYPO3 instances using old extensions which provide custom TCA configurations having this option set.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the setting from the TCA, and if still needed, use a custom display condition to achieve the same functionality.
|
||||
|
||||
.. index:: TCA, Backend, RTE
|
||||
@@ -0,0 +1,48 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77630:
|
||||
|
||||
======================================
|
||||
Breaking: #77630 - Remove wizard icons
|
||||
======================================
|
||||
|
||||
See :issue:`77630`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following icons have been removed from :file:`typo3/sysext/backend/Resources/Public/Images/FormFieldWizard/`:
|
||||
|
||||
- :file:`wizard_add.gif`
|
||||
- :file:`wizard_edit.gif`
|
||||
- :file:`wizard_list.gif`
|
||||
- :file:`wizard_table.gif`
|
||||
- :file:`wizard_link.gif`
|
||||
- :file:`wizard_rte.gif`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The mentioned icons can not be used anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using those icons.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
The TCA migration migrates the icon calls to the new output if used as wizard icon.
|
||||
|
||||
- :file:`wizard_add.gif` => `actions-add`
|
||||
- :file:`wizard_edit.gif` => `actions-open`
|
||||
- :file:`wizard_list.gif` => `actions-system-list-open`
|
||||
- :file:`wizard_table.gif` => `content-table`
|
||||
- :file:`wizard_link.gif` => `actions-wizard-link`
|
||||
- :file:`wizard_rte.gif` => `actions-wizard-rte`
|
||||
|
||||
.. index:: Backend
|
||||
@@ -0,0 +1,49 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77693:
|
||||
|
||||
=========================================
|
||||
Breaking: #77693 - Move icons from t3skin
|
||||
=========================================
|
||||
|
||||
See :issue:`77693`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Icons from :file:`EXT:t3skin/` have been removed or moved to different locations.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
References of the following images of EXT:t3skin will throw a 404 not found:
|
||||
|
||||
* :file:`typo3/sysext/t3skin/icons/gfx/error.png`
|
||||
* :file:`typo3/sysext/t3skin/icons/gfx/i/_icon_ftp.gif`
|
||||
* :file:`typo3/sysext/t3skin/icons/gfx/information.png`
|
||||
* :file:`typo3/sysext/t3skin/icons/gfx/notice.png`
|
||||
* :file:`typo3/sysext/t3skin/icons/gfx/warning.png`
|
||||
|
||||
References of the following images of EXT:t3skin/icons/gfx/i have been moved:
|
||||
|
||||
* :file:`typo3/sysext/t3skin/icons/gfx/icon_fatalerror.gif` => :file:`typo3/sysext/backend/Resources/Public/Icons/icon_fatalerror.gif`
|
||||
* :file:`typo3/sysext/t3skin/images/icons/status/status-edit-read-only.png` => :file:`typo3/sysext/backend/Resources/Public/Icons/status-edit-read-only.png`
|
||||
* :file:`typo3/sysext/t3skin/images/icons/status/warning-in-use.png` => :file:`typo3/sysext/backend/Resources/Public/Icons/warning-in-use.png`
|
||||
* :file:`typo3/sysext/t3skin/images/icons/status/warning-lock.png` => :file:`typo3/sysext/backend/Resources/Public/Icons/warning-lock.png`
|
||||
* :file:`typo3/sysext/t3skin/images/icons/status/status-reference-hard.png` => :file:`typo3/sysext/impexp/Resources/Public/Icons/status-reference-hard.png`
|
||||
* :file:`typo3/sysext/t3skin/images/icons/status/status-reference-soft.png` => :file:`typo3/sysext/impexp/Resources/Public/Icons/status-reference-soft.png`
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations or extensions which have references to icons in :file:`EXT:t3skin/icons/`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No migration
|
||||
|
||||
.. index:: Backend, ext:t3skin
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77700:
|
||||
|
||||
============================================================================
|
||||
Breaking: #77700 - Extension indexed_search_mysql merged into indexed_search
|
||||
============================================================================
|
||||
|
||||
See :issue:`77700`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The extension `indexed_search_mysql` has been removed and its functionality was merged into
|
||||
EXT:`indexed_search`. The `MySQL` specific search based on fulltext indexes can
|
||||
be enabled with a feature flag within the extension configuration of the extension manager.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
If extension `indexed_search_mysql` has been loaded, the feature flag `useMysqlFulltext`
|
||||
within the extension configuration of the ExtensionManager `indexed_search` has to be
|
||||
set, otherwise `indexed_search` falls back to the potentially slower non-fulltext based
|
||||
default search algorithm.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Instances with extension `indexed_search_mysql` loaded.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Full functionality can be kept by enabling the feature toggle `useMysqlFulltext` within
|
||||
the extension configuration of `indexed_search`.
|
||||
|
||||
.. index:: LocalConfiguration, ext:indexed_search, ext:indexed_search_mysql
|
||||
+46
@@ -0,0 +1,46 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77728:
|
||||
|
||||
====================================================================
|
||||
Breaking: #77728 - Remove obsolete page tree and click menu settings
|
||||
====================================================================
|
||||
|
||||
See :issue:`77728`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following obsolete properties have been removed:
|
||||
|
||||
- :php:`FileSystemNavigationFrameController->doHighlight`
|
||||
|
||||
- :php:`ClickMenu->leftIcons`
|
||||
|
||||
The following user TS settings have been removed:
|
||||
|
||||
- :typoscript:`options.pageTree.disableTitleHighlight`
|
||||
|
||||
- :typoscript:`options.contextMenu.options.leftIcons`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions which use one of the public properties above will throw a fatal error.
|
||||
Setting above options in UserTSconfig will not impact the tree behaviour.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations with a 3rd party extension using one of the classes above.
|
||||
All installations using one of the UserTSconfig settings above.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No migration available.
|
||||
|
||||
.. index:: PHP-API, TSConfig, Backend
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77750:
|
||||
|
||||
============================================================================
|
||||
Breaking: #77750 - Return value of ContentObjectRenderer::exec_Query changed
|
||||
============================================================================
|
||||
|
||||
See :issue:`77750`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The return type of :php:`ContentObjectRenderer::exec_getQuery()` has changed.
|
||||
Instead of returning either :php:`bool`, :php:`\mysqli_result`
|
||||
or :php:`object` the return value always is a :php:`\Doctrine\DBAL\Driver\Statement`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using the mentioned method will no longer yield the expected result type.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation with a 3rd party extension that uses the named method.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Change the way the result is being used to conform to the Doctrine API:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$result = $this->cObj->exec_getQuery(...);
|
||||
while ($row = $result->fetch()) {
|
||||
// Do something here
|
||||
}
|
||||
|
||||
.. index:: PHP-API, Frontend, Database
|
||||
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77762:
|
||||
|
||||
=========================================================
|
||||
Breaking: #77762 - Extensions dbal and adodb moved to TER
|
||||
=========================================================
|
||||
|
||||
See :issue:`77762`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The legacy extensions `dbal` and `adodb` have been removed from the TYPO3 CMS core and are only available as TER extensions.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Tables located on non-MySQL databases stop working until `EXT:adodb` and `EXT:dbal` have been installed from TER if a third party extensions uses the old `TYPO3_DB` API to query those tables.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Most installations are not affected. Instances are only affected if a loaded extension
|
||||
uses the old `TYPO3_DB` database API, `dbal` and `adodb` have been loaded and if an
|
||||
active table mapping to non-MySQL databases is configured.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the upgrade wizard provided by the install tool to fetch and load the extensions from TER.
|
||||
|
||||
.. index:: Database, ext:dbal, ext:adodb
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77765:
|
||||
|
||||
==========================================================
|
||||
Breaking: #77765 - ExtJS notifications and dialogs removed
|
||||
==========================================================
|
||||
|
||||
See :issue:`77765`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
ExtJS notifications with the ExtJS components `TYPO3.Window` and `TYPO3.Dialog` have been removed from the TYPO3 Core.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the JavaScript components above will result in a JavaScript error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installations using custom extensions based on ExtJS.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the JavaScript-based Modal and Dialog functionality that are part of the TYPO3 Core since v7.
|
||||
|
||||
For migration details `see the docs`_
|
||||
|
||||
|
||||
.. _see the docs: https://docs.typo3.org/typo3cms/extensions/core/Changelog/7.2/Feature-66047-IntroduceJavascriptNotificationApi.html
|
||||
|
||||
.. index:: Backend, JavaScript
|
||||
@@ -0,0 +1,35 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77783:
|
||||
|
||||
============================================================
|
||||
Breaking: #77783 - Removed unused ExtJS JavaScript libraries
|
||||
============================================================
|
||||
|
||||
See :issue:`77783`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The ExtJS libraries `app.SearchField`, `grid.RowExpander`, `ux.FitToParent` have been removed from the TYPO3 core
|
||||
after all usages of them have been removed from the TYPO3 core with Feature #74359.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Including or calling any of the named JavaScript libraries will result in an error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installations using custom extensions based on ExtJS which rely on the named libraries.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
There is no migration available, consider migrating to a supported modern framework.
|
||||
|
||||
.. index:: Backend, JavaScript
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77814:
|
||||
|
||||
===============================================================
|
||||
Breaking: #77814 - Remove feature subsearch from indexed search
|
||||
===============================================================
|
||||
|
||||
See :issue:`77814`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The feature subsearch which enabled the possibility to append previously searched words to the current
|
||||
query was removed.
|
||||
|
||||
The option TypoScript :typoscript:`plugin.tx_indexedsearch.clearSearchBox` has been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Frontend output of search results may change.
|
||||
|
||||
Setting the TypoScript option has no effect anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using this option or using custom indexed search plugin templates.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the option in your custom TypoScript and remove the functionality in the Fluid plugin
|
||||
template.
|
||||
|
||||
.. index:: Frontend, TypoScript, Fluid, ext:indexed_search
|
||||
@@ -0,0 +1,30 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77826:
|
||||
|
||||
=======================================================
|
||||
Breaking: #77826 - RTEHtmlArea Spellchecker eID removed
|
||||
=======================================================
|
||||
|
||||
See :issue:`77826`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The RTEHtmlArea eID (`rtehtmlarea_spellchecker`) for using dynamic spellchecking has been removed.
|
||||
|
||||
RTEhtmlarea uses the Backend Routing API for Backend and Frontend Editing.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the eID script will result in a 404 error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations which use the eID `rtehtmlarea_spellchecker` in a custom extension.
|
||||
|
||||
.. index:: Backend, Frontend, RTE
|
||||
@@ -0,0 +1,20 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77919:
|
||||
|
||||
==============================================================
|
||||
Breaking: #77919 - Changed DateTime::ISO8601 to DateTime::ATOM
|
||||
==============================================================
|
||||
|
||||
See :issue:`77919`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The format `DateTime::ISO8601` is not compatible with ISO-8601, but is left this way for
|
||||
backward compatibility reasons. The constant `DateTime::ATOM` or `DATE_ATOM` is used
|
||||
instead when rendering JsonViews via Extbase.
|
||||
|
||||
See https://php.net/manual/en/class.datetime.php#datetime.constants.iso8601 for more information
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77987:
|
||||
|
||||
============================================================
|
||||
Breaking: #77987 - Removal fe_users rendering in page module
|
||||
============================================================
|
||||
|
||||
See :issue:`77987`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Because of the deprecation of :php:`$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['cms']['db_layout']['addTables']`,
|
||||
the records of the table `fe_users` are no longer rendered in the page module.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
By using the following code in the :php:`ext_localconf.php` file, the records can be shown again:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['cms']['db_layout']['addTables']['fe_users'] =
|
||||
array (0 => array(
|
||||
'MENU' => '',
|
||||
'fList' => 'username,usergroup,name,email,telephone,address,zip,city',
|
||||
'icon' => true
|
||||
)
|
||||
);
|
||||
|
||||
.. index:: LocalConfiguration, Backend
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-78222:
|
||||
|
||||
==============================================================================
|
||||
Breaking: #78222 - Extension autoload information is now in typo3conf/autoload
|
||||
==============================================================================
|
||||
|
||||
See :issue:`78222`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
To make clear that autoload information is not a cache,
|
||||
the files have been moved from :file:`typo3temp` to :file:`typo3conf`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
TYPO3 deployments which do not take advantage of composer, might need some adaption
|
||||
to also include the new location in :file:`typo3conf` in the list of to be synced files.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
TYPO3 installation in non composer mode.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Class loading information can be re-dumped by
|
||||
|
||||
* Activating or deactivating an extension
|
||||
* Running the dump command from the command line
|
||||
* In install tool (important actions)
|
||||
|
||||
The autoload files should never be deleted, but always only be re-dumped.
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,37 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-75363:
|
||||
|
||||
===========================================================
|
||||
Deprecation: #75363 - Deprecate FormResultCompiler->JStop()
|
||||
===========================================================
|
||||
|
||||
See :issue:`75363`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method `JStop()` has been renamed to `addCssFiles()`. The old method name is
|
||||
still present as a deprecated alias, which will be removed in TYPO3 v9.
|
||||
|
||||
Keep in mind that the method reads "JS top", not "J Stop".
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling `JStop()` method will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any extensions calling `JStop()`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Instead of :php:`JStop()` use :php:`addCssFiles()`.
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-75637:
|
||||
|
||||
=======================================================================================
|
||||
Deprecation: #75637 - Deprecate optional parameters of RecyclerUtility::getRecordPath()
|
||||
=======================================================================================
|
||||
|
||||
See :issue:`75637`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following arguments of the method :php:`RecyclerUtility::getRecordPath` have been marked as deprecated:
|
||||
|
||||
- :php:`$clause`
|
||||
- :php:`$titleLimit`
|
||||
- :php:`$fullTitleLimit`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using any of the arguments above will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation using custom calls to :php:`RecyclerUtility::getRecordPath` using the mentioned arguments.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No migration available.
|
||||
|
||||
.. index:: PHP-API, Backend, ext:recycler
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-77763:
|
||||
|
||||
=========================================================================
|
||||
Deprecation: #77763 - Deprecate method ClickMenu::DB_editPageProperties()
|
||||
=========================================================================
|
||||
|
||||
See :issue:`77763`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Method :php:`ClickMenu::DB_editPageProperties` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using the method will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation using custom calls to :php:`ClickMenu::DB_editPageProperties`
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No migration available.
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,34 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-77826:
|
||||
|
||||
=========================================================
|
||||
Deprecation: #77826 - RTEHtmlArea Spellchecker entrypoint
|
||||
=========================================================
|
||||
|
||||
See :issue:`77826`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The entry point for HTTP Requests `SpellCheckingController->main` within RTEHtmlArea has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the PHP method above will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All TYPO3 instances calling this PHP method.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use `SpellCheckingController->processRequest` instead.
|
||||
|
||||
.. index:: PHP-API, RTE, Backend
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-77839:
|
||||
|
||||
=======================================================================================================
|
||||
Deprecation: #77839 - Move TYPO3/CMS/Core/QueryGenerator into EXT:lowlevel and deprecate the old module
|
||||
=======================================================================================================
|
||||
|
||||
See :issue:`77839`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The AMD module :js:`TYPO3/CMS/Core/QueryGenerator` have been deprecated.
|
||||
The module have been renamed to :js:`TYPO3/CMS/Lowlevel/QueryGenerator` and moved into EXT:lowlevel.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using the module will trigger a deprecation log message in the browser console.
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation using custom calls to :js:`TYPO3/CMS/Core/QueryGenerator`
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use AMD module :js:`TYPO3/CMS/Lowlevel/QueryGenerator` instead.
|
||||
|
||||
.. index:: JavaScript, ext:lowlevel
|
||||
@@ -0,0 +1,33 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-77987:
|
||||
|
||||
==============================================================
|
||||
Deprecation: #77987 - Deprecated record listing in page module
|
||||
==============================================================
|
||||
|
||||
See :issue:`77987`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The usage of :php:`$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['cms']['db_layout']['addTables']` to render
|
||||
records in the page module has been marked as deprecated.
|
||||
|
||||
Accessing property :php:`TYPO3\CMS\Backend\Controller\PageLayoutController->externalTables` has
|
||||
been deprecated.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Instances using :php:`$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['cms']['db_layout']['addTables']`
|
||||
or accessing property :php:`TYPO3\CMS\Backend\Controller\PageLayoutController->externalTables`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No migration available.
|
||||
|
||||
.. index:: LocalConfiguration, Backend, PHP-API
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-78096:
|
||||
|
||||
=====================================================================================
|
||||
Deprecation: #78096 - Deprecated PageLayoutView::getResult with mysqli_result objects
|
||||
=====================================================================================
|
||||
|
||||
See :issue:`78096`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`PageLayoutView::getResult` has been marked as deprecated with the usage of mysqli_result objects as first parameter.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using the mentioned method with a mysqli_result object will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation using extensions which call :php:`PageLayoutView::getResult` with mysqli_result objects.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
The extension should migrate to use the Doctrine API for database queries.
|
||||
|
||||
.. index:: Backend, Database, PHP-API
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-78193:
|
||||
|
||||
==============================================================
|
||||
Deprecation: #78193 - ExtensionManagementUtility::extRelPath()
|
||||
==============================================================
|
||||
|
||||
See :issue:`78193`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`ExtensionManagementUtility::extRelPath()` for resolving paths relative to the current script has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling :php:`ExtensionManagementUtility::extRelPath()` will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 instance with extensions or third-party scripts resolving paths with the method above.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use alternatives for resolving paths. There are the following methods available:
|
||||
|
||||
* :php:`ExtensionManagementUtility::extPath()` - to resolve the full path of an extension
|
||||
* :php:`ExtensionManagementUtility::siteRelPath()` - to resolve the location of an extension relative to `PATH_site`
|
||||
* :php:`GeneralUtility::getFileAbsFileName()` - to resolve a file/path prefixed with `EXT:myext`
|
||||
* :php:`PathUtility::getAbsoluteWebPath()` - used for output a file location (previously resolved with :php:`GeneralUtility::getFileAbsFileName()`) that is absolutely prefixed for the web folder
|
||||
|
||||
.. index:: PHP-API
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-78222:
|
||||
|
||||
===========================================================================
|
||||
Deprecation: #78222 - Late generation of autoload information is deprecated
|
||||
===========================================================================
|
||||
|
||||
See :issue:`78222`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
If TYPO3 is in non-composer mode, it used to automatically dump extension class
|
||||
loading information late during the bootstrap. This behavior is now deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
TYPO3 installations in non-composer mode, now trigger a deprecation log entry
|
||||
in case extension autoload information is missing late in the bootstrap.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
TYPO3 installations in non-composer mode with deleted extension autoload information.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Class loading information can be re-dumped by
|
||||
|
||||
* Activating or deactivating an extension
|
||||
* Running the dump command from the command line
|
||||
* In install tool (important actions)
|
||||
|
||||
The autoload files should never be deleted, but always only be re-dumped.
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,44 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-78224:
|
||||
|
||||
==========================================
|
||||
Deprecation: #78224 - TYPO3_DB occurrences
|
||||
==========================================
|
||||
|
||||
See :issue:`78224`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The TYPO3_DB shorthand functionality has been removed for most of the TYPO3 Core PHP classes, excepted for the following locations:
|
||||
|
||||
* AbstractPlugin->databaseConnection (protected property)
|
||||
* AbstractFunctionModule::getDatabaseConnection()
|
||||
* BaseScriptClass::getDatabaseConnection()
|
||||
|
||||
For these occurrences extensions might extend the base functionality (e.g. for plugins or modules) and the call to the property and
|
||||
protected methods still work.
|
||||
|
||||
Calling `$GLOBALS[TYPO3_DB]` is still possible but discouraged.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods above will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 instances with references to TYPO3_DB or references to the occurrences mentioned above.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the ConnectionPool and the QueryBuilder classes to achieve future-proof and proper database abstraction for future TYPO3
|
||||
versions.
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-17309:
|
||||
|
||||
==============================================
|
||||
Feature: #17309 - Access flexform value via TS
|
||||
==============================================
|
||||
|
||||
See :issue:`17309`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It is now possible to access properties of a flexform field by using TypoScript.
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
lib.flexformContent = CONTENT
|
||||
lib.flexformContent {
|
||||
table = tt_content
|
||||
select {
|
||||
pidInList = this
|
||||
}
|
||||
|
||||
renderObj = COA
|
||||
renderObj {
|
||||
10 = TEXT
|
||||
10 {
|
||||
data = flexform: pi_flexform:settings.categories
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
The key `flexform` is followed by the field which holds the flexform data and the name of the property whose content should be retrieved.
|
||||
|
||||
.. index:: TypoScript, FlexForm
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-75691:
|
||||
|
||||
===========================================================================
|
||||
Feature: #75691 - Upgrade Analysis - Provide listing of documentation files
|
||||
===========================================================================
|
||||
|
||||
See :issue:`75691`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The install tool now shows all the documentation files that were delivered with the core
|
||||
in the section `Upgrade analysis`. All files can be read inline, but there is no
|
||||
parsing, plain `.rst` is shown to the user.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The install tool features a new main entry point that lists the documentation files shipped with
|
||||
the core. Filtering by tags provided in the documentation files helps to find interesting changes.
|
||||
|
||||
.. index:: Backend
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-76748:
|
||||
|
||||
==================================================================
|
||||
Feature: #76748 - Configure the availability of the elementbrowser
|
||||
==================================================================
|
||||
|
||||
See :issue:`76748`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The button to open the elementBrowser can be configured to be enabled/disabled for the user.
|
||||
|
||||
The button can be disabled by the following TCA setting:
|
||||
:php:`[table_name]['columns'][field_name]['config']['appearance']['elementBrowserEnabled'] = false;`
|
||||
|
||||
The button can be disabled by the following pageTs setting:
|
||||
:typoscript:`TCEFORM.table_name.field_name.config.appearance.elementBrowserEnabled = 0`
|
||||
|
||||
The button can be disabled by the following userTs setting:
|
||||
:typoscript:`page.TCEFORM.table_name.field_name.config.appearance.elementBrowserEnabled = 0`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Default behavior is that the button stays visible, to disable/hide this button the TCA/pageTs/userTs needs to be explicit changed.
|
||||
|
||||
.. index:: TCA, TSConfig, Backend
|
||||
@@ -0,0 +1,29 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-77589:
|
||||
|
||||
============================================================
|
||||
Feature: #77589 - EXT: syntax in PageRenderer and Compressor
|
||||
============================================================
|
||||
|
||||
See :issue:`77589`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It is now possible to use the `EXT:` prefix for referencing files inside extensions within the `PageRenderer` and `ResourceCompressor`
|
||||
PHP classes for adding JavaSyntax or StyleSheet files.
|
||||
|
||||
So you can streamline your code from
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$this->pageRenderer->addJsFile(ExtensionManagementUtility::extRelPath('core') . 'Resources/Public/JavaScript/Contrib/bootstrap/bootstrap.js');
|
||||
|
||||
to
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$this->pageRenderer->addJsFile('EXT:core/Resources/Public/JavaScript/Contrib/bootstrap/bootstrap.js');
|
||||
|
||||
.. index:: PHP-API
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-77643:
|
||||
|
||||
====================================================================================
|
||||
Feature: #77643 - Reimplement SqlSchemaMigrationService using Doctrine SchemaManager
|
||||
====================================================================================
|
||||
|
||||
See :issue:`77643`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The SqlSchemaMigrationService has been reimplemented using a LL(*) Parser for CREATE TABLE
|
||||
statements. The new parser supports MySQL syntax for CREATE TABLE statements. Based on the
|
||||
abstract syntax tree produced by this parser Doctrine Table objects are created that
|
||||
implement a DBMS independent representation of the schema and are used with the Doctrine
|
||||
SchemaManager to handle the schema migrations needs of the TYPO3 core.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Update suggestions from the new SchemaMigrator are per connection, on all additional
|
||||
connections only explicitly mapped tables are managed. MySQL specific data types are being
|
||||
mapped to the closest matching standard type, for example TINYINT to SMALLINT. The support
|
||||
for foreign keys has been enhanced as a result of the additional capabilities of the
|
||||
Doctrine SchemaManager.
|
||||
|
||||
.. index:: Database, PHP-API
|
||||
@@ -0,0 +1,22 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-77652:
|
||||
|
||||
====================================================
|
||||
Feature: #77652 - Make sys_language records sortable
|
||||
====================================================
|
||||
|
||||
See :issue:`77652`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
To improve the usability, the sys_language records are now sortable.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The languages can now be manually sorted instead of an ordering by its name.
|
||||
|
||||
.. index:: Backend
|
||||
@@ -0,0 +1,18 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-77668:
|
||||
|
||||
========================================================
|
||||
Feature: #77668 - Hide table listing below group element
|
||||
========================================================
|
||||
|
||||
See :issue:`77668`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The TCA configuration option `disable_controls` of the type "group" now has a new
|
||||
setting `allowedTables` which can be added to the configuration in order to hide the
|
||||
information which tables are allowed to be referenced in the group field.
|
||||
|
||||
.. index:: TCA, Backend
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-77799:
|
||||
|
||||
================================================================
|
||||
Feature: #77799 - Display TCA migration messages in Install Tool
|
||||
================================================================
|
||||
|
||||
See :issue:`77799`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Display the TCA migration message(s) in the Install Tool.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
You are now able to show all TCA migration messages from within the Install Tool.
|
||||
|
||||
.. index:: TCA, Backend
|
||||
@@ -0,0 +1,96 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-77900:
|
||||
|
||||
===================================================
|
||||
Feature: #77900 - Introduce TypeScript for the core
|
||||
===================================================
|
||||
|
||||
See :issue:`77900`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The TYPO3 core has introduced TypeScript for the internal JavaScript handling.
|
||||
|
||||
|
||||
Why we use TypeScript in the core?
|
||||
==================================
|
||||
|
||||
TypeScript is a free and open source programming language developed and maintained by Microsoft. It is a strict superset of JavaScript, and adds optional static typing and class-based object-oriented programming to the language.
|
||||
|
||||
With TypeScript it is possible to compile JavaScript. TypeScript supports definition files which can contain type information of existing JavaScript libraries.
|
||||
|
||||
At the moment the core uses AMD modules for any JavaScript logic in the backend, but what is in 5 years? maybe we want switch to CommonJS, with TypeScript we can recompile all modules with a simple change in a configuration file.
|
||||
|
||||
But the main reason to switch to TypeScript is the strict typing and oop structure of the language. We can make use of Interfaces, which is still a missing feature in JavaScript.
|
||||
|
||||
|
||||
Coding Guidelines & Best practice
|
||||
=================================
|
||||
|
||||
:js:`/// <amd-dependency path="x" />` informs the compiler about a non-TS module dependency that needs to be injected in the resulting module's require call.
|
||||
|
||||
The amd-dependency has a property name which allows passing an optional name for an amd-dependency: :js:`/// <amd-dependency path="x" name="fooBar" />`
|
||||
|
||||
An example:
|
||||
|
||||
:js:`/// <amd-dependency path="TYPO3/CMS/Core/Contrib/jquery.minicolors" name="minicolors">`
|
||||
|
||||
will be compiled to:
|
||||
|
||||
:js:`define(["require", "exports", "TYPO3/CMS/Core/Contrib/jquery.minicolors"], function (require, exports, minicolors) {`
|
||||
|
||||
A very simple example is the `EXT:backend/Resources/Private/TypeScript/ColorPicker.ts` file.
|
||||
|
||||
TypeScript Linter
|
||||
=================
|
||||
|
||||
The most rules for TypeScript are defined in the rulesets which are checked by the TypeScript Linter.
|
||||
The core provides a configuration file and grunt tasks to ensure a better code quality. For this reason we introduce a new grunt task, which first run the Linter on each TypeScript file before starting the compiler.
|
||||
So if your TypeScript does not follow the rules, the task will fail. The idea is to write clean code, else it will not be compiled.
|
||||
|
||||
Additional Rules
|
||||
================
|
||||
|
||||
For the core we have defined some additional rules which you should know, because not all of them can be checked by the Linter yet:
|
||||
|
||||
#. Always define types and return types, also if TypeScript provides a default type. [checked by Linter]
|
||||
#. Variable scoping: Prefer :js:`let` instead of :js:`var`. [checked by Linter]
|
||||
#. Optional properties in interfaces are possible but a bad style, this is not allowed for the core. [NOT checked by Linter]
|
||||
#. An interface will never extend a class. [NOT checked by Linter]
|
||||
#. Iterables: Use :js:`for (i of list)` if possible instead of :typoscript:`for (i in list)` [NOT checked by Linter]
|
||||
#. The :js:`implements` keyword is required for any usage, also if TypeScript does not require it. [NOT checked by Linter]
|
||||
#. Any class or interface must be declared with "export" to ensure re-use or export an instance of the object for existing code which can't be updated now. [NOT checked by Linter]
|
||||
|
||||
|
||||
Contribution workflow
|
||||
=====================
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
# Change to Build directory
|
||||
cd Build
|
||||
|
||||
# Install dependencies
|
||||
npm install
|
||||
|
||||
# Install typings for the core
|
||||
grunt typings
|
||||
|
||||
# Check with Linter and compile ts files from sysext/*/Resources/Private/TypeScript/*.ts
|
||||
grunt scripts
|
||||
|
||||
# File watcher, the watch task also check for *.ts files
|
||||
grunt watch
|
||||
|
||||
The grunt task compiles each TypeScript file (*.ts) to a JavaScript file (*.js) and produces an AMD module.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
All AMD modules must be ported to TypeScript to ensure a future proof concept of JavaScript handling.
|
||||
The goal is to migrate all AMD modules to a TypeScript file until CMS 8 LTS is released.
|
||||
|
||||
.. index:: Backend, JavaScript
|
||||
+23
@@ -0,0 +1,23 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-78222:
|
||||
|
||||
===================================================================
|
||||
Feature: #78222 - Dump Class Loading Information UI in Install Tool
|
||||
===================================================================
|
||||
|
||||
See :issue:`78222`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It is now possible to dump class loading information in the install tool.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Users who are not familiar with the command line can now trigger a dump of class
|
||||
loading information in install tool.
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,42 @@
|
||||
:template: changelogOverview.html
|
||||
.. include:: /Includes.rst.txt
|
||||
.. _changelog-8-4:
|
||||
|
||||
8.4 Changes
|
||||
===========
|
||||
|
||||
**Table of contents**
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
:depth: 1
|
||||
|
||||
Breaking Changes
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Breaking-*
|
||||
|
||||
Features
|
||||
^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Feature-*
|
||||
|
||||
Deprecation
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Deprecation-*
|
||||
Reference in New Issue
Block a user