TYPO3 v15 dev-main snapshot ()
This commit is contained in:
+62
@@ -0,0 +1,62 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-79615:
|
||||
|
||||
=====================================================================
|
||||
Breaking: #79615 - QueryBuilder getQueriedTables result format change
|
||||
=====================================================================
|
||||
|
||||
See :issue:`79615`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
:php:`QueryBuilder::getQueriedTables` return value has been changed from array with key being table name and value being
|
||||
table alias (or null) to array with a key being table alias and value being table name. Both keys and the value should
|
||||
be filled.
|
||||
This allows to return multiple entries for the same table (in case inner join is made).
|
||||
|
||||
Example for the :sql:`tt_content` table inner joined with self and joined with :sql:`sys_language`:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
[
|
||||
'tt_content_alias' => 'tt_content',
|
||||
'tt_content' => 'tt_content',
|
||||
'sys_language' => 'sys_language'
|
||||
]
|
||||
|
||||
Previously the array (for the same case) looked like:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
[
|
||||
'tt_content' => 'tt_content_alias',
|
||||
'sys_language' => null
|
||||
]
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
All code which rely on the result format of the :php:`getQueriedTables` method needs to be adapted.
|
||||
The first parameter of the :php:`QueryRestrictionInterface::buildExpression` (:php:`$queriedTables`)
|
||||
expects a new array structure.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations with custom implementation of Query Restriction (classes implementing :php:`QueryRestrictionInterface`).
|
||||
All installations where table array passed to :php:`buildExpression` method is created manually (without using :php:`QueryBuilder::getQueriedTables`).
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
The code of the :php:`buildExpression` method in custom :php:`QueryRestrictionInterface`
|
||||
implementations needs to adapted to be able to handle the new incoming array structure.
|
||||
Format of the first parameter passed to :php:`buildExpression` needs to be adapted in case
|
||||
a query restriction is used directly (without using :php:`QueryBuilder::getQueriedTables`).
|
||||
|
||||
.. index:: PHP-API, Database
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-80050:
|
||||
|
||||
==========================================================================
|
||||
Breaking: #80050 - Remove option cHashIncludePageId from cHash calculation
|
||||
==========================================================================
|
||||
|
||||
See :issue:`80050`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The global configuration option :php:`$GLOBALS['TYPO3_CONF_VARS']['FE']['cHashIncludePageId']`
|
||||
has been removed, as the functionality is now always activated.
|
||||
|
||||
The option was introduced in 2016 as part of a security bugfix for existing releases to
|
||||
allow the inclusion the cHash calculation (= caching identifier for pages with different GET variables)
|
||||
and was active for new installations.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Setting the option has no effect anymore.
|
||||
|
||||
If the option was disabled before, all existing cached contents and existing cHash calculations for URL
|
||||
rewrites (e.g. RealURL) of existing pages are invalidated and will throw a "page not found" exception
|
||||
if called directly.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any existing TYPO3 installation that did not have the option activated before.
|
||||
|
||||
.. index:: Frontend, LocalConfiguration
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-80149:
|
||||
|
||||
================================================================================
|
||||
Breaking: #80149 - Remove $GLOBALS['TYPO3_CONF_VARS']['FE']['pageOverlayFields']
|
||||
================================================================================
|
||||
|
||||
See :issue:`80149`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The configuration :php:`$GLOBALS['TYPO3_CONF_VARS']['FE']['pageOverlayFields']` is
|
||||
removed from the default configuration as well as from the overlay handling in
|
||||
PageRepository and RootlineUtility.
|
||||
|
||||
This setting has been used to determine overlay fields in the table
|
||||
:sql:`pages_language_overlay` at a time in the runtime processing when the
|
||||
complete TCA was not fully available. Since the `allowLanguageSynchronization`
|
||||
possibility has been integrated into TYPO3 CMS 8, `l10n_mode` was available
|
||||
already and the TCA is loaded as well, the `pageOverlayFields` settings
|
||||
are superfluous.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Since :php:`$GLOBALS['TYPO3_CONF_VARS']['FE']['pageOverlayFields']` was used as a
|
||||
filter for field names to be taken from :sql:`pages_language_overlay` and merged
|
||||
onto those fields in :sql:`pages`, all fields are overlaid per default.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations having custom fields in table :sql:`pages_language_overlay` and
|
||||
custom settings in :php:`$GLOBALS['TYPO3_CONF_VARS']['FE']['pageOverlayFields']`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Check the TCA of :sql:`pages_language_overlay` and remove l10n_mode for those fields
|
||||
that previously were not defined in :php:`$GLOBALS['TYPO3_CONF_VARS']['FE']['pageOverlayFields']`
|
||||
and thus should not be overlaid.
|
||||
|
||||
.. index:: Frontend, TCA, LocalConfiguration
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-80171:
|
||||
|
||||
====================================================================================
|
||||
Breaking: #80171 - Remove lib.parseFunc_RTE inline styles from parsed blockquote tag
|
||||
====================================================================================
|
||||
|
||||
See :issue:`80171`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
With https://forge.typo3.org/issues/44879 the inline styles were removed from CSC.
|
||||
However, the change was not applied to FSC.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
:typoscript:`lib.parseFunc_RTE` doesn't overwrite the attributes of :html:`<blockquote/>`
|
||||
and doesn't add the style attribute anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations using the :typoscript:`lib.parseFunc_RTE` provided by
|
||||
EXT:fluid_styled_content where
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
lib.parseFunc_RTE {
|
||||
externalBlocks {
|
||||
blockquote {
|
||||
callRecursive {
|
||||
tagStdWrap {
|
||||
HTMLparser = 1
|
||||
HTMLparser.tags.blockquote.overrideAttribs = style="margin-bottom:0;margin-top:0;"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
was not overwritten manually.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
If your frontend relies on this inline CSS styles, make sure to add following CSS on
|
||||
your own:
|
||||
|
||||
.. code-block:: css
|
||||
|
||||
blockquote {
|
||||
margin-top: 0;
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
Additionally you have to check if some other attributes are now added/preserved to
|
||||
:html:`<blockquote/>` due the fact, that the former typoscript has removed all
|
||||
attributes before adding the style attribute.
|
||||
|
||||
.. index:: Frontend, TypoScript, ext:fluid_styled_content, RTE
|
||||
+59
@@ -0,0 +1,59 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-80374:
|
||||
|
||||
=======================================================================================================
|
||||
Breaking: #80374 - Default content element configuration for frontend login adapts fluid styled content
|
||||
=======================================================================================================
|
||||
|
||||
See :issue:`80374`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Default configuration for the frontend login content element was adapted to match
|
||||
fluid styled content instead of css styled content by default. Css styled content
|
||||
was adapted and works there as before.
|
||||
|
||||
Rendering for css styled content
|
||||
--------------------------------
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
tt_content.login = COA
|
||||
tt_content.login {
|
||||
10 =< lib.stdheader
|
||||
20 =< plugin.tx_felogin_pi1
|
||||
}
|
||||
|
||||
Rendering for fluid styled content
|
||||
----------------------------------
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
tt_content.login =< lib.contentElement
|
||||
tt_content.login {
|
||||
templateName = Generic
|
||||
variables {
|
||||
content =< plugin.tx_felogin_pi1
|
||||
}
|
||||
}
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Adjustments made manually to the TypoScript rendering definition of
|
||||
:typoscript:`tt_content.login` might not work in fluid styled content as expected.
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations that are using fluid styled content and directly modify
|
||||
configuration of :typoscript:`tt_content.login`.
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Manual adaption is necessary.
|
||||
|
||||
.. index:: TypoScript, Frontend, ext:fluid_styled_content
|
||||
+130
@@ -0,0 +1,130 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-80412:
|
||||
|
||||
================================================================================================
|
||||
Breaking: #80412 - New shared content element TypoScript library object for Fluid Styled Content
|
||||
================================================================================================
|
||||
|
||||
See :issue:`80412`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
To solve an inconsistency issue for API based content element registration between
|
||||
CSS Styled Content (CSC) and Fluid Styled Content (FSC) through `Extbase` or
|
||||
:php:`addPItoST43` we are now introducing a new shared content object for content elements
|
||||
and drop the active usage of :typoscript:`lib.fluidContent`.
|
||||
|
||||
The generated code relied on the existence of the removed :typoscript:`lib.stdheader` and also
|
||||
ignored layouts, frames, spacebefore, spaceafter in context of Fluid Styled Content.
|
||||
|
||||
For content element registration the TypoScript :typoscript:`lib.contentElement` is now used for `CSC` and `FSC`
|
||||
and replaces the usage of :typoscript:`lib.fluidContent`. The generated code was slightly
|
||||
adjusted to match the requirements of all content rendering definitions and can be
|
||||
adapted to the specific needs of a content element rendering definition anytime
|
||||
since a reference is used now instead of a hard definition.
|
||||
|
||||
Generated code before change
|
||||
----------------------------
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
tt_content.myce = COA
|
||||
tt_content.myce {
|
||||
10 =< lib.stdheader
|
||||
20 =< plugin.myContent
|
||||
}
|
||||
|
||||
Generated code after change
|
||||
---------------------------
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
tt_content.myce =< lib.contentElement
|
||||
tt_content.myce {
|
||||
templateName = Generic
|
||||
20 =< plugin.myContent
|
||||
}
|
||||
|
||||
CSS Styled Content
|
||||
------------------
|
||||
|
||||
CSS Styled Content adds the missing :typoscript:`lib.stdheader` and everything works as
|
||||
before, no migration or adjustments to your code necessary. Because :typoscript:`COA`
|
||||
does not understand the option :typoscript:`templateName` it will simply be ignored.
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
lib.contentElement = COA
|
||||
lib.contentElement {
|
||||
10 =< lib.stdheader
|
||||
}
|
||||
|
||||
Fluid Styled Content
|
||||
--------------------
|
||||
|
||||
Fluid Styled Content adds the logic it needs through :typoscript:`lib.contentElement`.
|
||||
All content elements registered through the TYPO3 APIs will now share a
|
||||
multifunctional `Generic` template. That will provide the necessary layouts
|
||||
and overriding options known from FSC.
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
lib.contentElement = FLUIDTEMPLATE
|
||||
lib.contentElement {
|
||||
templateRootPaths {
|
||||
0 = EXT:fluid_styled_content/Resources/Private/Templates/
|
||||
10 = {$styles.templates.templateRootPath}
|
||||
}
|
||||
partialRootPaths {
|
||||
0 = EXT:fluid_styled_content/Resources/Private/Partials/
|
||||
10 = {$styles.templates.partialRootPath}
|
||||
}
|
||||
layoutRootPaths {
|
||||
0 = EXT:fluid_styled_content/Resources/Private/Layouts/
|
||||
10 = {$styles.templates.layoutRootPath}
|
||||
}
|
||||
...
|
||||
}
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
<f:layout name="Default" />
|
||||
<f:section name="Main">
|
||||
|
||||
<f:comment>This templates is used to provide necessary functionality for external processed content and could be used across multiple sources, for example the frontend login content element.</f:comment>
|
||||
<f:if condition="{content}">
|
||||
<f:then>{content -> f:format.raw()}</f:then>
|
||||
<f:else><f:cObject typoscriptObjectPath="tt_content.{data.CType}.20" data="{data}" table="tt_content" /></f:else>
|
||||
</f:if>
|
||||
|
||||
</f:section>
|
||||
</html>
|
||||
|
||||
The TypoScript object :typoscript:`lib.fluidContent` will be kept as copy of :typoscript:`lib.contentElement`
|
||||
for compatibility for the duration of TYPO3 v8 LTS and will be removed in TYPO3 v9.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Assignments and overrides made directly to :typoscript:`lib.fluidContent` are not recognized
|
||||
anymore for core content elements provided by Fluid Styled Content. They need to be
|
||||
migrated to :typoscript:`lib.contentElement`. Only not modified versions of :typoscript:`lib.fluidContent`
|
||||
will keep working as expected.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations that directly modify :typoscript:`lib.fluidContent`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Rename assignments and modifications to :typoscript:`lib.contentElement`.
|
||||
|
||||
.. index:: Fluid, Frontend, TypoScript, ext:fluid_styled_content
|
||||
@@ -0,0 +1,42 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-80628:
|
||||
|
||||
====================================================
|
||||
Breaking: #80628 - Extension rtehmlarea moved to TER
|
||||
====================================================
|
||||
|
||||
See :issue:`80628`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The legacy extension ``EXT:rtehtmlarea`` has been removed from the TYPO3 CMS core
|
||||
and is only available as TER extension.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The new extension ``EXT:rte_ckeditor`` is loaded by default, if you need features
|
||||
of the old rtehmlarea extension, you have to install ``EXT:rtehtmlarea`` from TER.
|
||||
An upgrade wizard can do this for you in the upgrade process of the install tool.
|
||||
If you have allowed images in RTE, you should install the rtehtmlarea extension,
|
||||
the ckeditor extension does not support images in RTE.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Most installations are not affected. Instances are only affected if a loaded
|
||||
extension has a dependency to ``EXT:rtehtmlarea`` extension, or if the instance
|
||||
has used special plugins.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the upgrade wizard provided by the install tool to fetch and load the extensions
|
||||
from TER if you really need it.
|
||||
|
||||
.. index:: Backend, RTE
|
||||
@@ -0,0 +1,38 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-78650:
|
||||
|
||||
=====================================================
|
||||
Deprecation: #78650 - TemplateService->splitConfArray
|
||||
=====================================================
|
||||
|
||||
See :issue:`78650`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`TemplateService->splitConfArray` which has been used for building the "optionSplit"
|
||||
functionality has been marked as deprecated.
|
||||
|
||||
The method is now moved to a new class called :php:`TypoScriptService`, effectively removing the
|
||||
dependency on :php:`$TSFE->tmpl` within a ContentObject.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling :php:`TemplateService->splitConfArray` will throw a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using an extension that calls this method.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the new method :php:`TypoScriptService->explodeConfigurationForOptionSplit` instead.
|
||||
|
||||
.. index:: PHP-API, TypoScript, Frontend
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-79122:
|
||||
|
||||
========================================================
|
||||
Deprecation: #79122 - Deprecate method getRecordsByField
|
||||
========================================================
|
||||
|
||||
See :issue:`79122`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`TYPO3\CMS\Backend\Utility\BackendUtility::getRecordsByField()` has been deprecated and should not be used any longer.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the deprecated :php:`getRecordsByField()` method will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using the mentioned method :php:`getRecordsByField()`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the :php:`ConnectionPool` and the :php:`QueryBuilder` classes directly to query the database from your code.
|
||||
|
||||
.. index:: Backend, PHP-API
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-79580:
|
||||
|
||||
====================================================================================
|
||||
Deprecation: #79580 - Deprecate methods in DataHandler related to page delete access
|
||||
====================================================================================
|
||||
|
||||
See :issue:`79580`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following methods have been marked as deprecated:
|
||||
|
||||
* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->rmComma()`
|
||||
* :php:`TYPO3\CMS\Core\DataHandling\DataHandler->noRecordsFromUnallowedTables()`
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling these methods will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 extension calling one of these methods.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use native :php:`rtrim($input, ',')` instead of :php:`TYPO3\CMS\Core\DataHandling\DataHandler->rmComma()`.
|
||||
No migration available for :php:`TYPO3\CMS\Core\DataHandling\DataHandler->noRecordsFromUnallowedTables()`.
|
||||
|
||||
.. index:: Database, PHP-API, Backend
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-79591:
|
||||
|
||||
====================================================================
|
||||
Deprecation: #79591 - Extbase command controllers admin role methods
|
||||
====================================================================
|
||||
|
||||
See :issue:`79591`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The methods :php:`CommandController->ensureAdminRoleIfRequested()` and
|
||||
:php:`CommandController->restoreUserRole()` have been marked as deprecated.
|
||||
|
||||
All CLI scripts are now executed with administrator access rights, so this functionality is obsolete.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods above will trigger a deprecation log warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation with custom CLI Extbase Command Controllers using the methods above.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the affected lines where the methods are called, as they are not necessary anymore.
|
||||
|
||||
.. index:: CLI, ext:extbase, PHP-API
|
||||
@@ -0,0 +1,41 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-79770:
|
||||
|
||||
=======================================================
|
||||
Deprecation: #79770 - Deprecate inline localizationMode
|
||||
=======================================================
|
||||
|
||||
See :issue:`79770`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `localizationMode` for inline relational record editing types is deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using `localizationMode` set to `keep` and having `allowLanguageSynchronization` enabled at the same time is
|
||||
counter-productive, since it will deny the synchronization process for the affected field. That's why `localizationMode`
|
||||
is unset only if `allowLanguageSynchronization` is enabled.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All having :php:`$TCA[<table-name>]['columns'][<field-name>]['config']['behaviour']['localizationMode']` defined for
|
||||
database tables that support translations.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove :php:`$TCA[<table-name>]['columns'][<field-name>]['config']['behaviour']['localizationMode']` definitions and
|
||||
make use of either one of the following
|
||||
|
||||
* :php:`$TCA[<table-name>]['columns'][<field-name>]['config']['behaviour']['allowLanguageSynchronization'] = true` if editors can decide whether to provide custom child references or synchronize all references from the language parent record - this comes close to `localizationMode=select` without having the possibility to selectively translate child references
|
||||
* :php:`$TCA[<table-name>]['columns'][<field-name>]['l10n_mode'] = 'exclude'` if editors don't have a choice to translate child references - this corresponds to `localizationMode=keep`
|
||||
|
||||
.. index:: Backend, TCA
|
||||
@@ -0,0 +1,72 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-79858:
|
||||
|
||||
=========================================================
|
||||
Deprecation: #79858 - TSFE-related properties and methods
|
||||
=========================================================
|
||||
|
||||
See :issue:`79858`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following properties within TypoScriptFrontendController have been marked as deprecated:
|
||||
|
||||
* :php:`$compensateFieldWidth`
|
||||
* :php:`$excludeCHashVars`
|
||||
* :php:`$scriptParseTime`
|
||||
|
||||
The following methods have been marked as deprecated:
|
||||
|
||||
* :php:`TypoScriptFrontendController->generatePage_whichScript()` (used via :typoscript:`config.pageGenScript`)
|
||||
* :php:`TypoScriptFrontendController->encryptEmail()`
|
||||
* :php:`TypoScriptFrontendController->encryptCharcode()`
|
||||
* :php:`PageGenerator::pagegenInit()`
|
||||
|
||||
The following TypoScript properties have been marked as deprecated:
|
||||
|
||||
* :typoscript:`config.pageGenScript`
|
||||
* :typoscript:`config.compensateFieldWidth`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the PHP methods will trigger a deprecation log entry.
|
||||
|
||||
All properties and options are still callable with the according output, however there are
|
||||
alternatives to achieve the same.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation working with custom extensions that use any of these functionalities, methods or properties.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
All of the functionality is obsolete or outdated and should be handled differently from now on:
|
||||
|
||||
1. The :typoscript:`compensateFieldWidth` option was used for forms built with TYPO3 4.x (before TYPO3 4.6),
|
||||
instead, any other form framework should be used for forms and for field width calculations, where
|
||||
styling of form fields are also handled via CSS.
|
||||
|
||||
2. An alternative :typoscript:`config.pageGenScript` can be used and set via hooks in PHP classes nowadays and
|
||||
executed, instead of configuring this functionality on a high-end TypoScript level to execute include
|
||||
spaghetti PHP code within a file.
|
||||
|
||||
3. :php:`PageGenerator::pagegenInit()` is solely working on public properties of the TSFE PHP class, which
|
||||
belongs to the TSFE object itself (thus, the logic is copied to :php:`$TSFE->preparePageContentGeneration()`)
|
||||
|
||||
4. Calculating the debug parse time for the web page is not part of the controller logic but more
|
||||
certainly belongs to the request handling itself, where it is handled in a cleaner way for PHP,
|
||||
waiting for further refactorings in TYPO3 v9.
|
||||
|
||||
5. The methods :php:`TypoScriptFrontendController->encryptEmail()` and :php:`encryptCharcode()` have been moved
|
||||
to ContentObjectRenderer.
|
||||
|
||||
|
||||
.. index:: Frontend, TypoScript, PHP-API
|
||||
@@ -0,0 +1,51 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-79972:
|
||||
|
||||
================================================
|
||||
Deprecation: #79972 - Deprecated Fluid Overrides
|
||||
================================================
|
||||
|
||||
See :issue:`79972`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
following methods have been marked as deprecated:
|
||||
|
||||
* :php:`\TYPO3\CMS\Fluid\Core\Rendering\RenderingContext::injectObjectManager()`
|
||||
* :php:`\TYPO3\CMS\Fluid\Core\Rendering\RenderingContext::getObjectManager()`
|
||||
* :php:`\TYPO3\CMS\Fluid\Core\Rendering\RenderingContext::setLegacyMode()`
|
||||
|
||||
following methods have been removed:
|
||||
|
||||
* :php:`\TYPO3\CMS\Fluid\Core\Rendering\RenderingContext::getExpressionNodeTypes()`
|
||||
* :php:`\TYPO3\CMS\Fluid\Core\Rendering\RenderingContext::getViewHelperVariableContainer()`
|
||||
|
||||
following classes have been removed:
|
||||
|
||||
* :php:`\TYPO3\CMS\Fluid\Core\Parser\PreProcessor\XmlnsNamespaceTemplatePreProcessor`
|
||||
* :php:`\TYPO3\CMS\Fluid\Core\Parser\SyntaxTree\Expression\LegacyNamespaceExpressionNode`
|
||||
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods marked as deprecated above will trigger a deprecation log entry.
|
||||
Accessing any of the removed classes or methods will cause a PHP Fatal Error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 instances which uses the above described methods or classes.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
* Remove usage of classes / methods.
|
||||
|
||||
|
||||
.. index:: Fluid
|
||||
@@ -0,0 +1,168 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80000:
|
||||
|
||||
============================================
|
||||
Deprecation: #80000 - InlineOverrideChildTca
|
||||
============================================
|
||||
|
||||
See :issue:`80000`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
These :php:`TCA` :php:`type=inline` properties have been deprecated and superseded with the more
|
||||
general property :php:`overrideChildTca`:
|
||||
|
||||
* foreign_types
|
||||
* foreign_selector_fieldTcaOverride
|
||||
* foreign_record_defaults
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
It is now possible to override display (FormEngine) related columns properties and the types section of
|
||||
child :php:`TCA` from within the parent :php:`TCA`. This is also allowed in a
|
||||
parents :php:`['types']['columnsOverrides']` section.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Instances using one of the above inline properties should adapt to the new :php:`overrideChildTca` property.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
A :php:`TCA` auto-migration is in place. It will transfer the old settings to the new property as
|
||||
shown below and logs deprecation entries if there is no :php:`overrideChildTca` defined. This allows extension
|
||||
authors to keep both the old and the new settings to support CMS v7 and v8 at the same time without
|
||||
having deprecations logged.
|
||||
|
||||
foreign_types before and after transition to overrideChildTca:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'columns' => [
|
||||
'aField' => [
|
||||
'config' => [
|
||||
'type' => 'inline',
|
||||
'foreign_types' => [
|
||||
'aForeignType' => [
|
||||
'showitem' => 'aChildField',
|
||||
],
|
||||
],
|
||||
...
|
||||
],
|
||||
],
|
||||
...
|
||||
],
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'columns' => [
|
||||
'aField' => [
|
||||
'config' => [
|
||||
'type' => 'inline',
|
||||
'overrideChildTca' => [
|
||||
'types' => [
|
||||
'aForeignType' => [
|
||||
'showitem' => 'aChildField',
|
||||
],
|
||||
],
|
||||
],
|
||||
...
|
||||
],
|
||||
],
|
||||
...
|
||||
],
|
||||
|
||||
foreign_selector_fieldTcaOverride before and after transition to overrideChildTca:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'columns' => [
|
||||
'aField' => [
|
||||
'config' => [
|
||||
'type' => 'inline',
|
||||
'foreign_selector' => 'uid_local',
|
||||
'foreign_selector_fieldTcaOverride' => [
|
||||
'config' => [
|
||||
'appearance' => [
|
||||
'elementBrowserType' => 'file',
|
||||
],
|
||||
],
|
||||
],
|
||||
...
|
||||
],
|
||||
],
|
||||
...
|
||||
],
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'columns' => [
|
||||
'aField' => [
|
||||
'config' => [
|
||||
'type' => 'inline',
|
||||
'foreign_selector' => 'uid_local',
|
||||
'overrideChildTca' => [
|
||||
'columns' => [
|
||||
'uid_local' => [
|
||||
'config' => [
|
||||
'appearance' => [
|
||||
'elementBrowserType' => 'file',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
...
|
||||
],
|
||||
],
|
||||
...
|
||||
],
|
||||
|
||||
|
||||
foreign_record_defaults before and after transition to overrideChildTca:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'columns' => [
|
||||
'aField' => [
|
||||
'config' => [
|
||||
'type' => 'inline',
|
||||
'foreign_record_defaults' => [
|
||||
'aChildField' => 42,
|
||||
],
|
||||
...
|
||||
],
|
||||
],
|
||||
...
|
||||
],
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'columns' => [
|
||||
'aField' => [
|
||||
'config' => [
|
||||
'type' => 'inline',
|
||||
'overrideChildTca' => [
|
||||
'columns' => [
|
||||
'aChildField' => [
|
||||
'config' => [
|
||||
'default' => 42,
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
...
|
||||
],
|
||||
],
|
||||
...
|
||||
],
|
||||
|
||||
|
||||
.. index:: Backend, TCA
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80027:
|
||||
|
||||
=====================================================================
|
||||
Deprecation: #80027 - Remove TCA config 'max' on inputDateTime fields
|
||||
=====================================================================
|
||||
|
||||
See :issue:`80027`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The TCA migration removes the 'max' config option for renderType="inputDateTime" since
|
||||
this should not be set for this renderType.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Has an impact on performance during saving of records.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations using the 'max' config option for renderType="inputDateTime".
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the 'max' config option for renderType="inputDateTime".
|
||||
|
||||
.. index:: Backend, Database, TCA
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80047:
|
||||
|
||||
===================================================================
|
||||
Deprecation: #80047 - Deprecate jQuery and extJS for BE viewhelpers
|
||||
===================================================================
|
||||
|
||||
See :issue:`80047`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The BE related ViewHelpers :html:`<f:be.container>` and :html:`<f:be.pageRenderer>` have properties to activate ExtJS
|
||||
and jQuery with various options. The usage of ExtJS has been deprecated and jQuery is always loaded. Therefore the
|
||||
following attributes have been marked as deprecated.
|
||||
|
||||
:html:`<f:be.container>`
|
||||
|
||||
- `enableClickMenu`
|
||||
- `loadExtJs`
|
||||
- `loadExtJsTheme`
|
||||
- `enableExtJsDebug`
|
||||
- `loadJQuery`
|
||||
- `jQueryNamespace`
|
||||
|
||||
:html:`<f:be.pageRenderer>`
|
||||
|
||||
- `loadExtJs`
|
||||
- `loadExtJsTheme`
|
||||
- `enableExtJsDebug`
|
||||
- `loadJQuery`
|
||||
- `jQueryNamespace`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using these attributes will trigger a deprecation log entry. Code using them will work until these methods are removed in TYPO3 v9.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using the mentioned attributes.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use ``includeRequireJsModules`` property of the :html:`<f:be.pageRenderer>` or :html:`<f:be.container>` ViewHelpers to add needed RequireJS modules.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: xml
|
||||
|
||||
<f:be.pageRenderer
|
||||
includeRequireJsModules="{
|
||||
0:'TYPO3/CMS/Backend/ContextMenu'
|
||||
}"
|
||||
/>
|
||||
|
||||
|
||||
See also documentation about RequireJS documentation_
|
||||
|
||||
.. _documentation: https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/JavaScript/RequireJS/Index.html
|
||||
|
||||
.. index:: Backend, Fluid
|
||||
+43
@@ -0,0 +1,43 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80048:
|
||||
|
||||
================================================================
|
||||
Deprecation: #80048 - Mark ExtJS related API calls as deprecated
|
||||
================================================================
|
||||
|
||||
See :issue:`80048`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The usage of ExtJS has been marked as deprecated. Therefore the following methods of :php:`ExtensionManagementUtility` have been marked as deprecated:
|
||||
|
||||
- :php:`addExtJSModule`
|
||||
- :php:`registerExtDirectComponent`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the PHP methods will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation working with custom extensions that use any of these methods.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
All of the functionality is obsolete or outdated and should be handled differently from now on:
|
||||
|
||||
1. Use :php:`ExtensionManagementUtility::addModule` instead of :php:`addExtJSModule`.
|
||||
|
||||
2. Some ajax routes_ instead of ExtDirect.
|
||||
|
||||
.. _routes: https://docs.typo3.org/typo3cms/InsideTypo3Reference/CoreArchitecture/Backend/Routing/Index.html
|
||||
|
||||
.. index:: Backend, PHP-API
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80053:
|
||||
|
||||
=================================================================================================
|
||||
Deprecation: #80053 - Extbase CLI Console Output different method signature for infinite attempts
|
||||
=================================================================================================
|
||||
|
||||
See :issue:`80053`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
When using Extbase's CLI functionality to ask for a question via :php:`ConsoleOutput->select()` or
|
||||
:php:`ConsoleOutput->askAndValidate()` the option to define infinite attempts has changed from "false"
|
||||
to "null".
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods with :php:`$attempts = false` will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 extension shipping custom CLI commands for Extbase using the methods above with the option
|
||||
to have infinite attempts.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Set the method argument from "false" to "null" in the Extbase Command of your extension.
|
||||
|
||||
.. index:: CLI, ext:extbase, PHP-API
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80076:
|
||||
|
||||
=================================================================
|
||||
Deprecation: #80076 - TypoScript option page.insertClassesFromRTE
|
||||
=================================================================
|
||||
|
||||
See :issue:`80076`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The TypoScript setting :typoscript:`page.insertClassesFromRTE` has been marked as deprecated.
|
||||
|
||||
The option enabled loading of CSS classes defined by backend PageTs config :typoscript:`RTE.classes` as inline CSS
|
||||
into a frontend page. However it did not take merged RTE options and userTS/pageTS overrides
|
||||
into account.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Setting :typoscript:`page.insertClassesFromRTE` in TypoScript will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation having the option activated in TypoScript.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In order to separate the functionality, all CSS classes which have been used in the RTE should be
|
||||
defined separately for the frontend rendering in a custom CSS/LESS/SASS file.
|
||||
|
||||
.. index:: TypoScript, Frontend, RTE
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80079:
|
||||
|
||||
======================================================================
|
||||
Deprecation: #80079 - Deprecated method Bootstrap::loadExtensionTables
|
||||
======================================================================
|
||||
|
||||
See :issue:`80079`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The internal method :php:`TYPO3\CMS\Core\Core\Bootstrap::loadExtensionTables()` has been deprecated and should not be used any longer.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the deprecated :php:`Bootstrap::loadExtensionTables()` method will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using the mentioned method :php:`Bootstrap::loadExtensionTables()`.
|
||||
Please note that this method is marked as internal and should not be called at all from outside the TYPO3 core.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
If you need to call the internal Bootstrap method, you can use :php:`Bootstrap::loadBaseTca()` and :php:`Bootstrap::loadExtTables()` now.
|
||||
Please note that both methods are marked as internal and don't belong to public TYPO3 core API.
|
||||
This means that the methods can be adjusted anytime by the core itself.
|
||||
|
||||
.. index:: Backend, PHP-API
|
||||
@@ -0,0 +1,38 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80317:
|
||||
|
||||
==============================================================
|
||||
Deprecation: #80317 - Deprecate BackendUtility::getRecordRaw()
|
||||
==============================================================
|
||||
|
||||
See :issue:`80317`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Method :php:`BackendUtility::getRecordRaw()` has been deprecated and should not be
|
||||
used any longer.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions using above methods will throw a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations and extensions using the method :php:`BackendUtility::getRecordRaw()`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the QueryBuilder instead and remove all restrictions.
|
||||
For further information follow this link: querybuilder_
|
||||
|
||||
.. _querybuilder: https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Database/QueryBuilder/Index.html
|
||||
|
||||
.. index:: Backend, Database, PHP-API
|
||||
@@ -0,0 +1,35 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80440:
|
||||
|
||||
==========================================================
|
||||
Deprecation: #80440 - EXT:lowlevel ArrayBrowser->wrapValue
|
||||
==========================================================
|
||||
|
||||
See :issue:`80440`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`ArrayBrowser->wrapValue` in EXT:lowlevel has been marked as deprecated, since the sole
|
||||
logic was to wrap the incoming string into :php:`htmlspecialchars()`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the method will trigger a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation using the EXT:lowlevel ArrayBrowser class in a custom extension.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the call to the method and directly use :php:`htmlspecialchars()` instead.
|
||||
|
||||
.. index:: PHP-API, ext:lowlevel
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80444:
|
||||
|
||||
======================================================================
|
||||
Deprecation: #80444 - TypoScriptFrontendController-> beLoginLinkIPList
|
||||
======================================================================
|
||||
|
||||
See :issue:`80444`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`TypoScriptFrontendController->beLoginLinkIPList` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the PHP method directly will trigger a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation instantiating a custom frontend-related RequestHandler or using the method above
|
||||
when rendering the frontend. Also, any custom extension using this method.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
The functionality is moved to EXT:compatibility7.
|
||||
|
||||
.. index:: Frontend, PHP-API
|
||||
@@ -0,0 +1,21 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80445:
|
||||
|
||||
====================================================
|
||||
Deprecation: #80445 - Deprecate printContent methods
|
||||
====================================================
|
||||
|
||||
See :issue:`80445`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The methods :php:`TaskModuleController::printContent()` and :php:`PageLayoutController::printContent()` have been marked as deprecated.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the deprecated methods will trigger a deprecation log entry.
|
||||
|
||||
.. index:: Backend, PHP-API
|
||||
@@ -0,0 +1,34 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80449:
|
||||
|
||||
=====================================================
|
||||
Deprecation: #80449 - GeneralUtility::freetypeDpiComp
|
||||
=====================================================
|
||||
|
||||
See :issue:`80449`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`GeneralUtility::freetypeDpiComp` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling this method will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using custom GraphicalFunctions where GDlib/Freetype does custom calculations.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No substitution available.
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,29 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80451:
|
||||
|
||||
=========================================================
|
||||
Deprecation: #80451 - Deprecate GeneralUtility::csvValues
|
||||
=========================================================
|
||||
|
||||
See :issue:`80451`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`GeneralUtility::csvValues()` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the deprecated methods will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the new method :php:`CsvUtility::csvValues()`
|
||||
|
||||
|
||||
.. index:: Backend, PHP-API
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80468:
|
||||
|
||||
============================================================================
|
||||
Deprecation: #80468 - Command Line Interface: cliKeys and cli_dispatch.phpsh
|
||||
============================================================================
|
||||
|
||||
See :issue:`80468`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The functionality to register any command line script via
|
||||
:php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['GLOBAL']['cliKeys']['my_extension']` has been marked as deprecated.
|
||||
|
||||
The entry-point '`typo3/cli_dispatch.phpsh`` as well as the corresponding :php:`Application` class and
|
||||
the :php:`CliRequestHandler` class have been marked as deprecated as well.
|
||||
|
||||
The functionality has been superseded by Symfony Console and the new entry-point within
|
||||
``typo3/sysext/core/bin/typo3`` which is able to handle all functionality the same way including
|
||||
all Extbase-related Command Controllers.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the CLI entrypoint ``typo3/cli_dispatch.phpsh`` to call a CLI script will trigger a
|
||||
deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using ``typo3/cli_dispatch.phpsh`` in any deployment or cronjob / scheduler
|
||||
functionality.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
All functionality related to Extbase, EXT:lowlevel, or scheduler tasks can be called via
|
||||
the new entrypoint ``typo3/sysext/core/bin/typo3`` with a similar call.
|
||||
|
||||
Update all cronjobs and automated and manual running scripts called via the command line to use
|
||||
the new entrypoint.
|
||||
|
||||
If there any custom cliKeys registered, migrate them to a Symfony Command or an Extbase Command
|
||||
Controller.
|
||||
|
||||
.. index:: CLI, LocalConfiguration
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80485:
|
||||
|
||||
============================================================================================
|
||||
Deprecation: #80485 - Method parameter of TSFE->whichWorkspace to return the workspace title
|
||||
============================================================================================
|
||||
|
||||
See :issue:`80485`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`TypoScriptFrontendController->whichWorkspace()` has an optional first parameter
|
||||
to return the workspace title of the current workspace instead of the current workspace UID.
|
||||
|
||||
This parameter has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
When calling the method above with the method parameter set to "true", a deprecation message is
|
||||
triggered.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using this PHP method with the parameter set to "true" via a custom extension which
|
||||
deals with workspaces for frontend output (e.g. for editors to know in which workspace a user is
|
||||
currently previewing a page).
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
If the workspace title is necessary, a separate SQL call should be done right after
|
||||
:php:`whichWorkspace()` is called in the extensions' PHP code.
|
||||
|
||||
.. index:: Frontend, PHP-API, ext:workspaces
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80486:
|
||||
|
||||
======================================================================================
|
||||
Deprecation: #80486 - Setting charset via LocalizationParserInterface->getParsedData()
|
||||
======================================================================================
|
||||
|
||||
See :issue:`80486`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The :php:`LocalizationParserInterface->getParsedData()` contains a third parameter to hand over a value
|
||||
for the charset used.
|
||||
|
||||
This third parameter has been marked as deprecated, as it is not in use anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation with an extension that extends the LocalizationParser functionality with a custom
|
||||
PHP class implementing the :php:`LocalizationParserInterface`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
If implementing the :php:`LocalizationParserInterface`, be aware that this third parameter will be dropped in TYPO3 v9.
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,49 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80491:
|
||||
|
||||
=======================================================
|
||||
Deprecation: #80491 - BackendController inclusion hooks
|
||||
=======================================================
|
||||
|
||||
See :issue:`80491`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The hook within BackendController :php:`$TYPO3_CONF_VARS["typo3/backend.php"]["additionalBackendItems"]`
|
||||
has been marked as deprecated.
|
||||
|
||||
Loading ExtJS module JS/CSS files via :php:`ExtensionManagementUtility::addExtJSModule()` inside
|
||||
the module configuration has been deprecated.
|
||||
|
||||
Calling :php:`BackendController->addJavascriptFile()`, :php:`BackendController->addJavascript()`
|
||||
and :php:`BackendController->addCssFile()` will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Registering a hook via :php:`$TYPO3_CONF_VARS["typo3/backend.php"]["additionalBackendItems"]` and then
|
||||
calling the Backend main page will trigger a deprecation log warning.
|
||||
|
||||
Registering any backend module which should load a global CSS/JS file within a module configuration
|
||||
will trigger a deprecation log warning.
|
||||
|
||||
Calling any of the methods above will trigger a deprecation log warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using the hook or PHP methods directly in a custom extension, or using any of
|
||||
the public methods above in a custom PHP script.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the "constructPostProcess" hook within BackendController to load additional resources to achieve
|
||||
the same functionality.
|
||||
|
||||
.. index:: Backend, PHP-API
|
||||
@@ -0,0 +1,38 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80510:
|
||||
|
||||
=====================================================
|
||||
Deprecation: #80510 - ContentObjectRenderer->URLqMark
|
||||
=====================================================
|
||||
|
||||
See :issue:`80510`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The PHP method :php:`ContentObjectRenderer->URLqMark()` has been marked as deprecated. It was
|
||||
used to add a ``?`` between two strings if the first one does contain a ``?`` already.
|
||||
|
||||
Its main purpose is to add query string parameters to a given URL.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the method above will trigger a deprecation warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using custom extensions calling this method.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Implement this functionality with PHP's native :php:`(strpos($haystack, '?') !== false ? '?' : '')`
|
||||
one-liner directly.
|
||||
|
||||
.. index:: PHP-API, Frontend
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80511:
|
||||
|
||||
========================================================================
|
||||
Deprecation: #80511 - AbstractFunctionModule->incLocalLang and $thisPath
|
||||
========================================================================
|
||||
|
||||
See :issue:`80511`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`AbstractFunctionModule->incLocalLang()` and the public property
|
||||
:php:`AbstractFunctionModule->thisPath` have been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling method above will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any extension extending the AbstractFunctionModule and calling the mentioned method.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
The functionality of loading a locallang file is now taken care of by :php:`LanguageService::includeLLFile()`
|
||||
and takes care of everything automatically.
|
||||
|
||||
If any specific calls to the method is made, it should be replaced by the LanguageService equivalent.
|
||||
|
||||
The property :php:`$thisPath` contains the path to the class, which can be accessed via Reflection,
|
||||
as it is done currently as well, should be implemented in the custom extension itself that needs this
|
||||
information.
|
||||
|
||||
.. index:: Backend, PHP-API
|
||||
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80512:
|
||||
|
||||
==========================================================
|
||||
Deprecation: #80512 - DocumentTemplate->extJScode property
|
||||
==========================================================
|
||||
|
||||
See :issue:`80512`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The property :php:`DocumentTemplate->extJScode` to load ExtJS-specific code "onExtJSReady"
|
||||
has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
If the property is filled and added to the response output, a deprecation warning will be triggered.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation with custom extensions using (or mis-using) this property to inject ExtJS-specific
|
||||
code.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the PageRenderer object directly to inject :php:`addExtOnReadyCode` in a backend response.
|
||||
|
||||
.. index:: Backend, PHP-API
|
||||
+42
@@ -0,0 +1,42 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80513:
|
||||
|
||||
=======================================================================
|
||||
Deprecation: #80513 - DataHandler: Various methods and method arguments
|
||||
=======================================================================
|
||||
|
||||
See :issue:`80513`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`DataHandler->destPathFromUploadFolder()` has been marked as deprecated.
|
||||
|
||||
The fourth parameter :php:`$func` of the method :php:`DataHandler->extFileFunctions()` has been deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the method :php:`DataHandler->destPathFromUploadFolder()` will trigger a deprecation log entry.
|
||||
|
||||
Calling the method :php:`DataHandler->extFileFunctions()` with the fourth parameter (usually set to
|
||||
'deleteAll') will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation with custom extension logic using the DataHandler and specifically these methods.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Replace the function call :php:`DataHandler->destPathFromUploadFolder()` by prepend the
|
||||
constant :php:`PATH_site` before the string to be handed over to the deprecated method.
|
||||
|
||||
Remove the fourth parameter of the callee of :php:`DataHandler->extFileFunctions()`.
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80514:
|
||||
|
||||
=========================================================================
|
||||
Deprecation: #80514 - GraphicalFunctions->tempPath and createTempSubDir()
|
||||
=========================================================================
|
||||
|
||||
See :issue:`80514`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`GraphicalFunctions->createTempSubDir()` and the property
|
||||
:php:`GraphicalFunctions->tempPath` have been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the method above will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any instance with custom extensions extending the PHP class GraphicalFunctions.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use :php:`GeneralUtility::mkdir_deep()` with the full path (including the PHP constant `PATH_site`)
|
||||
directly.
|
||||
|
||||
.. index:: PHP-API
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80516:
|
||||
|
||||
================================================================================
|
||||
Deprecation: #80516 - TypoScript config.setJS_mouseOver and config.setJS_openPic
|
||||
================================================================================
|
||||
|
||||
See :issue:`80516`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The TypoScript properties :typoscript:`config.setJS_mouseOver` and :typoscript:`config.setJS_openPic` have been marked
|
||||
as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Setting any of the TypoScript properties will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using these TypoScript options.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Include the small JavaScript files directly in your custom JavaScript file or inline via :typoscript:`page.inlineJS`.
|
||||
|
||||
.. index:: TypoScript, Frontend
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80524:
|
||||
|
||||
===========================================================================
|
||||
Deprecation: #80524 - PageRepository::getHash and PageRepository::storeHash
|
||||
===========================================================================
|
||||
|
||||
See :issue:`80524`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The two static methods :php:`PageRepository::getHash()` and :php:`PageRepository::storeHash()`, that
|
||||
act as simple wrappers for the Caching Frameworks's "cache_hash" frontend, have been deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods above will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation with a custom installation using any of the methods.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the Caching Framework directly. Simply spoken, the code that still exists in the functions,
|
||||
can simply be copied into the third-party extensions' code.
|
||||
|
||||
.. index:: PHP-API, Frontend
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80527:
|
||||
|
||||
=====================================================================
|
||||
Deprecation: #80527 - Marker-related methods in ContentObjectRenderer
|
||||
=====================================================================
|
||||
|
||||
See :issue:`80527`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following methods within :php:`ContentObjectRenderer` PHP class have been marked as deprecated:
|
||||
|
||||
* :php:`getSubpart()`
|
||||
* :php:`substituteSubpart()`
|
||||
* :php:`substituteSubpartArray()`
|
||||
* :php:`substituteMarker()`
|
||||
* :php:`substituteMarkerArrayCached()`
|
||||
* :php:`substituteMarkerArray()`
|
||||
* :php:`substituteMarkerInObject()`
|
||||
* :php:`substituteMarkerAndSubpartArrayRecursive()`
|
||||
* :php:`fillInMarkerArray()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods above will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using custom extensions calling these API methods.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Instantiate the class :php:`MarkerBasedTemplateService` available in TYPO3 v7, which contains equivalents
|
||||
to all methods that have been marked as deprecated with the same functionality and namings.
|
||||
|
||||
.. index:: PHP-API, Frontend
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80532:
|
||||
|
||||
=========================================================================
|
||||
Deprecation: #80532 - GifBuilder-related methods in ContentObjectRenderer
|
||||
=========================================================================
|
||||
|
||||
See :issue:`80532`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following methods related to :php:`GifBuilder` within :php:`ContentObjectRenderer` have been marked
|
||||
as deprecated.
|
||||
|
||||
* :php:`clearTSProperties()`
|
||||
* :php:`gifBuilderTextBox()`
|
||||
* :php:`linebreaks()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods above will trigger a deprecation message.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using these methods in custom extensions.
|
||||
|
||||
.. index:: Frontend, PHP-API
|
||||
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80579:
|
||||
|
||||
================================================================
|
||||
Deprecation: #80579 - Modal.center has been marked as deprecated
|
||||
================================================================
|
||||
|
||||
See :issue:`80579`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :js:`Modal.center` has been marked as deprecated. Alignment is now
|
||||
handled via CSS and this method is now obsolete.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling :js:`Modal.center` will trigger a console warning in the browser.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All 3rd party extensions using :js:`Modal.center` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove obsolete calls to :js:`Modal.center()`.
|
||||
|
||||
|
||||
.. index:: JavaScript, Backend
|
||||
@@ -0,0 +1,36 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80583:
|
||||
|
||||
====================================================
|
||||
Deprecation: #80583 - TYPO3_CONF_VARS_extensionAdded
|
||||
====================================================
|
||||
|
||||
See :issue:`80583`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The global array :php:`$GLOBALS['TYPO3_CONF_VARS_extensionAdded']` has been deprecated along with the method
|
||||
:php:`ExtensionManagementUtility::appendToTypoConfVars()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using method :php:`appendToTypoConfVars()` throws a deprecation warning and accessing
|
||||
:php:`$GLOBALS['TYPO3_CONF_VARS_extensionAdded']` will stop working with core version 9.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions using :php:`$GLOBALS['TYPO3_CONF_VARS_extensionAdded']` or method :php:`appendToTypoConfVars()`
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Access :php:`$GLOBALS['TYPO3_CONF_VARS']` directly.
|
||||
|
||||
.. index:: LocalConfiguration, PHP-API
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80601:
|
||||
|
||||
========================================================================
|
||||
Deprecation: #80601 - Change duplicate icon identifiers to actions-close
|
||||
========================================================================
|
||||
|
||||
See :issue:`80601`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The icon ``actions-document-close`` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using the icon identifier ``actions-document-close`` will trigger a deprecation log entry.
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using the icon identifier.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the new icon identifier ``actions-close`` instead.
|
||||
|
||||
|
||||
.. index:: Backend
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80603:
|
||||
|
||||
======================================================================
|
||||
Deprecation: #80603 - Change duplicate icon identifiers to actions-add
|
||||
======================================================================
|
||||
|
||||
See :issue:`80603`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The icon ``actions-edit-add`` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using the icon identifier ``actions-edit-add`` will trigger a deprecation log entry.
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using the icon identifier.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the new icon identifier ``actions-add`` instead.
|
||||
|
||||
|
||||
|
||||
.. index:: Backend
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-80614:
|
||||
|
||||
=============================================================
|
||||
Deprecation: #80614 - TCA itemListStyle and selectedListStyle
|
||||
=============================================================
|
||||
|
||||
See :issue:`80614`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The TCA property ``itemListStyle`` available in renderType ``selectSingleBox`` and
|
||||
``selectMultipleSideBySide``, as well as the property ``selectedListStyle`` available in
|
||||
renderType ``selectMultipleSideBySide`` have been deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using these properties throws a deprecation warning and will not be considered with TYPO3 v9.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Instances using one of the above properties in TCA
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
The properties can be dropped. Changing styles of above elements should be done in own renderTypes
|
||||
or by overloading CSS in the backend.
|
||||
|
||||
.. index:: Backend, TCA
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-79343:
|
||||
|
||||
=====================================================================
|
||||
Feature: #79343 - Allow overriding PATH_site via environment variable
|
||||
=====================================================================
|
||||
|
||||
See :issue:`79343`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
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 :file:`typo3/sysext/core/bin/typo3` with composer, it can also
|
||||
be called from a projects' default :file:`bin/` directory.
|
||||
|
||||
.. index:: CLI, PHP-API
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-79812:
|
||||
|
||||
======================================================================
|
||||
Feature: #79812 - Allow overriding cropVariants for Image Manipulation
|
||||
======================================================================
|
||||
|
||||
See :issue:`79812`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
With the introduction of :issue:`75880` you now can define multiple cropVariants in TCA.
|
||||
With this feature it is now possible to change or override these cropVariants via TSconfig.
|
||||
|
||||
Setting a FormEngine option through :typoscript:`TCEFORM.sys_file_reference.crop.config.cropVariants.*` does now work.
|
||||
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
TCEFORM.sys_file_reference.crop.config.cropVariants {
|
||||
default {
|
||||
title = Default desktop
|
||||
selectedRatio = NaN
|
||||
allowedAspectRatios {
|
||||
NaN {
|
||||
title = free
|
||||
value = 0.0
|
||||
}
|
||||
}
|
||||
}
|
||||
specialMobile {
|
||||
title = Our special mobile variant
|
||||
selectedRatio = NaN
|
||||
allowedAspectRatios {
|
||||
4:3 {
|
||||
title = ratio 4/3
|
||||
value = 1.3333333
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
It is not possible to change or override cropVariants via Page and User TSconfig.
|
||||
|
||||
.. index:: Backend, FAL, TSConfig
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-79883:
|
||||
|
||||
===========================================================================
|
||||
Feature: #79883 - Add cropVariant support to TypoScript rendering of images
|
||||
===========================================================================
|
||||
|
||||
See :issue:`79883`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The introduction of the new crop variants :issue:`75880` broke the handling of
|
||||
cropped images when using TypoScript to render file(reference)'s. This feature
|
||||
fixes this and introduces a new TypoScript option to use a different cropVariant.
|
||||
|
||||
To use a different :typoscript:`cropVariant` as default you can provide the
|
||||
:typoscript:`cropVariant` name now in your TypoScript configuration.
|
||||
If :typoscript:`cropVariant` isn't provided the default variant will be used.
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
# Use specific cropVariant for the images
|
||||
tt_content.image.20.1.file.cropVariant = mobile
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
If multiple cropVariants are available (see :issue:`75880`) you can now configure
|
||||
which variant to use with the :typoscript:`cropVariant` option of :typoscript:`imgResource`.
|
||||
|
||||
|
||||
.. index:: FAL, Frontend, TypoScript
|
||||
@@ -0,0 +1,38 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-80126:
|
||||
|
||||
=====================================================================
|
||||
Feature: #80126 maximum field length not set as attribute "maxlength"
|
||||
=====================================================================
|
||||
|
||||
See :issue:`80126`
|
||||
See :issue:`80128`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
If a form element is set to be use the 'String length' server side validation through the form editor, the client side
|
||||
validation properties ``minlength`` and ``maxlength`` will be rendered.
|
||||
|
||||
Result:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
renderables:
|
||||
-
|
||||
type: <formElementType>
|
||||
...
|
||||
properties:
|
||||
fluidAdditionalAttributes:
|
||||
minlength: 2
|
||||
maxlength: 3
|
||||
...
|
||||
validators:
|
||||
-
|
||||
identifier: StringLength
|
||||
options:
|
||||
minimum: 2
|
||||
maximum: 3
|
||||
|
||||
.. index:: Frontend, Backend, ext:form
|
||||
@@ -0,0 +1,31 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-80154:
|
||||
|
||||
=============================================
|
||||
Feature: #80154 - Retrieve session data in TS
|
||||
=============================================
|
||||
|
||||
See :issue:`80154`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
As the session API has been modified, it is no longer possible to access
|
||||
session data from TypoScript by accessing the formerly public property of
|
||||
the fe_user with:
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
page.10 = TEXT
|
||||
page.10.data = TSFE:fe_user|sesData|myext|mydata
|
||||
|
||||
|
||||
This is being replaced by a more direct way, which allows for the same functionality:
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
page.10 = TEXT
|
||||
page.10.data = session:myext|mydata
|
||||
|
||||
.. index:: Frontend, TypoScript
|
||||
+197
@@ -0,0 +1,197 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-80196:
|
||||
|
||||
===================================================================
|
||||
Feature: #80196 - EXT:form - support multiple form elements per row
|
||||
===================================================================
|
||||
|
||||
See :issue:`80196`
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Two new form element types have been added to the form framework:
|
||||
|
||||
* GridContainer
|
||||
* GridRow
|
||||
|
||||
Using these 'container' form elements will enable you to define multiple form elements per row.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
type: Form
|
||||
identifier: example-form-gridcontainer
|
||||
label: 'Form Grid Container'
|
||||
prototypeName: standard
|
||||
renderables:
|
||||
-
|
||||
type: Page
|
||||
identifier: page-1
|
||||
label: Page
|
||||
renderables:
|
||||
-
|
||||
type: GridContainer
|
||||
identifier: gridcontainer-2
|
||||
label: 'Grid: Container'
|
||||
renderables:
|
||||
-
|
||||
type: GridRow
|
||||
identifier: gridrow-2
|
||||
label: 'Grid: Row'
|
||||
renderables:
|
||||
-
|
||||
type: SingleSelect
|
||||
identifier: singleselect-1
|
||||
label: 'Single select'
|
||||
properties:
|
||||
gridColumnClassAutoConfiguration:
|
||||
viewPorts:
|
||||
xs:
|
||||
numbersOfColumnsToUse: 12
|
||||
lg:
|
||||
numbersOfColumnsToUse: 2
|
||||
-
|
||||
type: Text
|
||||
identifier: text-1
|
||||
label: Text
|
||||
properties:
|
||||
gridColumnClassAutoConfiguration:
|
||||
viewPorts:
|
||||
xs:
|
||||
numbersOfColumnsToUse: 6
|
||||
lg:
|
||||
numbersOfColumnsToUse: 5
|
||||
-
|
||||
type: MultiSelect
|
||||
identifier: multiselect-1
|
||||
label: 'Multi select'
|
||||
properties:
|
||||
gridColumnClassAutoConfiguration:
|
||||
viewPorts:
|
||||
xs:
|
||||
numbersOfColumnsToUse: 6
|
||||
sm:
|
||||
numbersOfColumnsToUse: 5
|
||||
-
|
||||
type: GridContainer
|
||||
identifier: gridcontainer-1
|
||||
label: 'Grid: Container'
|
||||
renderables:
|
||||
-
|
||||
type: GridRow
|
||||
identifier: gridrow-1
|
||||
label: 'Grid: Row'
|
||||
renderables:
|
||||
-
|
||||
type: Password
|
||||
identifier: password-1
|
||||
label: Password
|
||||
|
||||
Per default, the resulting markup is compatible to Twitter Bootstrap.
|
||||
|
||||
The following options are available now:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
GridContainer:
|
||||
...
|
||||
properties:
|
||||
columnClassAutoConfiguration:
|
||||
gridSize: 12
|
||||
viewPorts:
|
||||
xs:
|
||||
classPattern: 'col-xs-{@numbersOfColumnsToUse}'
|
||||
sm:
|
||||
classPattern: 'col-sm-{@numbersOfColumnsToUse}'
|
||||
md:
|
||||
classPattern: 'col-md-{@numbersOfColumnsToUse}'
|
||||
lg:
|
||||
classPattern: 'col-lg-{@numbersOfColumnsToUse}'
|
||||
|
||||
and
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
<formElementIdentifier>:
|
||||
...
|
||||
properties:
|
||||
gridColumnClassAutoConfiguration:
|
||||
viewPorts:
|
||||
xs:
|
||||
numbersOfColumnsToUse: 12
|
||||
...
|
||||
lg:
|
||||
numbersOfColumnsToUse: 2
|
||||
|
||||
|
||||
**GridContainer.properties.columnClassAutoConfiguration**
|
||||
|
||||
The example form definition shown above generates the following HTML markup
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-xs-12 col-sm-3 col-md-4 col-lg-2">
|
||||
...
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-3 col-md-4 col-lg-5">
|
||||
...
|
||||
</div>
|
||||
<div class="col-xs-6 col-sm-5 col-md-4 col-lg-5">
|
||||
...
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
**GridContainer.properties.columnClassAutoConfiguration.gridSize**
|
||||
|
||||
Total amount of grid columns (default: 12).
|
||||
|
||||
|
||||
**GridContainer.properties.columnClassAutoConfiguration.viewPorts.<viewPortName>.classPattern**
|
||||
|
||||
This pattern will be used to generate the HTML class attribute values for each viewport.
|
||||
The wildcard '{@numbersOfColumnsToUse}' will be replaced with the calculated grid column numbers.
|
||||
At the end, all 'classPattern' items for each viewport will be merged together
|
||||
and written into the class attribute of each form element (all form elements within a 'GridRow').
|
||||
|
||||
The calculation depends on the option 'gridSize', the amount of the form elements within the
|
||||
'GridRow' form element and the optional option 'gridColumnClassAutoConfiguration' from the
|
||||
form element configurations.
|
||||
|
||||
|
||||
**<formElementIdentifier>.properties.gridColumnClassAutoConfiguration (optional)**
|
||||
|
||||
Each form elements within a 'GridRow' element can define the number of grid columns
|
||||
to use on a 'per viewport' base.
|
||||
|
||||
|
||||
**<formElementIdentifier>.properties.gridColumnClassAutoConfiguration.viewPorts.<viewPortName>**
|
||||
|
||||
The array keys '<viewPortName>' must match with the array keys '<viewPortName>'
|
||||
from the configuration 'GridContainer.properties.columnClassAutoConfiguration.viewPorts.<viewPortName>'
|
||||
|
||||
|
||||
**<formElementIdentifier>.properties.gridColumnClassAutoConfiguration.viewPorts.<viewPortName>.numbersOfColumnsToUse**
|
||||
|
||||
The number of grid columns to be used by this element for the viewport '<viewPortName>'.
|
||||
|
||||
This number goes hard to the '{@numbersOfColumnsToUse}' wildcard from the configuration
|
||||
'GridContainer.properties.columnClassAutoConfiguration.viewPorts.<viewPortName>.classPattern'
|
||||
|
||||
If nothing is set, the {@numbersOfColumnsToUse} will be calculated automatically.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
You are now able to add multiple form elements per row via the API and the form editor.
|
||||
|
||||
|
||||
.. index:: Backend, Frontend, ext:form
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-80374-1668719171:
|
||||
|
||||
=========================================================================
|
||||
Feature: #80374 - Add generic fluid template for already rendered content
|
||||
=========================================================================
|
||||
|
||||
See :issue:`80374`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
To provide better support for content elements where the content itself is not
|
||||
processed by fluid we introduce a new generic template, to make it easy to
|
||||
benefit from the universal layouts of fluid styled content.
|
||||
|
||||
The generic template only wraps already generated html that have been assigned
|
||||
to the variable `content`. This eliminates the need for extensions to provide
|
||||
custom templates to wrap their external rendered content to achieve the same
|
||||
behaviour as other fluid styled content elements.
|
||||
|
||||
Template
|
||||
--------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<html xmlns:f="http://typo3.org/ns/TYPO3/CMS/Fluid/ViewHelpers" data-namespace-typo3-fluid="true">
|
||||
<f:layout name="Default" />
|
||||
<f:section name="Main">
|
||||
<f:comment>This templates is used to provide necessary functionality for external processed content and could be used across multiple sources, for example the frontend login content element.</f:comment>
|
||||
{content -> f:format.raw()}
|
||||
</f:section>
|
||||
</html>
|
||||
|
||||
Example Usage
|
||||
-------------
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
tt_content.mycontent =< lib.contentElement
|
||||
tt_content.mycontent {
|
||||
templateName = Generic
|
||||
variables {
|
||||
content = USER_INT
|
||||
content {
|
||||
userFunc = ACME\ContentExtension\Controller\SuperController->main
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.. index:: Fluid, TypoScript, Frontend
|
||||
+118
@@ -0,0 +1,118 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-80374:
|
||||
|
||||
=========================================================================================
|
||||
Feature: #80374 - Frontend Login configuration now available through TypoScript constants
|
||||
=========================================================================================
|
||||
|
||||
See :issue:`80374`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The most common configuration options for the "Frontend Login" configuration are
|
||||
now available as TypoScript constants, and moved to a new section "Frontend Login"
|
||||
in the constant editor.
|
||||
|
||||
Storage
|
||||
-------
|
||||
|
||||
styles.content.loginform.pid
|
||||
Storage Folder: Define the Storage Folder with the Website User Records,
|
||||
using a comma separated list or single value
|
||||
|
||||
styles.content.loginform.recursive
|
||||
Recursive: If set, also any subfolders of the storagePid will be used
|
||||
|
||||
Template
|
||||
--------
|
||||
|
||||
styles.content.loginform.templateFile
|
||||
Login template: Enter the path for the HTML template to be used
|
||||
|
||||
styles.content.loginform.feloginBaseURL
|
||||
BaseURL for generated links: Base url if something other than the system
|
||||
base URL is needed
|
||||
|
||||
styles.content.loginform.dateFormat
|
||||
Date format: Format for the link is valid until message (forget password email)
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
styles.content.loginform.showForgotPasswordLink
|
||||
Display Password Recovery Link: If set, the section in the template to
|
||||
display the link to the forget password dialogue is visible.
|
||||
|
||||
styles.content.loginform.showPermaLogin
|
||||
Display Remember Login Option: If set, the section in the template to
|
||||
display the option to remember the login (with a cookie) is visible.
|
||||
|
||||
styles.content.loginform.showLogoutFormAfterLogin
|
||||
Disable redirect after successful login, but display logout-form: If set,
|
||||
the logout form will be displayed immediately after successful login.
|
||||
|
||||
E-Mail
|
||||
------
|
||||
|
||||
styles.content.loginform.emailFrom
|
||||
E-Mail Sender Address: E-Mail address used as sender of the change password emails
|
||||
|
||||
styles.content.loginform.emailFromName
|
||||
E-Mail Sender Name: Name used as sender of the change password emails
|
||||
|
||||
styles.content.loginform.replyToEmail
|
||||
Reply To E-Mail Address: Reply-to address used in the change password emails
|
||||
|
||||
Redirects
|
||||
---------
|
||||
|
||||
styles.content.loginform.redirectMode
|
||||
Redirect Mode: Comma separated list of redirect modes. Possible values: groupLogin,
|
||||
userLogin, login, getpost, referer, refererDomains, loginError, logout
|
||||
|
||||
styles.content.loginform.redirectFirstMethod
|
||||
Use First Supported Mode from Selection: If set the first method from redirectMode
|
||||
which is possible will be used
|
||||
|
||||
styles.content.loginform.redirectPageLogin
|
||||
After Successful Login Redirect to Page: Page id to redirect to after Login
|
||||
|
||||
styles.content.loginform.redirectPageLoginError
|
||||
After Failed Login Redirect to Page: Page id to redirect to after Login Error
|
||||
|
||||
styles.content.loginform.redirectPageLogout
|
||||
After Logout Redirect to Page: Page id to redirect to after Logout
|
||||
|
||||
styles.content.loginform.redirectDisable
|
||||
Disable Redirect: If set redirecting is disabled
|
||||
|
||||
Security
|
||||
--------
|
||||
|
||||
styles.content.loginform.forgotLinkHashValidTime
|
||||
Time in hours how long the link for forget password is valid: How many
|
||||
hours the link for forget password is valid
|
||||
|
||||
styles.content.loginform.newPasswordMinLength
|
||||
Minimum amount of characters, when setting a new password: Minimum length
|
||||
of the new password a user sets
|
||||
|
||||
styles.content.loginform.domains
|
||||
Allowed Referrer-Redirect-Domains: Comma separated list of domains which
|
||||
are allowed for the referrer redirect mode
|
||||
|
||||
styles.content.loginform.exposeNonexistentUserInForgotPasswordDialog
|
||||
Expose existing users: Expose the information on whether or not the account
|
||||
for which a new password was requested exists. By default, that information
|
||||
is not disclosed for privacy reasons.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Frontend Login configuration is now always added first and not depending anymore
|
||||
and not depending anymore on the configuration of the TypoScript template.
|
||||
This allows reliable configuration since the configuration is not a moving target.
|
||||
|
||||
.. index:: TypoScript, Frontend
|
||||
@@ -0,0 +1,20 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-80452:
|
||||
|
||||
================================================================
|
||||
Feature: #80452 - Extbase CLI commands available via new CLI API
|
||||
================================================================
|
||||
|
||||
See :issue:`80452`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Any Extbase Command Controller can now be accessed via the new Symfony Console CLI entrypoint by
|
||||
simply calling ``typo3/sysext/core/bin/typo3 controller:command``.
|
||||
|
||||
Using the existing CLI entrypoint via ``typo3/cli_dispatch.phpsh extbase controller:command`` still
|
||||
works as expected.
|
||||
|
||||
.. index:: CLI, ext:extbase
|
||||
@@ -0,0 +1,314 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-80579:
|
||||
|
||||
===============================================
|
||||
Feature: #80579 - Improved JavaScript Modal API
|
||||
===============================================
|
||||
|
||||
See :issue:`80579`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
To improve the usability and flexibility for a unified handling of overlays in
|
||||
the backend we're opening the existing API for modals to be more flexible and
|
||||
adjustable to your needs for advanced usage. With the introduction of the
|
||||
advanced API it is now possible to pass configuration by json object. This
|
||||
enables more easy configuration and better fallback if the modal is not
|
||||
correctly configured.
|
||||
|
||||
For a unified experience all modals are now centered by default, will kept in
|
||||
place automatically and are available in different sized depending on your needs.
|
||||
In addition to this there is also a new type for loading content into an
|
||||
iframe. Buttons have now full support for the TYPO3 Icon API and data
|
||||
attributes that also can set by configuration.
|
||||
|
||||
Advanced API
|
||||
------------
|
||||
|
||||
Unlike the existing api functions like :js:`Modal.confirm`, :js:`Modal.loadUrl` or
|
||||
:js:`Modal.show`, :js:`Modal.advanced` uses a JavaScript object instead of fixed
|
||||
parameters.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
require([
|
||||
'jquery',
|
||||
'TYPO3/CMS/Backend/Modal'
|
||||
], function ($, Modal) {
|
||||
|
||||
var configuration = {
|
||||
type: Modal.types.iframe,
|
||||
title: title,
|
||||
content: url,
|
||||
size: Modal.sizes.large,
|
||||
callback: function(currentModal) {
|
||||
currentModal.find('.t3js-modal-body')
|
||||
.addClass('custom-css-class');
|
||||
}
|
||||
};
|
||||
Modal.advanced(configuration);
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
Configuration Options
|
||||
---------------------
|
||||
|
||||
Type
|
||||
^^^^
|
||||
|
||||
The :js:`type` will define the behaviour of content loading, and only accepts
|
||||
:js:`Modal.types.ajax`, :js:`Modal.types.iframe` and the default :js:`Modal.types.default`.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var configuration = {
|
||||
type: Modal.types.iframe,
|
||||
content: url || content
|
||||
};
|
||||
|
||||
Modal.types.default
|
||||
Default will display static content set in the option `content`.
|
||||
|
||||
Modal.types.ajax
|
||||
Content will be grabbed from a url set in the option `content`
|
||||
|
||||
Modal.types.iframe
|
||||
Url provided in the option `content` will be loaded in an iframe in the modal.
|
||||
Also it will automatically set the title from the contained document.
|
||||
|
||||
|
||||
Title
|
||||
^^^^^
|
||||
|
||||
The `title` will be display above the modal content. For the type
|
||||
:js:`Modal.types.iframe` this option will have no effect. As soon as the content
|
||||
from the iframe is loaded, the title will be replaced with title of the
|
||||
contained document. The default will set the title to "Information".
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var configuration = {
|
||||
title: 'My Title'
|
||||
};
|
||||
Modal.advanced(configuration);
|
||||
|
||||
|
||||
Content
|
||||
^^^^^^^
|
||||
|
||||
The `content` accepts only strings that can be either a HTML or a url for types
|
||||
:js:`Modal.types.ajax` and :js:`Modal.types.iframe`. The default will show a warning
|
||||
that there is a possible misconfiguration of the modal.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var configurationStatic = {
|
||||
type: Modal.types.default,
|
||||
content: 'My Title'
|
||||
};
|
||||
Modal.advanced(configurationStatic);
|
||||
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var configurationAjax = {
|
||||
type: Modal.types.ajax,
|
||||
content: 'http://www.google.de/'
|
||||
};
|
||||
Modal.advanced(configurationAjax);
|
||||
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var configurationIframe = {
|
||||
type: Modal.types.iframe,
|
||||
content: 'http://www.google.de/'
|
||||
};
|
||||
Modal.advanced(configurationIframe);
|
||||
|
||||
|
||||
Severity
|
||||
^^^^^^^^
|
||||
|
||||
Severity is used to change the appearance of the modal window to represent a
|
||||
contextual state like success, information, warning or danger. The default is
|
||||
:js:`Severity.notice`. Only options provided by the :js:`Severity` object will be
|
||||
accepted.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var configuration = {
|
||||
severity: Severity.info,
|
||||
};
|
||||
Modal.advanced(configuration);
|
||||
|
||||
|
||||
Buttons
|
||||
^^^^^^^
|
||||
|
||||
Defined buttons will be display displayed at the bottom of the modal window.
|
||||
The configuration accepts an array of single button definitions.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var configuration = {
|
||||
buttons: [
|
||||
{
|
||||
text: 'Save changes',
|
||||
name: 'save',
|
||||
icon: 'actions-document-save',
|
||||
active: true,
|
||||
btnClass: 'btn-primary',
|
||||
dataAttributes: {
|
||||
action: 'save'
|
||||
},
|
||||
trigger: function() {
|
||||
Modal.currentModal.trigger('modal-dismiss');
|
||||
}
|
||||
}
|
||||
]
|
||||
};
|
||||
Modal.advanced(configuration);
|
||||
|
||||
|
||||
text
|
||||
Text that will be displayed in the button
|
||||
|
||||
name
|
||||
Value of the name attribute of the button
|
||||
|
||||
icon
|
||||
Name of the icon that will be displayed in front of the text
|
||||
|
||||
active
|
||||
Activated button after opening the modal window
|
||||
|
||||
btnClass
|
||||
Additional css class that will be added to the button
|
||||
|
||||
dataAttributes
|
||||
Object of data attributes that will be added to the button
|
||||
|
||||
trigger
|
||||
Callback function that will be triggered then the button is clicked
|
||||
|
||||
|
||||
Style
|
||||
^^^^^
|
||||
|
||||
The ``style`` option will change the appearance of the modal like the ``severity``
|
||||
both without contextual meaning. The default option is :js:`Modal.styles.light`.
|
||||
The second available option is :js:`Modal.styles.dark` will override all contextual
|
||||
styling.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var configuration = {
|
||||
style: Modal.styles.default
|
||||
}
|
||||
Modal.advanced(configuration);
|
||||
|
||||
|
||||
Size
|
||||
^^^^
|
||||
|
||||
While the modal itself adapts to the window, there are several options available
|
||||
to limit the maximal size of the modal. The sizes :js:`Modal.sizes.small` and the
|
||||
default :js:`Modal.sizes.default` will automatically adapt to the content and are only
|
||||
limited to the width of the modal. :js:`Modal.sizes.large` and :js:`Modal.sizes.full`
|
||||
are designed to contain a undefined length of content in a fixed sized modal.
|
||||
These are suited best for :js:`Modal.types.ajax` or :js:`Modal.types.iframe` content.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var configuration = {
|
||||
size: Modal.sizes.large
|
||||
}
|
||||
Modal.advanced(configuration);
|
||||
|
||||
|
||||
Modal.sizes.small
|
||||
Limited to 400px width
|
||||
|
||||
Modal.sizes.default
|
||||
Limited to 600px width
|
||||
|
||||
Modal.sizes.large
|
||||
Limited to 800px width and 600px height
|
||||
|
||||
Modal.sizes.full
|
||||
Limited to 1800px width and 1200px height
|
||||
|
||||
|
||||
Additional CSS Classes
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The option `additionalCssClasses` accepts an array of css classes that will be
|
||||
added to the modal frame.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var configuration = {
|
||||
additionalCssClasses: [
|
||||
'class1',
|
||||
'class2'
|
||||
]
|
||||
}
|
||||
Modal.advanced(configuration);
|
||||
|
||||
|
||||
Callback
|
||||
^^^^^^^^
|
||||
|
||||
Callback function that will be called after the modal is processed.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var configuration = {
|
||||
callback: function(currentModal) {
|
||||
currentModal.find('.t3js-modal-body')
|
||||
.addClass('custom-css-class');
|
||||
}
|
||||
}
|
||||
Modal.advanced(configuration);
|
||||
|
||||
|
||||
Callback after ajax processing
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
Callback function that will be called after the ajax call has been done and
|
||||
the response added to the desired location. This option is only available for
|
||||
type :js:`Modal.types.ajax`.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var configuration = {
|
||||
type: Modal.types.ajax,
|
||||
ajaxCallback: function() {
|
||||
do();
|
||||
}
|
||||
}
|
||||
Modal.advanced(configuration);
|
||||
|
||||
|
||||
Target for ajax response
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The ajax response will be added to the body of the particular modal window by
|
||||
default but can be set to a different selector if necessary. This option is only
|
||||
available for type :js:`Modal.types.ajax`.
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var configuration = {
|
||||
type: Modal.types.ajax,
|
||||
ajaxTarget: '.t3js-modal-footer'
|
||||
}
|
||||
Modal.advanced(configuration);
|
||||
|
||||
|
||||
.. index:: JavaScript, Backend
|
||||
@@ -0,0 +1,31 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-80619:
|
||||
|
||||
========================================================
|
||||
Feature: #80619 - Extend Link Generation within TypoLink
|
||||
========================================================
|
||||
|
||||
See :issue:`80619`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Generating a link to a page, email, url, email in the TYPO3 Frontend is usually handled via the
|
||||
so-called ``typolink`` functionality. Generating links is now flexible, extensions can register
|
||||
their own link-building functionality via :php:`$GLOBALS[TYPO3_CONF_VARS][FE][typolinkBuilder][$linkType]`
|
||||
in the extensions ``ext_localconf.php``.
|
||||
|
||||
All existing functionality for TypoLink via TypoScript etc. still works as before.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The TYPO3 Core itself handles all native link types (email, url, page, record, file, folder) via
|
||||
this functionality already, and it can be overridden.
|
||||
|
||||
The functionality goes hand-in-hand with the LinkService registration functionality for setting
|
||||
links of a specific type.
|
||||
|
||||
.. index:: Frontend, PHP-API, LocalConfiguration
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-71095:
|
||||
|
||||
================================================================
|
||||
Important: #71095 - Add language debug mode to All Configuration
|
||||
================================================================
|
||||
|
||||
See :issue:`71095`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
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:`$GLOBALS['TYPO3_CONF_VARS']['BE']['languageDebug']`
|
||||
|
||||
.. index:: Backend, LocalConfiguration
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-78650:
|
||||
|
||||
======================================================================
|
||||
Important: #78650 - TypoScriptService class moved from Extbase to Core
|
||||
======================================================================
|
||||
|
||||
See :issue:`78650`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The PHP class :php:`TypoScriptService` has been moved to the core extension, as it has no direct link
|
||||
to Extbase, and a lot of other system extensions are using the class.
|
||||
|
||||
The old class name :php:`TYPO3\CMS\Extbase\Service\TypoScriptService` is registered as a class alias
|
||||
for the new class name :php:`TYPO3\CMS\Core\TypoScript\TypoScriptService`, so extensions can call the
|
||||
class via the Extbase PHP namespace in TYPO3 v8 without any downsides.
|
||||
|
||||
.. index:: PHP-API, ext:extbase, TypoScript
|
||||
@@ -0,0 +1,39 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-79847:
|
||||
|
||||
=====================================================================
|
||||
Important: #79847 - Fluid bugs fixed and features added (Fluid 2.3.1)
|
||||
=====================================================================
|
||||
|
||||
See :issue:`79847`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The Fluid engine dependency is raised to version 2.3.1 which fixes a few important bugs and adds a couple of features:
|
||||
|
||||
* Namespace declarations (``{namespace foo=Bar\Baz\ViewHelpers}`` style) are now removed from output
|
||||
https://github.com/TYPO3/Fluid/pull/262
|
||||
* The TemplatePaths object now accepts arrays for ``sanitizePath`` like the TYPO3 CMS adapter does.
|
||||
https://github.com/TYPO3/Fluid/pull/263
|
||||
* Compiler is reset after each rendering - this fixes an issue where rendering the new ``HeaderAssets`` and ``FooterAssets``
|
||||
sections would fail to attach the assets until the Fluid template had been compiled (first page hit after cache flush).
|
||||
https://github.com/TYPO3/Fluid/pull/269
|
||||
|
||||
And in the new features department, two new features are added:
|
||||
|
||||
* XML namespace extraction is brought into sync with TYPO3 CMS adapter
|
||||
https://github.com/TYPO3/Fluid/pull/264
|
||||
* An escaping modifier pre-processor has been added
|
||||
https://github.com/TYPO3/Fluid/pull/266
|
||||
|
||||
This means two things:
|
||||
|
||||
1. For template developers this means you can use ``{escaping off}`` in a template to completely disable the escaping
|
||||
which is normally done - which can be particularly helpful in non-HTML templates.
|
||||
2. For the TYPO3 core this means it becomes possible to drop two classes (Fluid overrides) completely from the source;
|
||||
namely the ``XmlnsNamespaceTemplatePreProcessor`` and ``LegacyNamespaceExpressionNode``. Thus increasing the parsing
|
||||
efficiency of Fluid as it is integrated with TYPO3 CMS.
|
||||
|
||||
.. index:: Fluid
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-79942:
|
||||
|
||||
=================================================================
|
||||
Important: #79942 - Version selector view moved to compatibility7
|
||||
=================================================================
|
||||
|
||||
See :issue:`79942`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The custom Backend module for showing and selecting versions of a specific page, which was
|
||||
part of EXT:version has been moved to EXT:compatibility7. The backend module is solely
|
||||
available via the ClickMenu as it is formally superseded by the Workspaces Backend module.
|
||||
|
||||
All related PHP classes and template files have been moved as well.
|
||||
|
||||
.. index:: PHP-API, Backend, ext:version
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-80236:
|
||||
|
||||
=================================================================
|
||||
Important: #80236 - EXT:form Configuration for form VH attributes
|
||||
=================================================================
|
||||
|
||||
See :issue:`80236`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Move some fixed configurations from within the fluid templates into the
|
||||
form settings
|
||||
|
||||
* f:form -> additionalParams
|
||||
* f:form -> addQueryString
|
||||
* f:form -> argumentsToBeExcludedFromQueryString
|
||||
* f:form -> action
|
||||
* f:form -> enctype
|
||||
* f:form -> method
|
||||
|
||||
within the EXT:Form configuration.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
TYPO3:
|
||||
CMS:
|
||||
Form:
|
||||
prototypes:
|
||||
<prototypeName>:
|
||||
formElementsDefinition:
|
||||
Form:
|
||||
renderingOptions:
|
||||
addQueryString: false
|
||||
argumentsToBeExcludedFromQueryString: []
|
||||
additionalParams: []
|
||||
controllerAction: perform
|
||||
httpMethod: post
|
||||
httpEnctype: 'multipart/form-data'
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
An integrator can configure the FLUID form properties
|
||||
|
||||
f:form -> additionalParams
|
||||
f:form -> addQueryString
|
||||
f:form -> argumentsToBeExcludedFromQueryString
|
||||
f:form -> action
|
||||
f:form -> enctype
|
||||
f:form -> method
|
||||
|
||||
|
||||
.. index:: Frontend, ext:form, Fluid
|
||||
@@ -0,0 +1,140 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-80241:
|
||||
|
||||
==========================================================
|
||||
Important: #80241 - EXT:form simplify translation handling
|
||||
==========================================================
|
||||
|
||||
See :issue:`80241`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
If an integrator wants to add translations for new form elements he can only
|
||||
define a new translation file which must contain all translation keys.
|
||||
This patch makes it possible to define multiple translation files.
|
||||
|
||||
Before this patch:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
TYPO3:
|
||||
CMS:
|
||||
Form:
|
||||
prototypes:
|
||||
standard:
|
||||
formElementsDefinition:
|
||||
Form:
|
||||
renderingOptions:
|
||||
translation:
|
||||
translationFile: 'EXT:form/Resources/Private/Language/locallang.xlf'
|
||||
|
||||
After this patch:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
TYPO3:
|
||||
CMS:
|
||||
Form:
|
||||
prototypes:
|
||||
standard:
|
||||
formElementsDefinition:
|
||||
Form:
|
||||
renderingOptions:
|
||||
translation:
|
||||
translationFile:
|
||||
10: 'EXT:form/Resources/Private/Language/locallang.xlf'
|
||||
20: 'EXT:my_ext/Resources/Private/Language/locallang.xlf'
|
||||
|
||||
The translation keys will be searched within the referenced files.
|
||||
The search order is from the key with the highest number to the lowest.
|
||||
If a translation key is found within one of these files the search will stop.
|
||||
|
||||
This makes it possible to only define new keys within the custom translations
|
||||
and use the default form translations as well.
|
||||
The default settings keep the translationFile property as string because
|
||||
of backward compatibility.
|
||||
|
||||
Before this patch the "BaseFormElementMixin" inherits the "translationSettingsMixin".
|
||||
Thus, the "renderingOptions.translation..." are copied to each form element.
|
||||
This is inconvenient if an integrator defines his own prototype which inherits from
|
||||
the standard prototype because he must redefine the "renderingOptions.translation..."
|
||||
options for each form element.
|
||||
|
||||
Since there already is a fallback strategy to the "renderingOptions.translation..."
|
||||
options from the root form element - if this option is not set within the
|
||||
child form elements - we can simply apply the "translationSettingsMixin"
|
||||
to the "Form" element and remove it from the "BaseFormElementMixin".
|
||||
Now, the rendering options are only set for the "Form" element and rules
|
||||
as a prototype wide frontend translation setting.
|
||||
|
||||
This patch adds a fallback for the form engine translation if there is no
|
||||
"translationFile" setting within the "FormEngine" option.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
TYPO3:
|
||||
CMS:
|
||||
Form:
|
||||
prototypes:
|
||||
standard:
|
||||
formEngine:
|
||||
translationFile:
|
||||
10: 'EXT:form/Resources/Private/Language/Database.xlf'
|
||||
20: 'EXT:ext_form_example1484232130/Resources/Private/Language/Database.xlf'
|
||||
|
||||
Now, there is one prototype wide form engine (plugin settings) translation setting.
|
||||
|
||||
|
||||
Summary
|
||||
-------
|
||||
|
||||
With this patch, an integrator has prototype wide translation settings
|
||||
for the 4 aspects of the form framework. Furthermore, the integrator is
|
||||
able to define multiple translation files to avoid copying the whole
|
||||
default translation files or using locallangXMLOverride.
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
TYPO3:
|
||||
CMS:
|
||||
Form:
|
||||
formManager:
|
||||
selectablePrototypesConfiguration:
|
||||
1484232130:
|
||||
translationFile:
|
||||
# translations for the form managers "new form" modal
|
||||
10: 'EXT:form/Resources/Private/Language/Database.xlf'
|
||||
20: 'EXT:my_ext/Resources/Private/Language/Database.xlf'
|
||||
|
||||
prototypes:
|
||||
<prototypeName>:
|
||||
formEditor:
|
||||
translationFile:
|
||||
# translations for the form editor
|
||||
10: 'EXT:form/Resources/Private/Language/Database.xlf'
|
||||
20: 'EXT:my_ext/Resources/Private/Language/Database.xlf'
|
||||
|
||||
formEngine:
|
||||
translationFile:
|
||||
# translations for the form plugin (finisher overrides)
|
||||
10: 'EXT:form/Resources/Private/Language/Database.xlf'
|
||||
20: 'EXT:my_ext/Resources/Private/Language/Database.xlf'
|
||||
|
||||
formElementsDefinition:
|
||||
Form:
|
||||
renderingOptions:
|
||||
translation:
|
||||
translationFile:
|
||||
# translations for the frontend
|
||||
10: 'EXT:form/Resources/Private/Language/locallang.xlf'
|
||||
20: 'EXT:my_ext/Resources/Private/Language/locallang.xlf'
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Easier to use, less maintenance.
|
||||
|
||||
.. index:: Backend, Frontend, ext:form
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-80266:
|
||||
|
||||
===========================================================================
|
||||
Important: #80266 - Moved config.sys_language_softExclude to compatibility7
|
||||
===========================================================================
|
||||
|
||||
See :issue:`80266`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The TypoScript option :typoscript:`config.sys_language_softExclude` to set
|
||||
certain TCA table fields to ``l10n_mode=exclude`` during frontend request
|
||||
runtime has been moved to compatibility7.
|
||||
|
||||
If any installation depends on this option in the TYPO3 frontend, the
|
||||
extension should be installed.
|
||||
|
||||
However, as the TCA option ``l10n_mode=exclude`` has been superseded
|
||||
by the TCA option ``allowLanguageSynchronization`` the actual use-case
|
||||
for this TypoScript setting should be re-evaluated.
|
||||
|
||||
.. index:: TypoScript, Frontend, TCA
|
||||
@@ -0,0 +1,290 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-80301:
|
||||
|
||||
===========================================================
|
||||
Important: #80301 - EXT:form - Cleanup / callback migration
|
||||
===========================================================
|
||||
|
||||
See :issue:`80301`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The callback 'onBuildingFinished' is deprecated and will be removed in TYPO3 v9.
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
Use the new hook 'afterBuildingFinished' instead.
|
||||
|
||||
Connect to the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['afterBuildingFinished'][]
|
||||
= \VENDOR\YourNamespace\YourClass::class;
|
||||
|
||||
Use the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/**
|
||||
* @param \TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable
|
||||
* @return void
|
||||
*/
|
||||
public function afterBuildingFinished(\TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
This hook will be called for each renderable.
|
||||
|
||||
|
||||
The callback 'beforeRendering' is deprecated and will be removed in TYPO3 v9.
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
Use the new hook 'beforeRendering' instead.
|
||||
|
||||
Connect to the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeRendering'][]
|
||||
= \VENDOR\YourNamespace\YourClass::class;
|
||||
|
||||
Use the signal:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/**
|
||||
* @param \TYPO3\CMS\Form\Domain\Runtime\FormRuntime $formRuntime
|
||||
* @param \TYPO3\CMS\Form\Domain\Model\Renderable\RootRenderableInterface $renderable
|
||||
* @return void
|
||||
*/
|
||||
public function beforeRendering(\TYPO3\CMS\Form\Domain\Runtime\FormRuntime $formRuntime, \TYPO3\CMS\Form\Domain\Model\Renderable\RootRenderableInterface $renderable)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
This hook will be called for each renderable.
|
||||
|
||||
|
||||
The callback 'onSubmit' is deprecated and will be removed in TYPO3 v9.
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Use the new hook 'afterSubmit' instead.
|
||||
|
||||
Connect to the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['afterSubmit'][]
|
||||
= \VENDOR\YourNamespace\YourClass::class;
|
||||
|
||||
Use the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/**
|
||||
* @param \TYPO3\CMS\Form\Domain\Runtime\FormRuntime $formRuntime
|
||||
* @param \TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable
|
||||
* @param mixed $elementValue submitted value of the element *before post processing*
|
||||
* @param array $requestArguments submitted raw request values
|
||||
* @return void
|
||||
*/
|
||||
public function onSubmit(\TYPO3\CMS\Form\Domain\Runtime\FormRuntime $formRuntime, \TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable, $elementValue, array $requestArguments = [])
|
||||
{
|
||||
return $elementValue;
|
||||
}
|
||||
|
||||
|
||||
This hook will be called for each renderable.
|
||||
|
||||
|
||||
The callback 'initializeFormElement' call the 'initializeFormElement' hook.
|
||||
---------------------------------------------------------------------------
|
||||
|
||||
Connect to the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['initializeFormElement'][]
|
||||
= \VENDOR\YourNamespace\YourClass::class;
|
||||
|
||||
Use the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/**
|
||||
* @param \TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable
|
||||
* @return void
|
||||
*/
|
||||
public function initializeFormElement(\TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
This enables you to override the 'initializeFormElement' method within your custom implementation class.
|
||||
If you do not call the parents 'initializeFormElement' then no hook will be thrown.
|
||||
Furthermore, you can connect to the hook and initialize the generic form elements without defining a
|
||||
custom implementation to access the 'initializeFormElement' method.
|
||||
You only need a class which connects to this hook. Then detect the form element you wish to initialize.
|
||||
This saves you a lot of configuration!
|
||||
|
||||
|
||||
The hook 'beforeRemoveFromParentRenderable' will be called for each renderable.
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
Connect to the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeRemoveFromParentRenderable'][]
|
||||
= \VENDOR\YourNamespace\YourClass::class;
|
||||
|
||||
Use the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/**
|
||||
* @param \TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable
|
||||
* @return void
|
||||
*/
|
||||
public function beforeRemoveFromParentRenderable(\TYPO3\CMS\Form\Domain\Model\Renderable\RenderableInterface $renderable)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
The hook 'afterInitializeCurrentPage' will be called after a page is initialized.
|
||||
---------------------------------------------------------------------------------
|
||||
|
||||
Connect to the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['afterInitializeCurrentPage'][]
|
||||
= \VENDOR\YourNamespace\YourClass::class;
|
||||
|
||||
Use the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/**
|
||||
* @param \TYPO3\CMS\Form\Domain\Runtime\FormRuntime $formRuntime
|
||||
* @param \TYPO3\CMS\Form\Domain\Model\Renderable\CompositeRenderableInterface $currentPage
|
||||
* @param null|\TYPO3\CMS\Form\Domain\Model\Renderable\CompositeRenderableInterface $lastPage
|
||||
* @param mixed $elementValue submitted value of the element *before post processing*
|
||||
* @return \TYPO3\CMS\Form\Domain\Model\Renderable\CompositeRenderableInterface
|
||||
*/
|
||||
public function afterInitializeCurrentPage(\TYPO3\CMS\Form\Domain\Runtime\FormRuntime $formRuntime, \TYPO3\CMS\Form\Domain\Model\Renderable\CompositeRenderableInterface $currentPage, \TYPO3\CMS\Form\Domain\Model\Renderable\CompositeRenderableInterface $lastPage = null, array $requestArguments = []): CompositeRenderableInterface
|
||||
{
|
||||
return $currentPage;
|
||||
}
|
||||
|
||||
|
||||
The form manager call the 'beforeFormCreate' hook.
|
||||
--------------------------------------------------
|
||||
|
||||
Connect to the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeFormCreate'][]
|
||||
= \VENDOR\YourNamespace\YourClass::class;
|
||||
|
||||
Use the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/**
|
||||
* @param string $formPersistenceIdentifier
|
||||
* @param array $formDefinition
|
||||
* @return array
|
||||
*/
|
||||
public function beforeFormCreate(string $formPersistenceIdentifier, array $formDefinition): array
|
||||
{
|
||||
return $formDefinition;
|
||||
}
|
||||
|
||||
|
||||
The form manager call the 'beforeFormDuplicate' hook.
|
||||
-----------------------------------------------------
|
||||
|
||||
Connect to the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeFormDuplicate'][]
|
||||
= \VENDOR\YourNamespace\YourClass::class;
|
||||
|
||||
Use the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/**
|
||||
* @param string $formPersistenceIdentifier
|
||||
* @param array $formDefinition
|
||||
* @return array
|
||||
*/
|
||||
public function beforeFormDuplicate(string $formPersistenceIdentifier, array $formDefinition): array
|
||||
{
|
||||
return $formDefinition;
|
||||
}
|
||||
|
||||
|
||||
The form manager call the 'beforeFormDelete' hook.
|
||||
--------------------------------------------------
|
||||
|
||||
Connect to the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeFormDelete'][]
|
||||
= \VENDOR\YourNamespace\YourClass::class;
|
||||
|
||||
Use the signal:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/**
|
||||
* @param string $formPersistenceIdentifier
|
||||
* @return void
|
||||
*/
|
||||
public function beforeFormDelete(string $formPersistenceIdentifier)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
The form editor call the 'beforeFormSave' hook.
|
||||
-----------------------------------------------
|
||||
|
||||
Connect to the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['ext/form']['beforeFormSave'][]
|
||||
= \VENDOR\YourNamespace\YourClass::class;
|
||||
|
||||
Use the hook:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/**
|
||||
* @param string $formPersistenceIdentifier
|
||||
* @param array $formDefinition
|
||||
* @return array
|
||||
*/
|
||||
public function beforeFormSave(string $formPersistenceIdentifier, array $formDefinition): array
|
||||
{
|
||||
return $formDefinition;
|
||||
}
|
||||
|
||||
|
||||
New form element property: properties.fluidAdditionalAttributes
|
||||
---------------------------------------------------------------
|
||||
|
||||
In order to deal with fluid ViewHelpers 'additionalAttributes' it is necessary to introduce a new configuration
|
||||
scope "properties.fluidAdditionalAttributes" for each form element.
|
||||
This configuration property will be used to fill the fluid ViewHelper property "additionalAttributes".
|
||||
|
||||
|
||||
.. index:: Frontend, Backend, PHP-API, Fluid, ext:form
|
||||
@@ -0,0 +1,28 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-80391:
|
||||
|
||||
==========================================================================
|
||||
Important: #80391 - Css Styled Content will not reset TypoScript Constants
|
||||
==========================================================================
|
||||
|
||||
See :issue:`80391`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Previously the TypoScript definition from CSS Styled Content reset all
|
||||
constants that were set before the static template was included to preserve
|
||||
the namespace :typoscript:`styles.content`.
|
||||
|
||||
Since there is no need to reset the constants, this behaviour is removed.
|
||||
|
||||
Removed Code
|
||||
------------
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
# Clear out any constants in this reserved room!
|
||||
styles.content >
|
||||
|
||||
.. index:: TypoScript, Frontend, ext:css_styled_content
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-80444:
|
||||
|
||||
====================================================================
|
||||
Important: #80444 - config.beLoginLinkIPList moved to compatibility7
|
||||
====================================================================
|
||||
|
||||
See :issue:`80444`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The TypoScript option :typoscript:`config.beLoginLinkIPList` which renders a link to login/logout to the TYPO3
|
||||
Backend when visiting a frontend page from a certain IP address, has been moved to EXT:compatibility7.
|
||||
|
||||
.. index:: TypoScript, Frontend
|
||||
@@ -0,0 +1,18 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-80450:
|
||||
|
||||
======================================================
|
||||
Important: #80450 - MonitorUtilityMovedToCompatibility
|
||||
======================================================
|
||||
|
||||
See :issue:`80450`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The "peak memory measurement" in the frontend has been moved to extension compatiblity7. The functionality
|
||||
is semi useful and should live a happy life in an extension for people who may need it, but there is no need
|
||||
to have that within the core on each frontend call.
|
||||
|
||||
.. index:: Backend, Frontend, PHP-API
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-80506:
|
||||
|
||||
===============================================================
|
||||
Important: #80506 - Dbal compatible field quoting in TypoScript
|
||||
===============================================================
|
||||
|
||||
See :issue:`80506`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Properties in :typoscript:`TypoScript` dealing with SQL fragments need proper quoting of field names to be
|
||||
compatible with different database drivers. The database framework of the core now applies proper quoting
|
||||
to field names if they are wrapped as :typoscript:`{#fieldName}`
|
||||
|
||||
It is advised to adapt extensions accordingly to run successfully on databases like PostgreSQL.
|
||||
|
||||
Example for a :typoscript:`select.where` TypoScript snippet:
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
select.where = {#colPos}=0
|
||||
|
||||
.. index:: Database, Frontend, TypoScript
|
||||
@@ -0,0 +1,21 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-80553:
|
||||
|
||||
==============================================================
|
||||
Important: #80553 - Simplify important actions in Install Tool
|
||||
==============================================================
|
||||
|
||||
See :issue:`80553`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
To simplify the Install Tool the following settings have been removed from the section "Important actions":
|
||||
|
||||
- Change site name
|
||||
- Change encryption key
|
||||
|
||||
The configuration can be still changed in the section "All configuration"
|
||||
|
||||
.. index:: Backend
|
||||
+26
@@ -0,0 +1,26 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-80606:
|
||||
|
||||
============================================================================
|
||||
Important: #80606 - Testing Framework Removal / Use composer package instead
|
||||
============================================================================
|
||||
|
||||
See :issue:`80606`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
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 <packagist>`_.
|
||||
|
||||
To make sure you don't run into path issues, you can set the following environment variable:
|
||||
:php:`TYPO3_PATH_ROOT =` The path to your TYPO3 root directory
|
||||
|
||||
Find the new package on github_ and on packagist_.
|
||||
|
||||
.. _github: https://github.com/TYPO3/testing-framework
|
||||
.. _packagist: https://packagist.org/packages/typo3/testing-framework
|
||||
|
||||
.. index:: CLI, PHP-API
|
||||
@@ -0,0 +1,52 @@
|
||||
:template: changelogOverview.html
|
||||
.. include:: /Includes.rst.txt
|
||||
.. _changelog-8-7:
|
||||
|
||||
8.7 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