TYPO3 v15 dev-main snapshot ()
This commit is contained in:
+32
@@ -0,0 +1,32 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-24186:
|
||||
|
||||
========================================================================================================================
|
||||
Breaking: #24186 - HTMLparser - fixAttrib.['class'].list does not assign first element, when attribute value not in list
|
||||
========================================================================================================================
|
||||
|
||||
See :issue:`24186`
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The HTMLparser now assigns the first class of `fixAttrib.class.list` when none of the given class name values
|
||||
are found in the configured list. Until now the class attribute of the rendered HTML tag was just empty in that case.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
A HTML element that had no class before could now have been assigned a class.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Add a class from the configured list to the HTML element or add a class at the first position of `fixAttrib.class.list`.
|
||||
|
||||
|
||||
.. index:: TypoScript, RTE
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-30863:
|
||||
|
||||
==========================================================================
|
||||
Breaking: #30863 - Streamlined parameters for adding inline language files
|
||||
==========================================================================
|
||||
|
||||
See :issue:`30863`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method `addInlineLanguageLabelFile` of the `PageRenderer` handles the optional parameter `$stripFromSelectionName`, a string
|
||||
that should be removed from any label key in the given file. This did not work until now, so the label keys were never stripped. As this
|
||||
functionality is now working it could end up with different label keys in the output.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Inline Javascript label keys could have changed.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any third party code using `PageRenderer->addInlineLanguageLabelFile()` with the parameter `$stripFromSelectionName` set to anything but
|
||||
an empty string.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Change the call to `PageRenderer->addInlineLanguageLabelFile()` with `$stripFromSelectionName = ''` or adjust your Javascript to handle
|
||||
the now correctly rendered label keys.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend, Frontend
|
||||
@@ -0,0 +1,119 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-52156:
|
||||
|
||||
=======================================================
|
||||
Breaking: #52156 - Replaced JumpURL features with hooks
|
||||
=======================================================
|
||||
|
||||
See :issue:`52156`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
JumpURL handling
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
The generation and handling of JumpURLs has been removed from the frontend extension and
|
||||
has been moved to a new core extension called "jumpurl".
|
||||
|
||||
URL handler hooks
|
||||
^^^^^^^^^^^^^^^^^
|
||||
|
||||
New hooks were introduced in :code:`TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer`
|
||||
and :code:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController` that allow
|
||||
custom URL generation and handling.
|
||||
|
||||
This is how you can register a hook for manipulating URLs during link generation:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Place this in your ext_localconf.php file
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['urlProcessing']['urlHandlers']['myext_myidentifier']['handler'] =
|
||||
\Company\MyExt\MyUrlHandler::class;
|
||||
|
||||
// The class needs to implement the UrlHandlerInterface:
|
||||
class MyUrlHandler implements \TYPO3\CMS\Frontend\Http\UrlHandlerInterface {}
|
||||
|
||||
This is how you can handle URLs in a custom way:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Place this in your ext_localconf.php file
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['urlProcessing']['urlProcessors']['myext_myidentifier']['processor']
|
||||
= \Company\MyExt\MyUrlProcessor::class;
|
||||
|
||||
// The class needs to implement the UrlProcessorInterface:
|
||||
class MyUrlProcessor implements \TYPO3\CMS\Frontend\Http\UrlProcessorInterface {}
|
||||
|
||||
|
||||
External URL page handling
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The core functionality for redirecting the user to an external URL when he hits a page with doktype "external"
|
||||
is moved from the :code:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController` to the
|
||||
:code:`\TYPO3\CMS\Frontend\Page\ExternalPageUrlHandler` class.
|
||||
|
||||
|
||||
ResourceStorage adjustment
|
||||
^^^^^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The method :code:`\TYPO3\CMS\Core\Resource\ResourceStorage::dumpFileContents()` accepts an additional
|
||||
parameter for overriding the mime type that is sent in the `Content-Type` header when delivering a file.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Unless the jumpurl extension is installed, no JumpURL related feature will work anymore.
|
||||
|
||||
If an extension tightly integrates into the JumpURL process it might break, because some of the related
|
||||
methods have been removed, disabled or changed.
|
||||
|
||||
These methods have been removed and their functionality has been moved to the new jumpurl extension:
|
||||
|
||||
:code:`\TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::locDataJU()`
|
||||
|
||||
:code:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::locDataCheck()`
|
||||
|
||||
The :code:`$initP` parameter of the method :code:`\TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer::getMailTo()` has been removed.
|
||||
|
||||
The method :code:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::setExternalJumpUrl()` has been marked as deprecated
|
||||
and is an alias for the new :code:`initializeRedirectUrlHandlers()` method that does no jumpurl handling any more. The
|
||||
new method only checks if the current page is a link to an external URL and sets the :code:`redirectUrl` property.
|
||||
|
||||
The method :code:`\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::jumpUrl()` has also been marked as deprecated
|
||||
and is an alias for the new :code:`redirectToExternalUrl()` method. The jumpurl handling has been removed from
|
||||
this method. It loops over all registered URL handlers and handles the redirection to the :code:`redirectUrl`.
|
||||
|
||||
|
||||
Affected installations
|
||||
======================
|
||||
|
||||
All CMS 7.4 installations that use the JumpURL features or that use Extensions that rely on these features
|
||||
or one of the removed methods.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
If you want to use the JumpURL features you need to install the jumpurl extension. Your configuration should
|
||||
work as before.
|
||||
|
||||
Please note that the configuration of the :ref:`filelink <t3tsref:typolink-resource_references>` TypoScript function has changed.
|
||||
Passing the :code:`jumpurl` parameter in the configuration has been marked as deprecated and will be removed in future versions.
|
||||
|
||||
You can now pass arbitrary configuration options for the typolink call that is used to generate
|
||||
the file link in the :code:`typolinkConfiguration` parameter:
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
lib.myfilelink = TEXT
|
||||
lib.myfilelink.value = fileadmin/myfile.txt
|
||||
lib.myfilelink.filelink {
|
||||
typolinkConfiguration.jumpurl = 1
|
||||
typolinkConfiguration.jumpurl.secure = 1
|
||||
}
|
||||
|
||||
|
||||
.. index:: PHP-API, ext:jumpurl, TypoScript, Frontend
|
||||
@@ -0,0 +1,36 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-63000:
|
||||
|
||||
===================================================
|
||||
Breaking: #63000 - Migrate EXT:cshmanual to Extbase
|
||||
===================================================
|
||||
|
||||
See :issue:`63000`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The extension "cshmanual" has been migrated to a newer code base by using Extbase and Fluid.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Any call to the previous public methods of the old controller HelpModuleController will fail as the code base changed.
|
||||
|
||||
|
||||
Affected installations
|
||||
======================
|
||||
|
||||
Any installation using an extension which calls the previously available methods directly.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the Extbase controller or Repository class.
|
||||
|
||||
|
||||
.. index:: PHP-API, ext:cshmanual, Backend
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-65317:
|
||||
|
||||
==============================================================================
|
||||
Breaking: #65317 - TypoScriptParser sortList sanitizes input on numerical sort
|
||||
==============================================================================
|
||||
|
||||
See :issue:`65317`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
When calling the `:= sortList()` with a "numeric" modifier of the TypoScript parser with a string, the `sort()` method
|
||||
differs between PHP versions. In order to make this behavior more strict, a check is done before the elements are
|
||||
sorted to only have numeric values in the list, otherwise an Exception is thrown.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
An exception is thrown if non-numerical values are given for a numeric sort in TypoScripts `sortList`.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations using `sortList` numeric with non-numerical values.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Either remove the non-numerical values from the list or change the sort order to be non-numerical (ascending / descending).
|
||||
|
||||
|
||||
.. index:: TypoScript, Frontend
|
||||
@@ -0,0 +1,36 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-66190:
|
||||
|
||||
====================================================
|
||||
Breaking: #66190 - Remove flash and chart from ExtJS
|
||||
====================================================
|
||||
|
||||
See :issue:`66190`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The flash and chart module is removed from ExtJS. In order to reduce ExtJS components this is a first step.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions which use the flash and chart module from ExtJS will not work anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations that use flash or chart module of ExtJS.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Don't use cores ExtJS anymore, as we migrate away from it. Use other JS frameworks which implement such functionality for you.
|
||||
|
||||
|
||||
.. index:: JavaScript, Backend
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-67098:
|
||||
|
||||
====================================================================
|
||||
Breaking: #67098 - Correct required-parameter in TextfieldViewHelper
|
||||
====================================================================
|
||||
|
||||
See :issue:`67098`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The value comparison of the required parameter has been corrected. Prior to this
|
||||
change, a textfield was required as soon as it had a parameter "required" set to
|
||||
any value even if this value was set to FALSE, the textfield was still required.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Textfields with required="FALSE" are not required any longer.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Every installation that uses the textfield view helper with the required attribute.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No migration is necessary.
|
||||
|
||||
|
||||
.. index:: Fluid
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-68354:
|
||||
|
||||
==============================================================================
|
||||
Breaking: #68354 - Uniform extension directory structure of EXT:indexed_search
|
||||
==============================================================================
|
||||
|
||||
See :issue:`68354`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The directory structure of the extension "Indexed Search" has been streamlined.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
All language files are now located in directory Resources/Private/Language, the template files in Resources/Private/Templates.
|
||||
Icons from pi/res directory have been moved to Resources/Public/Icons, images to Resources/Public/Images.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations that use EXT:indexed_search that depend on paths that have been moved.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Make sure your configuration matches with new directory structure.
|
||||
|
||||
|
||||
.. index:: ext:indexed_search
|
||||
@@ -0,0 +1,46 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-68401:
|
||||
|
||||
================================================
|
||||
Breaking: #68401 - SqlParser moved into EXT:dbal
|
||||
================================================
|
||||
|
||||
See :issue:`68401`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The SQL Parser included with the core has not been in use by anything
|
||||
except EXT:dbal for some time. The SQL parser has been merged with the
|
||||
version in EXT:dbal which now provides parsing and compiling of SQL
|
||||
statements for MySQL as well as other DBMS.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
There is no impact for the core as EXT:dbal was the sole user of the SQL
|
||||
parser and it has been migrated into EXT:dbal.
|
||||
|
||||
As the parsing and the compiling of SQL statements has been separated into
|
||||
multiple classes the non-public interface of `SqlParser` has changed.
|
||||
Classes extending SqlParser need to be adjusted to the new interface.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations with 3rd party extensions that use `\TYPO3\CMS\Core\Database\SqlParser`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Update the code to use `\TYPO3\CMS\Dbal\Database\SqlParser` instead of
|
||||
`\TYPO3\CMS\Core\Database\SqlParser` or install EXT:compatibility6 which
|
||||
maps the old class names to the new ones in EXT:dbal.
|
||||
|
||||
|
||||
.. index:: PHP-API, Database, ext:dbal
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-68562:
|
||||
|
||||
===============================================================================
|
||||
Breaking: #68562 - Bool values need to be cast to integer for MySQL strict mode
|
||||
===============================================================================
|
||||
|
||||
See :issue:`68562`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
MySQL strict mode doesn't accept '' as a valid value to store in an integer
|
||||
column if the MySQL server is running in strict mode.
|
||||
|
||||
mysqli_real_escape() casts boolean values to string using '1' (for `TRUE`)
|
||||
and '' (for `FALSE`). Due to this special handling is required for boolean
|
||||
values to result in '0' and '1' for FALSE/TRUE.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
All TYPO3 CMS installations using MySQL as DBMS.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations where 3rd party extension are relying on `FALSE` being cast to ''
|
||||
when they are storing boolean values in character type columns. In this case new
|
||||
values will get stored as '0'
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Adjust the code to either store boolean values in integer type columns or
|
||||
manually cast the boolean value to string before storing it in the database.
|
||||
|
||||
|
||||
.. index:: PHP-API, Database
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-68571:
|
||||
|
||||
===========================================================
|
||||
Breaking: #68571 - Removed method ElementBrowser->getMsgBox
|
||||
===========================================================
|
||||
|
||||
See :issue:`68571`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The removed method `getMsgBox` in `ElementBrowser` used table based styling.
|
||||
The method has been removed since we have better means to display this kind of messages: FlashMessages or Callouts.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
A fatal error will be thrown if the method `getMsgBox` is used.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Third party code using the removed method.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the call to the method and replace the message with a FlashMessage.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,68 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-68812:
|
||||
|
||||
=====================================================================
|
||||
Breaking: #68812 - Old Backend Entrypoints moved to deprecation layer
|
||||
=====================================================================
|
||||
|
||||
See :issue:`68812`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The backend entry points within the typo3/ directory which have been marked as deprecated in favor of using typo3/index.php
|
||||
directly as Entry Point via Request Handling, have been moved to a deprecation.php file.
|
||||
|
||||
The following files have therefore been removed from the typo3/ directory directly:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
typo3/ajax.php
|
||||
typo3/alt_clickmenu.php
|
||||
typo3/alt_db_navframe.php
|
||||
typo3/alt_doc.php
|
||||
typo3/alt_file_navframe.php
|
||||
typo3/browser.php
|
||||
typo3/db_new.php
|
||||
typo3/dummy.php
|
||||
typo3/init.php
|
||||
typo3/login_frameset.php
|
||||
typo3/logout.php
|
||||
typo3/mod.php
|
||||
typo3/move_el.php
|
||||
typo3/show_item.php
|
||||
typo3/tce_db.php
|
||||
typo3/tce_file.php
|
||||
typo3/thumbs.php
|
||||
|
||||
|
||||
The typo3/install/ entrypoint is now also redirected with a rewrite rule.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
All references / links to these entry points directly without using the proper API calls will result
|
||||
in a 404 error.
|
||||
|
||||
If an Apache webserver is used with the enabled mod_rewrite module, a .htaccess file placed inside typo3/ will
|
||||
rewrite the URLs to the deprecated.php and throw a deprecation warning.
|
||||
|
||||
For Nginx and IIS an alternative for the rewrite rules in the shipped typo3/.htaccess within needs to be added.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations with third-party extensions that link directly to these files.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Move all existing code in extensions that link to the deprecated entry points to use methods
|
||||
like `BackendUtility::getModuleUrl()` and `BackendUtility::getAjaxUrl()` or the UriBuilder class.
|
||||
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-68814:
|
||||
|
||||
========================================================
|
||||
Breaking: #68814 - Remove of base constant TYPO3_URL_ORG
|
||||
========================================================
|
||||
|
||||
See :issue:`68814`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Base constant TYPO3_URL_ORG defined in SystemEnvironmentBuilder::defineBaseConstants() has been removed.
|
||||
It was for internal usage only and defined at 2 places in the core.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Constant TYPO3_URL_ORG no longer exists.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use TYPO3_URL_GENERAL instead.
|
||||
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,54 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69028:
|
||||
|
||||
===========================================================
|
||||
Breaking: #69028 - TCA type select - Drop neg_foreign_table
|
||||
===========================================================
|
||||
|
||||
See :issue:`69028`
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following `TCA` keys for `type` `select` have been dropped and are no longer handled by the core:
|
||||
|
||||
* neg_foreign_table
|
||||
* neg_foreign_table_where
|
||||
* neg_foreign_table_prefix
|
||||
* neg_foreign_table_loadIcons
|
||||
* neg_foreign_table_imposeValueField
|
||||
|
||||
These setting were used in `select` for comma separated value relations in addition to `foreign_table`
|
||||
to allow a second connected table. Relations for `neg_foreign_table` were stored as negative uids in the
|
||||
field to distinguish them from relations to the table defined in `foreign_table`.
|
||||
|
||||
The functionality has been dropped without substitution and is no longer handled by the TYPO3 core.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Existing relations to the table defined in `neg_foreign_table` will be discarded when a record
|
||||
with such a `TCA` configuration is saved to the database. The display of existing connected
|
||||
records may be misleading.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
This old school feature was never documented well and used by a very small amount of extensions.
|
||||
Searching an instance for the keyword `neg_foreign_table` will reveal usages.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
In case records from multiple different tables must still be supported, the `TCA` configuration
|
||||
should be adapted to use a `MM` intermediate table. For existing migrations a database migration
|
||||
is required.
|
||||
|
||||
|
||||
.. index:: TCA, Backend
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69057:
|
||||
|
||||
==========================================================================
|
||||
Breaking: #69057 - Deprecate IconUtility and move methods into IconFactory
|
||||
==========================================================================
|
||||
|
||||
See :issue:`69057`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
While refactoring the `IconUtility` to the new `IconFactory` class, several methods have been marked as deprecated.
|
||||
In some cases parameters of the old `IconUtility` methods are not used anymore.
|
||||
The following list describes the possible breaking changes.
|
||||
|
||||
The second parameter `$options` of method `IconUtility::getSpriteIconForFile()` is not used anymore.
|
||||
The third parameter `$options` of method `IconUtility::getSpriteIconForRecord()` is not used anymore.
|
||||
|
||||
The `IconUtility` signals `buildSpriteIconClasses` and `buildSpriteHtmlIconTag` have been dropped and will not be emitted anymore.
|
||||
The `IconUtility` hook `$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_iconworks.php']['overrideIconOverlay']` has been dropped and will not be called anymore.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions could break if the methods, signals or hooks above are used.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions that call the methods with the `$options` parameter or make use of the signals and hook.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Make use of the new `IconFactory` class.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69083:
|
||||
|
||||
=========================================================
|
||||
Breaking: #69083 - Renamed identifier for filelist module
|
||||
=========================================================
|
||||
|
||||
See :issue:`69083`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The filelist module has been rewritten to use Extbase. Therefore the module identifier has been changed
|
||||
from `file_list` to `file_FilelistList`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
All links pointing to the filelist module using the old identifier will break.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations that reference the filelist module by its old name.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
There is a upgrade wizard to change the backend user settings of users whose start module is the filelist module.
|
||||
All other links to the module have to be changed manually to use `file_FilelistList` as module identifier.
|
||||
|
||||
|
||||
.. index:: FAL, Backend
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69148:
|
||||
|
||||
=====================================================
|
||||
Breaking: #69148 - Backend Module Dispatching removed
|
||||
=====================================================
|
||||
|
||||
See :issue:`69148`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Dispatching Backend modules through custom dispatchers have been removed. The corresponding Extbase functionality
|
||||
called "ModuleRunner" and its Interface have been removed as well.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Any dispatcher registered via `$TBE_MODULES['_dispatcher']` is not evaluated anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All TYPO3 Instances with an extension that registers a custom backend module dispatcher.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use a custom RequestHandler.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69161:
|
||||
|
||||
======================================================================
|
||||
Breaking: #69161 - Removed includeCsh setting from ContainerViewHelper
|
||||
======================================================================
|
||||
|
||||
See :issue:`69161`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Include CSH setting in `<f:be.container>` is not needed anymore and has therefore been removed.
|
||||
The JavaScript will be loaded automatically when ext:cshmanual is enabled.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using `<f:be.container>` view helpers in a custom Backend module, setting the includeCsh property, will result in a fatal error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions that use `<f:be.container>` which set the setting `includeCsh`
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the property from the template. When ext:cshmanual is enabled the JavaScript is loaded automatically.
|
||||
|
||||
|
||||
.. index:: Fluid, Backend
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69168:
|
||||
|
||||
====================================================================
|
||||
Breaking: #69168 - Removed non-tabbed view of Content Element Wizard
|
||||
====================================================================
|
||||
|
||||
See :issue:`69168`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The "New Content Element Wizard" view to show possible content elements to create now only shows the elements in a tabbed view.
|
||||
The non-tabbed view variant has been removed without substitution.
|
||||
|
||||
The TSconfig option `mod.wizards.newContentElement.renderMode` has been removed.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the TSconfig option `mod.wizards.newContentElement.renderMode` from any configuration settings.
|
||||
|
||||
|
||||
.. index:: TSConfig, Backend
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69224:
|
||||
|
||||
=========================================================================================
|
||||
Breaking: #69224 - Fix wrong usage of enumerations in InformationStatus::mapStatusToInt()
|
||||
=========================================================================================
|
||||
|
||||
See :issue:`69224`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `InformationStatus` enumeration provides a `mapStatusToInt()` method.
|
||||
|
||||
* The method expects a string but should expect an enum of itself.
|
||||
* The method logic is not what is expected from an enumeration method as it does not do any logic comparison.
|
||||
|
||||
Therefore it has been replaced by `isGreaterThan()` as this was the logic that has been checked
|
||||
everywhere `mapStatusToInt()` has been used.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The method `InformationStatus::mapStatusToInt()` has been replaced by `InformationStatus::isGreaterThan()` and all
|
||||
usages have been replaced by the new method / logic.
|
||||
As the `InformationStatus` Enum has been introduced in 7.4 it should not be used by any public API and
|
||||
therefore the change should not have much impact.
|
||||
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,39 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69276:
|
||||
|
||||
=============================================================
|
||||
Breaking: #69276 - ElementBrowserController::$browser removed
|
||||
=============================================================
|
||||
|
||||
See :issue:`69276`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `$browser` member variable of `\TYPO3\CMS\Recordlist\Controller\ElementBrowserController` has been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Any third party code accessing `$GLOBAL['SOBE']->browser` will break.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations using third party code, which accesses `$GLOBAL['SOBE']->browser`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
If the code is extending one of the ElementBrowser tree classes, the protected member variable `$elementBrowser` can
|
||||
be used to access the underlying ElementBrowser instance.
|
||||
|
||||
If your code is using the ElementBrowser tree classes, an instance of `ElementBrowser` has to be injected using the setter.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69291:
|
||||
|
||||
===============================================================
|
||||
Breaking: #69291 - Changed registration of backend module icons
|
||||
===============================================================
|
||||
|
||||
See :issue:`69291`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The sprite icon support for backend modules introduced with CMS 7.3 has been adjusted again. The configuration has been streamlined.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The specified icon will not be recognized.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation running TYPO3 CMS 7.3+ having third party extensions which use sprite icons for backend modules.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Change the configuration from
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'configuration' => array(
|
||||
'icon' => 'module-web',
|
||||
),
|
||||
|
||||
to
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'iconIdentifier' => 'module-web',
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69315:
|
||||
|
||||
===================================================
|
||||
Breaking: #69315 - ElementBrowser::main_* protected
|
||||
===================================================
|
||||
|
||||
See :issue:`69315`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `ElementBrowser::main_*` methods have been marked protected as the new `render` method is the main entry point to the class.
|
||||
Additionally the public member `ElementBrowserController::mode` has been protected as well.
|
||||
|
||||
The `ElementBrowserController::content` member and the `ElementBrowserController::printContent()` method have been removed.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Any code calling the protected or removed methods or using the protected member will fail with a fatal error.
|
||||
Any code using the removed member will receive only an empty value. (PHP fallback for non-existing class members)
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using third party code calling the mentioned methods or member.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Ensure the intended mode is passed in via the `mode` GET-parameter and call the new `ElementBrowser::render` method.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69401:
|
||||
|
||||
=========================================================================
|
||||
Breaking: #69401 - Adopt ext:form to support the Extbase/ Fluid MVC stack
|
||||
=========================================================================
|
||||
|
||||
See :issue:`69401`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `postProcessor` interface and the mail postProcessor have changed.
|
||||
|
||||
Validators and filters have been moved to other folders and both class
|
||||
names and algorithms have changed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Own postProcessors, validators and filters will possibly fail with an error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations with own postProcessors, validators and filters.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Adopt own postProcessors, validators and filters to comply with the current implementation.
|
||||
|
||||
|
||||
.. index:: PHP-API, Frontend, Backend, Fluid, ext:extbase, ext:form
|
||||
+66
@@ -0,0 +1,66 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69561:
|
||||
|
||||
=======================================================================
|
||||
Breaking: #69561 - Replace sprite icons with IconFactory in ContextMenu
|
||||
=======================================================================
|
||||
|
||||
See :issue:`69561`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
SpriteIcon and standalone image support have been replaced with `IconFactory` in
|
||||
the context menu. All menu icons now need to be registered through the `IconRegistry`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The `UserTsConfig` options for items `icon` and `spriteIcon` have no effect anymore,
|
||||
and will deliver a blank placeholder image if `iconName` is not set.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations that add or modify items in the ContextMenu.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Register the icon through the `IconRegistry` and set the `iconName` in the
|
||||
item configuration.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Register Icon
|
||||
$iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class);
|
||||
$iconRegistry->registerIcon(
|
||||
'contextmenu-example',
|
||||
\TYPO3\CMS\Core\Imaging\IconProvider\SvgIconProvider::class,
|
||||
array(
|
||||
'source' => 'EXT:example/Resources/Public/Icons/contextmenu-example.svg'
|
||||
))
|
||||
);
|
||||
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
options.contextMenu.table {
|
||||
virtual_root.items {
|
||||
9999 = ITEM
|
||||
9999 {
|
||||
name = contextmenuExample
|
||||
label = LLL:EXT:example/Resources/Private/Language/locallang.xlf:contextmenu-example
|
||||
iconName = contextmenu-example
|
||||
callbackAction = exampleCallback
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.. index:: PHP-API, TSConfig, Backend
|
||||
@@ -0,0 +1,49 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69568:
|
||||
|
||||
=============================================
|
||||
Breaking: #69568 - FormEngine related classes
|
||||
=============================================
|
||||
|
||||
See :issue:`69568`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following classes have been removed:
|
||||
|
||||
* `\TYPO3\CMS\Backend\Form\DataPreprocessor`
|
||||
* `\TYPO3\CMS\Backend\Form\FormEngine`
|
||||
* `\TYPO3\CMS\Backend\Form\FlexFormsHelper`
|
||||
|
||||
The following hook has been removed:
|
||||
|
||||
* `$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['t3lib/class.t3lib_tceforms.php']['getMainFieldsClass']`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Code trying to instantiate these classes will fatal.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
A rather low number of extensions should be affected by this change. Searching for the
|
||||
above class names should reveal them.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
The methods and classes have been moved to different classes and solutions.
|
||||
Extensions needs adaption.
|
||||
|
||||
The hook `getMainFieldsClass` has been substituted with a much more fine grained and flexible API.
|
||||
Use `FormDataProvider` to change data given to the render engine of FormEngine from now on.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69699:
|
||||
|
||||
=============================================
|
||||
Breaking: #69699 - TCA ctrl typeicons removed
|
||||
=============================================
|
||||
|
||||
See :issue:`69699`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `TCA['ctrl']['typeicons']` key has been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
If still used, a fallback default icon may be displayed instead.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Searching for `typeicons` keyword should reveal extensions using this functionality.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Until further works on the icon API have been finished, `TCA['ctrl']['typeicon_classes']`
|
||||
should be used as documented in the TCA reference.
|
||||
|
||||
|
||||
.. index:: TCA, Backend
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69795:
|
||||
|
||||
==================================================
|
||||
Breaking: #69795 - Unused DTM Tabmenu code removed
|
||||
==================================================
|
||||
|
||||
See :issue:`69795`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
All DynTabMenu JavaScript and CSS code which was previously used to render Tab
|
||||
Menus in the TYPO3 Backend has been removed without substitution.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
All logic that requires EXT:backend/Resources/Public/JavaScript/tabmenu.js
|
||||
directly and/or use the JavaScript code of `DTM_activate()` or `DTM_toggle()`
|
||||
directly have been removed.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
TYPO3 Installations with custom extensions that use the logic mentioned above.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use ModuleTemplate::getDynamicTabMenu() directly to use the Bootstrap-based API
|
||||
shipped with the TYPO3 Core.
|
||||
|
||||
|
||||
.. index:: PHP-API, JavaScript, Backend
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69904:
|
||||
|
||||
=====================================================================
|
||||
Breaking: #69904 - Remove Setting diff_path from DefaultConfiguration
|
||||
=====================================================================
|
||||
|
||||
See :issue:`69904`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Creating a diff view of text has been replaced with a PHP library instead of using `diff` on the command line.
|
||||
Thus we no longer need to be able to configure the path.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The setting `[BE][diff_path]` will no longer have any effect.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any Installation that had to define a path different than `diff`
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Delete the line from LocalConfiguration.php if the UpgradeWizard should fail to do so.
|
||||
|
||||
|
||||
.. index:: LocalConfiguration, Backend
|
||||
@@ -0,0 +1,42 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-69930:
|
||||
|
||||
=================================================
|
||||
Breaking: #69930 - Remove option "serverTimeZone"
|
||||
=================================================
|
||||
|
||||
See :issue:`69930`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The option `$TYPO3_CONF_VARS['SYS']['serverTimeZone']` which was introduced when
|
||||
there was no clean way to fetch the timezone option in the PHP4 environment, has
|
||||
been removed. It was solved in PHP 5.1.0 which introduced `date_default_timezone_get()`
|
||||
which is used by the TYPO3 Core by default.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Accessing the option will result in a PHP notice, as it has been removed in TYPO3 CMS 7.
|
||||
Extensions making use of this option will result in an unexpected behaviour as
|
||||
possible calculations are wrong.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation which uses a third-party extensions that uses this option.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use native timezone support by PHP directly. See `date_default_timezone_get()`
|
||||
for more information.
|
||||
|
||||
|
||||
.. index:: PHP-API, LocalConfiguration
|
||||
@@ -0,0 +1,65 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-55419:
|
||||
|
||||
============================================================
|
||||
Deprecation: #55419 - Streamline file conflict mode handling
|
||||
============================================================
|
||||
|
||||
See :issue:`55419`
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Conflicts in file names and folder names when uploading new files or creating new folders are now handled
|
||||
uniformly with constants within the core. Therefore a new enumeration has been introduced to provide the available
|
||||
values: `\TYPO3\CMS\Core\Resource\DuplicationBehavior`.
|
||||
|
||||
Provided constants are:
|
||||
|
||||
* `DuplicationBehavior::CANCEL`
|
||||
* `DuplicationBehavior::REPLACE`
|
||||
* `DuplicationBehavior::RENAME`
|
||||
|
||||
Before this change there were two sets of strings used to define the behavior upon conflicts.
|
||||
|
||||
* Set1: `cancel`, `replace` and `changeName`
|
||||
* Set2: `cancel`, `overrideExistingFile` and `renameNewFile`
|
||||
|
||||
As they are redundant they are now represented by a new set of constants:
|
||||
|
||||
* `CANCEL`, `REPLACE` and `RENAME`
|
||||
|
||||
All usages of strings of the former sets have been replaced with their counterparts from the new set. In the enumeration
|
||||
the former values have been mapped to the new values and marked for deprecation.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using `changeName`, `overrideExistingFile` or `renameNewFile` for file conflict handling will result in a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All third party code that calls one of the listed methods with `$conflictMode` either set to `changeName`, `overrideExistingFile` or `renameNewFile`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the provided enumeration `\TYPO3\CMS\Core\Resource\DuplicationBehavior` instead.
|
||||
|
||||
|
||||
Example
|
||||
=======
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$resourceStorage->copyFile($file, $targetFolder, 'target-file-name', DuplicationBehavior::RENAME);
|
||||
|
||||
|
||||
.. index:: FAL, PHP-API, Backend
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-66588:
|
||||
|
||||
==================================================================================================
|
||||
Deprecation: #66588 - POST Data in selectviewhelper should have higher priority than "value" value
|
||||
==================================================================================================
|
||||
|
||||
See :issue:`66588`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Submitted form data has precedence over value arguments.
|
||||
|
||||
This adjusts the behavior of all Form ViewHelpers so that any
|
||||
submitted value is redisplayed even if a "value" argument has been
|
||||
specified.
|
||||
|
||||
The issue with this, however, was that upon re-display of the form due
|
||||
to property-mapping or validation errors the value argument had
|
||||
precedence over the previously submitted value.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
This is a breaking change if you expect the previous behavior of form
|
||||
ViewHelpers always being pre-populated with the specified value
|
||||
attribute / bound object property even when re-displaying the form upon
|
||||
validation errors.
|
||||
|
||||
Besides this the change marks `AbstractFormFieldViewHelper::getValue()` as
|
||||
deprecated. If you call that method in your custom ViewHelpers you should use
|
||||
`AbstractFormFieldViewHelper::getValueAttribute()` instead and call
|
||||
`AbstractFormFieldViewHelper::addAdditionalIdentityPropertiesIfNeeded()`
|
||||
explicitly if the ViewHelper might be bound to (sub)entities.
|
||||
|
||||
The default usage of getValueAttribute() did not respect the submitted form data,
|
||||
because not every viewhelper needs this feature. But you can enable the usage of
|
||||
the form data by setting `AbstractFormFieldViewHelper::respectSubmittedDataValue` to TRUE.
|
||||
|
||||
|
||||
.. index:: Fluid, PHP-API
|
||||
@@ -0,0 +1,42 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-68128:
|
||||
|
||||
==========================================================
|
||||
Deprecation: #68128 - GeneralUtility slash-related methods
|
||||
==========================================================
|
||||
|
||||
See :issue:`68128`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following methods within `GeneralUtility` used to add or remove slashes
|
||||
have been marked as deprecated.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
GeneralUtility::addSlashesOnArray()
|
||||
GeneralUtility::stripSlashesOnArray()
|
||||
GeneralUtility::slashArray()
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Any usage of these methods will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions that call these PHP methods directly.
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove usage of these methods from custom extensions.
|
||||
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-68760:
|
||||
|
||||
====================================================
|
||||
Deprecation: #68760 - Deprecate class ModuleSettings
|
||||
====================================================
|
||||
|
||||
See :issue:`68760`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
In older TYPO3 versions `t3lib_modSettings` (as ModuleSettings class was called before) was used to save the current
|
||||
settings of backend modules. This kind of settings is nowadays stored in backend users uc array.
|
||||
For that reason ModuleSettings is now marked for removal in TYPO3 CMS 8.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using `ModuleSettings` will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation with custom extensions using this class and its methods.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove usage of this class from custom extensions.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,56 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-68804:
|
||||
|
||||
=======================================================
|
||||
Deprecation: #68804 - CLI-related constants and methods
|
||||
=======================================================
|
||||
|
||||
See :issue:`68804`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Logic regarding regular CLI-based scripts with the CLIkey option has been moved
|
||||
into the CliRequestHandler.
|
||||
|
||||
Therefore, the following method has been marked as deprecated:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
BackendUserAuthentication->checkCLIuser()
|
||||
|
||||
Additionally, the following constants and global parameters have been marked for deprecation in CLI context.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
const TYPO3_cliKey
|
||||
const TYPO3_cliInclude
|
||||
$GLOBALS['MCONF']['name']
|
||||
$GLOBALS['temp_cliScriptPath']
|
||||
$GLOBALS['temp_cliKey']
|
||||
|
||||
The method, constants and variables will be removed in TYPO3 CMS 8.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling `BackendUserAuthentication->checkCLIuser()` directly will now trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations with custom entry points in a CLI environment that make use of the method, constants or variables above.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the native `$_SERVER['argv']` or the given `Input` object directly in your code to detect the
|
||||
current CLI-relevant data.
|
||||
|
||||
|
||||
.. index:: PHP-API, CLI
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-68860:
|
||||
|
||||
============================================================
|
||||
Deprecation: #68860 - Deprecate SelectImage.initEventHandler
|
||||
============================================================
|
||||
|
||||
See :issue:`68860`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Removes the calls of `SelectImage.initEventHandler` method.
|
||||
This was limited to WebKit UserAgents and the provided implementation of
|
||||
`require` was wrong, so that the EventListener was not registered at all.
|
||||
Nevertheless the functionality of drag and drop is not broken without the
|
||||
initEventHandler.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Throws console log with deprecation message.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations calling `SelectImage.initEventHandler`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the call of `SelectImage.initEventHandler`.
|
||||
|
||||
|
||||
.. index:: JavaScript, Backend
|
||||
@@ -0,0 +1,40 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69028:
|
||||
|
||||
=====================================================
|
||||
Deprecation: #69028 - RelationHandler convertPosNeg()
|
||||
=====================================================
|
||||
|
||||
See :issue:`69028`
|
||||
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Method `convertPosNeg()` of class `TYPO3\CMS\Core\Database\RelationHandler` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The method should not be used any longer and will be removed with TYPO3 CMS 8.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The method is rather internal and relatively unlikely to be used by third party modules.
|
||||
Searching for the string `convertPosNeg` may reveal possible usages.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
The method was used together with the dropped `neg_foreign_table` setting for `TCA` `select`
|
||||
fields. If this functionality is still needed, the method could be copied over to the third party
|
||||
application that uses it.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69057:
|
||||
|
||||
=============================================================================
|
||||
Deprecation: #69057 - Deprecate IconUtility and move methods into IconFactory
|
||||
=============================================================================
|
||||
|
||||
See :issue:`69057`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `IconUtility` class will be removed with TYPO3 CMS 8. All public methods of this class have been marked as deprecated:
|
||||
|
||||
* `IconUtility::skinImg()`
|
||||
* `IconUtility::getIcon()`
|
||||
* `IconUtility::getSpriteIcon()`
|
||||
* `IconUtility::getSpriteIconForFile()`
|
||||
* `IconUtility::getSpriteIconForRecord()`
|
||||
* `IconUtility::getSpriteIconForResource()`
|
||||
* `IconUtility::getSpriteIconClasses()`
|
||||
|
||||
The PageTSConfig setting `mod.wizards.newContentElement.wizardItems.*.elements.*.icon` also has been marked as deprecated.
|
||||
|
||||
The `IconUtilityOverrideResourceIconHookInterface` interface will be removed with TYPO3 CMS 8.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Any usage of these methods will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions that call these PHP methods directly.
|
||||
Extensions that register own content elements with an icon for the new content element wizard.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the new `IconFactory` class instead of `IconUtility`.
|
||||
|
||||
For content element wizard register your icon in `IconRegistry::registerIcon()` and use the new setting:
|
||||
`mod.wizards.newContentElement.wizardItems.*.elements.*.iconIdentifier`
|
||||
|
||||
|
||||
.. index:: TSConfig, PHP-API, Backend
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69078:
|
||||
|
||||
================================================
|
||||
Deprecation: #69078 - TemplateService::$tempPath
|
||||
================================================
|
||||
|
||||
See :issue:`69078`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `\TYPO3\CMS\Core\TypoScript\TemplateService::$tempPath` member variable is not used anymore inside the core,
|
||||
therefore it has been marked as deprecated and will be removed with CMS 8.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using third party code, which accesses `TemplateService::$tempPath`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove any reference to `TemplateService::$tempPath`.
|
||||
|
||||
|
||||
.. index:: PHP-API
|
||||
+60
@@ -0,0 +1,60 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69262:
|
||||
|
||||
=========================================================================
|
||||
Deprecation: #69262 - Move marker substitution functionality to own class
|
||||
=========================================================================
|
||||
|
||||
See :issue:`69262`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The marker substitution functionality has been moved from `core/Classes/Html/HtmlParser.php` to it's own
|
||||
class `core/Classes/Service/MarkerBasedTemplateService.php`
|
||||
|
||||
The following methods within HtmlParser have been marked as deprecated.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
HtmlParser::getSubpart()
|
||||
HtmlParser::substituteSubpart()
|
||||
HtmlParser::substituteSubpartArray()
|
||||
HtmlParser::substituteMarker()
|
||||
HtmlParser::substituteMarkerArray()
|
||||
HtmlParser::substituteMarkerAndSubpartArrayRecursive()
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Any usage of these methods will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions that call these PHP methods directly.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Change the use statement from `TYPO3\CMS\Core\Html\HtmlParser` to `TYPO3\CMS\Core\Service\MarkerBasedTemplateService`
|
||||
and create an instance of this service class.
|
||||
The methods are not static anymore, but named as before.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$templateService = GeneralUtility::makeInstance(MarkerBasedTemplateService::class);
|
||||
$templateService->getSubpart()
|
||||
$templateService->substituteSubpart()
|
||||
$templateService->substituteSubpartArray()
|
||||
$templateService->substituteMarker()
|
||||
$templateService->substituteMarkerArray()
|
||||
$templateService->substituteMarkerAndSubpartArrayRecursive()
|
||||
|
||||
|
||||
.. index:: PHP-API
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69269:
|
||||
|
||||
======================================================================
|
||||
Deprecation: #69269 - Deprecate BackendUtility::getPathType_web_nonweb
|
||||
======================================================================
|
||||
|
||||
See :issue:`69269`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Method `getPathType_web_nonweb()` of class `TYPO3\CMS\Backend\Utility\BackendUtility` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The method should not be used any longer and will be removed with TYPO3 CMS 8.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The method is unused in the core since at least TYPO3 CMS 6.2.
|
||||
Searching for the string `getPathType_web_nonweb` may reveal possible usages.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use path functions from `TYPO3\CMS\Core\Utility\PathUtility`.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69371:
|
||||
|
||||
==================================================
|
||||
Deprecation: #69371 - ext:Form element IMAGEBUTTON
|
||||
==================================================
|
||||
|
||||
See :issue:`69371`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Form element `IMAGEBUTTON` of class `TYPO3\CMS\Form\Domain\Model\Element\ImagebuttonElement` has been marked as deprecated.
|
||||
The related attribute `scr` of class `TYPO3\CMS\Form\Domain\Model\Attribute\SrcAttribute` has been marked as deprecated.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The element `IMAGEBUTTON` should not be used any longer because it is outdated and will be removed with TYPO3 CMS 8.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations which use the form element `IMAGEBUTTON`.
|
||||
All installations which use a form typoscript like this:
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
10 = IMAGEBUTTON
|
||||
10 {
|
||||
label = Image button
|
||||
src = /typo3conf/ext/someExt/some/picture.png
|
||||
value = value
|
||||
}
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No Migration is planned.
|
||||
|
||||
|
||||
.. index:: PHP-API, TypoScript, ext:form
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69401:
|
||||
|
||||
============================================================================
|
||||
Deprecation: #69401 - Adopt ext:form to support the Extbase/ Fluid MVC stack
|
||||
============================================================================
|
||||
|
||||
See :issue:`69401`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Form is now based on Extbase/ Fluid for frontend rendering. Therefore
|
||||
all TypoScript based layout settings have been marked as deprecated. Using the
|
||||
following code is not recommended anymore:
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
10 = FORM
|
||||
10 {
|
||||
layout {
|
||||
containerWrap = <div><elements /></div>
|
||||
elementWrap = <div><element /></div>
|
||||
}
|
||||
}
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
All `.layout` TypoScript properties should not be used anymore. Backward
|
||||
compatibility algorithms will be removed with TYPO3 CMS 8.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations using `.layout` TypoScript properties.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Move away from `.layout` TypoScript properties and move to Fluid based
|
||||
templating.
|
||||
|
||||
|
||||
.. index:: TypoScript, ext:form
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69535:
|
||||
|
||||
=============================================================================================
|
||||
Deprecation: #69535 - Deprecate \\TYPO3\\CMS\\Fluid\\ViewHelpers\\Be\\Buttons\\IconViewHelper
|
||||
=============================================================================================
|
||||
|
||||
See :issue:`69535`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
`\TYPO3\CMS\Fluid\ViewHelpers\Be\Buttons\IconViewHelper` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The view helper should not be used any longer and will be removed with TYPO3 CMS 8.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions which use the view helper.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the core icon viewhelper `\TYPO3\CMS\Core\ViewHelpers\IconViewHelper` instead.
|
||||
|
||||
Example: Instead of `<f:be.buttons.icon icon="apps-pagetree-collapse" />` use `<core:icon identifier="apps-pagetree-collapse" />`
|
||||
|
||||
|
||||
.. index:: PHP-API, Fluid, Backend
|
||||
+31
@@ -0,0 +1,31 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69561:
|
||||
|
||||
==========================================================================
|
||||
Deprecation: #69561 - Replace sprite icons with IconFactory in ContextMenu
|
||||
==========================================================================
|
||||
|
||||
See :issue:`69561`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `\TYPO3\CMS\Backend\ContextMenu\ContextMenuAction::$class` member variable is not
|
||||
used anymore inside Core, therefore it has been marked as deprecated and will be removed with CMS 8.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using third party code, which accesses `ContextMenuAction::$class`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove any reference to `ContextMenuAction::$class`.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+45
@@ -0,0 +1,45 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69562:
|
||||
|
||||
============================================================================
|
||||
Deprecation: #69562 - Deprecate helper methods for redundant CSRF protection
|
||||
============================================================================
|
||||
|
||||
See :issue:`69562`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method `BackendUtility::getUrlToken` has been introduced as shortcut to
|
||||
protect data manipulating entry points `tce_db.php` `tce_file.php` and
|
||||
`alt_doc.php` from CSRF attacks. These entry points have been replaced with
|
||||
proper modules or routing, which are CSRF protected by default. With this
|
||||
`BackendUtility::getUrlToken` is not needed anymore and therefore has been
|
||||
marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Third party code using `BackendUtility::getUrlToken` will trigger deprecation
|
||||
log entries.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions using the above code.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
These method calls can safely be removed, when generating links to former entry
|
||||
points `tce_db.php` `tce_file.php` and `alt_doc.php` with the API method
|
||||
calls : `BackendUtility::getModuleUrl('tce_db')`, `BackendUtility::getModuleUrl('tce_file')`
|
||||
or `BackendUtility::getModuleUrl('record_edit')`.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69568:
|
||||
|
||||
========================================================
|
||||
Deprecation: #69568 - Various FormEngine related methods
|
||||
========================================================
|
||||
|
||||
See :issue:`69568`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following methods have been marked as deprecated and should not no longer be used:
|
||||
|
||||
* `BackendUtility::getExcludeFields()`
|
||||
* `BackendUtility::getExplicitAuthFieldValues()`
|
||||
* `BackendUtility::getSystemLanguages()`
|
||||
* `BackendUtility::getRegisteredFlexForms()`
|
||||
* `BackendUtility::exec_foreign_table_where_query()`
|
||||
* `BackendUtility::replaceMarkersInWhereClause()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using those methods will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
The impact is rather low in general since those methods were mostly internal in
|
||||
the first place and only used within FormEngine scope. It is unlikely extensions
|
||||
are affected by this change.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
If still used, extensions should switch to own solutions for those methods.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69705:
|
||||
|
||||
==============================================
|
||||
Deprecation: #69705 - Add unified refresh icon
|
||||
==============================================
|
||||
|
||||
See :issue:`69705`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The icon `actions-system-refresh` has been marked as deprecated in `TYPO3\CMS\Core\Imaging\IconRegistry` and will be removed with TYPO3 CMS 8.
|
||||
All requests for `actions-system-refresh` will now show `actions-refresh`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using `IconUtility` or `IconFactory` to fetch the icon `actions-system-refresh` will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations with third party extensions that use the icon `actions-system-refresh`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the icon `actions-refresh` instead.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69736:
|
||||
|
||||
=============================================================
|
||||
Deprecation: #69736 - Select option iconsInOptionTags removed
|
||||
=============================================================
|
||||
|
||||
See :issue:`69736`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The option `iconsInOptionTags` of TCA `select` fields has been removed due
|
||||
to little support in browsers.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The usage of this option triggers a deprecation log entry and is automatically
|
||||
removed in TCA tables during bootstrap.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any `TCA` configuration using `iconsInOptionTags`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove usage of this option.
|
||||
|
||||
|
||||
.. index:: TCA, Backend
|
||||
+85
@@ -0,0 +1,85 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69754:
|
||||
|
||||
=================================================================================================================
|
||||
Deprecation: #69754 - Deprecate relative path to extension directory and using filename only in TCA ctrl iconfile
|
||||
=================================================================================================================
|
||||
|
||||
See :issue:`69754`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
* Using relative paths to refer to the extension directory for iconfiles in `TCA['ctrl']['iconfile']` has been marked as deprecated.
|
||||
* Using filenames only to refer to an iconfile in TCA['ctrl'] has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
* TCA definitions in `TCA['ctrl']['iconfile']` containing `'../typo3conf/ext/'` or calls to `\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath()` will trigger a deprecation log entry.
|
||||
* TCA definitions in `TCA['ctrl']['iconfile']` containing a filename only will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation with extensions defining `TCA['ctrl']['iconfile']` by using `../typo3conf/ext/` or only a filename.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Relative paths
|
||||
--------------
|
||||
|
||||
Use `EXT:` instead of relative path `'../typo3conf/ext/'` or `\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath()`, e.g.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'ctrl' => array(
|
||||
'iconfile' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath('my_extension') . 'Resources/Public/Icons/image.png'
|
||||
),
|
||||
|
||||
has to be migrated to
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'ctrl' => array(
|
||||
'iconfile' => 'EXT:my_extension/Resources/Public/Icons/image.png'
|
||||
),
|
||||
|
||||
Filename only
|
||||
-------------
|
||||
|
||||
Use a full absolute path or an `EXT:` definition instead of a filename only:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'ctrl' => array(
|
||||
'iconfile' => '_icon_ftp.gif'
|
||||
),
|
||||
|
||||
has to be migrated to
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'ctrl' => array(
|
||||
'iconfile' => 'EXT:t3skin/icons/gfx/i/_icon_ftp.gif'
|
||||
),
|
||||
|
||||
or
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'ctrl' => array(
|
||||
// You can use absolute paths (to your web root folder) to the icons but
|
||||
// it is discouraged to do so as these icons belong to an extension they
|
||||
// should also be stored in this extension
|
||||
'iconfile' => '/fileadmin/icons/_icon_ftp.gif'
|
||||
),
|
||||
|
||||
|
||||
.. index:: TCA, Backend
|
||||
+25
@@ -0,0 +1,25 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-69938:
|
||||
|
||||
============================================================
|
||||
Deprecation: #69938 - HIDE_L10N_SIBLINGS FlexFormdisplayCond
|
||||
============================================================
|
||||
|
||||
See :issue:`69938`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The flexform `HIDE_L10N_SIBLINGS display` condition has been marked as deprecated and will be removed with CMS 8.
|
||||
The condition could only be used with translation mode `langChildren=1` to only show the field for the default language.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
FlexForms using this condition will show the field separately for each language again.
|
||||
|
||||
|
||||
.. index:: FlexForm, Backend
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-16525:
|
||||
|
||||
======================================================
|
||||
Feature: #16525 - Add conditions to INCLUDE_TYPOSCRIPT
|
||||
======================================================
|
||||
|
||||
See :issue:`16525`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The INCLUDE_TYPOSCRIPT tag now has an extra (optional) property "condition" which causes the file/directory to be included only
|
||||
if the condition is met.
|
||||
|
||||
As usual a condition is enclosed in square brackets, but if these are not present they will be added. Any double quotes must be
|
||||
escaped by adding backslashes and any backslash must be doubled.
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:my_extension/Configuration/TypoScript/firefox.ts" condition="[loginUser = *]">
|
||||
|
||||
Condition with square brackets. File will only be included if a frontend user is logged in.
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
<INCLUDE_TYPOSCRIPT: source="FILE:EXT:my_extension/Configuration/TypoScript/staging.ts" condition="applicationContext = /^Production\\/Staging\\/Server\\d+$/">
|
||||
|
||||
Condition without square brackets, backslashes doubled inside the condition. File will only be included in application context
|
||||
Production/Staging/Server followed by at least one digit.
|
||||
|
||||
|
||||
.. index:: TypoScript, Frontend
|
||||
+28
@@ -0,0 +1,28 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-19494:
|
||||
|
||||
================================================================
|
||||
Feature: #19494 - Add SELECTmmQuery method to DatabaseConnection
|
||||
================================================================
|
||||
|
||||
See :issue:`19494`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A new method `SELECT_mm_query` has been added to the `DatabaseConnection` class.
|
||||
This method has been extracted from `exec_SELECT_mm_query` to separate the building
|
||||
and execution of M:M queries.
|
||||
|
||||
This enables the use of the query building in the database abstraction layer.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$query = SELECT_mm_query('*', 'table1', 'table1_table2_mm', 'table2', 'AND table1.uid = 1', '', 'table1.title DESC');
|
||||
|
||||
|
||||
.. index:: PHP-API, Database
|
||||
@@ -0,0 +1,42 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-25341:
|
||||
|
||||
============================================================
|
||||
Feature: #25341 - Scheduler task to optimize database tables
|
||||
============================================================
|
||||
|
||||
See :issue:`25341`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A scheduler task to run the `OPTIMIZE TABLE` command on selected
|
||||
database tables has been added. The `OPTIMIZE TABLE` command
|
||||
reorganizes the physical storage of table data and associated index
|
||||
data to reduce storage space and improve I/O efficiency when
|
||||
accessing the table. The exact changes made to each table depend
|
||||
on the storage engine used by that table. For more information see
|
||||
the `MySQL manual`_.
|
||||
|
||||
The scheduler task is meant for the MySQL database system and only
|
||||
shows tables matching the MySQL storage engines MyISAM, InnoDB and
|
||||
ARCHIVE. Using this task with DBAL and other DBMS is not supported
|
||||
as the commands used are MySQL specific.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Optimizing tables is I/O intensive. On MySQL < 5.6.17 it also locks
|
||||
the tables for the whole time, which can severely impact the website
|
||||
while it is running. When considering whether or not to run optimize,
|
||||
consider the workload of transactions that your server will process
|
||||
as InnoDB tables do not suffer from fragmentation in the same way
|
||||
that MyISAM tables do.
|
||||
|
||||
.. _MySQL manual: https://dev.mysql.com/doc/refman/5.6/en/optimize-table.html
|
||||
|
||||
|
||||
.. index:: ext:scheduler, Database
|
||||
@@ -0,0 +1,29 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-28243:
|
||||
|
||||
================================================================================
|
||||
Feature: #28243 - Introduce TCA option to disable age display of dates per field
|
||||
================================================================================
|
||||
|
||||
See :issue:`28243`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It is now possible to disable the display of the age (p.e. "2015-08-30 (-27 days)") of date fields in record
|
||||
listings by a new TCA option.
|
||||
The option is called `disableAgeDisplay` and can be set in the config section of a field.
|
||||
It will be respected if the field has the type `input` and its eval is set to `date`.
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// disables the display of " (-27 days)" p.e.
|
||||
$GLOBALS['TCA']['tt_content']['columns']['date']['config']['disableAgeDisplay'] = true;
|
||||
|
||||
|
||||
.. index:: TCA, Backend
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-31100:
|
||||
|
||||
===================================================================================
|
||||
Feature: #31100 - ext:form Integrate multiline support for TEXTBLOCK in form wizard
|
||||
===================================================================================
|
||||
|
||||
See :issue:`31100`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The form object `TEXTBLOCK` is now rendered as multiline input field in the
|
||||
form wizard. Line breaks are automatically converted to `<br>` tags in the
|
||||
wizard preview and the frontend.
|
||||
|
||||
|
||||
.. index:: ext:form, Frontend, Backend
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-38732:
|
||||
|
||||
=========================================================
|
||||
Feature: #38732 - Fluid-based Content Elements Introduced
|
||||
=========================================================
|
||||
|
||||
See :issue:`38732`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A new system extension called "Fluid Styled Content" has been added to the core,
|
||||
which ships with a trimmed down and simplified set of Content Elements which are
|
||||
rendered by Fluid Templates. This extension is installed by default on new
|
||||
installations.
|
||||
|
||||
In order to have Fluid Styled Content running, add the TypoScript file inside the
|
||||
Template module.
|
||||
The Page TSconfig is loaded automatically when the extension is installed. The autoloading
|
||||
of this file can be disabled by deactivating the `loadContentElementWizardTsConfig` option
|
||||
in the extension configuration of the extension manager. You have then to load the Page
|
||||
TSConfig by yourself on the page properties.
|
||||
|
||||
It is possible to overwrite the templates by adding your own paths in the TypoScript setup:
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
lib.fluidContent.templateRootPaths.50 = EXT:site_example/Resources/Private/Templates/
|
||||
lib.fluidContent.partialRootPaths.50 = EXT:site_example/Resources/Private/Partials/
|
||||
lib.fluidContent.layoutRootPaths.50 = EXT:site_example/Resources/Private/Layouts/
|
||||
|
||||
The new CType `textmedia` adds support for rendering media elements and image elements side by side.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Please note that this extension is still in an early stage and breaking changes are
|
||||
still possible until TYPO3 CMS 7 LTS, so be aware of changes to TCA, Templates,
|
||||
Behaviour and Feature set.
|
||||
|
||||
Some conflicts regarding CSS Styled Content and Fluid Styled Content might still exist.
|
||||
|
||||
|
||||
.. index:: TypoScript, ext:fluid_styled_content, Backend, Frontend
|
||||
@@ -0,0 +1,29 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-47812:
|
||||
|
||||
=================================================
|
||||
Feature: #47812 - Query support for BETWEEN added
|
||||
=================================================
|
||||
|
||||
See :issue:`47812`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Support for `between` has been added to the Extbase `Query` object. As there is no performance
|
||||
advantage to using BETWEEN on the DBMS side (the optimizer converts it to `(min <= expr AND expr <= max)`
|
||||
this function replicates the DBMS behaviour by building a logical AND condition that has the advantage
|
||||
of working on all DBMS.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$query->matching(
|
||||
$query->between('uid', 3, 5)
|
||||
);
|
||||
|
||||
|
||||
.. index:: PHP-API, ext:extbase
|
||||
+69
@@ -0,0 +1,69 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-52217:
|
||||
|
||||
=================================================================
|
||||
Feature: #52217 - Signal for pre processing linkvalidator records
|
||||
=================================================================
|
||||
|
||||
See :issue:`52217`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
This signal allows for additional processing upon initialization of a specific record,
|
||||
e.g. getting content data from plugin configuration in record.
|
||||
|
||||
Registering the signal: (in ext_localconf.php)
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
|
||||
$signalSlotDispatcher->connect(
|
||||
\TYPO3\CMS\Linkvalidator\LinkAnalyzer::class,
|
||||
'beforeAnalyzeRecord',
|
||||
\Vendor\Package\Slots\RecordAnalyzerSlot::class,
|
||||
'beforeAnalyzeRecord'
|
||||
);
|
||||
|
||||
..
|
||||
|
||||
The slot class:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
namespace Vendor\Package\Slots;
|
||||
|
||||
use TYPO3\CMS\Linkvalidator\LinkAnalyzer;
|
||||
|
||||
class RecordAnalyzerSlot {
|
||||
|
||||
/**
|
||||
* Receives a signal before the record is analyzed
|
||||
*
|
||||
* @param array $results Array of broken links
|
||||
* @param array $record Record to analyze
|
||||
* @param string $table Table name of the record
|
||||
* @param array $fields Array of fields to analyze
|
||||
* @param LinkAnalyzer $parentObject Parent object
|
||||
* @return array
|
||||
*/
|
||||
public function beforeAnalyzeRecord($results, $record, $table, $fields, LinkAnalyzer $parentObject) {
|
||||
// Processing here
|
||||
return array(
|
||||
$results,
|
||||
$record
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
..
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions may now perform any kind of processing for every record when validating content links.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend, ext:linkvalidator
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-53406:
|
||||
|
||||
=================================================================================
|
||||
Feature: #53406 - ext:form Add placeholder attribute to some textfields in wizard
|
||||
=================================================================================
|
||||
|
||||
See :issue:`53406`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The form wizard is now able to add a placeholder attribute to the
|
||||
following elements: TEXTLINE, TEXTAREA, PASSWORD and the preset
|
||||
"email". TypoScript config is properly read and written.
|
||||
|
||||
|
||||
.. index:: Frontend, ext:form
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-56282:
|
||||
|
||||
=======================================================
|
||||
Feature: #56282 - Language selector for pageview module
|
||||
=======================================================
|
||||
|
||||
See :issue:`56282`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The page->view module now has a dropdown to select a language for the page preview.
|
||||
|
||||
In case you switch languages based on something different than a parameter called `L` you
|
||||
can disable the selector by using the following PageTSConfig:
|
||||
|
||||
`mod.SHARED.view.disableLanguageSelector = 1`
|
||||
|
||||
|
||||
.. index:: TSConfig, Backend
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-56726:
|
||||
|
||||
===============================================================
|
||||
Feature: #56726 - Trigger metadata extraction after file upload
|
||||
===============================================================
|
||||
|
||||
See :issue:`56726`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Before #56726 the metadata extraction was only called through the extract metadata
|
||||
scheduler task.
|
||||
So when an editor uploaded a new file he had to wait until the scheduler task had
|
||||
been triggered again and extracted the metadata.
|
||||
|
||||
Now the metadata extraction is by default triggered after adding/uploading a file
|
||||
in the BE or when the FAL API is used `ResourceStorage::addFile()`,
|
||||
`ResourceStorage::replaceFile()` and `ResourceStorage::addUploadedFile()`.
|
||||
|
||||
In some special situations it isn't desired to have metadata extraction direct
|
||||
after file upload/adding a file to the storage.
|
||||
For these cases the automatic extraction can be disabled in File Storage configuration.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The flag is by default set for all existing and a new storage. When you have some
|
||||
special use-case where automatic extraction of metadata is not desired the flag
|
||||
can be disabled in File Storage configuration.
|
||||
|
||||
|
||||
.. index:: FAL, PHP-API, Backend
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-57632:
|
||||
|
||||
=====================================================================
|
||||
Feature: #57632 - Include inline language label files with TypoScript
|
||||
=====================================================================
|
||||
|
||||
See :issue:`57632`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It is now possible to add inline language label files with TypoScript.
|
||||
|
||||
Usage
|
||||
-----
|
||||
If you want to include inline labels from a XLF file, you have to specify that
|
||||
file in your TypoScript with a custom key in the new `inlineLanguageLabelFiles`
|
||||
section. In addition to the file you can configure three optional parameters:
|
||||
|
||||
* `selectionPrefix`: Only label keys that start with this prefix will be included (default: '')
|
||||
* `stripFromSelectionName`: A string that will be removed from any included label key (default: '')
|
||||
* `errorMode`: Error mode if the file could not be found: 0 - syslog entry, 1 - do nothing, 2 - throw an exception (default: 0)
|
||||
|
||||
Example
|
||||
-------
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
page = PAGE
|
||||
page.inlineLanguageLabelFiles {
|
||||
someLabels = EXT:myExt/Resources/Private/Language/locallang.xlf
|
||||
someLabels.selectionPrefix = idPrefix
|
||||
someLabels.stripFromSelectionName = strip_me
|
||||
someLabels.errorMode = 2
|
||||
}
|
||||
|
||||
Output in the HTML head:
|
||||
|
||||
.. code-block:: javascript
|
||||
|
||||
var TYPO3 = TYPO3 || {};
|
||||
TYPO3.lang = {"firstLabel":[{"source":"first Label","target":"erstes Label"}],"secondLabel":[{"source":"second Label","target":"zweites Label"}]};
|
||||
|
||||
|
||||
.. index:: TypoScript, JavaScript, Frontend
|
||||
@@ -0,0 +1,34 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-59144:
|
||||
|
||||
==================================================================
|
||||
Feature: #59144 - Previewing workspace records using Page TSconfig
|
||||
==================================================================
|
||||
|
||||
See :issue:`59144`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Per default TYPO3 only creates preview links for the tables tt_content, pages
|
||||
and pages_language_overlay. To avoid utilizing a hook for each table, creating
|
||||
preview links can be triggered using Page TSconfig.
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
# Using page 123 for previewing workspaces records (in general)
|
||||
options.workspaces.previewPageId = 123
|
||||
|
||||
# Using the pid field of each record for previewing (in general)
|
||||
options.workspaces.previewPageId = field:pid
|
||||
|
||||
# Using page 123 for previewing workspaces records (for table tx_myext_table)
|
||||
options.workspaces.previewPageId.tx_myext_table = 123
|
||||
|
||||
# Using the pid field of each record for previewing (or table tx_myext_table)
|
||||
options.workspaces.previewPageId.tx_myext_table = field:pid
|
||||
|
||||
|
||||
.. index:: TSConfig, ext:workspaces
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-59591:
|
||||
|
||||
==============================================================
|
||||
Feature: #59591 - Image quality definable per sourceCollection
|
||||
==============================================================
|
||||
|
||||
See :issue:`59591`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The image quality of each `sourceCollection` entry can be configured.
|
||||
Integrators can already render images with the predefined quality set by LocalConfiguration.php.
|
||||
To decrease the quality of larger images (e.g. double density) in order to lower the file size,
|
||||
integrators can configure the parameter `quality` of the matching `sourceCollection` now.
|
||||
|
||||
The TypoScript setup can be configured as followed (e.g.):
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
# for small retina images
|
||||
tt_content.image.20.1.sourceCollection.smallRetina.quality = 80
|
||||
|
||||
# for large retina images
|
||||
tt_content.image.20.1.sourceCollection.largeRetina.quality = 65
|
||||
|
||||
If the new parameter is not set, TYPO3 will use to the default quality of LocalConfiguration.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The rendering of `sourceCollection` stays as it is. Users can additionally selectively control the quality of jpeg by TypoScript setup.
|
||||
|
||||
|
||||
.. index:: TypoScript, Frontend
|
||||
@@ -0,0 +1,125 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-61799:
|
||||
|
||||
===================================================
|
||||
Feature: #61799 - Improved handling of online media
|
||||
===================================================
|
||||
|
||||
See :issue:`61799`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Editors can now use YouTube and Vimeo videos (online media) just like any other file, organising them just like any
|
||||
other file in the file list and selecting them in element browser to use in a CE or any other record.
|
||||
Adding new online media files is done providing the URL to online media. The matching helper class will fetch the
|
||||
needed metadata and supply an image that will be used as preview if available.
|
||||
|
||||
|
||||
YouTube and Vimeo support
|
||||
-------------------------
|
||||
|
||||
The core provides an `OnlineMediaHelper` and a `FileRenderer` class for YouTube and Vimeo.
|
||||
|
||||
Adding YouTube videos can be done by providing a URL in one of the following formats (with and without http(s)://):
|
||||
|
||||
- youtu.be/<code> # Share URL
|
||||
- www.youtube.com/watch?v=<code> # Normal web link
|
||||
- www.youtube.com/v/<code>
|
||||
- www.youtube-nocookie.com/v/<code> # youtube-nocookie.com web link
|
||||
- www.youtube.com/embed/<code> # URL form iframe embed code, can also get code from full iframe snippet
|
||||
|
||||
Adding Vimeo videos can be done by providing a URL in one of the following formats (with and without http(s)://):
|
||||
|
||||
- vimeo.com/<code> # Share URL
|
||||
- player.vimeo.com/video/<code> # URL form iframe embed code, can also get code from full iframe snippet
|
||||
|
||||
|
||||
Each renderer has some custom configuration options:
|
||||
|
||||
|
||||
YouTubeRenderer
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
* `bool autoplay` default = FALSE; when set video starts immediately after loading of the page
|
||||
* `int controls` default = 2; see `<https://developers.google.com/youtube/player_parameters#controls>`_
|
||||
* `bool loop` default = FALSE; if set video starts over again from te beginning when finished
|
||||
* `bool enablejsapi` default = TRUE; see `<https://developers.google.com/youtube/player_parameters#enablejsapi>`_
|
||||
* `bool showinfo` default = FALSE; show video title and uploader before video starts playing
|
||||
* `bool no-cookie` default = FALSE; use domain youtube-nocookie.com instead of youtube.com when embedding a video
|
||||
|
||||
Example of setting the YouTubeRenderer options with the MediaViewHelper:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<!-- enable js api and set no-cookie support for YouTube videos -->
|
||||
<f:media file="{file}" additionalConfig="{enablejsapi:1, 'no-cookie': true}" />
|
||||
|
||||
|
||||
VimeoRenderer
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
* `bool autoplay` default = FALSE; when set video starts immediately after loading of the page
|
||||
* `bool loop` default = FALSE; if set video starts over again from te beginning when finished
|
||||
* `bool showinfo` default = FALSE; show video title and uploader before video starts playing
|
||||
|
||||
Example of setting the YouTubeRenderer options with the MediaViewHelper:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<!-- show title and uploader for YouTube and Vimeo before video starts playing -->
|
||||
<f:media file="{file}" additionalConfig="{showinfo:1}" />
|
||||
|
||||
|
||||
Register your own online media service
|
||||
--------------------------------------
|
||||
|
||||
For every service you need an `OnlineMediaHelper` class that implements `OnlineMediaHelperInterface` and a
|
||||
`FileRenderer` class (see #61800) that implements `FileRendererInterface`. The online media helper is responsible
|
||||
for translating the input given by the editor to a `onlineMediaId` that is known to the service. The renderer is
|
||||
responsible for turning the `onlineMediaId` to the correct HTML output to show the media item.
|
||||
|
||||
The `onlineMediaId` is stored in a plain text file that only holds this ID. By giving this file a custom file extension
|
||||
TYPO3 knows which `OnlineMediaHelper` and `FileRenderer` belong to it. To further tell TYPO3 what kind of
|
||||
"file" (text, image, audio, video, application, other) this online media holds we also need to bind a custom mime-type to
|
||||
this file extension.
|
||||
|
||||
With adding this custom file extension to `$GLOBALS['TYPO3_CONF_VARS']['SYS']['mediafile_ext']` (see `#69543 <Feature-69543-IntroducedGLOBALSTYPO3_CONF_VARSSYSmediafile_ext.rst>`_) your custom
|
||||
online media file can be used throughout the backend every where all media files are allowed.
|
||||
|
||||
**Example of registering your own online media file/service:**
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Register your own online video service (the used key is also the bind file extension name)
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['onlineMediaHelpers']['myvideo'] = \MyCompany\Myextension\Helpers\MyVideoHelper::class;
|
||||
|
||||
$rendererRegistry = \TYPO3\CMS\Core\Resource\Rendering\RendererRegistry::getInstance();
|
||||
$rendererRegistry->registerRendererClass(
|
||||
\MyCompany\Myextension\Rendering\MyVideoRenderer::class
|
||||
);
|
||||
|
||||
// Register an custom mime-type for your videos
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SYS']['FileInfo']['fileExtensionToMimeType']['myvideo'] = 'video/myvideo';
|
||||
|
||||
// Register your custom file extension as allowed media file
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SYS']['mediafile_ext'] .= ',myvideo';
|
||||
|
||||
|
||||
Override core Helper class with your own helper class
|
||||
-----------------------------------------------------
|
||||
|
||||
The helper classed provided by the core use the `oEmbed` web service provided by YouTube and Vimeo to gather some basic
|
||||
metadata for the provided video urls. The upside is that you do not need an API user/key to use their webservice as these
|
||||
services are publicly available. But the downside is that the gathered info is kind of scarce. So if you have an API user/key
|
||||
for these services, you could create an own helper class which provides more meta data.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Register your own online custom youtube helper class
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SYS']['fal']['onlineMediaHelpers']['youtube'] = \MyCompany\Myextension\Helpers\YouTubeHelper::class;
|
||||
|
||||
|
||||
.. index:: FAL, Backend, Frontend, PHP-API, LocalConfiguration
|
||||
@@ -0,0 +1,28 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-61993:
|
||||
|
||||
===========================================================================
|
||||
Feature: #61993 - _CSS_PAGE_STYLE is now only included on the affected page
|
||||
===========================================================================
|
||||
|
||||
See :issue:`61993`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
CSS set via the TypoScript property `_CSS_PAGE_STYLE` was concatenated and
|
||||
compressed with the non-page-specific CSS and therefore loaded on pages it did
|
||||
not affect at all.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The behaviour from now on is that `_CSS_PAGE_STYLE` is included only on the
|
||||
affected page. Depending on your configuration it will be written in an external
|
||||
file and included on the page or directly added as inline CSS block. Compression
|
||||
for page specific CSS also depends on the global `config.compressCss` setting.
|
||||
|
||||
|
||||
.. index:: TypoScript, Frontend
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-63395:
|
||||
|
||||
==================================================
|
||||
Feature: #63395 - HTML5 video poster preview image
|
||||
==================================================
|
||||
|
||||
See :issue:`63395`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Enable Video preview image "poster" in media in the old fashion way.
|
||||
|
||||
If there is a jpg, jpeg or png image in the same folder with the same
|
||||
name as the video file it will be shown with the HTML5 poster attribute.
|
||||
|
||||
The file extensions are checked exactly in the order mentioned above.
|
||||
|
||||
|
||||
.. index:: ext:mediace
|
||||
+52
@@ -0,0 +1,52 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-64535:
|
||||
|
||||
=====================================================================================
|
||||
Feature: #64535 - IRRE: Suppress and override useCombination warning via TCA settings
|
||||
=====================================================================================
|
||||
|
||||
See :issue:`64535`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
When using `useCombination=TRUE` there is always a FlashMessage warning displayed.
|
||||
It is now possible to override the default warning message with a custom message or
|
||||
to suppress the FlashMessage completely via TCA setting.
|
||||
|
||||
Example to suppress `useCombination` warning message:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TCA']['tx_demo_domain_model_demoinline']['columns']['irre_records']['config'] = array(
|
||||
'foreign_types_combination' => array(
|
||||
'1' => array(
|
||||
'showitem' => 'title'
|
||||
)
|
||||
)
|
||||
'appearance' => array(
|
||||
'suppressCombinationWarning' => TRUE
|
||||
'useCombination' => TRUE
|
||||
)
|
||||
)
|
||||
|
||||
Example to override `useCombination` warning message:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TCA']['tx_demo_domain_model_demoinline']['columns']['irre_records']['config'] = array(
|
||||
'foreign_types_combination' => array(
|
||||
'1' => array(
|
||||
'showitem' => 'title'
|
||||
)
|
||||
)
|
||||
'appearance' => array(
|
||||
'overwriteCombinationWarningMessage' => 'LLL:EXT:demo/Resources/Private/Language/locallang_db.xlf:tx_demo_domain_model_demoinline.irre_records.useCombinationWarning'
|
||||
'useCombination' => TRUE
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
.. index:: TCA, Backend
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-64726:
|
||||
|
||||
================================================================
|
||||
Feature: #64726 - Added support for multiple FlashMessage queues
|
||||
================================================================
|
||||
|
||||
See :issue:`64726`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
In Extbase ControllerContext the method `getFlashMessageQueue()` now optionally
|
||||
allows to specify which queue to fetch. If none is specified the `default-
|
||||
messagequeue` for the current controller/plugin will be used.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$this->controllerContext->getFlashMessageQueue($queueIdentifier);
|
||||
|
||||
In Fluid the flashMessages-ViewHelper also allows to specify a queue to
|
||||
use.
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<f:flashMessages queueIdentifier="myQueue" />
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions may now render foreign flash message queues and add messages
|
||||
to them.
|
||||
|
||||
|
||||
.. index:: PHP-API, Fluid, ext:extbase
|
||||
@@ -0,0 +1,60 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-58621-1668719172:
|
||||
|
||||
=========================================
|
||||
Feature: #58621 - Unified Backend Routing
|
||||
=========================================
|
||||
|
||||
See :issue:`58621`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A new Routing component has been added to the TYPO3 Backend which handles addressing different calls / modules inside TYPO3.
|
||||
|
||||
A **Route** is the smallest entity consisting of a path (e.g. "/records/edit/") as well as an identifier for addressing
|
||||
the route, and the information about how to dispatch the route to a PHP controller.
|
||||
|
||||
A **Route** can be a module, wizard or any page inside the TYPO3 Backend. The Router contains the public API for matching
|
||||
paths to fetch a Route and is resolved inside the RequestHandler of the Backend.
|
||||
|
||||
The entry point for Routes is `typo3/index.php?route=myroute&token=....`. The main RequestHandler for all Backend requests
|
||||
detects if a route parameter from the server is given and uses this as the route identifier and then resolves to a
|
||||
controller defined inside the Route.
|
||||
|
||||
Routes are defined inside the file "Configuration/Backend/Routes.php" of any extension.
|
||||
|
||||
Example of a Configuration/Backend/Routes.php file:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
return [
|
||||
'myRouteIdentifier' => [
|
||||
'path' => '/document/edit',
|
||||
'controller' => Acme\MyExtension\Controller\MyExampleController::class . '::methodToCall'
|
||||
]
|
||||
];
|
||||
|
||||
The called method in the controller to be called receives a PSR-7 compliant Request object and a PSR-7 Response object, and has to return a PSR-7 Response object.
|
||||
The UriBuilder generates any kind of URL for the Backend, may it be a module, a typical route or an AJAX call. The
|
||||
UriBuilder returns a PSR-7-conform Uri object that can be casted to string when needed.
|
||||
|
||||
Usage:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$uriBuilder = GeneralUtility::makeInstance(UriBuilder::class);
|
||||
$uri = $uriBuilder->buildUriFromRoute('myRouteIdentifier', array('foo' => 'bar'));
|
||||
|
||||
See https://docs.typo3.org/m/typo3/reference-coreapi/main/en-us/ApiOverview/BackendRouting/Index.html for more details.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Handling of existing modules works the same as before and fully transparent. Any existing registration of entrypoints
|
||||
can be moved to the new registration file in Configuration/Backend/Routes.php.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+30
@@ -0,0 +1,30 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-65791:
|
||||
|
||||
=============================================================================================
|
||||
Feature: #65791 - Use PHP configured sendmail path, if [MAIL][transport] = sendmail is active
|
||||
=============================================================================================
|
||||
|
||||
See :issue:`65791`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The install tool setting `[MAIL][transport_sendmail_command]` is now retrieved automatically from
|
||||
PHP runtime configuration `sendmail_path` during installation (instead of '/usr/sbin/sendmail -bs').
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
There are no impacts on current installations.
|
||||
|
||||
New installations will have `[MAIL][transport_sendmail_command]` automatically set during installation
|
||||
using `sendmail_path` from PHP runtime configuration. It can still be changed manually.
|
||||
|
||||
As this setting is only used if `[MAIL][transport]` is set to `sendmail`, it doesn't have impact on
|
||||
other transport schemes.
|
||||
|
||||
|
||||
.. index:: LocalConfiguration
|
||||
@@ -0,0 +1,49 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-66366:
|
||||
|
||||
============================================
|
||||
Feature: #66366 - Introduced MediaViewHelper
|
||||
============================================
|
||||
|
||||
See :issue:`66366`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
In order to comfortably render video, audio and all other file types with a registered Renderer class (`RenderingRegistry`
|
||||
introduced with #61800) in FE, the `MediaViewHelper` has been added.
|
||||
|
||||
The `MediaViewHelper` first checks if there is a Renderer present for the given file. If not, it will as fallback
|
||||
render an image tag. This way it is a replacement for the `ImageViewHelper` in most cases when rendering video and
|
||||
audio tags.
|
||||
|
||||
Examples:
|
||||
---------
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<code title="Image Object">
|
||||
<f:media file="{file}" width="400" height="375" />
|
||||
</code>
|
||||
<output>
|
||||
<img alt="alt set in image record" src="fileadmin/_processed_/323223424.png" width="396" height="375" />
|
||||
</output>
|
||||
|
||||
<code title="MP4 Video Object">
|
||||
<f:media file="{file}" width="400" height="375" />
|
||||
</code>
|
||||
<output>
|
||||
<video width="400" height="375" controls><source src="fileadmin/user_upload/my-video.mp4" type="video/mp4"></video>
|
||||
</output>
|
||||
|
||||
<code title="MP4 Video Object with loop and autoplay option set">
|
||||
<f:media file="{file}" width="400" height="375" additionalConfig="{loop: '1', autoplay: '1'}" />
|
||||
</code>
|
||||
<output>
|
||||
<video width="400" height="375" controls loop><source src="fileadmin/user_upload/my-video.mp4" type="video/mp4"></video>
|
||||
</output>
|
||||
|
||||
|
||||
.. index:: Fluid, FAL, Frontend
|
||||
+75
@@ -0,0 +1,75 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-66371:
|
||||
|
||||
=====================================================================
|
||||
Feature: #66371 - Introduce autoplay option for video and audio files
|
||||
=====================================================================
|
||||
|
||||
See :issue:`66371`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `RenderingRegistry` added with #61800 introduced the option to render video
|
||||
and audio tags with the new `MediaViewHelper` added with #66366.
|
||||
To improve the usability of this feature an autoplay checkbox has been added to
|
||||
the `sys_file_reference` records to enable the editor to configure this option
|
||||
on a per file basis.
|
||||
|
||||
To make the autoplay option available in sys_file_reference records, make use of
|
||||
the new palettes `videoOverlayPalette` and `audioOverlayPalette` in your TCA.
|
||||
|
||||
However, the autoplay property of the `sys_file_reference` is only taken into
|
||||
account if the view helper does not explicitly specify an autoplay option.
|
||||
|
||||
Examples:
|
||||
---------
|
||||
|
||||
Example config of an sys_file_reference field in TCA:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'media' => array(
|
||||
'exclude' => 1,
|
||||
'label' => 'Media',
|
||||
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
|
||||
'media',
|
||||
array(
|
||||
'foreign_types' => array(
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => array(
|
||||
'showitem' => '
|
||||
--palette--;;audioOverlayPalette,
|
||||
--palette--;;filePalette',
|
||||
),
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => array(
|
||||
'showitem' => '
|
||||
--palette--;;videoOverlayPalette,
|
||||
--palette--;;filePalette',
|
||||
)
|
||||
)
|
||||
),
|
||||
'wav,mpeg,mp4,ogg'
|
||||
)
|
||||
)
|
||||
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<code title="MP4 Video Object with autoplay option set regardless of sys_file_reference checkbox">
|
||||
<f:media file="{file}" width="400" height="375" additionalConfig="{autoplay: '1'}" />
|
||||
</code>
|
||||
<output>
|
||||
<video width="400" height="375" controls autoplay><source src="fileadmin/user_upload/my-video.mp4" type="video/mp4"></video>
|
||||
</output>
|
||||
|
||||
<code title="MP4 Video Object without autoplay option set will respect the configuration of the sys_file_reference record">
|
||||
<f:media file="{file}" width="400" height="375" />
|
||||
</code>
|
||||
<output>
|
||||
<video width="400" height="375" controls><source src="fileadmin/user_upload/my-video.mp4" type="video/mp4"></video>
|
||||
</output>
|
||||
|
||||
|
||||
.. index:: FAL, TCA, Backend, Frontend
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-67056:
|
||||
|
||||
===================================================================
|
||||
Feature: #67056 - Add option to disable move buttons TCA group type
|
||||
===================================================================
|
||||
|
||||
See :issue:`67056`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The move buttons of the TCA type `group` can now be explicitly disabled with the
|
||||
`hideMoveIcons` option. Before these icons where only automatically removed if
|
||||
`maxitems` was set to 1.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'options' => array(
|
||||
'label' => 'Options',
|
||||
'config' => array(
|
||||
'type' => 'group',
|
||||
'internal_type' => 'db',
|
||||
'allowed' => 'pages',
|
||||
'maxitems' => 9999,
|
||||
'hideMoveIcons' => TRUE,
|
||||
),
|
||||
),
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Move buttons can now always be hidden for `group` fields
|
||||
|
||||
|
||||
.. index:: TCA, Backend
|
||||
@@ -0,0 +1,50 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-67875:
|
||||
|
||||
===================================================
|
||||
Feature: #67875 - Override CategoryRegistry entries
|
||||
===================================================
|
||||
|
||||
See :issue:`67875`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `makeCategorizable` method of the `\TYPO3\CMS\Core\Utility\ExtensionManagementUtility`
|
||||
class has been extended with a new parameter `override` to set a new category configuration for
|
||||
an already registered table / field combination.
|
||||
|
||||
If the parameter is set to `TRUE`, previously defined registry entries are cleared for the
|
||||
current table / field combination before adding the new configuration.
|
||||
|
||||
The intended usecase for this method is to add additional TCA types for a previously registered table.
|
||||
|
||||
A good example is the `tt_content` table:
|
||||
|
||||
1. The basic TCA is defined in the `frontend` Extension.
|
||||
2. After the processing of the normal TCA definition, the default categorized tables (from the install
|
||||
tool setting `SYS/defaultCategorizedTables`) are initialized and the categories tab is added to the
|
||||
`showitem` configuration for all TCA types that exist so far.
|
||||
3. Now the TCA overrides are processed. The `css_styled_content` Extension defines additional TCA
|
||||
types. After the types are defined the `addOrOverride()` method is called to add the category
|
||||
tab to them.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The current behavior of the existing functionality is not changed. Only new functionality is added.
|
||||
|
||||
|
||||
Example
|
||||
=======
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// This example is from the tt_content TCA overrides file from the css_styled_content Extension.
|
||||
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::makeCategorizable('css_styled_content', 'tt_content', 'categories', array(), TRUE);
|
||||
|
||||
|
||||
.. index:: PHP-API, TCA, Backend
|
||||
@@ -0,0 +1,33 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-67880:
|
||||
|
||||
======================================
|
||||
Feature: #67880 - Added count to split
|
||||
======================================
|
||||
|
||||
See :issue:`67880`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A new property `returnCount` is added to the stdWrap property `split`.
|
||||
|
||||
When dealing with comma separated values like the content of `field:records` or similar,
|
||||
we might need to know how many items are present inside the csv.
|
||||
|
||||
Example:
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
# should return 9
|
||||
1 = TEXT
|
||||
1 {
|
||||
value = x,y,z,1,2,3,a,b,c
|
||||
split.token = ,
|
||||
split.returnCount = 1
|
||||
}
|
||||
|
||||
|
||||
.. index:: TypoScript, Frontend
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-67932:
|
||||
|
||||
===========================================================
|
||||
Feature: #67932 - RenderType for rsa encrypted input fields
|
||||
===========================================================
|
||||
|
||||
See :issue:`67932`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
EXT:rsaauth defines an own render type for TCA input fields. Those fields will
|
||||
be encrypted before submitting the form.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
In the Backend password fields for backend and frontend users are automatically
|
||||
encoded before the form is submitted.
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
To encrypt your own TCA fields you can add define the render type `rsaInput`.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TCA']['be_users']['columns']['password']['config']['renderType'] = 'rsaInput';
|
||||
|
||||
|
||||
.. index:: TCA, Backend
|
||||
@@ -0,0 +1,74 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-68429:
|
||||
|
||||
===============================================
|
||||
Feature: #68429 - Introduced AvatarProvider API
|
||||
===============================================
|
||||
|
||||
See :issue:`68429`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
To make providing an avatar image for BE users more flexible an API has been
|
||||
introduced so you can register AvatarProviders.
|
||||
The core provides the `DefaultAvatarProvider` by default to handle the image
|
||||
defined in the user settings.
|
||||
|
||||
When an avatar is rendered in the BE the available `AvatarProviders` are asked
|
||||
if they can provide an `TYPO3\CMS\Backend\Backend\Avatar\Image` for the given
|
||||
`be_users` record in the requested size. The first `TYPO3\CMS\Backend\Backend\Avatar\Image`
|
||||
that gets returned is used.
|
||||
|
||||
Registering an avatar provider
|
||||
------------------------------
|
||||
|
||||
An avatar provider can be registered within your `ext_localconf.php` file like this:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['backend']['avatarProviders']['myCustomProvider'] = [
|
||||
'provider' => \MyVendor\MyExtension\AvatarProvider\CompanyAvatarProvider::class,
|
||||
'before' => ['defaultAvatarProvider']
|
||||
];
|
||||
|
||||
The settings are defined as:
|
||||
|
||||
* `provider`: The avatar provider class name, which must implement `TYPO3\CMS\Backend\Backend\Avatar\AvatarProviderInterface`.
|
||||
* `before`/`after`: You can define the ordering how providers are executed. This is used to get the order in which the providers are executed.
|
||||
|
||||
|
||||
For a new avatar provider you have to register a **new key** in `$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['backend']['avatarProviders']`.
|
||||
If your avatar provider extends another one, you may only overwrite necessary settings. An example would be to
|
||||
extend an existing provider and replace its registered 'provider' class with your new class name.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['backend']['avatarProviders']['defaultAvatarProvider']['provider'] = \MyVendor\MyExtension\AvatarProvider\CustomAvatarProvider::class;
|
||||
|
||||
|
||||
AvatarProviderInterface
|
||||
-----------------------
|
||||
|
||||
The AvatarProviderInterface contains only one method:
|
||||
|
||||
`public function getImage(array $backendUser, $size);`
|
||||
|
||||
The parameters are defined as:
|
||||
|
||||
* `$backendUser`: The record from `be_users` database table.
|
||||
* `$size`: The requested size of the avatar image.
|
||||
|
||||
The return value of the method is expected to be an instance of `TYPO3\CMS\Backend\Backend\Avatar\Image` or NULL
|
||||
when the provider can not provide an image.
|
||||
|
||||
An `TYPO3\CMS\Backend\Backend\Image` object has 3 properties:
|
||||
|
||||
* `$url`: Url of avatar image. Needs to be relative to the website root or an absolute URL.
|
||||
* `$width`: The width of the image.
|
||||
* `$height`: The height of the image.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-68700:
|
||||
|
||||
=======================================================================
|
||||
Feature: #68700 - Autoload definition can be provided in ext_emconf.php
|
||||
=======================================================================
|
||||
|
||||
See :issue:`68700`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
It is now possible for extensions to provide one or more PSR-4 definitions,
|
||||
in the ext_emconf.php file.
|
||||
|
||||
While it was possible to define a psr-4 section in a composer.json before already, now it is also
|
||||
possible to define an autoload/psr-4 section in the ext_emconf.php file as well, so that extension authors
|
||||
do not need to provide a composer.json just for that any more.
|
||||
|
||||
This is the new recommended way to register classes for TYPO3.
|
||||
|
||||
Example ext_emconf.php:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
<?php
|
||||
$EM_CONF[$_EXTKEY] = array (
|
||||
'title' => 'Extension skeleton for TYPO3 7',
|
||||
'description' => 'Description for ext',
|
||||
'category' => 'Example Extensions',
|
||||
'author' => 'Helmut Hummel',
|
||||
'author_email' => 'info@helhum.io',
|
||||
'author_company' => 'helhum.io',
|
||||
'shy' => '',
|
||||
'priority' => '',
|
||||
'module' => '',
|
||||
'state' => 'stable',
|
||||
'internal' => '',
|
||||
'uploadfolder' => '0',
|
||||
'createDirs' => '',
|
||||
'modify_tables' => '',
|
||||
'clearCacheOnLoad' => 0,
|
||||
'lockType' => '',
|
||||
'version' => '0.0.1',
|
||||
'constraints' =>
|
||||
array (
|
||||
'depends' =>
|
||||
array (
|
||||
'typo3' => '7.5.0-7.99.99',
|
||||
),
|
||||
'conflicts' =>
|
||||
array (
|
||||
),
|
||||
'suggests' =>
|
||||
array (
|
||||
),
|
||||
),
|
||||
'autoload' =>
|
||||
array(
|
||||
'psr-4' =>
|
||||
array(
|
||||
'Helhum\\ExtScaffold\\' => 'Classes'
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Without providing an autoload section, TYPO3 scans the complete extension directory for PHP class files and registers them all.
|
||||
This includes test classes or classes of third party libraries, which might lead to unexpected results.
|
||||
|
||||
Therefore it is recommended to provide such an autoload section in an extension. It will be ignored in older TYPO3 versions, so
|
||||
there will be no issue with backwards compatibility.
|
||||
|
||||
|
||||
.. index:: PHP-API
|
||||
+24
@@ -0,0 +1,24 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-68724:
|
||||
|
||||
====================================================================================================================
|
||||
Feature: #68724 - EM: "Get preconfigured distribution" shows only distributions that suite the current TYPO3 version
|
||||
====================================================================================================================
|
||||
|
||||
See :issue:`68724`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
As the list of distributions gets longer, it is filtered now to those distributions that suite the current TYPO3 version.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Distributions that require different TYPO3 versions are not shown anymore.
|
||||
|
||||
|
||||
.. index:: ext:extensionmanager
|
||||
+119
@@ -0,0 +1,119 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-68741:
|
||||
|
||||
====================================================================================
|
||||
Feature: #68741 - Introduce new IconFactory as base to replace the icon skinning API
|
||||
====================================================================================
|
||||
|
||||
See :issue:`68741`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The logic for working with icons, icon sizes and icon overlays is now bundled into the new `IconFactory` class.
|
||||
The new icon factory will replace the old icon skinning API step by step.
|
||||
|
||||
All core icons will be registered directly in the `IconRegistry` class, third party extensions must use
|
||||
`IconRegistry::registerIcon()` to override existing icons or add additional icons to the icon factory.
|
||||
|
||||
The `IconFactory` takes care of the correct icon and overlay size and the markup.
|
||||
|
||||
|
||||
IconProvider
|
||||
------------
|
||||
|
||||
The core implements three icon provider classes, which all implement the `IconProviderInterface`.
|
||||
|
||||
* `BitmapIconProvider` for all kind of bitmap icons for gif, png and jpg files
|
||||
* `FontawesomeIconProvider` for font icons from fontawesome.io
|
||||
* `SvgIconProvider` for svg icons
|
||||
|
||||
Third party extensions can provide own icon provider classes, each class must implement the `IconProviderInterface`.
|
||||
|
||||
|
||||
BitmapIconProvider
|
||||
------------------
|
||||
|
||||
The `BitmapIconProvider` has the following option
|
||||
|
||||
* `source` The path to the bitmap file, this may also contain the EXT: prefix
|
||||
|
||||
|
||||
FontawesomeIconProvider
|
||||
-----------------------
|
||||
|
||||
The `FontawesomeIconProvider` has the following option
|
||||
|
||||
* `name` The name of the icon without the icon prefix e.g. `check` instead of `fa-check`
|
||||
|
||||
|
||||
SvgIconProvider
|
||||
---------------
|
||||
|
||||
The `SvgIconProvider` has the following option
|
||||
|
||||
* `source` The path to the svg file, this may also contains the EXT: prefix
|
||||
|
||||
|
||||
Register an icon
|
||||
----------------
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
/*
|
||||
* Put the following code into your ext_localconf.php file of your extension.
|
||||
*
|
||||
* @param string $identifier the icon identifier
|
||||
* @param string $iconProviderClassName the icon provider class name
|
||||
* @param array $options provider specific options, please reference the icon provider class
|
||||
*/
|
||||
$iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class);
|
||||
$iconRegistry->registerIcon($identifier, $iconProviderClassName, array $options = array());
|
||||
|
||||
|
||||
Use an icon
|
||||
-----------
|
||||
|
||||
To use an icon, you need at least the icon identifier. The default size is currently 32x32 px.
|
||||
The third parameter can be used to add an additional icon as overlay, which can be any registered icon.
|
||||
|
||||
The `Icon` class provides only the following constants for Icon sizes:
|
||||
|
||||
* `Icon::SIZE_SMALL` which currently means 16x16 px
|
||||
* `Icon::SIZE_DEFAULT` which currently means 32x32 px
|
||||
* `Icon::SIZE_LARGE` which currently means 48x48 px
|
||||
|
||||
All the sizes can change in future, so please make use of the constants for an unified layout.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$iconFactory = GeneralUtility::makeInstance(IconFactory::class);
|
||||
$iconFactory->getIcon($identifier, Icon::SIZE_SMALL, $overlay)->render();
|
||||
|
||||
|
||||
ViewHelper
|
||||
----------
|
||||
|
||||
The core provides a fluid ViewHelper which makes it really easy to use icons within a fluid view.
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
{namespace core=TYPO3\CMS\Core\ViewHelpers}
|
||||
<core:icon identifier="my-icon-identifier" />
|
||||
<!-- use the "small" size if none given ->
|
||||
<core:icon identifier="my-icon-identifier" />
|
||||
<core:icon identifier="my-icon-identifier" size="large" />
|
||||
<core:icon identifier="my-icon-identifier" overlay="overlay-identifier" />
|
||||
<core:icon identifier="my-icon-identifier" size="default" overlay="overlay-identifier" />
|
||||
<core:icon identifier="my-icon-identifier" size="large" overlay="overlay-identifier" />
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
No impact
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend, Fluid
|
||||
@@ -0,0 +1,30 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-68746:
|
||||
|
||||
======================================================
|
||||
Feature: #68746 - Add annotation for CLI only commands
|
||||
======================================================
|
||||
|
||||
See :issue:`68746`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The PHPDoc annotation `@cli` was added to indicate Extbase CommandController
|
||||
commands to be usable on CLI only.
|
||||
In general each defined CommandController can be selected within the Extbase
|
||||
CommandController Task in the scheduler.
|
||||
For some commands like `extbase:help:help` running in a scheduler task is not
|
||||
wanted or needed. Now those commands can be excluded from the scheduler command selection.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extbase `CommandController` commands annotated with `@cli` are not shown as
|
||||
command in the scheduler task.
|
||||
|
||||
|
||||
.. index:: CLI, ext:extbase
|
||||
@@ -0,0 +1,36 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-68756:
|
||||
|
||||
==============================================
|
||||
Feature: #68756 - Add config "base" to stdWrap
|
||||
==============================================
|
||||
|
||||
See :issue:`68756`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following function was updated and added with a new optional parameter $base:
|
||||
`TYPO3\CMS\Core\Utility\GeneralUtility::formatSize($sizeInBytes, $labels = '', $base = 0)`
|
||||
|
||||
This affects the function:
|
||||
`TYPO3\CMS\Frontend\ContentObject\ContentObjectRenderer->stdWrap_bytes`
|
||||
|
||||
Until now it was not possible to set the base parameter via TypoScript if you add custom labels.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The ability to set the base (1000 or 1024) via TypoScript configuration has been added.
|
||||
|
||||
With the `base` property it can be defined whether to use a base of 1000 or 1024 to calculate with
|
||||
|
||||
Thus::
|
||||
bytes.labels = " | K| M| G"
|
||||
bytes.base = 1000
|
||||
|
||||
|
||||
.. index:: PHP-API, TypoScript
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-68757:
|
||||
|
||||
================================================================================
|
||||
Feature: #68757 - Provide untouched newPassword in felogin password_changed hook
|
||||
================================================================================
|
||||
|
||||
See :issue:`68757`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The new parameter `newPasswordUnencrypted` in the EXT:felogin password_changed
|
||||
hook won't be salted if EXT:saltedpaswords is enabled. It is now possible to
|
||||
work with the real new password.
|
||||
|
||||
|
||||
.. index:: PHP-API, ext:saltedpasswords, ext:felogin
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-68773:
|
||||
|
||||
======================================================================================
|
||||
Feature: #68773 - Show a special image for official distributions in Extension Manager
|
||||
======================================================================================
|
||||
|
||||
See :issue:`68773`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
For official distributions a special image is displayed in the "Get preconfigured
|
||||
distribution" list. So it is easier now to distinguish the official distributions
|
||||
from others.
|
||||
|
||||
|
||||
.. index:: Backend, ext:extensionmanager
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-68804:
|
||||
|
||||
================================================================
|
||||
Feature: #68804 - Colored output for CLI-relevant error messages
|
||||
================================================================
|
||||
|
||||
See :issue:`68804`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Calling `typo3/cli_dispatch.phpsh` via the command line will now show a
|
||||
colored error message when an invalid or no CLI key as first parameter is given.
|
||||
|
||||
|
||||
.. index:: CLI
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-68837:
|
||||
|
||||
===================================================
|
||||
Feature: #68837 - Closures for Command Line Scripts
|
||||
===================================================
|
||||
|
||||
See :issue:`68837`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
For registering new command line scripts through the CLI API ("cliKey"), it is
|
||||
now possible to use PHP closures instead of reference to PHP scripts.
|
||||
|
||||
Example usage inside ext_localconf.php:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS']['GLOBAL']['cliKeys']['myclikey'] = array(
|
||||
function() {
|
||||
$controller = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\Acme\MyExtension\CommandLineTool::class);
|
||||
$controller->main();
|
||||
},
|
||||
'_CLI_lowlevel'
|
||||
);
|
||||
|
||||
|
||||
.. index:: PHP-API, CLI
|
||||
@@ -0,0 +1,48 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69095:
|
||||
|
||||
======================================================
|
||||
Feature: #69095 - Introduce icon state for IconFactory
|
||||
======================================================
|
||||
|
||||
See :issue:`69095`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A state (default or disabled) for icons has been added. The state "disabled" marks an icon as disabled and shows the icon with 50% opacity.
|
||||
|
||||
|
||||
Use an icon
|
||||
-----------
|
||||
|
||||
The method `IconFactory::getIcon()` has now a fourth parameter for the state.
|
||||
|
||||
The `\TYPO3\CMS\Core\Type\Icon\IconState` class provides only the following constants for icon states:
|
||||
|
||||
* `State::STATE_DEFAULT` which currently means 100% opacity
|
||||
* `State::STATE_DISABLED` which currently means 50% opacity
|
||||
|
||||
The states may change in future, so please make use of the constants for an unified layout.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$iconFactory = GeneralUtility::makeInstance(IconFactory::class);
|
||||
$iconFactory->getIcon($identifier, Icon::SIZE_SMALL, $overlay, IconState::cast(IconState::STATE_DEFAULT))->render();
|
||||
|
||||
|
||||
ViewHelper
|
||||
----------
|
||||
|
||||
The core provides a Fluid ViewHelper which makes it really easy to use icons within a Fluid view.
|
||||
This ViewHelper has an argument for the new state parameter.
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
{namespace core=TYPO3\CMS\Core\ViewHelpers}
|
||||
<core:icon identifier="my-icon-identifier" state="disabled" />
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend, Fluid
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69119:
|
||||
|
||||
===========================================================
|
||||
Feature: #69119 - Add a basic search to the filelist module
|
||||
===========================================================
|
||||
|
||||
See :issue:`69119`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A basic recursive file search by file name has been added to be able to search
|
||||
for files in the file list module like it was possible with EXT:dam.
|
||||
|
||||
The search happens recursively from the currently chosen folder in the folder
|
||||
tree. This way it is possible to search whole mount points or just single folders
|
||||
with a lot of files.
|
||||
|
||||
The search results will be displayed similar to the regular file list although
|
||||
some features of the regular list view are missing. There is no possibility to
|
||||
order the search results yet. Also the buttons for localization and clipboard
|
||||
commands are missing in this first implementation. Regular file command links
|
||||
like editing, renaming and deleting are already implemented. By default the
|
||||
search results are ordered by the file identifier, i.e. the file path ascending
|
||||
from A-Z.
|
||||
|
||||
|
||||
.. index:: Backend, FAL
|
||||
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69389:
|
||||
|
||||
===============================================
|
||||
Feature: #69389 - Add spinning feature for icon
|
||||
===============================================
|
||||
|
||||
See :issue:`69389`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The Icon API has now a support for spinning icons. While registering an icon a new property `spinning` is available:
|
||||
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$iconRegistry = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Core\Imaging\IconRegistry::class);
|
||||
$iconRegistry->registerIcon(
|
||||
'my-spinning-icon',
|
||||
\TYPO3\CMS\Core\Imaging\IconProvider\FontawesomeIconProvider::class,
|
||||
array(
|
||||
'name' => 'times',
|
||||
'spinning' => TRUE
|
||||
)
|
||||
);
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Icons can now be animated.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+116
@@ -0,0 +1,116 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69401:
|
||||
|
||||
========================================================================
|
||||
Feature: #69401 - Adopt ext:form to support the Extbase/ Fluid MVC stack
|
||||
========================================================================
|
||||
|
||||
See :issue:`69401`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Short summery
|
||||
-------------
|
||||
|
||||
The form extension - including the custom data model, controller logic,
|
||||
property validation, views and templating - has been adopted to support
|
||||
the Extbase/ Fluid MVC stack. This allows better customization and
|
||||
control of the generated behavior and markup by simply modifying Fluid
|
||||
templates or utilizing own custom view helper logic. At the same time
|
||||
the rewrite must not break current setups, i.e. the frontend rendering
|
||||
must be as compatible as possible.
|
||||
|
||||
Details
|
||||
-------
|
||||
|
||||
Fluid Rendering
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
The rendering of the frontend output is based on Fluid. Form relies on
|
||||
the native Fluid viewhelpers of the core and ships 2 new viewhelpers
|
||||
for optimal rendering of the SELECT object including the support of
|
||||
OPTGROUP objects. Furthermore a viewhelper is included to optimize the
|
||||
output of text mails.
|
||||
|
||||
To support existing setups a compatibility mode is introduced. The mode
|
||||
is activated by default. This has no impact on the rendering as long as
|
||||
no "old" TypoScript settings (like .layout =) are present. If old
|
||||
rendering settings are used a compatibility theme is loaded which
|
||||
guarantees maximum backwards compatibility including all the different
|
||||
wrap-abilities like `containerWrap` and `elementWrap`.
|
||||
|
||||
For new installations it is recommended to switch off the compatibility
|
||||
mode and use own Fluid templates to customize the output.
|
||||
|
||||
For each form object and view a Fluid partial is available. There are 3
|
||||
views: the form itself (show), the confirmation page (confirmation) and
|
||||
the email (postProcessor/ mail). The patch allows to customize the
|
||||
frontend output for every single view, e.g. one can have a custom Fluid
|
||||
partial for the BUTTON object of the confirmation view.
|
||||
|
||||
The `partialRootPath` can be overridden or extended to customize the form
|
||||
objects on a global scope. Furthermore it is possible to set a partial
|
||||
path for each form element on a local scope.
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
10 = BUTTON
|
||||
10 {
|
||||
label = My button
|
||||
name = myButton
|
||||
partialPath = FlatElements/MyButton
|
||||
}
|
||||
|
||||
The Fluid rendering would look for a MyButton.html located in the
|
||||
defined `partialRootPath`.
|
||||
|
||||
In addition it is now possible to decide if an element should be
|
||||
rendered for a specific view. The visualisation can be adopted by using
|
||||
the TypoScript settings `visibleInShowAction`, `visibleInConfirmationAction`
|
||||
and `visibleInMail`. As an example, this is utilized to hide the FIELDSET
|
||||
object on the confirmation page which was the default behaviour in
|
||||
earlier versions of form.
|
||||
|
||||
Extensibility
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
It is now possible to register custom form objects and attributes
|
||||
easily only by using TypoScript and Fluid. Form attributes can now be
|
||||
cObjects and use stdWrap. This is only possible if the form was not
|
||||
designed within the form wizard.
|
||||
|
||||
Furthermore 2 new signal slots are implemented to allow the
|
||||
manipulation of the form objects and the submitted data.
|
||||
|
||||
Validation
|
||||
^^^^^^^^^^
|
||||
|
||||
The validators are now using the extbase property mapping validation
|
||||
process.
|
||||
|
||||
Additional information
|
||||
^^^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
The session handling was dropped since it was unstable (see #58765). Now
|
||||
form relies on the concepts of Extbase.
|
||||
|
||||
The unit tests have been adopted to reflect the code changes.
|
||||
|
||||
Future
|
||||
^^^^^^
|
||||
|
||||
Further patches are needed to adopt the form wizard. The wizard still
|
||||
works as it used to after applying this patch but it is not able to
|
||||
reflect the new features like choosing a partial path for a single
|
||||
element.
|
||||
|
||||
Another patch will take care of the documentation.
|
||||
|
||||
A few more patches will come which will fix some issues regarding the
|
||||
validators and filters.
|
||||
|
||||
|
||||
.. index:: ext:form, Fluid, ext:extbase, TypoScript
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69409:
|
||||
|
||||
=============================================================================
|
||||
Feature: #69409 - ext:form allows value attribute for OPTION object in wizard
|
||||
=============================================================================
|
||||
|
||||
See :issue:`69409`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Now it is possible to add a value to the OPTION object using the
|
||||
wizard. Furthermore the table within the field options of the
|
||||
SELECT configuration has been improved. There were no labels shown
|
||||
which has been fixed now.
|
||||
|
||||
|
||||
.. index:: ext:form, Backend
|
||||
+27
@@ -0,0 +1,27 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69416:
|
||||
|
||||
========================================================================
|
||||
Feature: #69416 - Plugins (AbstractPlugin) can load custom language file
|
||||
========================================================================
|
||||
|
||||
See :issue:`69416`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
:php:`AbstractPlugin::pi_loadLL()` takes an optional argument specifying path to a
|
||||
language file. It allows placing language files in other paths like in Extbase
|
||||
structure "Resources/Private/Language". Previously language file had to be
|
||||
located in the directory set in the `scriptRelPath` property.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Possibility to put language label files in other paths.
|
||||
|
||||
|
||||
.. index:: PHP-API, Frontend
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69459:
|
||||
|
||||
==================================================================
|
||||
Feature: #69459 - Show tt_content preview in page module via Fluid
|
||||
==================================================================
|
||||
|
||||
See :issue:`69459`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
A new PageTSconfig option allows to render a preview of a single content element in the Backend via Fluid.
|
||||
|
||||
The following option allows to override the default output of a content element via PageTSconfig:
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
mod.web_layout.tt_content.preview.media = EXT:site_mysite/Resources/Private/Templates/Preview/Media.html
|
||||
|
||||
All content elements with CType "media" will then be rendered by the Fluid Template which can be rendered like:
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<h4>{header}</h4>
|
||||
<f:format.crop maxCharacters="200">{bodytext}</f:format.crop>
|
||||
|
||||
All properties of the tt_content record are available in the template directly.
|
||||
Any data of the flexform field `pi_flexform` is available with the property `pi_flexform_transformed` as an array.
|
||||
|
||||
.. note::
|
||||
|
||||
If a PHP hook already is set to render the element, it will take precedence over the Fluid-based preview.
|
||||
|
||||
|
||||
.. index:: TSConfig, Fluid, FlexForm
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69496:
|
||||
|
||||
============================================================================
|
||||
Feature: #69496 - Extract title from PDF when indexing in ext:indexed_search
|
||||
============================================================================
|
||||
|
||||
See :issue:`69496`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Indexed search is now able to natively extract the title when indexing PDF documents.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The title of indexed PDF documents is now extracted.
|
||||
|
||||
|
||||
.. index:: Frontend, ext:indexed_search
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69512:
|
||||
|
||||
===============================================================
|
||||
Feature: #69512 - Support \*.typoscript files as text file type
|
||||
===============================================================
|
||||
|
||||
See :issue:`69512`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The file type **typoscript** has been added to the list of text file types.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Files with the type **typoscript** can now be edited through the file list module.
|
||||
|
||||
|
||||
.. index:: TypoScript, Backend
|
||||
+80
@@ -0,0 +1,80 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69543:
|
||||
|
||||
================================================================================
|
||||
Feature: #69543 - Introduced $GLOBALS['TYPO3_CONF_VARS']['SYS']['mediafile_ext']
|
||||
================================================================================
|
||||
|
||||
See :issue:`69543`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Now we got the `RendererRegistry` with the `VideoTagRenderer`, `AudioTagRenderer` and `MediaViewHelper` in the
|
||||
core we needed also a way to define a list of file extensions of the files that can be handled by these. This list
|
||||
can then be used in the TCA for allowing sys_file_references to these files.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Comma list of file extensions perceived as media files by TYPO3.
|
||||
// Lowercase and no spaces between
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SYS']['mediafile_ext'] = 'gif,jpg,jpeg,bmp,png,pdf,svg,ai,mov,avi';
|
||||
|
||||
|
||||
TCA example:
|
||||
------------
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
'media' => array(
|
||||
'label' => 'LLL:EXT:lang/locallang_general.xlf:LGL.media',
|
||||
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig('media', array(
|
||||
'foreign_types' => array(
|
||||
'0' => array(
|
||||
'showitem' => '
|
||||
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
|
||||
--palette--;;filePalette'
|
||||
),
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_TEXT => array(
|
||||
'showitem' => '
|
||||
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
|
||||
--palette--;;filePalette'
|
||||
),
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => array(
|
||||
'showitem' => '
|
||||
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
|
||||
--palette--;;filePalette'
|
||||
),
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_AUDIO => array(
|
||||
'showitem' => '
|
||||
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
|
||||
--palette--;;filePalette'
|
||||
),
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_VIDEO => array(
|
||||
'showitem' => '
|
||||
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
|
||||
--palette--;;filePalette'
|
||||
),
|
||||
\TYPO3\CMS\Core\Resource\File::FILETYPE_APPLICATION => array(
|
||||
'showitem' => '
|
||||
--palette--;LLL:EXT:lang/locallang_tca.xlf:sys_file_reference.imageoverlayPalette;imageoverlayPalette,
|
||||
--palette--;;filePalette'
|
||||
)
|
||||
)
|
||||
), $GLOBALS['TYPO3_CONF_VARS']['SYS']['mediafile_ext'])
|
||||
),
|
||||
|
||||
|
||||
Extending this list:
|
||||
--------------------
|
||||
|
||||
If you want to extend this list you can add the desired extension name to list in the `ext_localconf.php` of your extension.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SYS']['mediafile_ext'] .= ',myext';
|
||||
|
||||
|
||||
.. index:: TCA, Backend, LocalConfiguration
|
||||
@@ -0,0 +1,34 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69568:
|
||||
|
||||
============================================
|
||||
Feature: #69568 - FormEngine data processing
|
||||
============================================
|
||||
|
||||
See :issue:`69568`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Warning: The `FormEngine` data structure will change in the future and extensions must
|
||||
not rely on array or class structures at the moment.
|
||||
|
||||
The FormEngine construct to render records has been split to two main parts where the first
|
||||
data processing part takes care of gathering and processing all data needed for the second part
|
||||
to render final form data.
|
||||
|
||||
The data processing is done via `FormDataCompiler` that returns a data array that can be given
|
||||
to the outer most render container. The array contains all main data required by the
|
||||
render part like final `TCA` as well as the processed database row.
|
||||
|
||||
Extensions can change the data processing by registering additional items in the data processing
|
||||
chain. For casual `TCA` based database records, the `FormDataGroup` `TcaDatabaseRecord` is
|
||||
used to define relevant data provider within
|
||||
`$GLOBALS['TYPO3_CONF_VARS']['SYS']['formEngine']['formDataGroup']['tcaDatabaseRecord']`. Additional
|
||||
data provider can be added at specific positions using the `depends` and `before` keywords
|
||||
relative to other providers.
|
||||
|
||||
|
||||
.. index:: PHP-API, Backend, TCA
|
||||
+48
@@ -0,0 +1,48 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-69602:
|
||||
|
||||
==================================================================
|
||||
Feature: #69602 - Simplify handling of backend layouts in frontend
|
||||
==================================================================
|
||||
|
||||
See :issue:`69602`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
To avoid complex TypoScript for integrators, the handling of backend layouts has
|
||||
been simplified for the frontend.
|
||||
|
||||
To get the correct backend layout, the following TypoScript code can be used:
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
page.10 = FLUIDTEMPLATE
|
||||
page.10 {
|
||||
file.stdWrap.cObject = CASE
|
||||
file.stdWrap.cObject {
|
||||
key.data = pagelayout
|
||||
|
||||
default = TEXT
|
||||
default.value = EXT:sitepackage/Resources/Private/Templates/Home.html
|
||||
|
||||
3 = TEXT
|
||||
3.value = EXT:sitepackage/Resources/Private/Templates/1-col.html
|
||||
|
||||
4 = TEXT
|
||||
4.value = EXT:sitepackage/Resources/Private/Templates/2-col.html
|
||||
}
|
||||
}
|
||||
|
||||
Using `data = pagelayout` is the same as using as
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
field = backend_layout
|
||||
ifEmpty.data = levelfield:-2,backend_layout_next_level,slide
|
||||
ifEmpty.ifEmpty = default
|
||||
|
||||
|
||||
.. index:: TypoScript, Frontend
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user