TYPO3 v15 dev-main snapshot ()
This commit is contained in:
+36
@@ -0,0 +1,36 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-66861:
|
||||
|
||||
==================================================================================
|
||||
Breaking: #66861 - Do not automatically append a "/" to the identifier of a folder
|
||||
==================================================================================
|
||||
|
||||
See :issue:`66861`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `Folder` object automatically appended a `/` to the identifier. But as the `Folder` object should not
|
||||
manipulate the folder identifier this is removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Installations with custom FAL driver(s) could break.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations with a custom FAL driver that relies on the `/` being added by the Folder object.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
All drivers that depend on this `/` being added should be adjusted so the driver handles this.
|
||||
|
||||
.. index:: PHP-API, FAL
|
||||
@@ -0,0 +1,90 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-70056:
|
||||
|
||||
=====================================================================
|
||||
Breaking: #70056 - Http-related options and HttpRequest class removed
|
||||
=====================================================================
|
||||
|
||||
See :issue:`70056`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following PHP classes have been removed:
|
||||
|
||||
* :php:`TYPO3\CMS\Core\Http\HttpRequest`
|
||||
* :php:`TYPO3\CMS\Core\Http\Observer\Download`
|
||||
|
||||
The following configuration options have been removed:
|
||||
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][SYS][curlUse]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][SYS][curlProxyNTLM]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][SYS][curlProxyServer]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][SYS][curlProxyTunnel]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][SYS][curlProxyUserPass]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][SYS][curlTimeout]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][adapter]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][protocol_version]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][follow_redirects]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][max_redirects]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][strict_redirects]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_host]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_port]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_user]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_password]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_auth_scheme]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_verify_peer]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_verify_host]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_cafile]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_capath]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_local_cert]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_passphrase]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][userAgent]`
|
||||
|
||||
The following properties have been renamed:
|
||||
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][userAgent]` is now called :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][headers][User-Agent]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][protocol_version]` is now called :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][version]`
|
||||
* All proxy-related options are unified within :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy]`
|
||||
* All redirect-related options (HTTP/follow_redirects, HTTP/max_redirects, HTTP/strict_redirects) are unified within :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][allow_redirects]`
|
||||
* All options related to SSL private keys (HTTP/ssl_local_cert, HTTP/ssl_passphrase) are merged into :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_key]`
|
||||
* All options related to verify SSL peers are merged into :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][verify]`
|
||||
|
||||
Additionally, the dependency to the PEAR Package "Http_Request2" (composer package name `pear/http_request2`) has
|
||||
been removed in favor of the PHP library Guzzle.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the mentioned classes above will result in a fatal PHP error.
|
||||
|
||||
Using the options in custom PHP code will result in unexpected behavior as the options are non-existent and empty.
|
||||
|
||||
Using PHP code that depends on the removed PEAR library "Http_Request2" will result in unexpected behaviour and possibly a
|
||||
fatal PHP error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All 3rd party extensions calling the mentioned classes directly or using the configuration options directly, as well
|
||||
as installations depending on the PEAR library "Http_Request2".
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
For PHP code previously using the `HttpRequest` and `Download` classes a new object-oriented PSR-7-based approach is
|
||||
introduced, see the Guzzle Feature integration documentation for more details. A new PHP class
|
||||
`TYPO3\CMS\Core\Http\RequestFactory` which generates PSR-7 compliant request objects helps in simplifying the
|
||||
migration process.
|
||||
|
||||
All still necessary options will be migrated to new options within :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP]` when the install tool is run.
|
||||
|
||||
In special cases, the options :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][ssl_verify_host]`, :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_auth_scheme]`
|
||||
and :php:`$GLOBALS[TYPO3_CONF_VARS][HTTP][proxy_host]` need to migrated manually to the newly available options.
|
||||
|
||||
.. index:: PHP-API, LocalConfiguration
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-72931-1668719172:
|
||||
|
||||
=================================================================================
|
||||
Breaking: #72931 - SearchFormController::pi_list_browseresults() has been renamed
|
||||
=================================================================================
|
||||
|
||||
See :issue:`72931`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
In order to make Indexed Search pi-based plugin PHP7 compatible, the `SearchFormController::pi_list_browseresults()`
|
||||
method has been renamed to `SearchFormController::renderPagination()`.
|
||||
Parameter types, order and count have been preserved. However the methods visibility has been changed to protected.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Call to old method name will result in fatal error "Call to undefined method".
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation of TYPO3 7.6 or TYPO3 8 where `SearchFormController` is overloaded (XCLASSed) and the new class contains
|
||||
a call to the old method name and any code that called the public method from outside the class.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Rename :php:`pi_list_browseresults()` to :php:`renderPagination()`.
|
||||
|
||||
Calling the method from outside the class is no longer possible.
|
||||
|
||||
.. index:: PHP-API, Frontend, ext:indexed_search
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75237:
|
||||
|
||||
=======================================================================
|
||||
Breaking: #75237 - Removal of div ce-bodytext might cause layout issues
|
||||
=======================================================================
|
||||
|
||||
See :issue:`75237`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
If neither bodytext nor header were entered in the TextMedia element, the div element containing the class `ce-bodytext` will be suppressed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The missing div could cause layout problems, if the layout and CSS depend on it.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations relying on :html:`<div class="ce-bodytext">`
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Either change the CSS or use a custom template without all the conditions.
|
||||
|
||||
.. index:: Fluid, ext:fluid_styled_content
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75323:
|
||||
|
||||
==========================================================================
|
||||
Breaking: #75323 - Removed parameter entryPointPath from main applications
|
||||
==========================================================================
|
||||
|
||||
See :issue:`75323`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The entry point `PHP` classes for :file:`index.php`, :file:`typo3/index.php` and so forth (called "Application classes")
|
||||
now have a parameter not to define the path to the entry point but the number of subdirectories under the main
|
||||
installation path, allowing to not specify the name of the path, but just the levels of subdirectories.
|
||||
|
||||
Subsequently, the methods `Bootstrap->baseSetup()`, `Bootstrap->redirectToInstallTool()` and
|
||||
`SystemEnvironmentBuilder::run()` now expect an integer as parameter, instead of the path to the entry point script.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the methods above with a string as parameter instead of an integer will fail because the calculation for PATH_site
|
||||
which is the base for the whole installation will fail.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation with custom entry points or custom extensions with separate entry points.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the entry point level as integer, instead of the string, in your custom entry points. See
|
||||
:php:`TYPO3\CMS\Backend\Http\Application` for an example.
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,56 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75324:
|
||||
|
||||
=====================================================
|
||||
Breaking: #75324 - ReferenceIndex CLI command changed
|
||||
=====================================================
|
||||
|
||||
See :issue:`75324`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The Reference Index Updater Command Line command has been changed to use a Symfony Command.
|
||||
|
||||
The command to update the reference index on non-composer-mode installations is now called on the command line via
|
||||
`typo3/sysext/core/bin/typo3 referenceindex:update`.
|
||||
|
||||
To just check the reference index, the option `-c` (alternatively the property "check" can be used) is used like this `typo3/sysext/core/bin/typo3 referenceindex:update -c`
|
||||
|
||||
For installations set up via composer, the typo3 CLI binary is available in the "bin/" directory directly inside the
|
||||
project root.
|
||||
|
||||
The command can be used like this:
|
||||
|
||||
.. code-block:: sh
|
||||
|
||||
# update the reference index
|
||||
bin/typo3 referenceindex:update
|
||||
# check the reference index
|
||||
bin/typo3 referenceindex:update -c
|
||||
bin/typo3 referenceindex:update --check
|
||||
|
||||
The additional option --silent does not output anything when running the CLI command.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the command via the old syntax `typo3/cli_dispatch.phpsh lowlevel refindex` will not work anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any existing installation upgrading to TYPO3 v8 with a (e.g. cron) CLI script, running the reference index update via
|
||||
the :file:`typo3/cli_dispatch.phpsh`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Change the CLI scripts inside your installation to the new binary path.
|
||||
|
||||
.. index:: PHP-API, CLI, ext:lowlevel
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75349:
|
||||
|
||||
========================================================================
|
||||
Breaking: #75349 - Move Indexed Search pi-based plugin to compatibility7
|
||||
========================================================================
|
||||
|
||||
See :issue:`75349`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Indexed Search pi1 plugin (based on AbstractPlugin) has been moved to EXT:compatibility7 and will not be developed further. EXT:compatibility7 will be moved to TER before the release of 8 LTS.
|
||||
The Extbase plugin (pi2) stays in Indexed Search as before.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Installation of EXT:compatibility7 is required to continue using the pi1 plugin. In the longer run migrating to the Extbase plugin is required.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations using the pi-based indexed search plugin.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Installations using pi1 should migrate to the Extbase plugin or install EXT:compatibility7.
|
||||
|
||||
.. index:: PHP-API, ext:indexed_search
|
||||
@@ -0,0 +1,41 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75355:
|
||||
|
||||
===================================================
|
||||
Breaking: #75355 - FlexForm-related options removed
|
||||
===================================================
|
||||
|
||||
See :issue:`75355`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following options regarding FlexForm handling have been removed.
|
||||
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][BE][niceFlexFormXMLtags]`
|
||||
* :php:`$GLOBALS[TYPO3_CONF_VARS][BE][compactFlexFormXML]`
|
||||
|
||||
Storing FlexForms in the database via the TYPO3 Core API does not compact the XML files anymore (it now always
|
||||
uses 4 spaces for indentation inside the XML) and also always uses meaningful tags so it can be validated with DTDs.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Having the options set will result in new/updated FlexForm data being written
|
||||
with spaces instead of tabs and with meaningful tags while keeping full backwards compatibility when reading.
|
||||
|
||||
This was the default for new installations already, but introduced due to legacy installations (pre 4.0) that dealt with
|
||||
FlexForms back in 2004.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation having these properties set in their :file:`LocalConfiguration.php`.
|
||||
|
||||
Any extension evaluating these parameters on its own.
|
||||
|
||||
.. index:: LocalConfiguration, Backend, FlexForm
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75357:
|
||||
|
||||
==================================================================
|
||||
Breaking: #75357 - $TYPO3_CONF_VARS[BE][lockSSL] option is boolean
|
||||
==================================================================
|
||||
|
||||
See :issue:`75357`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The setting :php:`$GLOBALS[TYPO3_CONF_VARS][BE][lockSSL]` which forces requests to the TYPO3 Backend to be transferred
|
||||
via SSL, has been changed to only allow boolean values.
|
||||
|
||||
The settings previously allowed three options:
|
||||
|
||||
* `lockSSL` set to `0` - Don't force a SSL connection at all
|
||||
* `lockSSL` set to `1` - If the incoming request to the TYPO3 backend is a non-SSL request, an exception was thrown
|
||||
* `lockSSL` set to `2` - If the incoming request is a non-SSL-request, redirect to the SSL-enabled URL
|
||||
|
||||
The option `1` has been removed without substitution, allowing the following variants:
|
||||
|
||||
* `lockSSL` set to `false` - Don't force a SSL connection at all
|
||||
* `lockSSL` set to `true` - If the incoming request is a non-SSL-request, redirect to the SSL-enabled URL
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
If the option was set previously to `1`, the exception is not thrown but a redirect will now happen.
|
||||
The same behavior as the existing option `2`.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
TYPO3 instances having the option above set to `1`.
|
||||
|
||||
.. index:: LocalConfiguration, Backend
|
||||
+83
@@ -0,0 +1,83 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75454:
|
||||
|
||||
=====================================================================
|
||||
Breaking: #75454 - LocalConfiguration DB config structure has changed
|
||||
=====================================================================
|
||||
|
||||
See :issue:`75454`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
To provide support for multiple database connections and remapping tables to different
|
||||
database systems within the TYPO3 Core the configuration format for database connections
|
||||
in :file:`LocalConfiguration.php` / :php:`$GLOBALS['TYPO3_CONF_VARS']['DB']` has changed.
|
||||
|
||||
The new configuration array structure:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'DB' => [
|
||||
'Connections' => [
|
||||
'Default' => [
|
||||
'driver' => 'mysqli',
|
||||
'dbname' => 'typo3_database',
|
||||
'password' => 'typo3',
|
||||
'host' => '127.0.0.1',
|
||||
'port' => 3306,
|
||||
'user' => 'typo3',
|
||||
'unix_socket' => '',
|
||||
'charset' => 'utf-8',
|
||||
],
|
||||
],
|
||||
],
|
||||
|
||||
Be aware that besides the deeper nesting below 'Connections/Default' some of the configuration
|
||||
keys have been renamed. It is required to provide the new configuration key `driver` with a
|
||||
value of `mysqli` explicitly.
|
||||
|
||||
The following table lists the changed configuration keys and the appropriate values if these
|
||||
have changed.
|
||||
|
||||
============================ ===============================================
|
||||
Old name New name
|
||||
============================ ===============================================
|
||||
DB/username DB/Connections/Default/user
|
||||
DB/password DB/Connections/Default/password
|
||||
DB/host DB/Connections/Default/host
|
||||
DB/port DB/Connections/Default/port
|
||||
DB/socket DB/Connections/Default/unix_socket
|
||||
DB/database DB/Connections/Default/dbname
|
||||
SYS/setDBinit DB/Connections/Default/initCommands
|
||||
SYS/no_pconnect DB/Connections/Default/persistentConnection
|
||||
SYS/dbClientCompress DB/Connections/Default/driverOptions
|
||||
Valid values for MySQLi connections:
|
||||
0 compression disabled
|
||||
32 compression enabled
|
||||
============================ ===============================================
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Connections to the database will fail with an exception until the configuration has been migrated
|
||||
to the new structure.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All Installations
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
The Install Tool will migrate the configuration information for the default connection to the new
|
||||
format. Installations overriding the database configuration using :file:`AdditionalConfiguration.php`
|
||||
or other means need to ensure the new format is being used.
|
||||
|
||||
.. index:: Database, LocalConfiguration
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75454-1668719172:
|
||||
|
||||
=============================================
|
||||
Breaking: #75454 - TYPO3_db Constants removed
|
||||
=============================================
|
||||
|
||||
See :issue:`75454`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The PHP constants :php:`TYPO3_db`, :php:`TYPO3_db_username`, :php:`TYPO3_db_password` and :php:`TYPO3_db_host`
|
||||
which were used when TYPO3 initialized the database connection have been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Checking for or using the mentioned constants may lead to unexpected behavior or errors.
|
||||
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 the configuration data within :php:`$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']`
|
||||
to determine the username, password and host information for the default database connection.
|
||||
|
||||
.. index:: PHP-API, Database, LocalConfiguration
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75497:
|
||||
|
||||
===============================================
|
||||
Breaking: #75497 - inline backend layout wizard
|
||||
===============================================
|
||||
|
||||
See :issue:`75497`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `BackendLayoutWizardController` has been removed and a new renderType has been added to render the backend layout wizard inline in FormEngine.
|
||||
|
||||
Also the backend route `wizard_backend_layout` has been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extending or using the `BackendLayoutWizardController` will break installations.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation which uses an extension which makes use of `BackendLayoutWizardController`
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the renderType `belayoutwizard`, which renders the backend layout wizard inline in FormEngine.
|
||||
|
||||
.. index:: PHP-API, Backend, TCA
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75708:
|
||||
|
||||
=======================================================
|
||||
Breaking: #75708 - Always store <p> tags in DB from RTE
|
||||
=======================================================
|
||||
|
||||
See :issue:`75708`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
When transforming HTML data from the Rich Text Editor to the database, the RteHtmlParser removed :html:`<p>` tags from
|
||||
lines when there were no attributes for the :html:`<p>` tags, otherwise they were kept as :html:`<p>` tags with
|
||||
their attributes.
|
||||
|
||||
The transformation now always keeps :html:`<p>` tags within the content in order to minimize the transformation overhead
|
||||
between the RTE and the database.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Every time an RTE field is edited, the :html:`<p>` tags are now stored inside the database when saving the content.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations using RTE fields or RteHtmlParser transformations.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
An upgrade wizard inside the Install Tool (coming until 8.1) will make sure that any database RTE field is converted.
|
||||
|
||||
.. index:: Database, Backend, RTE
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75711:
|
||||
|
||||
===============================================================================
|
||||
Breaking: #75711 - Removed DB-related methods and TCA-related options from cObj
|
||||
===============================================================================
|
||||
|
||||
See :issue:`75711`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following methods have been removed from `ContentObjectRenderer` without substitution:
|
||||
|
||||
* :php:`DBgetDelete()`
|
||||
* :php:`DBgetUpdate()`
|
||||
* :php:`DBgetInsert()`
|
||||
* :php:`DBmayFEUserEdit()`
|
||||
* :php:`DBmayFEUserEditSelect()`
|
||||
* :php:`exec_mm_query()`
|
||||
* :php:`exec_mm_query_uidList()`
|
||||
|
||||
The following TCA options have no effect anymore throughout the TYPO3 Core:
|
||||
|
||||
* :php:`$GLOBALS['TCA'][table]['ctrl']['fe_cruser_id']`
|
||||
* :php:`$GLOBALS['TCA'][table]['ctrl']['fe_crgroup_id']`
|
||||
* :php:`$GLOBALS['TCA'][table]['ctrl']['fe_admin_lock']`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods above directly will trigger a PHP fatal error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation using DB-related Frontend Administration with the obsolete functionality.
|
||||
|
||||
.. index:: PHP-API, TCA, Database
|
||||
@@ -0,0 +1,42 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-75829:
|
||||
|
||||
===================================================================
|
||||
Breaking: #75829 - Removed handling of pre 6.0 files when importing
|
||||
===================================================================
|
||||
|
||||
See :issue:`75829`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The functionality for importing :file:`*.t3d` files created from installations lower than TYPO3 CMS 6.0 has been removed.
|
||||
|
||||
The following public method has been removed: :php:`\TYPO3\CMS\Impexp\Import::fixCharsets()`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Importing files into TYPO3 v8 that were created from a TYPO3 4.x installations will result in unexpected behavior,
|
||||
especially when dealing with files and relations.
|
||||
|
||||
Calling the PHP method above will result in a fatal PHP error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using the t3d import functionality for importing files that were created from a TYPO3 instance older
|
||||
than TYPO3 6.0.0.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
It is recommended to import files in a 6.x or 7.x installation and export the files from there again to import them
|
||||
in TYPO3 v8.
|
||||
|
||||
.. index:: PHP-API, Backend, ext:impexp
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-73209:
|
||||
|
||||
===================================================
|
||||
Deprecation: #73209 - Deprecated flex page TSConfig
|
||||
===================================================
|
||||
|
||||
See :issue:`73209`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Setting page TSConfig values `PAGE_TSCONFIG_ID`, `PAGE_TSCONFIG_IDLIST` and
|
||||
` PAGE_TSCONFIG_STR` for flexform fields globally has been marked as deprecated, specific
|
||||
fields must be set now.
|
||||
|
||||
Example for a now deprecated global TSConfig value:
|
||||
|
||||
`TCEFORM.tt_content.pi_flexform.PAGE_TSCONFIG_ID = 42`
|
||||
|
||||
This should now be restricted to specific fields of the flexfrom data structure, if for example
|
||||
the flexform `foreign_table_where` of field `settings.categories` of a `tt_content` plugin`s
|
||||
data structure should be set, the new page TSConfig option should look like:
|
||||
|
||||
`TCEFORM.tt_content.pi_flexform.theDataStructure.theSheet.settings\.categories.PAGE_TSCONFIG_ID = 42`
|
||||
|
||||
Note that any dots within the field name must be escaped with '\\', this is a typical
|
||||
scenario for extbase.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
This pageTSConfig cannot be set for section elements anymore: `PAGE_TSCONFIG_ID`,
|
||||
`PAGE_TSCONFIG_IDLIST` and `PAGE_TSCONFIG_STR` do not have any effect on repeatable
|
||||
elements.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations that set `PAGE_TSCONFIG_ID`, `PAGE_TSCONFIG_IDLIST` and `PAGE_TSCONFIG_STR`
|
||||
for flexform fields globally should be restricted to set those values for single elements.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Search for `PAGE_TSCONFIG_ID`, `PAGE_TSCONFIG_IDLIST` and `PAGE_TSCONFIG_STR` and restrict
|
||||
them to single fields as outlined above.
|
||||
|
||||
.. index:: PHP-API, TSConfig, FlexForm
|
||||
@@ -0,0 +1,53 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-73728:
|
||||
|
||||
========================================================
|
||||
Deprecation: #73728 - Wizard type colorbox is deprecated
|
||||
========================================================
|
||||
|
||||
See :issue:`73728`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The color-picker is now available as dedicated render-type which will integrate
|
||||
an inline color-picker widget based on bootstrap. Thus, the old wizard type
|
||||
`colorbox` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using the TCA wizard type `colorbox` will trigger a deprecation log entry.
|
||||
The possibility to pick the color from a custom image has been removed
|
||||
without substitution together with the possibility to use color names like
|
||||
"red" or "white".
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All TCA fields that are using the wizard type `colorbox`, like e.g.
|
||||
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TCA']['tableName']['fieldName']['config']['wizards']['colorbox'] = [
|
||||
'type' => 'colorbox',
|
||||
'script' => 'wizard_colorpicker.php',
|
||||
...
|
||||
];
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the new render-type `colorpicker` in the TCA field configuration, like e.g.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TCA']['tableName']['fieldName']['config']['renderType'] = 'colorpicker';
|
||||
|
||||
.. index:: PHP-API, TCA, Backend
|
||||
@@ -0,0 +1,43 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-75327:
|
||||
|
||||
==========================================================
|
||||
Deprecation: #75327 - $TSFE->csConvObj and $TSFE->csConv()
|
||||
==========================================================
|
||||
|
||||
See :issue:`75327`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The public property `csConvObj` and the public method `csConv()` inside the TypoScriptFrontendController PHP
|
||||
class have been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling `$TSFE->csConv()` will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation which uses the property or the method directly.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
If a charset conversion is necessary, the conversion can be done directly by instantiating the charset converter class.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$from = 'iso-8859-15';
|
||||
/** @var \TYPO3\CMS\Core\Charset\CharsetConverter $charsetConverter */
|
||||
$charsetConverter = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Charset\CharsetConverter::class);
|
||||
$output = $charsetConverter->conv($str, $charsetConverter->parse_charset($from), 'utf-8');
|
||||
|
||||
.. index:: PHP-API, Frontend
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-75340:
|
||||
|
||||
=================================================================================
|
||||
Deprecation: #75340 - Methods related to generating traditional Backend AJAX URLs
|
||||
=================================================================================
|
||||
|
||||
See :issue:`75340`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following methods have been marked as deprecated:
|
||||
|
||||
* TYPO3\CMS\Backend\Utility\BackendUtility->getAjaxUrl()
|
||||
* TYPO3\CMS\Backend\Routing\UriBuilder->buildUriFromAjaxId()
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the methods above will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 instance with a third party extension that calls one of the methods above.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Migrate to UriBuilder routes, which can be registered via Configuration/Backend/AjaxRoutes.php,
|
||||
and can be linked to like this:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/** @var \TYPO3\CMS\Backend\Routing\UriBuilder $uriBuilder */
|
||||
$uriBuilder = GeneralUtility::makeInstance(\TYPO3\CMS\Backend\Routing\UriBuilder::class);
|
||||
$path = $uriBuilder->buildUriFromRoute('ajax_myroute');
|
||||
|
||||
Keep in mind that the newly created Ajax routes need to implement PSR-7 as well.
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,44 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-75371:
|
||||
|
||||
==================================
|
||||
Deprecation: #75371 - array2xml_cs
|
||||
==================================
|
||||
|
||||
See :issue:`75371`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`GeneralUtility::array2xml_cs()` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using the method :php:`GeneralUtility::array2xml_cs()` will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations with third party extensions using this method are affected.
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use :php:`GeneralUtility::array2xml()` instead. The XML declaration must be written manually.
|
||||
|
||||
Example code:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Deprecated
|
||||
$bodyText = GeneralUtility::array2xml_cs($array, 'phparray');
|
||||
|
||||
// Migrated
|
||||
$bodyText = '<?xml version="1.0" encoding="utf-8" standalone="yes" ?>' . LF . GeneralUtility::array2xml($array, '', 0, 'phparray');
|
||||
|
||||
.. index:: PHP-API
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-75575:
|
||||
|
||||
==================================================================================
|
||||
Deprecation: #75575 - TranslateViewHelper htmlEscape argument marked as deprecated
|
||||
==================================================================================
|
||||
|
||||
See :issue:`75575`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The htmlEscape argument of the TranslateViewHelper has been marked as deprecated.
|
||||
|
||||
This ViewHelper now HTML escapes the translation by default. The argument value has no effect anymore.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Usages of `<f:translate>` view helper with argument set to `false` will have the label HTML escaped anyway.
|
||||
|
||||
Usages of `<f:translate>` view helper with argument set to `true` will have the label HTML escaped like before unless the view helper is wrapped with a `<f:format.raw>`
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations with usages of `<f:translate>` in a context where HTML escaping is not desired (e.g. JavaScript).
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
`<f:translate>` needs to be wrapped by `<f:format.raw>` if the view helper result is needed in a different context than HTML
|
||||
|
||||
.. index:: Fluid, Frontend
|
||||
@@ -0,0 +1,57 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-75621:
|
||||
|
||||
============================================
|
||||
Deprecation: #75621 - GeneralUtility methods
|
||||
============================================
|
||||
|
||||
See :issue:`75621`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following methods within `GeneralUtility` have been marked as deprecated:
|
||||
|
||||
* compat_version()
|
||||
* convertMicrotime()
|
||||
* deHSCentities()
|
||||
* slashJS()
|
||||
* rawUrlEncodeJS()
|
||||
* rawUrlEncodeFP()
|
||||
* lcfirst()
|
||||
* getMaximumPathLength()
|
||||
|
||||
The second parameter of :php:`GeneralUtility::wrapJS()` has been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods above will trigger a deprecation log entry.
|
||||
|
||||
Calling :php:`GeneralUtility::wrapJS()` with the second parameter will trigger a PHP notice message.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation with a third-party extension calling one of the methods in its PHP code.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
For the following methods, use the native PHP methods and constants directly that are used within these methods:
|
||||
|
||||
* compat_version()
|
||||
* convertMicrotime()
|
||||
* deHSCentities()
|
||||
* slashJS()
|
||||
* rawUrlEncodeJS()
|
||||
* rawUrlEncodeFP()
|
||||
* lcfirst()
|
||||
* getMaximumPathLength()
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-75625:
|
||||
|
||||
=======================================================
|
||||
Deprecation: #75625 - Deprecated cache clearing options
|
||||
=======================================================
|
||||
|
||||
See :issue:`75625`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following commands have been marked as deprecated and should not be used anymore:
|
||||
|
||||
* Method :php:`DataHandler->clear_cacheCmd()` with arguments `system` and `temp_cached`
|
||||
* `userTSconfig` setting `options.clearCache.system`
|
||||
* Option `$TYPO3_CONF_VARS['SYS']['clearCacheSystem']` has been removed
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Directly or indirectly using method `clear_cacheCmd` with these arguments will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations with third party extensions using this method are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
If the group of system caches needs to be deleted explicitly, use :php:`flushCachesInGroup('system')`
|
||||
of `CacheManager` directly.
|
||||
|
||||
.. index:: PHP-API, LocalConfiguration
|
||||
@@ -0,0 +1,26 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-27471:
|
||||
|
||||
===============================================
|
||||
Feature: #27471 - Allow asterisk for hideTables
|
||||
===============================================
|
||||
|
||||
See :issue:`27471`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It is now possible to hide all tables from list view via PageTS-Config.
|
||||
|
||||
You want to show only a specific table, you can hide all tables and unhide only the specific one.
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
mod.web_list {
|
||||
hideTables = *
|
||||
table.tx_cal_event.hideTable = 0
|
||||
}
|
||||
|
||||
.. index:: TSConfig, Backend
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-39597:
|
||||
|
||||
========================================================================
|
||||
Feature: #39597 - Multiple locale names for TypoScript config.locale_all
|
||||
========================================================================
|
||||
|
||||
See :issue:`39597`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The TypoScript option `config.locale_all` now allows to set locale fallbacks as a comma-separated list, as the
|
||||
underlying PHP function `setlocale()` does as well.
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
config.locale_all = de_AT@euro, de_AT, de_DE, deu_deu
|
||||
|
||||
..
|
||||
|
||||
.. index:: TypoScript, Frontend
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69439:
|
||||
|
||||
========================================================================
|
||||
Feature: #69439 - Enhance SQL query reduction in page tree in workspaces
|
||||
========================================================================
|
||||
|
||||
See :issue:`69439`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The process of determining whether a page has workspace versions can be
|
||||
extended by custom application code utilizing hooks. This way, the meaning
|
||||
of having versions can be further modified by hooks. For instance the
|
||||
default behavior of the TYPO3 core is to create a workspace version
|
||||
record on persisting the same record in the backend - without any
|
||||
actual changes to the data model.
|
||||
|
||||
+ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['TYPO3\\CMS\\Workspaces\\Service\\WorkspaceService']['hasPageRecordVersions']
|
||||
+ $parameters['workspaceId']: The submitted workspace ID
|
||||
+ $parameters['pageId']: The submitted page ID
|
||||
+ $parameters['versionsOnPageCache']: Reference to the state array
|
||||
+ $GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['TYPO3\\CMS\\Workspaces\\Service\\WorkspaceService']['fetchPagesWithVersionsInTable']
|
||||
+ $parameters['workspaceId']: The submitted workspace ID
|
||||
+ $parameters['pageId']: The submitted page ID
|
||||
+ $parameters['pagesWithVersionsInTable']: Reference to the state array
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The hooks introduce the possibility to modify the determined results - only if those hooks are used.
|
||||
|
||||
.. index:: Database, LocalConfiguration, ext:workspaces
|
||||
@@ -0,0 +1,70 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-70056:
|
||||
|
||||
===========================================================================
|
||||
Feature: #70056 - Added PHP library "Guzzle" for HTTP Requests within TYPO3
|
||||
===========================================================================
|
||||
|
||||
See :issue:`70056`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The PHP library `Guzzle` has been added via composer dependency to work as a feature rich solution for creating HTTP requests
|
||||
based on the PSR-7 interfaces already used within TYPO3.
|
||||
|
||||
Guzzle auto-detects available underlying adapters available on the system, like cURL or stream wrappers and chooses
|
||||
the best solution for the system.
|
||||
|
||||
A TYPO3-specific PHP class called `TYPO3\CMS\Core\Http\RequestFactory` has been added as a simplified wrapper to access
|
||||
Guzzle clients.
|
||||
|
||||
All options available under `$TYPO3_CONF_VARS[HTTP]` are automatically applied to the Guzzle clients when using the
|
||||
`RequestFactory` class. The options are a subset to the available options on Guzzle (http://docs.guzzlephp.org/en/latest/request-options.html)
|
||||
but can further be extended.
|
||||
|
||||
Existing `$TYPO3_CONF_VARS[HTTP]` options have been removed and/or migrated to the new Guzzle-compliant options.
|
||||
|
||||
A full documentation for Guzzle can be found at http://docs.guzzlephp.org/en/latest/.
|
||||
|
||||
Although Guzzle can handle Promises/A+ and asynchronous requests, it currently acts as a drop-in replacement for the
|
||||
previous mixed options and implementations within `GeneralUtility::getUrl()` and a PSR-7-based API for HTTP
|
||||
requests.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The existing TYPO3-specific wrapper `GeneralUtility::getUrl()` now uses Guzzle under the hood automatically for remote
|
||||
files, removing the need to configure settings based on certain implementations like stream wrappers or cURL directly.
|
||||
|
||||
The `RequestFactory` class can be used like this:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Initiate the Request Factory, which allows to run multiple requests
|
||||
/** @var \TYPO3\CMS\Core\Http\RequestFactory $requestFactory */
|
||||
$requestFactory = GeneralUtility::makeInstance(\TYPO3\CMS\Core\Http\RequestFactory\RequestFactory::class);
|
||||
$url = 'https://typo3.com';
|
||||
$additionalOptions = [
|
||||
// Additional headers for this specific request
|
||||
'headers' => ['Cache-Control' => 'no-cache'],
|
||||
// Additional options, see http://docs.guzzlephp.org/en/latest/request-options.html
|
||||
'allow_redirects' => false,
|
||||
'cookies' => true
|
||||
];
|
||||
// Return a PSR-7 compliant response object
|
||||
$response = $requestFactory->request($url, 'GET', $additionalOptions);
|
||||
// Get the content as a string on a successful request
|
||||
if ($response->getStatusCode() === 200) {
|
||||
if ($response->getHeader('Content-Type') === 'text/html') {
|
||||
$content = $response->getBody()->getContents();
|
||||
}
|
||||
}
|
||||
|
||||
Extension authors are advised to use the `RequestFactory` class instead of using the Guzzle API directly in order to ensure
|
||||
a clear upgrade path when updates to the underlying API need to be done.
|
||||
|
||||
.. index:: PHP-API, LocalConfiguration
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-72923:
|
||||
|
||||
==================================================================================
|
||||
Feature: #72923 - Configure the number of files shown per page in file list module
|
||||
==================================================================================
|
||||
|
||||
See :issue:`72923`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It is now possible to configure the maximum number of files shown per page in the file list module using User TSconfig.
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
options.file_list {
|
||||
filesPerPage = 40
|
||||
}
|
||||
|
||||
.. index:: TSConfig, Backend
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-75386:
|
||||
|
||||
==================================================
|
||||
Feature: #75386 - Get identifier in slide callback
|
||||
==================================================
|
||||
|
||||
See :issue:`75386`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The callback of :js:`Wizard.addSlide()` now has a new parameter `identifier`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The identifier is passed to the callback function of :js:`Wizard.addSlide()`.
|
||||
|
||||
Example code:
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
Wizard.addSlide('my-identifier', 'Foobar', '', Severity.info, function($slide, settings, identifier) {
|
||||
console.log(identifier); // my-identifier
|
||||
});
|
||||
|
||||
.. index:: JavaScript, Backend
|
||||
@@ -0,0 +1,114 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-75454:
|
||||
|
||||
=========================================================================================
|
||||
Feature: #75454 - Added PHP library "Doctrine DBAL" for Database Connections within TYPO3
|
||||
=========================================================================================
|
||||
|
||||
See :issue:`75454`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The PHP library `Doctrine DBAL` has been added via composer dependency to work as a powerful database
|
||||
abstraction layer with many features for database abstraction, schema introspection and
|
||||
schema management within TYPO3.
|
||||
|
||||
A TYPO3-specific PHP class called `TYPO3\CMS\Core\Database\ConnectionPool` has been added as a
|
||||
manager for database connections.
|
||||
|
||||
All connections configured below `$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']` are
|
||||
accessible using this manager, enabling the parallel usage of multiple database systems.
|
||||
|
||||
By using the database abstraction options and the QueryBuilder provided SQL statements being
|
||||
built will be properly quoted and compatible with different DBMS out of the box as far as
|
||||
possible.
|
||||
|
||||
Existing `$GLOBALS['TYPO3_CONF_VARS']['DB']` options have been removed and/or migrated to the
|
||||
new Doctrine-compliant options.
|
||||
|
||||
Documentation for Doctrine DBAL can be found at http://www.doctrine-project.org/projects/dbal.html.
|
||||
|
||||
The :php:`Connection` class provides convenience methods for `insert`, `select`, `update`,
|
||||
`delete` and `truncate` statements. For `select`, `update` and `delete` only simple
|
||||
equality comparisons (`WHERE "aField" = 'aValue'`) are supported. For complex statements it's
|
||||
required to use the :php:`QueryBuilder`.
|
||||
|
||||
It is possible to swap tables out of the default database and use a specific setup (e.g.
|
||||
for logging or caching). This snippet of a LocalConfiguration could for example be used
|
||||
to swap the sys_log table out to another database or even another database server:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
//LocalConfiguration.php
|
||||
//[...]
|
||||
'DB' => [
|
||||
'Connections' => [
|
||||
'Default' => [
|
||||
'charset' => 'utf8',
|
||||
'dbname' => 'default_dbname',
|
||||
'driver' => 'mysqli',
|
||||
'host' => 'default_host',
|
||||
'password' => '***',
|
||||
'port' => 3306,
|
||||
'user' => 'default_user',
|
||||
],
|
||||
'Syslog' => [
|
||||
'charset' => 'utf8',
|
||||
'dbname' => 'syslog_dbname',
|
||||
'driver' => 'mysqli',
|
||||
'host' => 'syslog_host',
|
||||
'password' => '***',
|
||||
'port' => 3306,
|
||||
'user' => 'syslog_user',
|
||||
],
|
||||
],
|
||||
'TableMapping' => [
|
||||
'sys_log' => 'Syslog'
|
||||
]
|
||||
],
|
||||
//[...]
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Currently the :php:`DatabaseConnection` class only uses Doctrine to establish the database
|
||||
connection to MySQL, no advanced options are being used yet.
|
||||
|
||||
Connections always need to be requested with a table name so that the abstraction of
|
||||
table names to database connections stays intact.
|
||||
|
||||
The :php:`ConnectionPool` class can be used like this:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Get a connection which can be used for multiple operations
|
||||
/** @var \TYPO3\CMS\Core\Database\Connecction $conn */
|
||||
$conn = GeneralUtility::makeInstance(ConnectionPool::class)->getConnectionForTable('aTable');
|
||||
$affectedRows = $conn->insert(
|
||||
'aTable',
|
||||
$fields, // Associative array of column/value pairs, automatically quoted & escaped
|
||||
);
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Get a QueryBuilder, which should only be used a single time
|
||||
$query = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('aTable);
|
||||
$query->select('*')
|
||||
->from('aTable)
|
||||
->where(
|
||||
$query->expr()->eq('aField', $query->createNamedParameter($aValue)),
|
||||
$query->expr()->lte(
|
||||
'anotherField',
|
||||
$query->createNamedParameter($anotherValue)
|
||||
)
|
||||
);
|
||||
$rows = $query->execute()->fetchAll();
|
||||
|
||||
Extension authors are advised to use the `ConnectionPool` and `Connection` classes instead of using
|
||||
the Doctrine DBAL directly in order to ensure a clear upgrade path when updates to the underlying
|
||||
API need to be done.
|
||||
|
||||
.. index:: PHP-API, Database, LocalConfiguration
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-75497:
|
||||
|
||||
==============================================
|
||||
Feature: #75497 - inline backend layout wizard
|
||||
==============================================
|
||||
|
||||
See :issue:`75497`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A new renderType was added to render the backend layout wizard inline in FormEngine.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The old `BackendLayoutWizardController` which has rendered the backend layout wizard in a popup has been removed.
|
||||
|
||||
Use the new renderType `belayoutwizard` to render the backend layout wizard inline in FormEngine.
|
||||
|
||||
example TCA configuration:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'config' => array(
|
||||
'label' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_tca.xlf:backend_layout.config',
|
||||
'config' => array(
|
||||
'type' => 'text',
|
||||
'renderType' => 'belayoutwizard',
|
||||
)
|
||||
)
|
||||
|
||||
.. index:: TCA, Backend
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-75579:
|
||||
|
||||
====================================================================
|
||||
Feature: #75579 - Add markupIdentifier support to JavaScript IconAPI
|
||||
====================================================================
|
||||
|
||||
See :issue:`75579`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It is now possible to request alternative rendering methods also through the
|
||||
JavaScript IconAPI for the backend. A new parameter has been added to the `getIcon`
|
||||
function that now accepts the `markupIdentifier` for alternative rendering output,
|
||||
as it's also possible within PHP.
|
||||
|
||||
Currently this is only used by the `SvgIconProvider` to deliver inline-SVGs
|
||||
instead of linking them in an `img` tag.
|
||||
|
||||
Example 1: default, without alternativeMarkup
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
require(['TYPO3/CMS/Backend/Icons'], function(Icons) {
|
||||
var iconName = 'actions-view-list-collapse';
|
||||
Icons.getIcon(iconName, Icons.sizes.small).done(function(icon) {
|
||||
console.log(icon);
|
||||
});
|
||||
});
|
||||
|
||||
Example 2: with alternativeMarkup = inline
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
require(['TYPO3/CMS/Backend/Icons'], function(Icons) {
|
||||
var iconName = 'actions-view-list-collapse';
|
||||
Icons.getIcon(iconName, Icons.sizes.small, null, null, 'inline').done(function(icon) {
|
||||
console.log(icon);
|
||||
});
|
||||
});
|
||||
|
||||
.. index:: JavaScript, Backend
|
||||
@@ -0,0 +1,27 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-75581:
|
||||
|
||||
=========================================
|
||||
Feature: #75581 - Simplify cache clearing
|
||||
=========================================
|
||||
|
||||
See :issue:`75581`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The cache clearing system has been simplified by removing options in cache clear menu and install tool.
|
||||
|
||||
The cache clear menu in the backend contains now only two options:
|
||||
|
||||
* Flush frontend caches
|
||||
Clear frontend and page-related caches, like before.
|
||||
|
||||
* Flush all caches
|
||||
Clear all system-related caches, including the class loader, localization, extension configuration file caches and opcode caches. Rebuilding this cache may take some time.
|
||||
|
||||
Within the install tool the "Clear all cache" button will now also clear the opcode caches if possible.
|
||||
|
||||
.. index:: Backend
|
||||
@@ -0,0 +1,36 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-75827:
|
||||
|
||||
=============================================================================================================
|
||||
Feature: #75827 - Add configuration options to \\TYPO3\\CMS\\Extbase\\Property\\TypeConverter\\FloatConverter
|
||||
=============================================================================================================
|
||||
|
||||
See :issue:`75827`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It is now possible to define the thousands separator and decimal point for `FloatConverter`.
|
||||
This can be used to ensure proper sanitation before converting a string to a float.
|
||||
|
||||
You can define the configuration for every property like this:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$this->arguments['<argumentName>']
|
||||
->getPropertyMappingConfiguration()
|
||||
->forProperty('<propertyName>') // this line can be skipped in order to specify the format for all properties
|
||||
->setTypeConverterOption(
|
||||
\TYPO3\CMS\Extbase\Property\TypeConverter\FloatConverter::class,
|
||||
\TYPO3\CMS\Extbase\Property\TypeConverter\FloatConverter::CONFIGURATION_THOUSANDS_SEPARATOR,
|
||||
'.'
|
||||
)
|
||||
->setTypeConverterOption(
|
||||
\TYPO3\CMS\Extbase\Property\TypeConverter\FloatConverter::class,
|
||||
\TYPO3\CMS\Extbase\Property\TypeConverter\FloatConverter::CONFIGURATION_DECIMAL_POINT,
|
||||
','
|
||||
);
|
||||
|
||||
.. index:: PHP-API, ext:extbase
|
||||
+18
@@ -0,0 +1,18 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-73041:
|
||||
|
||||
===============================================================
|
||||
Important: #73041 - PackageStates Includes Only Active Packages
|
||||
===============================================================
|
||||
|
||||
See :issue:`73041`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The information about available packages in the system located in :file:`typo3conf/PackageStates.php` was
|
||||
thinned out to only include the extension keys of the active (= installed) extensions.
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,52 @@
|
||||
:template: changelogOverview.html
|
||||
.. include:: /Includes.rst.txt
|
||||
.. _changelog-8-1:
|
||||
|
||||
8.1 Changes
|
||||
===========
|
||||
|
||||
**Table of contents**
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
:depth: 1
|
||||
|
||||
Breaking Changes
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Breaking-*
|
||||
|
||||
Features
|
||||
^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Feature-*
|
||||
|
||||
Deprecation
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Deprecation-*
|
||||
|
||||
Important
|
||||
^^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Important-*
|
||||
Reference in New Issue
Block a user