Only breaking changes and important changes were adjusted for now.
* Fix rst syntax issues, like missing blank line before list.
* Add roles for highlighting of inline files and code.
* Add link to mentioned issues.
* Prefix PHP Globals with $GLOBALS[] to keep things as they are in real
world and to keep it the same between all files.
* Use single formats, e.g. always '*' for lists. This will make
refactorings and other stuff easier.
Resolves: #85771
Releases: master, 8.7
Change-Id: I47f7db732ab1da751c6f84469152d7209e065c19
Reviewed-on: https://review.typo3.org/57841
Tested-by: TYPO3com <no-reply@typo3.com>
Reviewed-by: Christian Kuhn <lolli@schwarzbu.ch>
Tested-by: Christian Kuhn <lolli@schwarzbu.ch>
The following methods have been removed:
-`StandaloneView::setLayoutRootPath`
-`StandaloneView::getLayoutRootPath`
-`StandaloneView::setPartialRootPath`
-`StandaloneView::getPartialRootPath`
-`AbstractFormFieldViewHelper::getValue`
+* `StandaloneView::setLayoutRootPath`
+* `StandaloneView::getLayoutRootPath`
+* `StandaloneView::setPartialRootPath`
+* `StandaloneView::getPartialRootPath`
+* `AbstractFormFieldViewHelper::getValue`
The following class has been removed:
Affected Installations
======================
-Instances which use calls to the methods above, use the removed `IconViewHelper or use the renderMode option in `FlashMessagesViewHelper``.
+Instances which use calls to the methods above, use the removed `IconViewHelper` or use the `renderMode` option in `FlashMessagesViewHelper`.
Migration
=========
-For `StandaloneView::setLayoutRootPath` use `StandaloneView::setLayoutRootPaths` instead.
-For `StandaloneView::getLayoutRootPath` use `StandaloneView::getLayoutRootPaths` instead.
-For `StandaloneView::setPartialRootPath` use `StandaloneView::setPartialRootPaths` instead.
-For `StandaloneView::getPartialRootPath` use `StandaloneView::setPartialRootPaths` instead.
+* For `StandaloneView::setLayoutRootPath` use `StandaloneView::setLayoutRootPaths` instead.
+* For `StandaloneView::getLayoutRootPath` use `StandaloneView::getLayoutRootPaths` instead.
+* For `StandaloneView::setPartialRootPath` use `StandaloneView::setPartialRootPaths` instead.
+* For `StandaloneView::getPartialRootPath` use `StandaloneView::setPartialRootPaths` instead.
Keep in mind that these methods expect an **array** instead of a string.
The following components have been changed during the development of TYPO3 CMS 7
and lead to deprecated code which is removed in TYPO3 CMS 8.
-* remove rewritten toolbar item (#62800)
-* remove rewritten notification parts (#35245)
+* remove rewritten toolbar item (:issue:`62800`)
+* remove rewritten notification parts (:issue:`35245`)
Impact
======
-Using or extending `\TYPO3\CMS\Workspaces\ExtDirect\ToolbarMenu` will fail since
+Using or extending :php:`\TYPO3\CMS\Workspaces\ExtDirect\ToolbarMenu` will fail since
it has been removed.
-Using \TYPO3\CMS\Workspaces\Service\StagesService::getNotificationMode($stageId)
+Using :php:`\TYPO3\CMS\Workspaces\Service\StagesService::getNotificationMode($stageId)`
will fail.
Relying on the following database fields in the tables sys_workspace and
The following PHP classes have been removed:
- * `TYPO3\CMS\Core\Http\HttpRequest`
- * `TYPO3\CMS\Core\Http\Observer\Download`
+ * :php:`TYPO3\CMS\Core\Http\HttpRequest`
+ * :php:`TYPO3\CMS\Core\Http\Observer\Download`
The following configuration options have been removed:
- * $TYPO3_CONF_VARS[SYS][curlUse]
- * $TYPO3_CONF_VARS[SYS][curlProxyNTLM]
- * $TYPO3_CONF_VARS[SYS][curlProxyServer]
- * $TYPO3_CONF_VARS[SYS][curlProxyTunnel]
- * $TYPO3_CONF_VARS[SYS][curlProxyUserPass]
- * $TYPO3_CONF_VARS[SYS][curlTimeout]
- * $TYPO3_CONF_VARS[HTTP][adapter]
- * $TYPO3_CONF_VARS[HTTP][protocol_version]
- * $TYPO3_CONF_VARS[HTTP][follow_redirects]
- * $TYPO3_CONF_VARS[HTTP][max_redirects]
- * $TYPO3_CONF_VARS[HTTP][strict_redirects]
- * $TYPO3_CONF_VARS[HTTP][proxy_host]
- * $TYPO3_CONF_VARS[HTTP][proxy_port]
- * $TYPO3_CONF_VARS[HTTP][proxy_user]
- * $TYPO3_CONF_VARS[HTTP][proxy_password]
- * $TYPO3_CONF_VARS[HTTP][proxy_auth_scheme]
- * $TYPO3_CONF_VARS[HTTP][ssl_verify_peer]
- * $TYPO3_CONF_VARS[HTTP][ssl_verify_host]
- * $TYPO3_CONF_VARS[HTTP][ssl_cafile]
- * $TYPO3_CONF_VARS[HTTP][ssl_capath]
- * $TYPO3_CONF_VARS[HTTP][ssl_local_cert]
- * $TYPO3_CONF_VARS[HTTP][ssl_passphrase]
- * $TYPO3_CONF_VARS[HTTP][userAgent]
+ * :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:
- * $TYPO3_CONF_VARS[HTTP][userAgent] is now called $TYPO3_CONF_VARS[HTTP][headers][User-Agent]
- * $TYPO3_CONF_VARS[HTTP][protocol_version] is now called $TYPO3_CONF_VARS[HTTP][version]
- * All proxy-related options are unified within $TYPO3_CONF_VARS[HTTP][proxy]
- * All redirect-related options (HTTP/follow_redirects, HTTP/max_redirects, HTTP/strict_redirects) are unified within $TYPO3_CONF_VARS[HTTP][allow_redirects]
- * All options related to SSL private keys (HTTP/ssl_local_cert, HTTP/ssl_passphrase) are merged into $TYPO3_CONF_VARS[HTTP][ssl_key]
- * All options related to verify SSL peers are merged into $TYPO3_CONF_VARS[HTTP][verify]
+ * :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.
`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 `$TYPO3_CONF_VARS[HTTP]` when the install tool is run.
+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 `$TYPO3_CONF_VARS[HTTP][ssl_verify_host]`, `$TYPO3_CONF_VARS[HTTP][proxy_auth_scheme]`
-and `$TYPO3_CONF_VARS[HTTP][proxy_host]` need to migrated manually to the newly available options.
+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
Migration
=========
-Rename `pi_list_browseresults()` to `renderPagination()`.
+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
\ No newline at end of file
+.. index:: PHP-API, Frontend, ext:indexed_search
Description
===========
-If neither bodytext nor header were entered in the TextMedia element, the div element containing the class ce-bodytext will be suppressed.
+If neither bodytext nor header were entered in the TextMedia element, the div element containing the class `ce-bodytext` will be suppressed.
Impact
Affected Installations
======================
-All installations relying on <div class="ce-bodytext">
+All installations relying on :html:`<div class="ce-bodytext">`
Migration
Description
===========
-The entry point `PHP` classes for `index.php`, `typo3/index.php` and so forth (called "Application classes")
+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.
=========
Use the entry point level as integer, instead of the string, in your custom entry points. See
-`TYPO3\CMS\Backend\Http\Application` for an example.
+:php:`TYPO3\CMS\Backend\Http\Application` for an example.
.. index:: PHP-API, Backend
======================
Any existing installation upgrading to TYPO3 v8 with a (e.g. cron) CLI script, running the reference index update via
-the `typo3/cli_dispatch.phpsh`.
+the :file:`typo3/cli_dispatch.phpsh`.
Migration
The following options regarding FlexForm handling have been removed.
-* $TYPO3_CONF_VARS[BE][niceFlexFormXMLtags]
-* $TYPO3_CONF_VARS[BE][compactFlexFormXML]
+* :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.
Affected Installations
======================
-Any installation having these properties set in their LocalConfiguration.php.
+Any installation having these properties set in their :file:`LocalConfiguration.php`.
Any extension evaluating these parameters on its own.
Description
===========
-The setting `$TYPO3_CONF_VARS[BE][lockSSL]` which forces requests to the TYPO3 Backend to be transferred
+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
+* `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".
+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".
+TYPO3 instances having the option above set to `1`.
.. index:: LocalConfiguration, Backend
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 `LocalConfiguration.php` / `$GLOBALS['TYPO3_CONF_VARS']['DB']` has changed.
+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',
- ],
- ],
- ],
+ '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
=========
The Install Tool will migrate the configuration information for the default connection to the new
-format. Installations overriding the database configuration using `AdditionalConfiguration.php`
+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
Description
===========
-The PHP constants `TYPO3_db`, `TYPO3_db_username`, `TYPO3_db_password` and `TYPO3_db_host`
+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.
Migration
=========
-Use the configuration data within `$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default']`
+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
Description
===========
-When transforming HTML data from the Rich Text Editor to the database, the RteHtmlParser removed <p> tags from
-lines when there were no attributes for the <p> tags, otherwise they were kept as <p> tags with
+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 <p> tags within the content in order to minimize the transformation overhead
+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 <p> tags are now stored inside the database when saving the content.
+Every time an RTE field is edited, the :html:`<p>` tags are now stored inside the database when saving the content.
Affected Installations
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
\ No newline at end of file
+.. index:: Database, Backend, RTE
The following methods have been removed from `ContentObjectRenderer` without substitution:
-* DBgetDelete()
-* DBgetUpdate()
-* DBgetInsert()
-* DBmayFEUserEdit()
-* DBmayFEUserEditSelect()
-* exec_mm_query()
-* exec_mm_query_uidList()
+* :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:
-* $GLOBALS['TCA'][table]['ctrl']['fe_cruser_id']
-* $GLOBALS['TCA'][table]['ctrl']['fe_crgroup_id']
-* $GLOBALS['TCA'][table]['ctrl']['fe_admin_lock']
+* :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
Any TYPO3 installation using DB-related Frontend Administration with the obsolete functionality.
-.. index:: PHP-API, TCA, Database
\ No newline at end of file
+.. index:: PHP-API, TCA, Database
Description
===========
-The functionality for importing .t3d files created from installations lower than TYPO3 CMS 6.0 has been removed.
+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()`.
+The following public method has been removed: :php:`\TYPO3\CMS\Impexp\Import::fixCharsets()`.
Impact
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
\ No newline at end of file
+.. index:: PHP-API, Backend, ext:impexp
Description
===========
-The information about available packages in the system located in typo3conf/PackageStates.php was
+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
\ No newline at end of file
+.. index:: PHP-API
The following configuration options are not working anymore.
-:javascript:`top.TYPO3.configuration.RTEPopupWindow.width`
-:javascript:`top.TYPO3.configuration.RTEPopupWindow.height`
-:javascript:`top.TYPO3.configuration.PopupWindow.width`
-:javascript:`top.TYPO3.configuration.PopupWindow.height`
+* :javascript:`top.TYPO3.configuration.RTEPopupWindow.width`
+* :javascript:`top.TYPO3.configuration.RTEPopupWindow.height`
+* :javascript:`top.TYPO3.configuration.PopupWindow.width`
+* :javascript:`top.TYPO3.configuration.PopupWindow.height`
Impact
The migration can be done with the following replacements.
-:javascript:`top.TYPO3.configuration.RTEPopupWindow.width` to :javascript:`TYPO3.settings.Textarea.RTEPopupWindow.width`
-
-:javascript:`top.TYPO3.configuration.RTEPopupWindow.height` to :javascript:`TYPO3.settings.Textarea.RTEPopupWindow.height`
-
-:javascript:`top.TYPO3.configuration.PopupWindow.width` to :javascript:`TYPO3.settings.Popup.PopupWindow.width`
-
-:javascript:`top.TYPO3.configuration.PopupWindow.height` to :javascript:`TYPO3.settings.Popup.PopupWindow.height`
+* :javascript:`top.TYPO3.configuration.RTEPopupWindow.width` to :javascript:`TYPO3.settings.Textarea.RTEPopupWindow.width`
+* :javascript:`top.TYPO3.configuration.RTEPopupWindow.height` to :javascript:`TYPO3.settings.Textarea.RTEPopupWindow.height`
+* :javascript:`top.TYPO3.configuration.PopupWindow.width` to :javascript:`TYPO3.settings.Popup.PopupWindow.width`
+* :javascript:`top.TYPO3.configuration.PopupWindow.height` to :javascript:`TYPO3.settings.Popup.PopupWindow.height`
.. index:: JavaScript, Backend
Affected Installations
======================
-Instances that still use a configuration in `LocalConfiguration.php` or `AdditionalConfiguration.php` like:
+Instances that still use a configuration in :file:`LocalConfiguration.php` or :file:`AdditionalConfiguration.php` like:
.. code-block:: php
===========
The Frontend User field "image" was previously handled via images located under
-`uploads/pics/`, as simple file references, not able to handle duplicate images etc.
+:file:`uploads/pics/`, as simple file references, not able to handle duplicate images etc.
The field is now set up to add references of the File Abstraction Layer avoiding
-the need to copy all images to uploads/pics/.
+the need to copy all images to :file:`uploads/pics/`.
Impact
===========
Backend ExtJS category tree has been replaced with one based on D3.js and SVG.
-The js file `typo3/sysext/backend/Resources/Public/JavaScript/tree.js` has been removed.
+The js file :file:`typo3/sysext/backend/Resources/Public/JavaScript/tree.js` has been removed.
The expanded/collapsed state will not be saved to the backend user settings any more.
-It was not used in the core, as all category trees have setting 'expandAll' set to true.
+It was not used in the core, as all category trees have setting `expandAll` set to `true`.
It also polluted backend user settings with tons of data without giving much usability gain.
Impact
======================
All installations having extensions which modify the :javascript:`TYPO3.Components.Tree`
-(implemented in `typo3/sysext/backend/Resources/Public/JavaScript/tree.js`) component,
+(implemented in :file:`typo3/sysext/backend/Resources/Public/JavaScript/tree.js`) component,
or rely on the file being present.
has been adjusted.
The SQL fragment no longer includes the leading `AND` SQL operator and the
-method returns "1=1" if no search word is specified or if the table contains
+method returns `"1=1"` if no search word is specified or if the table contains
no searchable fields.
->fetchColumn();
}
-The parameter `$constraints` is expected to be an array of Doctrine Expressions
+The parameter :php:`$constraints` is expected to be an array of Doctrine Expressions
or SQL fragments.
In case of SQL fragments proper quoting needs to be ensured by the invoking method.
Migration
=========
-Instead of passing an array of parameters built using the deprecated ::php::`makeQueryArray()` method
+Instead of passing an array of parameters built using the deprecated :php:`makeQueryArray()` method
explicitly pass in the table name, page id and any additional query restrictions required.
.. index:: Database, PHP-API, Backend
Description
===========
-The value of `$additionalWhere` passed to the method :php:`getDBlistQuery()`
+The value of :php:`$additionalWhere` passed to the method :php:`getDBlistQuery()`
as part of the hook `getTable` in :php:`\TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList`
has changed and no longer includes the leading `AND`.
The following unused properties have been removed from the :php:`PageTreeView` class:
-:php:`ext_separateNotinmenuPages`
-:php:`ext_alphasortNotinmenuPages`
+* :php:`ext_separateNotinmenuPages`
+* :php:`ext_alphasortNotinmenuPages`
Impact
Description
===========
-In previous TYPO3 versions it was possible to add help text and and an help image to a certain category or
+In previous TYPO3 versions it was possible to add help text and an help image to a certain category or
configuration option in the TypoScript Constant Editor of the TYPO3 Backend. This was previously done via an
additional Constant Editor option within the `TSConstantEditor` object.
The functionality has been removed without substitution.
Along with that change, the following PHP methods have been removed:
-- :php:`ExtendedTemplateService::ext_getTSCE_config_image()`
-- :php:`ConfigurationForm::ext_getTSCE_config_image()`
+
+* :php:`ExtendedTemplateService::ext_getTSCE_config_image()`
+* :php:`ConfigurationForm::ext_getTSCE_config_image()`
The following public properties have been removed:
-- :php:`ExtendedTemplateService::$ext_localGfxPrefix`
-- :php:`ExtendedTemplateService::$ext_localWebGfxPrefix`
+
+* :php:`ExtendedTemplateService::$ext_localGfxPrefix`
+* :php:`ExtendedTemplateService::$ext_localWebGfxPrefix`
Within :php:`ConfigurationForm::ext_initTSstyleConfig()` the second and third parameter have been removed.
* [config][treeConfig][appearance][allowRecursiveMode]
The option hasn't been working for a while and the documentation vs. implementation
-was off - see https://forge.typo3.org/issues/77074
+was off - see :issue:`77074`
* [config][treeConfig][appearance][width]
* [config][autoSizeMax]
The options have no influence on the rendering of FormEngine select field configured
-with 'renderType'=>'selectTree' anymore.
+with :php:`'renderType' => 'selectTree'` anymore.
The Recursive selection button (the green arrow button located on the category tree toolbar) was
not widely used, mostly due that nobody expected the green "refresh" icon was related to recursive
ExtJS-based plugins will throw JavaScript errors.
The following methods have been removed:
+
* `onContainerResize`
* `getWindowDimensions`
* `setTabPanelHeight`
* `syncHeight`
The following methods have been changed:
+
* `openContainerWindow`
* `buildButtonConfig`
Description
===========
-Soft references based on TSconfig, TStemplate and images within fileadmin/ have been removed.
+Soft references based on TSconfig, TStemplate and images within :file:`fileadmin/` have been removed.
-The soft reference keys "TSconfig" and "TStemplate" that could previously be set via
-`$TCA[$table][columns][$column][config][softref]` are not evaluated anymore.
+The soft reference keys `TSconfig` and `TStemplate` that could previously be set via
+:php:`$GLOBALS[TCA][$table][columns][$column][config][softref]` are not evaluated anymore.
-The soft reference keys "images", "typolink" and "typolink_tag" are not evaluating files within fileadmin/
+The soft reference keys `images`, `typolink` and `typolink_tag` are not evaluating files within :file:`fileadmin/`
anymore that are not based on the File Abstraction Layer.
-The public PHP property "SoftReferenceIndex::$fileAdminDir" has been removed.
+The public PHP property :php:`SoftReferenceIndex::$fileAdminDir` has been removed.
The following PHP methods has been removed without substitution:
- :php:`SoftReferenceIndex::findRef_TStemplate()`
Calling any of the PHP methods above will throw a fatal PHP error.
The soft reference index will not be updated with the TSconfig and TStemplate properties anymore, as well
-as files directly linked or referenced with the fileadmin/ directory.
+as files directly linked or referenced with the :file:`fileadmin/` directory.
Affected Installations
used for non-FAL files.
Now, old legacy functionality has been removed.
-The `init()` method hasbeen replaced by a real constructor. A possibility to set the
+The :php:`init()` method has been replaced by a real constructor. A possibility to set the
file extension permissions has been added via `setFileExtensionPermissions()`.
-The DefaultConfiguration setting `$TYPO3_CONF_VARS[BE][fileExtensions][ftpspace]`
+The DefaultConfiguration setting :php:`$GLOBALS[TYPO3_CONF_VARS][BE][fileExtensions][ftpspace]`
has been removed.
The following public properties within BasicFileUtility have been removed:
-- `getUniqueNamePrefix`
-- `tempFN`
-- `f_ext`
-- `mounts`
-- `webPath`
-- `isInit`
+
+* `getUniqueNamePrefix`
+* `tempFN`
+* `f_ext`
+* `mounts`
+* `webPath`
+* `isInit`
The following public methods within `BasicFileUtility` have been removed:
-- `checkPathAgainstMounts()`
-- `findFirstWebFolder()`
-- `slashPath()`
-- `is_webpath()`
-- `checkIfFullAccess()`
-- `init()`
+
+* `checkPathAgainstMounts()`
+* `findFirstWebFolder()`
+* `slashPath()`
+* `is_webpath()`
+* `checkIfFullAccess()`
+* `init()`
The following public properties within `BasicFileUtility` have been set to have a protected visibility:
-- `is_directory`
-- `is_allowed`
+
+* `is_directory`
+* `is_allowed`
Impact
Calling any of the methods above or using one of the properties above will result in PHP errors and warnings respectively.
-Using the `TYPO3_CONF_VARS setting` has no effect anymore.
+Using the `TYPO3_CONF_VARS` setting has no effect anymore.
Affected Installations
Description
===========
-The following public properties of the PHP class `TypoScriptFrontendController` have been removed.
+The following public properties of the PHP class :php:`TypoScriptFrontendController` have been removed.
-- TYPO3_CONF_VARS
-- defaultBodyTag
-- clientInfo
+* :php:`TYPO3_CONF_VARS`
+* :php:`defaultBodyTag`
+* :php:`clientInfo`
-Additionally, the first parameter of the `TypoScriptFrontendController` constructor has no effect anymore and can be set
+Additionally, the first parameter of the :php:`TypoScriptFrontendController` constructor has no effect anymore and can be set
to null.
Migration
=========
-For any calls to `$TSFE->TYPO3_CONF_VARS` the global array `$GLOBALS['TYPO3_CONF_VARS']` should be used.
+For any calls to :php:`$GLOBALS['TSFE']->TYPO3_CONF_VARS` the global array :php:`$GLOBALS['TYPO3_CONF_VARS']` should be used.
-For the property `defaultBodyTag` the according TypoScript settings can be used to override the
+For the property :php:`defaultBodyTag` the according TypoScript settings can be used to override the
body tag or the page title.
-The information previously stored in the clientInfo property can be fetched via `GeneralUtility::clientInfo()`.
+The information previously stored in the clientInfo property can be fetched via :php:`GeneralUtility::clientInfo()`.
.. index:: PHP-API, Frontend
===========
The value of the constant :ts:`styles.content.shortcut.tables` which is set by
-EXT:fluid_styled_content has been changed from "tt_content,tt_address,tt_news,tx_news_domain_model_news" to "tt_content".
+EXT:fluid_styled_content has been changed from :ts:`tt_content,tt_address,tt_news,tx_news_domain_model_news` to :ts:`tt_content`.
Impact
The possibility to override the template file via FlexForm when inserting a Frontend Login plugin has been removed.
-The need for the upload folder `uploads/tx_felogin` has been removed, and the folder is not generated anymore.
+The need for the upload folder :file:`uploads/tx_felogin` has been removed, and the folder is not generated anymore.
Impact
Migration
=========
-Use the TypoScript setting `plugin.tx_felogin.templateFile` to set an alternative template file.
+Use the TypoScript setting :ts:`plugin.tx_felogin.templateFile` to set an alternative template file.
.. index:: Frontend, ext:felogin, TypoScript
Description
===========
-The `IMAGEBUTTON` element has been removed in TYPO3 v8.
+The :ts:`IMAGEBUTTON` element has been removed in TYPO3 v8.
Impact
======
-Using the `IMAGEBUTTON` element is not working anymore, i.e. no `IMAGEBUTTON` element will be rendered.
+Using the :ts:`IMAGEBUTTON` element is not working anymore, i.e. no :ts:`IMAGEBUTTON` element will be rendered.
Affected Installations
======================
-All installations using the `IMAGEBUTTON` element.
+All installations using the :ts:`IMAGEBUTTON` element.
Migration
=========
-Remove all usages of the `IMAGEBUTTON` element.
+Remove all usages of the :ts:`IMAGEBUTTON` element.
.. index:: TypoScript, ext:form
The PHP-based query cache functionality within the Extbase persistence layer has been removed.
The following public methods within the Extbase persistence layer have been removed:
- * `Typo3DbBackend->quoteTextValueCallback()`
- * `Typo3DbBackend->initializeObject()`
- * `Typo3DbBackend->injectCacheManager()`
- * Interface definition in `QuerySettingsInterface->getUseQueryCache()`
-The TypoScript configuration `config.tx_extbase.persistence.useQueryCache` has no effect anymore.
+ * :php:`Typo3DbBackend->quoteTextValueCallback()`
+ * :php:`Typo3DbBackend->initializeObject()`
+ * :php:`Typo3DbBackend->injectCacheManager()`
+ * Interface definition in :php:`QuerySettingsInterface->getUseQueryCache()`
+
+The TypoScript configuration :ts:`config.tx_extbase.persistence.useQueryCache` has no effect anymore.
Impact
======
-The according cache configuration set via `$TYPO3_CONF_VARS[SYS][cache][cacheConfigurations][extbase_typo3dbbackend_queries]` has no effect anymore.
+The according cache configuration set via :php:`$GLOBALS[TYPO3_CONF_VARS][SYS][cache][cacheConfigurations][extbase_typo3dbbackend_queries]` has no effect anymore.
Affected Installations
Remove the according lines and migrate to Doctrine.
-.. index:: Database, PHP-API, LocalConfiguration, ext:extbase
\ No newline at end of file
+.. index:: Database, PHP-API, LocalConfiguration, ext:extbase
via Doctrine DBAL.
The following public methods have been removed:
-* `Typo3DbBackend->quoteTextValueCallback()`
-* `Typo3DbQueryParser->preparseQuery()`
-* `Typo3DbQueryParser->normalizeParameterIdentifier()`
-* `Typo3DbQueryParser->addDynamicQueryParts()`
-* `ComparisonInterface->setParameterIdentifier`
-* `ComparisonInterface->getParameterIdentifier`
+
+* :php:`Typo3DbBackend->quoteTextValueCallback()`
+* :php:`Typo3DbQueryParser->preparseQuery()`
+* :php:`Typo3DbQueryParser->normalizeParameterIdentifier()`
+* :php:`Typo3DbQueryParser->addDynamicQueryParts()`
+* :php:`ComparisonInterface->setParameterIdentifier`
+* :php:`ComparisonInterface->getParameterIdentifier`
Impact
Migration
=========
-Remove the functionality and just use `Typo3DbQueryParser->parseQuery()`.
+Remove the functionality and just use :php:`Typo3DbQueryParser->parseQuery()`.
.. index:: Database, PHP-API, ext:extbase
Description
===========
-The extbase table column cache "extbase_typo3dbbackend_tablecolumns",
+The extbase table column cache `extbase_typo3dbbackend_tablecolumns`,
which was used to store all database fields of all database tables,
hass been removed.
-The associated configuration variable `$TYPO3_CONF_VARS[SYS][caching][cacheConfigurations][extbase_typo3dbbackend_tablecolumns]` can safely be removed.
+The associated configuration variable :php:`$GLOBALS[TYPO3_CONF_VARS][SYS][caching][cacheConfigurations][extbase_typo3dbbackend_tablecolumns]` can safely be removed.
.. index:: Database, ext:extbase, LocalConfiguration
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
-`Typo3DbQueryParser->parseQuery()` has been removed, instead the new equivalent
-`Typo3DbQueryParser->convertQueryToDoctrineQueryBuilder()` has been introduced.
+:php:`Typo3DbQueryParser->parseQuery()` has been removed, instead the new equivalent
+:php:`Typo3DbQueryParser->convertQueryToDoctrineQueryBuilder()` has been introduced.
-Additionally, the PHP method `Typo3DBBackend->injectQueryParser()` has been removed, as the `Typo3DbQueryParser` class is not a
+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.
Migration
=========
-Switch to Doctrine DBAL and `Typo3DbQueryParser->convertQueryToDoctrineQueryBuilder()` which results in the same behaviour.
+Switch to Doctrine DBAL and :php:`Typo3DbQueryParser->convertQueryToDoctrineQueryBuilder()` which results in the same behaviour.
-.. index:: PHP-API, Database
\ No newline at end of file
+.. index:: PHP-API, Database
Affected Installations
======================
-Any installation that uses the `FILES` cObject, e.g. via the `uploads` CType, as well as
+Any installation that uses the :ts:`FILES` cObject, e.g. via the `uploads` CType, as well as
any installation with a 3rd party extension that uses the named method.
Migration
Description
===========
-The following icons have been removed from `typo3/sysext/backend/Resources/Public/Images/FormFieldWizard/`:
+The following icons have been removed from :file:`typo3/sysext/backend/Resources/Public/Images/FormFieldWizard/`:
-- wizard_add.gif
-- wizard_edit.gif
-- wizard_list.gif
-- wizard_table.gif
-- wizard_link.gif
-- wizard_rte.gif
+- :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 TCA migration migrates the icon calls to the new output if used as wizard icon.
-- `wizard_add.gif` => `actions-add`
-- `wizard_edit.gif` => `actions-open`
-- `wizard_list.gif` => `actions-system-list-open`
-- `wizard_table.gif` => `content-table`
-- `wizard_link.gif` => `actions-wizard-link`
-- `wizard_rte.gif` => `actions-wizard-rte`
+- :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
Description
===========
-Icons from `EXT:t3skin/` have been removed or moved to different locations.
+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:
-- `typo3/sysext/t3skin/icons/gfx/error.png`
-- `typo3/sysext/t3skin/icons/gfx/i/_icon_ftp.gif`
-- `typo3/sysext/t3skin/icons/gfx/information.png`
-- `typo3/sysext/t3skin/icons/gfx/notice.png`
-- `typo3/sysext/t3skin/icons/gfx/warning.png`
+* :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:
-- `typo3/sysext/t3skin/icons/gfx/icon_fatalerror.gif` => `typo3/sysext/backend/Resources/Public/Icons/icon_fatalerror.gif`
-- `typo3/sysext/t3skin/images/icons/status/status-edit-read-only.png` => `typo3/sysext/backend/Resources/Public/Icons/status-edit-read-only.png`
-- `typo3/sysext/t3skin/images/icons/status/warning-in-use.png` => `typo3/sysext/backend/Resources/Public/Icons/warning-in-use.png`
-- `typo3/sysext/t3skin/images/icons/status/warning-lock.png` => `typo3/sysext/backend/Resources/Public/Icons/warning-lock.png`
-- `typo3/sysext/t3skin/images/icons/status/status-reference-hard.png` => `typo3/sysext/impexp/Resources/Public/Icons/status-reference-hard.png`
-- `typo3/sysext/t3skin/images/icons/status/status-reference-soft.png` => `typo3/sysext/impexp/Resources/Public/Icons/status-reference-soft.png`
+* :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 EXT:t3skin/icons/.
+Installations or extensions which have references to icons in :file:`EXT:t3skin/icons/`.
Migration
The feature subsearch which enabled the possibility to append previously searched words to the current
query was removed.
-The option TypoScript `plugin.tx_indexedsearch.clearSearchBox` has been removed.
+The option TypoScript :ts:`plugin.tx_indexedsearch.clearSearchBox` has been removed.
Impact
===========
To make clear that autoload information is not a cache,
-the files have been moved from typo3temp to typo3conf.
+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 typo3conf in the list of to be synced files.
+to also include the new location in :file:`typo3conf` in the list of to be synced files.
Affected Installations
The autoload files should never be deleted, but always only be re-dumped.
-.. index:: PHP-API
\ No newline at end of file
+.. index:: PHP-API
===========
During the fluidification of the clipboard, it became obvious that the method
-`printContentFromTab()` doesn't describe the method correctly anymore. So it has been
-renamed to `getContentFromTab()`.
+:php:`printContentFromTab()` doesn't describe the method correctly anymore. So it has been
+renamed to :php:`getContentFromTab()`.
Impact
Affected Installations
======================
-Every extension that calls `Clipboard->printContentFromTab()`.
+Every extension that calls :php:`Clipboard->printContentFromTab()`.
Migration
=========
-Change the call from `Clipboard->printContentFromTab()` to `Clipboard->getContentFromTab()`.
+Change the call from :php:`Clipboard->printContentFromTab()` to :php:`Clipboard->getContentFromTab()`.
-.. index:: Backend, PHP-API
\ No newline at end of file
+.. index:: Backend, PHP-API
======================
All generated links to Extbase actions that explicitly disabled the cHash are
-affected - like `<f:link.action action="..." noCacheHash="1"/>`
+affected - like :html:`<f:link.action action="..." noCacheHash="1"/>`
Migration
Either one of the following:
+ ensure to use a valid cHash, e.g. by removing the
- `noCacheHash="1"` argument from link view-helpers
-+ disable the `feature.requireCHashArgumentForActionArguments`
+ :html:`noCacheHash="1"` argument from link view-helpers
++ disable the :ts:`feature.requireCHashArgumentForActionArguments`
setting for the particular extension
-.. index:: Frontend, PHP-API, ext:extbase
\ No newline at end of file
+.. index:: Frontend, PHP-API, ext:extbase
Modifications concerning the following two TCA control properties won't have
any effect anymore:
-+ `$TCA[<tableName>]['ctrl']['transForeignTable']`
-+ `$TCA[<tableName>]['ctrl']['transOrigPointerTable']`
+* :php:`$GLOBALS[TCA][<tableName>]['ctrl']['transForeignTable']`
+* :php:`$GLOBALS[TCA][<tableName>]['ctrl']['transOrigPointerTable']`
Affected Installations
adjustments concerning the mentioned TCA properties should be verified and
hard-coded for the time being.
-+ `$TCA['pages']['ctrl']['transForeignTable']`, use value `pages_language_overlay` directly
-+ `$TCA['pages_language_overlay']['ctrl']['transOrigPointerTable']`, use value `pages` directly
+* :php:`$GLOBALS[TCA]['pages']['ctrl']['transForeignTable']`, use value `pages_language_overlay` directly
+* :php:`$GLOBALS[TCA]['pages_language_overlay']['ctrl']['transOrigPointerTable']`, use value `pages` directly
.. index:: TCA, Backend
===========
The tables `pages`, `tt_content` and `sys_file_metadata` have been removed from `defaultCategorizedTables`.
-For these tables the core API `\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable` would be
+For these tables the core API :php:`\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable` would be
executed to define a common position of the categories field.
Impact
======
-Since especially a not yet cached frontend call relies on initialized `$GLOBALS['TCA']`, changes to `TCA` done
+Since especially a not yet cached frontend call relies on initialized :php:`$GLOBALS['TCA']`, changes to `TCA` done
within :file:`ext_tables.php` are now ignored and may fail.
Affected Installations
======================
-Extensions that still set, add or remove settings in `$GLOBALS['TCA']` need to be adapted. The install tool
+Extensions that still set, add or remove settings in :php:`$GLOBALS['TCA']` need to be adapted. The install tool
provides test "TCA ext_tables check" to find such extensions.
Migration
=========
-In :file:`ext_tables.php` neither writing directly to `$GLOBALS['TCA']` and `$TCA` is allowed, nor writing indirectly
+In :file:`ext_tables.php` neither writing directly to :php:`$GLOBALS['TCA']` and `$TCA` is allowed, nor writing indirectly
via `ExtensionManagementUtility` methods. An example list of calls and their new positions:
-* `$GLOBALS['TCA']['someTable'] = `: A full table `TCA` is added. This must be moved
- to `Configuration/TCA/someTable.php`, see `ext:sys_note` as example.
+* :php:`$GLOBALS['TCA']['someTable'] = `: A full table `TCA` is added. This must be moved
+ to :file:`Configuration/TCA/someTable.php`, see `ext:sys_note` as example.
-* `ExtensionManagementUtility::addStaticFile()`: A static file is registered
- in `sys_template`. Add this to `Configuration/TCA/Overrides/sys_template.php`, see `ext:rtehtmlarea` as example.
+* :php:`ExtensionManagementUtility::addStaticFile()`: A static file is registered
+ in `sys_template`. Add this to :file:`Configuration/TCA/Overrides/sys_template.php`, see `ext:rtehtmlarea` as example.
-* `ExtensionManagementUtility::addTCAcolumns()`: Columns are added to a table. Add this
- to `Configuration/TCA/Overrides/<table>.php`, see `ext:felogin` as example.
+* :php:`ExtensionManagementUtility::addTCAcolumns()`: Columns are added to a table. Add this
+ to :file:`Configuration/TCA/Overrides/<table>.php`, see `ext:felogin` as example.
-* `ExtensionManagementUtility::addToAllTCAtypes()`: Fields are added to types. Add this
- to `Configuration/TCA/Overrides/<table>.php`, see `ext:felogin` as example.
+* :php:`ExtensionManagementUtility::addToAllTCAtypes()`: Fields are added to types. Add this
+ to :file:`Configuration/TCA/Overrides/<table>.php`, see `ext:felogin` as example.
-* `ExtensionManagementUtility::addPiFlexFormValue()`: A new flex from in `tt_content` is registered. Add
- this to `Configuration/TCA/Overrides/tt_content.php`, see `ext:felogin` as example.
+* :php:`ExtensionManagementUtility::addPiFlexFormValue()`: A new flex from in `tt_content` is registered. Add
+ this to :file:`Configuration/TCA/Overrides/tt_content.php`, see `ext:felogin` as example.
-* `ExtensionUtility::registerPlugin()` and `ExtensionManagementUtility::addPlugin`: A new type item
- is added to the `tt_content` table. Add this to `Configuration/TCA/Overrides/tt_content.php`.
+* :php:`ExtensionUtility::registerPlugin()` and :php:`ExtensionManagementUtility::addPlugin`: A new type item
+ is added to the `tt_content` table. Add this to :file:`Configuration/TCA/Overrides/tt_content.php`.
.. index:: Frontend, TCA, PHP-API
The following classes have been moved:
-* EXT:workspaces/Classes/ExtDirect/AbstractHandler.php
- => EXT:workspaces/Classes/Controller/Remote/AbstractHandler.php
+* :file:`EXT:workspaces/Classes/ExtDirect/AbstractHandler.php`
+ => :file:`EXT:workspaces/Classes/Controller/Remote/AbstractHandler.php`
-* EXT:workspaces/Classes/ExtDirect/ActionHandler.php
- => EXT:workspaces/Classes/Controller/Remote/ActionHandler.php
+* :file:`EXT:workspaces/Classes/ExtDirect/ActionHandler.php`
+ => :file:`EXT:workspaces/Classes/Controller/Remote/ActionHandler.php`
-* EXT:workspaces/Classes/ExtDirect/MassActionHandler.php
- => EXT:workspaces/Classes/Controller/Remote/MassActionHandler.php
+* :file:`EXT:workspaces/Classes/ExtDirect/MassActionHandler.php`
+ => :file:`EXT:workspaces/Classes/Controller/Remote/MassActionHandler.php`
-* EXT:workspaces/Classes/ExtDirect/ExtDirectServer.php
- => EXT:workspaces/Classes/Controller/Remote/RemoteServer.php
+* :file:`EXT:workspaces/Classes/ExtDirect/ExtDirectServer.php`
+ => :file:`EXT:workspaces/Classes/Controller/Remote/RemoteServer.php`
Affected Installations
===========
The following JavaScript methods related to ExtJS have been removed from the Backend main frame
-as defined in the main `backend.js` file.
+as defined in the main :file:`backend.js` file.
-:javascript:`TYPO3._instances`
-:javascript:`TYPO3.addInstance`
-:javascript:`TYPO3.getInstance`
-:javascript:`TYPO3.helpers.split`
+* :javascript:`TYPO3._instances`
+* :javascript:`TYPO3.addInstance`
+* :javascript:`TYPO3.getInstance`
+* :javascript:`TYPO3.helpers.split`
Impact
Description
===========
-Removed all options that are not used anymore from TYPO3.configuration in JavaScript context.
+Removed all options that are not used anymore from :javascript:`TYPO3.configuration` in JavaScript context.
-:javascript:`TYPO3.configuration.moduleMenuWidth`
-:javascript:`TYPO3.configuration.topBarHeight`
+* :javascript:`TYPO3.configuration.moduleMenuWidth`
+* :javascript:`TYPO3.configuration.topBarHeight`
Impact
===========
In the past it was possible to override the "New Page Creation Wizard" via custom scripts
-when using page TSconfig via `mod.web_list.newPageWiz.overrideWithExtension = myextension` to define an extension,
-which then needed a file placed under `mod1/index.php`. The script was then called with certain parameters instead
+when using page TSconfig via :ts:`mod.web_list.newPageWiz.overrideWithExtension = myextension` to define an extension,
+which then needed a file placed under :file:`mod1/index.php`. The script was then called with certain parameters instead
of the wizard.
The new way of handling entry-points and custom scripts is now built via modules and routes. The former option
-`mod.web_list.newPageWiz.overrideWithExtension` has been removed and a new option
-`mod.newPageWizard.override` has been introduced instead. Instead of setting the option to a certain extension key,
+:ts:`mod.web_list.newPageWiz.overrideWithExtension` has been removed and a new option
+:ts:`mod.newPageWizard.override` has been introduced instead. Instead of setting the option to a certain extension key,
a custom module or route has to be specified.
Example:
Impact
======
-Using the old TSconfig option `mod.web_list.newPageWiz.overrideWithExtension` has no effect anymore and
+Using the old TSconfig option :ts:`mod.web_list.newPageWiz.overrideWithExtension` has no effect anymore and
will fallback to the regular new page creation wizard provided by the TYPO3 Core.
Impact
======
-The HTML string given to the hook after compiling the output now contains the closing form tag (</form>).
+The HTML string given to the hook after compiling the output now contains the closing form tag :html:`</form>`.
Affected Installations
The hook code has to be changed to insert additional code before the closing form tag.
-.. index:: Backend, Fluid
\ No newline at end of file
+.. index:: Backend, Fluid
Description
===========
-These translations have been removed from `EXT:sys_action/Resources/Private/Language/locallang.xlf`:
+These translations have been removed from :file:`EXT:sys_action/Resources/Private/Language/locallang.xlf`:
* action_BEu_hidden
* action_BEu_username
* action_BEu_email
* action_BEu_usergroups
-These translations have been removed from `EXT:sys_action/Resources/Private/Language/locallang_tca.xlf`:
+These translations have been removed from :file:`EXT:sys_action/Resources/Private/Language/locallang_tca.xlf`:
* tx_sys_action
Migration
=========
-Create your own `locallang.xlf` file and add the required translations.
+Create your own :file:`locallang.xlf` file and add the required translations.
.. index:: Backend, ext:sys_action
which means they support all standard HTML attributes.
Note that while tag content rendering is now supported,
-it is **STILL** not possible to create `<option>` tags
+it is **STILL** not possible to create :html:`<option>` tags
manually - you **HAVE** to use the form fields!
Example:
.. code-block:: html
- <f:form.select name="myproperty">
- <f:form.select.option value="1">Option one</f:form.select.option>
- <f:form.select.option value="2">Option two</f:form.select.option>
- <f:form.select.optgroup>
- <f:form.select.option value="3">Grouped option one</f:form.select.option>
- <f:form.select.option value="4">Grouped option twi</f:form.select.option>
- </f:form.select.optgroup>
- </f:form.select>
+ <f:form.select name="myproperty">
+ <f:form.select.option value="1">Option one</f:form.select.option>
+ <f:form.select.option value="2">Option two</f:form.select.option>
+ <f:form.select.optgroup>
+ <f:form.select.option value="3">Grouped option one</f:form.select.option>
+ <f:form.select.option value="4">Grouped option twi</f:form.select.option>
+ </f:form.select.optgroup>
+ </f:form.select>
Impact
* Adds two new ViewHelpers
* Changes `SelectViewHelper` to allow tag content (but not manual options created without using `f:form.select.*`)
-.. index:: Fluid
\ No newline at end of file
+.. index:: Fluid
Description
===========
-HMENU setting `showAccessRestrictedPages=NONE` now acts as documented in
-:ref:`TypoScript reference <t3tsref:menu-common-properties>`.
+HMENU setting :ts:`showAccessRestrictedPages = NONE` now acts as documented in
+:ref:`TypoScript reference <t3tsref:menu-common-properties-showaccessrestrictedpages>`.
-Before: using the option renders `<a>Page title</a>` when page is inaccessible.
+Before: using the option renders :html:`<a>Page title</a>` when page is inaccessible.
-After: using the option renders `<a href="index.php?id=123">Page title</a>`
+After: using the option renders :html:`<a href="index.php?id=123">Page title</a>`
when page is not accessible.
-.. index:: Frontend, TypoScript
\ No newline at end of file
+.. index:: Frontend, TypoScript
.. include:: ../../Includes.txt
-====================================================================================
-Breaking: #78477 - FlashMessageViewHelper no longer inherits from TagBasedViewHelper
-====================================================================================
+=====================================================================================
+Breaking: #78477 - FlashMessagesViewHelper no longer inherits from TagBasedViewHelper
+=====================================================================================
See :issue:`78477`
Description
===========
-The :php:`FlashMessageViewHelper` has been refactored and no longer inherits from the :php:`TagBasedViewHelper`.
+The :php:`FlashMessagesViewHelper` has been refactored and no longer inherits from the :php:`TagBasedViewHelper`.
Impact
======
-The :php:`FlashMessageViewHelper` outputs default context specific markup. Adding own classes or tag attributes is no longer possible.
+The :php:`FlashMessagesViewHelper` outputs default context specific markup. Adding own classes or tag attributes is no longer possible.
Affected Installations
======================
-All installations using the :php:`FlashMessageViewHelper` with tag specific attributes.
+All installations using the :php:`FlashMessagesViewHelper` with tag specific attributes.
Migration
Description
===========
-Since the .gitattributes export change, a lot of base test classes for writing own tests are missing in distribution builds.
+Since the :file:`.gitattributes` export change, a lot of base test classes for writing own tests are missing in distribution builds.
To get a sustainable future-proof solution, the TYPO3 core testing framework will be extracted to an own component.
Migration
=========
-Change the namespace from TYPO3\CMS\Core\Tests to TYPO3\TestingFramework\Core or in case of the xml fixtures the corresponding file path.
+Change the namespace from :php:`TYPO3\CMS\Core\Tests` to :php:`TYPO3\TestingFramework\Core` or in case of the xml fixtures the corresponding file path.
If you need to ensure compatibility with multiple TYPO3 versions, use the base test classes with their old names.
Affected Installations
======================
-All installations using EXT:felogin with default/non-overwritten `plugin.tx_felogin_pi1._CSS_DEFAULT_STYLE`
+All installations using EXT:felogin with default/non-overwritten :ts:`plugin.tx_felogin_pi1._CSS_DEFAULT_STYLE`
TypoScript setup are affected.
Description
===========
-The deprecated PHP constants `TYPO3_cliKey` and `TYPO3_cliInclude`, and the global variables `$GLOBALS['temp_cliScriptPath']` and
-`$GLOBALS['temp_cliKey']` which had been filled when running a CLI command have been removed.
+The deprecated PHP constants :php:`TYPO3_cliKey` and :php:`TYPO3_cliInclude`, and the global variables :php:`$GLOBALS['temp_cliScriptPath']` and
+:php:`$GLOBALS['temp_cliKey']` which had been filled when running a CLI command have been removed.
Impact
Any installation with third-party CLI commands which use these constants or global variables.
-.. index:: CLI, PHP-API
\ No newline at end of file
+.. index:: CLI, PHP-API
Migration
=========
-In most cases it's sufficient to replace the register function with `Viewport.Topbar.Toolbar.registerEvent()`.
+In most cases it's sufficient to replace the register function with :javascript:`Viewport.Topbar.Toolbar.registerEvent()`.
Example:
.. code-block:: javascript
define(['jquery', 'TYPO3/CMS/Backend/Viewport'], function($, Viewport) {
- // old registration
- $(MyAwesomeItem.doStuff)
+ // old registration
+ MyAwesomeItem.doStuff)
- // new registration
- Viewport.Topbar.Toolbar.registerEvent(MyAwesomeItem.doStuff);
+ // new registration
+ Viewport.Topbar.Toolbar.registerEvent(MyAwesomeItem.doStuff);
});
-.. index:: Backend, JavaScript
\ No newline at end of file
+.. index:: Backend, JavaScript
Description
===========
-The ExtDirect based State Provider for ExtJS applications (endpoint `TYPO3.ExtDirectStateProvider.ExtDirect`) has been removed.
+The ExtDirect based State Provider for ExtJS applications (endpoint :javascript:`TYPO3.ExtDirectStateProvider.ExtDirect`) has been removed.
-The ExtDirect endpoint `TYPO3.ExtDirectStateProvider.ExtDirect` is no longer available.
+The ExtDirect endpoint :javascript:`TYPO3.ExtDirectStateProvider.ExtDirect` is no longer available.
The following PHP classes have been removed:
-* `\TYPO3\CMS\Backend\InterfaceState\ExtDirect\DataProvider`
-* `\TYPO3\CMS\Backend\Tree\AbstractTreeStateProvider`
-* `\TYPO3\CMS\Backend\Tree\AbstractExtJsTree`
-The relevant JavaScript file `ExtDirect.StateProvider.js` has been removed.
+* :php:`\TYPO3\CMS\Backend\InterfaceState\ExtDirect\DataProvider`
+* :php:`\TYPO3\CMS\Backend\Tree\AbstractTreeStateProvider`
+* :php:`\TYPO3\CMS\Backend\Tree\AbstractExtJsTree`
+
+The relevant JavaScript file :file:`ExtDirect.StateProvider.js` has been removed.
The PHP method php:`DocumentTemplate->setExtDirectStateProvider()` to load the JavaScript file has been removed.
Affected Installations
======================
-All having `$GLOBALS['TCA'][<table-name>]['columns'][<column-name>]['l10n_mode']`
+All having :php:`$GLOBALS['TCA'][<table-name>]['columns'][<column-name>]['l10n_mode']`
set to `noCopy`.
Migration
=========
-Remove setting `$GLOBALS['TCA'][<table-name>]['columns'][<column-name>]['l10n_mode']`
+Remove setting :php:`$GLOBALS['TCA'][<table-name>]['columns'][<column-name>]['l10n_mode']`
if it is set to `noCopy`.
-.. index:: TCA, Backend
\ No newline at end of file
+.. index:: TCA, Backend
======================
All instances with extensions setting TCA options and having
-`$GLOBALS['TCA'][<table-name>]['columns'][<column-name>]['l10n_mode']` set to `mergeIfNotBlank`.
+:php:`$GLOBALS['TCA'][<table-name>]['columns'][<column-name>]['l10n_mode']` set to `mergeIfNotBlank`.
Migration
First execute the upgrade wizard
**Migrate values in database records having "l10n_mode" set** in the install tool.
-After that, remove `$GLOBALS['TCA'][<table-name>]['columns'][<column-name>]['l10n_mode']`
+After that, remove :php:`$GLOBALS['TCA'][<table-name>]['columns'][<column-name>]['l10n_mode']`
if it is set to `mergeIfNotBlank`. If `l10n_mode` is removed before the upgrade wizard
has been executed, nothing will be migrated - thus, it's important to keep that order
of migration.
The term `blank` refers to an empty string (`''`), `empty` refers to an empty
string, null values and zero values (numeric and string).
-.. index:: Database, TCA
\ No newline at end of file
+.. index:: Database, TCA
Description
===========
-The TypoScript setting `config.sys_language_softMergeIfNotBlank` has been removed
+The TypoScript setting :ts:`config.sys_language_softMergeIfNotBlank` has been removed
without any replacement. This is a result of removing the TCA setting
`mergeIfNotBlank` from the list of possible values for `l10n_mode`.
Migration
=========
-Remove TypoScript setting `config.sys_language_softMergeIfNotBlank`.
+Remove TypoScript setting :ts:`config.sys_language_softMergeIfNotBlank`.
-.. index:: Frontend, TypoScript, TCA
\ No newline at end of file
+.. index:: Frontend, TypoScript, TCA
Description
===========
-The PHP class `TYPO3\CMS\Scheduler\Controller\SchedulerCliController` has been removed from the system extension "scheduler"
+The PHP class :php:`TYPO3\CMS\Scheduler\Controller\SchedulerCliController` has been removed from the system extension "scheduler"
due to the migration to a native Symfony Command.
Remove any direct calls to the PHP class and use the provided APIs via CLI instead.
-.. index:: CLI, ext:scheduler
\ No newline at end of file
+.. index:: CLI, ext:scheduler
Description
===========
-The RTE option that could be set via PageTSconfig `RTE.default.proc.disableUnifyLineBreaks` has been removed.
+The RTE option that could be set via PageTSconfig :ts:`RTE.default.proc.disableUnifyLineBreaks` has been removed.
The option was never set by default.
Remove the option from TSconfig as it is not necessary anymore.
-.. index:: RTE, TSConfig
\ No newline at end of file
+.. index:: RTE, TSConfig
The following TSconfig options for processing content of RTE fields have been removed:
-* RTE.default.proc.dontConvBRtoParagraph
-* RTE.default.proc.dontProtectUnknownTags_rte
-* RTE.default.proc.dontConvAmpInNBSP_rte
+* :ts:`RTE.default.proc.dontConvBRtoParagraph`
+* :ts:`RTE.default.proc.dontProtectUnknownTags_rte`
+* :ts:`RTE.default.proc.dontConvAmpInNBSP_rte`
Impact
Setting any of these options has no effect anymore.
Content coming from the database towards the RTE will now always keep unknown tags (but HSC'ed), and never have any
-double-encoded characters - this was a default since a decade already.
+double-encoded :html:` ` characters - this was a default since a decade already.
-Content stored in the database will now always treat <br> tags as intentional and not treat them like paragraphs, a behaviour which
+Content stored in the database will now always treat :html:`<br>` tags as intentional and not treat them like paragraphs, a behaviour which
is common in modern Rich Text Editors.
Affected Installations
======================
-Installations explicitly setting `RTE.default.proc.dontConvBRtoParagraph=0`, `RTE.default.proc.dontProtectUnknownTags_rte=1` or
-`RTE.default.proc.dontConvAmpInNBSP_rte=1` might experience different results when editing and saving content via an RTE.
+Installations explicitly setting :ts:`RTE.default.proc.dontConvBRtoParagraph = 0`, :ts:`RTE.default.proc.dontProtectUnknownTags_rte = 1` or
+:ts:`RTE.default.proc.dontConvAmpInNBSP_rte = 1` might experience different results when editing and saving content via an RTE.
Migration
Remove the TSconfig options, as they have no effect anymore. Any custom implementation which is necessary should be handled
via separate entryHtmlParser and exitHtmlParsers in both directions.
-.. index:: RTE, TSConfig
\ No newline at end of file
+.. index:: RTE, TSConfig
The RTE processing TSconfig option `RTE.default.proc.transformBoldAndItalicTags` has been removed from the processing
functionality.
-It was a shortcut to change all <b> and <i> tags coming from the database to <strong> and <em> when loading the RTE. In return
-when storing the content again from the RTE, the <strong> and <em> tags were moved to <b> and <i> again.
+It was a shortcut to change all :html:`<b>` and :html:`<i>` tags coming from the database to :html:`<strong>` and :html:`<em>` when loading the RTE. In return
+when storing the content again from the RTE, the :html:`<strong>` and :html:`<em>` tags were moved to :html:`<b>` and :html:`<i>` again.
-If an integrator wanted to explicitly disable this functionality (basically having <strong> and <em> in the database), he/she needed
+If an integrator wanted to explicitly disable this functionality (basically having :html:`<strong>` and :html:`<em>` in the database), he/she needed
to explicitly disable the option (setting it to "0", not just unsetting the option via PageTSconfig).
Impact
======
-Setting this option does not transform the tags anymore when loading the RTE or storing in DB. Instead, <strong> and <em> are stored
+Setting this option does not transform the tags anymore when loading the RTE or storing in DB. Instead, :html:`<strong>` and :html:`<em>` are stored
in the database when editing a record.
Any default configuration of RTEHtmlArea that was in place before 8.6.0 has a simple replacement to ensure the same functionality now:
-This code does the same as having `proc.transformBoldAndItalicTags=1`:
+This code does the same as having :ts:`proc.transformBoldAndItalicTags=1`:
.. code-block:: typoscript
RTE.default.proc {
- # make <strong> and <em> tags when sending to the RTE
- HTMLparser_rte {
- tags {
- b.remap = strong
- i.remap = em
- }
- }
- # make <b> and <i> tags when sending to the DB
- HTMLparser_db {
- tags {
- strong.remap = B
- em.remap = I
- }
- }
+ # make <strong> and <em> tags when sending to the RTE
+ HTMLparser_rte {
+ tags {
+ b.remap = strong
+ i.remap = em
+ }
+ }
+ # make <b> and <i> tags when sending to the DB
+ HTMLparser_db {
+ tags {
+ strong.remap = B
+ em.remap = I
+ }
+ }
}
If having the option explicitly turned off (allowing strong, b, em, and i tags) is what is wanted the configuration should look like this:
.. code-block:: typoscript
RTE.default.proc {
- # no remapping should happen, tags should stay as they are
- HTMLparser_rte {
- tags {
- b.remap >
- i.remap >
- }
- }
- # no remapping should happen, tags should stay as they are
- HTMLparser_db {
- tags {
- strong.remap >
- em.remap >
- }
- }
+ # no remapping should happen, tags should stay as they are
+ HTMLparser_rte {
+ tags {
+ b.remap >
+ i.remap >
+ }
+ }
+ # no remapping should happen, tags should stay as they are
+ HTMLparser_db {
+ tags {
+ strong.remap >
+ em.remap >
+ }
+ }
}
Please note that this migration is only necessary if custom RTE options are in place, as the default RTE HTMLArea configuration does that
automatically.
-.. index:: RTE, TSConfig
\ No newline at end of file
+.. index:: RTE, TSConfig
Install the compatibility7 extension to have the same functionality as before, or use HTTPS enforcing via server configuration (.htaccess)
or any SSL related extension in the TYPO3 Extension Repository (TER) that provides superior functionality.
-To ensure a certain protocol when previewing a page the TSconfig option `TCEMAIN.previewDomain` can be used to set a preview prefix including
+To ensure a certain protocol when previewing a page the TSconfig option :ts:`TCEMAIN.previewDomain` can be used to set a preview prefix including
the URL scheme.
-.. index:: Database, Frontend
\ No newline at end of file
+.. index:: Database, Frontend
harden the session binding to the User Agent information sent by the HTTP request. If the user agent
information does not match, the session gets renewed and the user gets logged out.
-The options `$TYPO3_CONF_VARS['FE']['lockHashKeyWords']` and `$TYPO3_CONF_VARS['BE']['lockHashKeyWords']`
+The options :php:`$GLOBALS['TYPO3_CONF_VARS']['FE']['lockHashKeyWords']` and :php:`$GLOBALS['TYPO3_CONF_VARS']['BE']['lockHashKeyWords']`
were set to "useragent" by default to use this additional session locking check.
This case is especially problematic when having a larger website (e.g. a community platform) with
Impact
======
-The options `$TYPO3_CONF_VARS['FE']['lockHashKeyWords']` and `$TYPO3_CONF_VARS['BE']['lockHashKeyWords']`
+The options :php:`$GLOBALS['TYPO3_CONF_VARS']['FE']['lockHashKeyWords']` and :php:`$GLOBALS['TYPO3_CONF_VARS']['BE']['lockHashKeyWords']`
are removed automatically when hitting the install tool.
The database fields 'fe_sessions.ses_hashlock' and 'be_sessions.ses_hashlock' have been removed.
-The public property `$lockHashKeyWords` of the PHP class `AbstractUserAuthentication` has been
+The public property :php:`$lockHashKeyWords` of the PHP class `AbstractUserAuthentication` has been
removed and will throw a PHP Notice when trying to access it.
All other functionality related to sessions still works the same.
The TYPO3 Install Tool removes the configuration option for existing installations. Using the
"Database Comparison" view, it is possible to remove the fields from the database.
-.. index:: LocalConfiguration, PHP-API
\ No newline at end of file
+.. index:: LocalConfiguration, PHP-API
of CSS Styled Content have been dropped without replacement.
Options Dropped:
-- TCA image_compression
-- TCA image_effects
-- TCA image_noRows
-- TypoScript IMAGE noRows dropped
-- TypoScript IMAGE noCols dropped
-- TypoScript IMAGE noRowsStdWrap dropped
-- TypoScript IMGTEXT captionAlign dropped
+
+* TCA image_compression
+* TCA image_effects
+* TCA image_noRows
+* TypoScript IMAGE noRows dropped
+* TypoScript IMAGE noCols dropped
+* TypoScript IMAGE noRowsStdWrap dropped
+* TypoScript IMGTEXT captionAlign dropped
Impact
fields, shared across both content rendering definitions.
Element options removed:
-- Table Summary
-- No CSS styles for this table
+
+* Table Summary
+* No CSS styles for this table
Element options changed:
-- Additional CSS Class
+
+* Additional CSS Class
Rendering changes:
-- Additional CSS classes for tr, th, td have been dropped
+
+* Additional CSS classes for tr, th, td have been dropped
TypoScript options removed:
-- color
-- tableParams_0
-- tableParams_1
-- tableParams_2
-- tableParams_3
-- border
-- cellpadding
-- cellspacing
+
+* color
+* tableParams_0
+* tableParams_1
+* tableParams_2
+* tableParams_3
+* border
+* cellpadding
+* cellspacing
Table Summary
All content elements and overrides need to be migrated to the new default
layout. Have a look at the feature description on how to use the new layout.
-Feature-79622-NewDefaultLayoutForFluidStyledContent.rst
+See: :ref:`feature-79622-new-default-layout-for-fluid-styled-content`.
.. index:: Fluid, Frontend, ext:fluid_styled_content
.. include:: ../../Includes.txt
+.. _feature-79622-new-default-layout-for-fluid-styled-content:
+
=============================================================
Feature: #79622 - New default layout for Fluid Styled Content
=============================================================
...
</f:section>
-
.. index:: Fluid, Frontend, ext:fluid_styled_content, TypoScript
Description
===========
-The TYPO3 Core uses jQuery in the TYPO3 Backend with a default namespace of `TYPO3.jQuery` and `jQuery` in the global object
+The TYPO3 Core uses jQuery in the TYPO3 Backend with a default namespace of :javascript:`TYPO3.jQuery` and :javascript:`jQuery` in the global object
namespace, and is now also available as global `$` when no other namespace is given. This was not possible before due to conflicts with
prototype.js.
-If using the shipped jQuery code in the Frontend explicitly via ts:`page.javascriptLibs.jQuery.noConflict.namespace = default` then the
-global `$` is also available in frontend scripts.
+If using the shipped jQuery code in the Frontend explicitly via :ts:`page.javascriptLibs.jQuery.noConflict.namespace = default` then the
+global :javascript:`$` is also available in frontend scripts.
-.. index:: JavaScript, TypoScript
\ No newline at end of file
+.. index:: JavaScript, TypoScript
===========
To let the form field viewhelper attribute errorClass work, the partial
-"EXT:form/Resources/Private/Frontend/Partials/Field/Field.html" has been changed.
+:file:`EXT:form/Resources/Private/Frontend/Partials/Field/Field.html` has been changed.
.. code-block:: html
======
Users who overwrite this partial by its own partial have to make adjustments.
-Otherwise no "has-error" class will be rendered in case of form validation errors
-into the parents <div class="form-group"> and the <span class="help-block">
+Otherwise no `has-error` class will be rendered in case of form validation errors
+into the parents :html:`<div class="form-group">` and the :html:`<span class="help-block">`
content will not be rendered.
Affected Installations
======================
-All installations with overwritten partial "EXT:form/Resources/Private/Frontend/Partials/Field/Field.html"
+All installations with overwritten partial :file:`EXT:form/Resources/Private/Frontend/Partials/Field/Field.html`
Migration
=========
-Change the partial Field/Field.html within your site package.
+Change the partial :file:`Field/Field.html` within your site package.
.. code-block:: html
See for reference how to create such implementations:
-* ``\TYPO3Fluid\Fluid\Core\Parser\TemplateProcessorInterface``
-* ``\TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\Expression\ExpressionNodeInterface``
+* :php:`\TYPO3Fluid\Fluid\Core\Parser\TemplateProcessorInterface`
+* :php:`\TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\Expression\ExpressionNodeInterface`
Both interfaces contain the documentation for how they must be implemented, when/why functions get called and what the
expected return types are. The interfaces must of course be implemented by classes you add to ``TYPO3_CONF_VARS`` in
these configuration sections. Due to their global nature you should be very careful to implement the classes and in
particular observe the return types.
-.. index:: Fluid, LocalConfiguration
\ No newline at end of file
+.. index:: Fluid, LocalConfiguration
Connect to the hook:
-.. code-block:: yaml
+.. code-block:: php
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['buildFormDefinitionValidationConfiguration'][] = \Vendor\YourNamespace\YourClass::class;
The hook must return an array with a set of ValidationDto objects.
-.. code-block:: yaml
+.. code-block:: php
/**
* @param \TYPO3\CMS\Form\Domain\Configuration\FormDefinition\Validators\ValidationDto $validationDto
Description
===========
-It is now possible to define the ``PATH_site`` constant, which acts as a basis for any entry point
-running a TYPO3 system, via the environment variable ``TYPO3_PATH_ROOT``.
+It is now possible to define the :php:`PATH_site` constant, which acts as a basis for any entry point
+running a TYPO3 system, via the environment variable :php:`TYPO3_PATH_ROOT`.
This variable is automatically calculated and set for any TYPO3 installation set up via composer,
making it possible to run the TYPO3 command line interface from any location of the system.
Impact
======
-When using the command line entry-point ``typo3/sysext/core/bin/typo3`` with composer, it can also
-be called from a projects' default ``bin/`` directory.
+When using the command line entry-point :file:`typo3/sysext/core/bin/typo3` with composer, it can also
+be called from a projects' default :file:`bin/` directory.
.. index:: CLI, PHP-API
Description
===========
-Previously it was possible to set :php:`$TYPO3_CONF_VARS['BE']['lang']['debug']`
+Previously it was possible to set :php:`$GLOBALS['TYPO3_CONF_VARS']['BE']['lang']['debug']`
in order to enable debug in LanguageService.
However this could not be configured in the install tool.
In order to enable this possibility it has been renamed to
-:php:`$TYPO3_CONF_VARS['BE']['languageDebug']`
+:php:`$GLOBALS['TYPO3_CONF_VARS']['BE']['languageDebug']`
.. index:: Backend, LocalConfiguration
The TYPO3 core base testing classes were moved to a separate composer package and removed
from the TYPO3 core. If you want to continue using the testing framework classes please use
-composer and require the package typo3/testing-framework.
+composer and require the package `typo3/testing-framework <packagist>`_.
To make sure you don't run into path issues, you can set the following environment variable:
-TYPO3_PATH_ROOT = The path to your TYPO3 root directory
+:php:`TYPO3_PATH_ROOT =` The path to your TYPO3 root directory
-Find the new package on github_
-
-And on packagist_
+Find the new package on github_ and on packagist_.
.. _github: https://github.com/TYPO3/testing-framework
.. _packagist: https://packagist.org/packages/typo3/testing-framework