TYPO3 v15 dev-main snapshot ()

This commit is contained in:
2026-08-10 22:31:09 +02:00
commit af8cc155b5
6818 changed files with 642608 additions and 0 deletions
@@ -0,0 +1,49 @@
.. include:: /Includes.rst.txt
.. _breaking-56746:
==========================================================================
Breaking: #56746 - Add count methods and sort functionality to FAL drivers
==========================================================================
See :issue:`56746`
Description
===========
To improve the performance of the file list when showing (remote) storages with a lot of
files and folders the sorting and ordering needs to be done by the driver. Also the pagination of
the file list can be improved by moving the counting to the driver instead of fetching all files and
folders objects to count them.
Impact
======
Installations with custom FAL drivers will break after update.
Affected installations
======================
TYPO3 CMS 7 installations using custom FAL drivers.
Migration
=========
The custom FAL drivers need to be updated to be in line with the updated DriverInterface.
2 new functions need to be implemented:
- `countFoldersInFolder()`
- `countFilesInFolder()`
2 functions need to be extended with the parameters $sort and $sortRev:
- `getFilesInFolder(..., $sort, $sortRev)`
- `getFoldersInFolder(..., $sort, $sortRev)`
.. index:: PHP-API, FAL
@@ -0,0 +1,41 @@
.. include:: /Includes.rst.txt
.. _breaking-63784:
====================================================================
Breaking: #63784 - Visibility and type of DataHandler->exclude_array
====================================================================
See :issue:`63784`
Description
===========
The internal but formerly public property DataHandler->exclude_array is replaced by
the protected property DataHandler->excludedTablesAndFields, which contains the
combination of excluded table and field as key instead. This improves performance
especially for bulk editing since many in_array()-checks can be avoided.
Impact
======
Extensions using the DataHandler (former TCEMain) and changing the (former public)
exclude_array to change access to tables and fields cannot do so anymore. Users need
to have their access-rights set properly instead.
Affected installations
======================
Installations using extensions that read or write the undocumented array exclude_array.
Migration
=========
Remove code accessing DataHandler->exclude_array and configure the BE-User properly.
.. index:: PHP-API, Backend
@@ -0,0 +1,50 @@
.. include:: /Includes.rst.txt
.. _breaking-64719:
====================================================================================================
Breaking: #64719 - Multimedia and Media cObjects and Content Types are moved to new system extension
====================================================================================================
See :issue:`64719`
Description
===========
The Content Element Types "media" and "multimedia" have been extracted into one single place, which is an
extension called "mediace". This extension is not installed by default but is shipped with the core.
The following Content Objects are not available anymore by default:
* MULTIMEDIA
* MEDIA
* SWFOBJECT
* FLOWPLAYER
* QTOBJECT
The Content Types "media" and "multimedia" are not available anymore by default.
The table column `tt_content.multimedia` is not available anymore by default.
Impact
======
Any TypoScript using any of the cObjects directly or Content Elements with the CType "media" or "multimedia"
will result in no output. Existing Content Elements of this type cannot be edited anymore.
Affected installations
======================
TYPO3 CMS 7 installations still using any of the cObjects or having Content Elements of CType "media" or "multimedia".
Migration
=========
Install the system extension "mediace" to regain all functionality as it was before.
.. index:: PHP-API, Frontend, Database, Backend, ext:mediace
@@ -0,0 +1,41 @@
.. include:: /Includes.rst.txt
.. _breaking-65432:
============================================================================
Breaking: #65432 - Storage of module URI in global variable has been removed
============================================================================
See :issue:`65432`
Description
===========
Previously the URI to a module which was dispatched through mod.php was stored
in a global variable `$GLOBALS['MCONF']['_']`.
In terms of cleanup of global variable usage and module configuration cleanup and streamlining,
this functionality has been removed without substitution.
Impact
======
Any backend module code which accesses `$GLOBALS['MCONF']['_']` to get the module URI will not work any more.
Affected installations
======================
TYPO3 CMS 7 installations using extensions with backend modules which use `$GLOBALS['MCONF']['_']`.
Migration
=========
Extension code needs to be changed in a way that the API `BackendUtility::getModuleUrl('module_name')` is used
instead of accessing `$GLOBALS['MCONF']['_']`.
.. index:: PHP-API, Backend
@@ -0,0 +1,48 @@
.. include:: /Includes.rst.txt
.. _breaking-65727:
=================================================================
Breaking: #65727 - Don't provide access to localPath of FAL files
=================================================================
See :issue:`65727`
Description
===========
It was possible to retrieve the local path of a FAL file via TypoScript
.. code-block:: typoscript
a = TEXT
a.value.data = file:current:localPath
The localPath property has been dropped for the following reasons:
* The implementation used allow write access to the file and hence created a local copy which created useless file garbage.
* Changing this to read-only access would cause the LocalDriver to return the true local path to the file, which would
open the possibility to file manipulation via "side channel" of FAL. This would make the FAL data inconsistent.
Impact
======
Any TypoScript using this file-property will stop working.
Affected Installations
======================
Any installation with TypoScript using this file-property
Migration
=========
There is no other possibility to retrieve this information. Use the FAL API.
.. index:: FAL, TypoScript, Frontend
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _breaking-65778:
===================================================================================
Breaking: #65778 - MediaWizard functionality is moved to system extension "mediace"
===================================================================================
See :issue:`65778`
Description
===========
The Media Wizard Provider for the "media" Content Element Type has been moved to the same system extension.
Impact
======
Any extensions registering their own Media Wizards need to install the system extension "mediace" and define a dependency
to this extension.
Affected installations
======================
TYPO3 CMS 7 installations using the "MEDIA" cObject or having Content Elements of CType "media" or "multimedia" with
custom media wizard providers.
Migration
=========
Make sure to install the system extension "mediace" and rename the function calls to use the new classes, see
the file :file:`ext_localconf.php` of the extension "mediace" for example usage.
.. index:: PHP-API, ext:mediace, Frontend, Backend
@@ -0,0 +1,40 @@
.. include:: /Includes.rst.txt
.. _breaking-65922:
======================================================================
Breaking: #65922 - Move unused tt_content TCA fields to compatibility6
======================================================================
See :issue:`65922`
Description
===========
There are some database fields defined in 'frontend' which are not used by `frontend` or `css_styled_content`. These
fields have been moved to `compatibility6`.
- altText
- imagecaption
- imagecaption_position
- image_link
- longdescURL
- titleText
Affected Installations
======================
All installations with extensions installed depending on these fields. For instance installations still
using `css_styled_content` static templates of the TYPO3 CMS 4.* versions.
Migration
=========
Add the moved TCA and SQL definitions to your own extension or install the compatibility extension `compatibility6`.
The latter is not recommended and should be considered a short-term solution.
.. index:: Database, Frontend
@@ -0,0 +1,52 @@
.. include:: /Includes.rst.txt
.. _breaking-65939:
============================================
Breaking: #65939 - Backend Login Refactoring
============================================
See :issue:`65939`
Description
===========
For the refactoring of the backend login we introduce Fluid as template engine and remove the old marker template.
It was necessary to remove the signal `LoginController::SIGNAL_RenderLoginForm` which will no longer be emitted.
Additionally the following methods of `LoginController` have been removed:
* `LoginController::makeLoginBoxImage`
* `LoginController::wrapLoginForm`
* `LoginController::makeLoginNews`
* `LoginController::makeLoginForm`
* `LoginController::makeLogoutForm`
Impact
======
The mentioned methods are no longer available and a fatal error will be triggered if used.
Affected installations
======================
All installations which make use of the `LoginController::SIGNAL_RenderLoginForm` signal or use the removed methods:
* `LoginController::makeLoginBoxImage`
* `LoginController::wrapLoginForm`
* `LoginController::makeLoginNews`
* `LoginController::makeLoginForm`
* `LoginController::makeLogoutForm`
Migration
=========
Use the introduced Fluid view to adapt the login screen to your demands.
.. index:: PHP-API, Backend
@@ -0,0 +1,58 @@
.. include:: /Includes.rst.txt
.. _breaking-65962:
======================================================================================
Breaking: #65962 - Third-party library "websvg" and the according API has been removed
======================================================================================
See :issue:`65962`
Description
===========
The third-party library "websvg" has been removed from the TYPO3 CMS Core. The according TypoScript options and
the public methods within PageRenderer have been removed without substitution.
The following PHP methods within PageRenderer have been removed:
.. code-block:: php
$pageRenderer->setSvgPath()
$pageRenderer->getSvgPath()
$pageRenderer->loadSvg()
$pageRenderer->enableSvgDebug()
$pageRenderer->svgForceFlash()
The following TypoScript options are removed:
.. code-block:: typoscript
page.javascriptLibs.SVG
page.javascriptLibs.SVG.debug
page.javascriptLibs.SVG.forceFlash
Impact
======
Any installation using one of the methods above in an extension will fail.
Any installation using `page.javascriptLibs.SVG = 1` will not include the websvg library anymore and might lead
to SVGs not being displayed anymore in certain browsers. Using the SVG Content Object will lead to the same result.
Affected installations
======================
TYPO3 CMS 7 installations using the TypoScript options, the SVG Content Object or the pageRenderer methods directly.
Migration
=========
Affected installations should include the "websvg" library directly from the library owner, and in their setups.
.. index:: PHP-API, TypoScript, Frontend, Backend
@@ -0,0 +1,44 @@
.. include:: /Includes.rst.txt
.. _breaking-66001:
=================================================================================
Breaking: #66001 - Third-party libraries installed via composer are now in vendor
=================================================================================
See :issue:`66001`
Description
===========
All composer-installed libraries which the TYPO3 Core uses are now installed under `vendor` (composer default vendor directory)
when running `composer install`. This way the packaging process for releasing TYPO3 CMS as tarball or zip
can trigger a fully working installation without having to ship Packages/ for third-party libraries. Before composer
installed all third-party libraries in the folder `Packages/Libraries`.
Impact
======
Any existing installation that is set up via composer based on the composer.json of the TYPO3.CMS.git repository
will break if Unit Tests or Functional Tests via `bin/phpunit` will fail unless composer dependencies have been
completely rebuilt.
Affected installations
======================
Installations using a Packages/ directory within the typo3_src/ folder structure, most commonly by having checked out
the TYPO3.CMS.git Repository and having run `composer install` after that. Any installations using the common
TYPO3 distribution from composer.typo3.org are not affected.
Migration
=========
Running `rm -rf vendor/ bin/ Packages/Libraries/ composer.lock; composer install` will make PHPunit
work again.
.. index:: PHP-API
@@ -0,0 +1,31 @@
.. include:: /Includes.rst.txt
.. _breaking-66034:
=======================================
Breaking: #66034 - Drop Content Adapter
=======================================
See :issue:`66034`
Description
===========
The TYPO3 configuration option [FE][activateContentAdapter] and the associated code has been dropped from the TYPO3 core.
This option was used to transform FAL fields back to old file fields.
Impact
======
Any installation using TypoScript referring to old file columns as present *before* TYPO3 CMS 6.x will stop working as expected.
Migration
=========
Change your TypoScript to use the new content object FILES to retrieve files.
.. index:: LocalConfiguration, Frontend, TypoScript
@@ -0,0 +1,44 @@
.. include:: /Includes.rst.txt
.. _breaking-66286:
=========================================================================
Breaking: #66286 - Page TSconfig options to hide Web Info modules renamed
=========================================================================
See :issue:`66286`
Description
===========
WEB > Info options in the function menu have new names in Page TSconfig properties to hide these modules
Impact
======
Page TSconfig options in `mod.web_info.menu.function` use new class names.
Affected Installations
======================
Installation which have options in the Info module disabled by using Page TSconfig `mod.web_info.menu.function`.
Migration
=========
The following properties under `mod.web_info.menu.function` have to be renamed:
* tx_cms_webinfo_page -> TYPO3\CMS\Frontend\Controller\PageInformationController
* tx_cms_webinfo_lang -> TYPO3\CMS\Frontend\Controller\TranslationStatusController
* tx_belog_webinfo -> TYPO3\CMS\Belog\Module\BackendLogModuleBootstrap
* tx_infopagetsconfig_webinfo -> TYPO3\CMS\InfoPagetsconfig\Controller\InfoPageTyposcriptConfigController
* tx_linkvalidator_ModFuncReport -> TYPO3\CMS\Linkvalidator\Report\LinkValidatorReport
* tx_indexedsearch_modfunc1 : removed, indexed_search has its own module
* tx_indexedsearch_modfunc2 : removed, indexed_search has its own module
.. index:: TSConfig, Backend
@@ -0,0 +1,44 @@
.. include:: /Includes.rst.txt
.. _breaking-66431:
===================================
Breaking: #66431 - New Login Screen
===================================
See :issue:`66431`
Description
===========
To keep the focus on the most recent news, the news are reduced to a single view
carousel where you can slide through the latest news.
A title for the news section is not needed anymore, in result
$GLOBALS['TYPO3_CONF_VARS']['BE']['loginNewsTitle'] is superfluous and has
been removed completely without replacement.
Impact
======
The news section title has been dropped without replacement.
There will be no alternative section title displayed.
Affected Installations
======================
Installations that used $GLOBALS['TYPO3_CONF_VARS']['BE']['loginNewsTitle'] to
set an alternative section title for the news.
Migration
=========
If an entry for BE/loginNewsTitle exists in your local configuration it will be
removed by the SilentConfigurationUpgradeService automatically.
.. index:: PHP-API, Backend, LocalConfiguration
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _deprecation-47712:
===============================================
Deprecation: #47712 - Deprecate old Locking API
===============================================
See :issue:`47712`
Description
===========
The old class `\TYPO3\CMS\Core\Locking\Locker` has been marked as deprecated.
The configuration option `[SYS][lockingMode]` is now marked as deprecated and only affects the old Locker class, which is
unused in the Core now.
Moreover two unused methods of `\TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController` have been marked as deprecated:
* acquirePageGenerationLock()
* releasePageGenerationLock()
Impact
======
Using the old class will trigger deprecation log messages.
Migration
=========
Use the new Locking Service API instead.
.. index:: PHP-API, Backend, LocalConfiguration
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _deprecation-51360:
====================================================================================
Deprecation: #51360 - Deprecate mod.tx_linkvalidator namespace in scheduler settings
====================================================================================
See :issue:`51360`
Description
===========
Using the `mod.tx_linkvalidator` namespace in the linkvalidator scheduler task
settings has been marked as deprecated. To make the setting consistent with TSconfig the namespace
is changed to `mod.linkvalidator`.
Impact
======
Using `mod.tx_linkvalidator` in the scheduler task settings will throw an deprecation log entry.
Affected installations
======================
Instances which use the linkvalidator scheduler task and use custom TSconfig in the task settings.
Migration
=========
Replace `mod.tx_linkvalidator` with `mod.linkvalidator` in all affected scheduler tasks.
.. index:: TSConfig, ext:linkvalidator, ext:scheduler
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _deprecation-64068:
============================================================
Deprecation: #64068 - Deprecate thumbs.php and ThumbnailView
============================================================
See :issue:`64068`
Description
===========
Prior to the File Abstraction Layer (FAL) there was :file:`typo3/thumbs.php` generating all preview images for the TYPO3
Backend resources. This functionality is now marked for removal in TYPO3 CMS 8, as all functionality in the core already
uses the File Abstraction Layer.
Impact
======
Using `ThumbnailView`, `thumbs.php` or `BackendUtility::getThumbNail()` will throw a deprecation warning.
Affected installations
======================
Any TYPO3 installation with custom extensions using one of the files / methods mentioned.
Migration
=========
Use the File Abstraction Layer for any custom works. See `BackendUtility::thumbCode()` for inspiration.
.. index:: PHP-API, Backend
@@ -0,0 +1,43 @@
.. include:: /Includes.rst.txt
.. _deprecation-64598:
==========================================================
Deprecation: #64598 - Deprecate PagePositionMap::JSimgFunc
==========================================================
See :issue:`64598`
Description
===========
The following function has been marked as deprecated:
* `\TYPO3\CMS\Backend\Tree\View\PagePositionMap::JSimgFunc`
This method was used only in class PagePositionMap. The implemented "onmouseover" / "onmouseout"
behaviour to switch between two images was dropped entirely for now. If this is needed, it should
done a different way.
Impact
======
Using this function in a backend module will throw a deprecation message.
Affected Installations
======================
Every Extension that uses the deprecated function.
Migration
=========
Write own JavaScript functions for your extension to handle onmouseover and onmouseout events to
switch between two images.
.. index:: PHP-API, JavaScript, Backend
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _deprecation-65111:
===================================
Deprecation: #65111 - getDynTabMenu
===================================
See :issue:`65111`
Description
===========
The DocumentTemplate method `getDynTabMenu()` has been marked as deprecated.
Impact
======
The method has been refactored and renamed. The new method `getDynamicTabMenu()` should be used.
The method `getDynTabMenu()` is now marked as deprecated.
Affected installations
======================
All installations which make use of `DocumentTemplate::getDynTabMenu()`
Migration
=========
Use `ModuleTemplate::getDynamicTabMenu()` instead of `DocumentTemplate::getDynTabMenu()`
.. index:: PHP-API, Backend
@@ -0,0 +1,34 @@
.. include:: /Includes.rst.txt
.. _deprecation-65283-1668719172:
=====================================================
Deprecation: #65283 - Deprecate show item entry point
=====================================================
See :issue:`65283`
Description
===========
The following entry point has been marked as deprecated:
* typo3/show_item.php
Impact
======
Using this entry point in a backend module will throw a deprecation message.
Migration
=========
Use `\TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl()` instead with the according module name.
`typo3/show_item.php` will have to be refactored to `\TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('show_item')`
.. index:: PHP-API, Backend
@@ -0,0 +1,34 @@
.. include:: /Includes.rst.txt
.. _deprecation-65288:
========================================================
Deprecation: #65288 - Deprecate "new record" entry point
========================================================
See :issue:`65288`
Description
===========
The following entry point has been marked as deprecated:
* typo3/db_new.php
Impact
======
Using this entry point in a backend module will throw a deprecation message.
Migration
=========
Use `\TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl()` instead with the according module name.
`typo3/db_new.php` will have to be refactored to `\TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('db_new')`
.. index:: PHP-API, Backend
@@ -0,0 +1,34 @@
.. include:: /Includes.rst.txt
.. _deprecation-65289:
===================================================
Deprecation: #65289 - Deprecate browser entry point
===================================================
See :issue:`65289`
Description
===========
The following entry point has been marked as deprecated:
* typo3/browser.php
Impact
======
Using this entry point in a backend module will throw a deprecation message.
Migration
=========
Use `\TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl()` instead with the according module name.
`typo3/browser.php` will have to be refactored to `\TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('browser')`
.. index:: PHP-API, Backend
@@ -0,0 +1,34 @@
.. include:: /Includes.rst.txt
.. _deprecation-65290:
=================================================
Deprecation: #65290 - Deprecate dummy entry point
=================================================
See :issue:`65290`
Description
===========
The following entry point has been marked as deprecated:
* typo3/dummy.php
Impact
======
Using this entry point in a backend module will throw a deprecation message.
Migration
=========
Use `\TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl()` instead with the according module name.
`typo3/dummy.php` will have to be refactored to `\TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('dummy')`
.. index:: PHP-API, Backend
@@ -0,0 +1,34 @@
.. include:: /Includes.rst.txt
.. _deprecation-65283:
==================================================
Deprecation: #65283 - Deprecate logout entry point
==================================================
See :issue:`65283`
Description
===========
The following entry point has been marked as deprecated:
* typo3/logout.php
Impact
======
Using this entry point in a backend module will throw a deprecation message.
Migration
=========
Use `\TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl()` instead with the according module name.
`typo3/logout.php` will have to be refactored to `\TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('logout')`
.. index:: PHP-API, Backend
@@ -0,0 +1,34 @@
.. include:: /Includes.rst.txt
.. _deprecation-65293:
=================================================================
Deprecation: #65293 - Deprecate file navigation frame entry point
=================================================================
See :issue:`65293`
Description
===========
The following entry point has been marked as deprecated:
* typo3/alt_file_navframe.php
Impact
======
Using this entry point in a backend module will throw a deprecation message.
Migration
=========
Use `\TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl()` instead with the according module name.
`typo3/alt_file_navframe.php` will have to be refactored to `\TYPO3\CMS\Backend\Utility\BackendUtility::getModuleUrl('file_navframe')`
.. index:: PHP-API, Backend
@@ -0,0 +1,30 @@
.. include:: /Includes.rst.txt
.. _deprecation-64134:
============================================
Deprecation: #64134 - Deprecate $BE_USER->OS
============================================
See :issue:`64134`
Description
===========
The public property in the global object `$BE_USER->OS` has been marked as deprecated.
Affected installations
======================
Instances with extensions that make use of the public property directly.
Migration
=========
Use the constant `TYPO3_OS` directly.
.. index:: PHP-API, Backend
@@ -0,0 +1,42 @@
.. include:: /Includes.rst.txt
.. _deprecation-65360:
====================================================================================
Deprecation: #65360 - Deprecate wrong class name used in PostProcessTree Signal call
====================================================================================
See :issue:`65360`
Description
===========
In DatabaseTreeDataProvider there is a PostProcessTree signal called via SignalSlot dispatcher.
The wrong class name `TYPO3\CMS\Core\Tree\TableConfiguration\TableConfiguration\DatabaseTreeDataProvider`
was used prior to this change. This class name has now been marked as deprecated.
The correct name is `TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider`
Impact
======
Wrong class name was used for the PostProcessTree signal.
The old one is now deprecated.
Affected installations
======================
All installations which have signals connected to the old/wrong class name
`TYPO3\CMS\Core\Tree\TableConfiguration\TableConfiguration\DatabaseTreeDataProvider`.
Migration
=========
* Use `TYPO3\CMS\Core\Tree\TableConfiguration\DatabaseTreeDataProvider::class`
instead of `TYPO3\CMS\Core\Tree\TableConfiguration\TableConfiguration\DatabaseTreeDataProvider`
.. index:: PHP-API
@@ -0,0 +1,39 @@
.. include:: /Includes.rst.txt
.. _deprecation-65381:
==========================================================================
Deprecation: #65381 - Deprecate DataHandler property "stripslashes_values"
==========================================================================
See :issue:`65381`
Description
===========
The DataHandler property `stripslashes_values` has been marked as deprecated.
Impact
======
A deprecation message is logged for every time DataHandler processes data if this property
is set to TRUE.
Affected installations
======================
All installations or extensions relying on the DataHandler property `stripslashes_values`.
Migration
=========
Set the `stripslashes_values` property to FALSE and apply `stripslashes()` in the code that
prepares the data if it was expected that DataHandler stripped the slashes from incoming
data.
.. index:: PHP-API, Backend
@@ -0,0 +1,39 @@
.. include:: /Includes.rst.txt
.. _deprecation-65422:
============================================================
Deprecation: #65422 - Alias cObjects COBJ_ARRAY and CASEFUNC
============================================================
See :issue:`65422`
Description
===========
The cObject aliases `COBJ_ARRAY` (alias for `COA`) and `CASEFUNC` (alias for `CASE`) have been moved to the compatibility6 extension.
The use of these aliases have been marked for deprecation.
Impact
======
Any usage of TypoScript using `COBJ_ARRAY` and `CASEFUNC` will not work anymore unless the compatibility6 extension is
installed.
Affected installations
======================
All installations with TypoScript in `COBJ_ARRAY` and `CASEFUNC`.
Migration
=========
Use `COA` instead of `COBJ_ARRAY` and `CASE` instead of `CASEFUNC` in all TypoScript code.
Installing ext:compatibility6 can be used as a short-term solution, although this is discouraged.
.. index:: PHP-API, TypoScript, Frontend
@@ -0,0 +1,32 @@
.. include:: /Includes.rst.txt
.. _deprecation-65465:
==========================================================
Deprecation: #65465 - Deprecate errorLog in ReferenceIndex
==========================================================
See :issue:`65465`
Description
===========
The method `\TYPO3\CMS\Core\Database\ReferenceIndex::error()` and the according property
`\TYPO3\CMS\Core\Database\ReferenceIndex::errorLog` have been marked as deprecated. It was not used and always empty.
Impact
======
Calling `ReferenceIndex::error()` will throw a deprecation message. This function should not be used from outside the
core.
Migration
=========
Extensions that used this property to log errors have to use their own errorLog.
.. index:: PHP-API, Backend
@@ -0,0 +1,30 @@
.. include:: /Includes.rst.txt
.. _deprecation-65913:
=======================================================
Deprecation: #65913 - Deprecate $TSFE->checkFileInclude
=======================================================
See :issue:`65913`
Description
===========
The public method in the global frontend controller `$TSFE->checkFileInclude()` has been marked as deprecated.
Affected installations
======================
Instances with extensions that make use of the method directly.
Migration
=========
Use the autoloader for classes or `$TSFE->tmpl->getFileName()` if needed.
.. index:: PHP-API, Frontend
@@ -0,0 +1,52 @@
.. include:: /Includes.rst.txt
.. _deprecation-65934:
====================================================================================
Deprecation: #65934 - "Prefix Local Anchors" functionality moved to legacy extension
====================================================================================
See :issue:`65934`
Description
===========
Prefixing local anchors is not considered best practice in web sites anymore as the same is achieved with
absolute prefixes for links (see `config.absRefPrefix`). Therefore the according functionality has been moved to
the legacy extension EXT:compatibility6.
The following TypoScript option has been marked for deprecation:
.. code-block:: typoscript
config.prefixLocalAnchors
The following PHP methods have been marked for deprecation:
.. code-block:: php
TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::prefixLocalAnchorsWithScript()
TYPO3\CMS\Frontend\Controller\TypoScriptFrontendController::doLocalAnchorFix()
Impact
======
The content output of the TYPO3 frontend is not prefixed with local anchors anymore unless EXT:compatibility6 is loaded.
Affected installations
======================
Any installation having the TypoScript option `config.prefixLocalAnchors` set will have different behaviour in the
frontend rendering.
Migration
=========
For TYPO3 CMS 7, installing EXT:compatibility6 brings back the existing functionality.
.. index:: TypoScript, Frontend
@@ -0,0 +1,39 @@
.. include:: /Includes.rst.txt
.. _deprecation-65938:
===============================================================
Deprecation: #65938 - Discourage usage of "$TSFE->anchorPrefix"
===============================================================
See :issue:`65938`
Description
===========
The property "anchorPrefix" within TypoScriptFrontendController is set to the relative path from the public site
root when `config.baseURL` is set, and can be used to prefix local anchors with that prefix. The option has been
marked as deprecated in favor of using `config.absRefPrefix` when this functionality is needed.
Affected installations
======================
All installations or extensions relying on the TypoScriptFrontendController property "anchorPrefix" running
with the TypoScript option `config.baseURL` enabled.
Migration
=========
Use the PHP code below directly to fetch the information when needing baseURL and the anchorPrefix option.
.. code-block:: php
GeneralUtility::getIndpEnv('TYPO3_REQUEST_URL'), strlen(GeneralUtility::getIndpEnv('TYPO3_SITE_URL'))
Alternatively, use `config.absRefPrefix` to achieve the same result.
.. index:: TypoScript, Frontend
@@ -0,0 +1,37 @@
.. include:: /Includes.rst.txt
.. _deprecation-65956:
========================================================================
Deprecation: #65956 - $returnHTML parameter of DebugUtility::debugRows()
========================================================================
See :issue:`65956`
Description
===========
The parameter `$returnHTML` of the method `\TYPO3\CMS\Core\Utility\DebugUtility::debugRows()` is not used anymore and
has been marked for deprecation.
Impact
======
The parameter is not used anymore.
Affected installations
======================
All method calls using this parameter are affected.
Migration
=========
Remove the parameter in the method call.
.. index:: PHP-API
@@ -0,0 +1,39 @@
.. include:: /Includes.rst.txt
.. _deprecation-66065:
==================================================
Deprecation: #66065 - Backend Logo View Deprecated
==================================================
See :issue:`66065`
Description
===========
The logo view class responsible for the rendering of the TYPO3 Logo in the left corner of the backend is not in use
anymore and marked for deprecation. The logic for exchanging the logo via TBE_STYLES is still available.
Impact
======
Installations extending `TYPO3\CMS\Backend\View\LogoView` as an XCLASS will not see
any modified output anymore.
Affected Installations
======================
Installations extending `TYPO3\CMS\Backend\View\LogoView` as an XCLASS.
Migration
=========
As the same logic is now done in the BackendController and the main Backend Fluid Template, the template can be
modified to fit the installations' needs.
.. index:: PHP-API, Backend
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _deprecation-66223:
==================================================
Deprecation: #66223 - Backend parseTime deprecated
==================================================
See :issue:`66223`
Description
===========
The option to show the parse time of the rendered script on the bottom of the HTML page has been marked for deprecation
and is not in use anymore.
Impact
======
Debug information is not shown anymore on a backend page if the member var `$parseTimeFlag` is enabled.
Affected Installations
======================
Installations with 3rd-party extensions manually activating this option by e.g. XCLASSing or hooking into the main
document template class.
Migration
=========
Do not set the member var to `TRUE`.
.. index:: PHP-API, Backend
@@ -0,0 +1,45 @@
.. include:: /Includes.rst.txt
.. _deprecation-66431:
======================================
Deprecation: #66431 - New Login Screen
======================================
See :issue:`66431`
Description
===========
The login screen is now supporting background images and adjustable highlight
colors out of the box. Settings for the login screen can now be accessed in
the backend extension settings.
Since the needed settings for the login screen were moved to the backend extension
configuration, `$GLOBALS['TBE_STYLES']['logo_login']` is only used as fallback.
The option has been marked as deprecated and will be removed with TYPO3 CMS 8.
Impact
======
`$GLOBALS['TBE_STYLES']['logo_login']` will add a deprecation log message and
is still used as fallback to the new option but will be removed with TYPO3 CMS 8.
Affected Installations
======================
Installations that use `$GLOBALS['TBE_STYLES']['logo_login']` to set an alternative
logo for the backend login.
Migration
=========
Remove the `$GLOBALS['TBE_STYLES']['logo_login']` from your setup and go to the
extension manager to edit the configuration for the backend extension.
.. index:: PHP-API, Backend
@@ -0,0 +1,70 @@
.. include:: /Includes.rst.txt
.. _feature-20555:
=====================================================
Feature: #20555 - Strip empty HTML tags in HtmlParser
=====================================================
See :issue:`20555`
Description
===========
A new functionality is introduced in the HtmlParser that allows the stripping of empty HTML tags.
It can be used in the Frontend by using the :ref:`HTMLparser <t3tsref:htmlparser>` TypoScript
configuration of :ref:`stdWrap <t3tsref:stdwrap-htmlparser>`:
.. code-block:: typoscript
stdWrap {
# If this is set all empty tags are stripped, unless a list of tags is provided below.
HTMLparser.stripEmptyTags = 1
# This setting can be used to filter the tags that should be stripped if they are empty.
HTMLparser.stripEmptyTags.tags = h2, h3
}
It is also possible to use it in the
:ref:`HTMLparser_rte or HTMLparser_db <t3coreapi:transformations-tsconfig-processing-htmlparser>`
in Page TSconfig:
.. code-block:: typoscript
# For rtehtmlarea we need to use the entry parser because otherwise the p tags will
# be converted to linebreaks during the RTE transformation.
RTE.default.proc.entryHTMLparser_db {
stripEmptyTags = 1
stripEmptyTags.tags = p
# Since rtehtmlarea adds non breaking spaces in empty <p> tags we need to
# tell the parser that &nbsp; should be treated as an empty string:
stripEmptyTags.treatNonBreakingSpaceAsEmpty = 1
}
.. tip::
Please note that the HTMLparser will strip all unknown tags by default. If you **only** want
to strip empty tags, you need to set `keepNonMatchedTags` to TRUE or configure the allowed tags:
.. code-block:: typoscript
stdWrap {
HTMLparser.keepNonMatchedTags = 1
HTMLparser.stripEmptyTags = 1
HTMLparser.stripEmptyTags.tags = h2, h3
}
Impact
======
If the configuration is not set, the HtmlParser behaves like before so there is no
impact to existing systems (unless they already have used the stripEmptyTags setting
for whatever reason).
.. index:: PHP-API, RTE, TypoScript, TSConfig, Backend, Frontend
@@ -0,0 +1,19 @@
.. include:: /Includes.rst.txt
.. _feature-32651:
==============================================================
Feature: #32651 - Add scheduler task to remove deleted records
==============================================================
See :issue:`32651`
Description
===========
A new scheduler task for removing deleted records has been added. The maximum age and
the affected tables are configurable in the task's settings.
.. index:: ext:scheduler, CLI, Backend
@@ -0,0 +1,72 @@
.. include:: /Includes.rst.txt
.. _feature-36743:
============================================================
Feature: #36743 - Registry for adding text extractor classes
============================================================
See :issue:`36743`
Description
===========
Text extraction from files is a complex task. Thus it would be un-wise to
implement that over and over again if needed. By providing a registry, text
extraction services can be provided to other extensions.
It is expected that there won't ever be a lot of implementations for text
extractors.
The core ships with an extractor for plain text files (.txt file extension).
When asking the registry to provide a text extractor for a file it will "ask"
the registered text extractors whether they can read the file. The first text
extractor returning TRUE will be returned and can then be used to actually
read/extract text from the file.
Every registered text extractor class needs to implements the
TextExtractorInterface with the following methods:
- canExtractText() gets a file reference and returns TRUE if the text extractor
can extract text from that file. How this is determined is up to the text
extractor, f.e. by using MIME type or file extension as indicators.
- extractText() gets a file reference and is expected to return the file's text
content as string.
It is possible to register your own text extractor classes in the
ext_localconf.php of an extension.
Examples
--------
Text extractor registration
.. code-block:: php
$textExtractorRegistry = \TYPO3\CMS\Core\Resource\TextExtraction\TextExtractorRegistry::getInstance();
$textExtractorRegistry->registerTextExtractor(
\TYPO3\CMS\Core\Resource\TextExtraction\PlainTextExtractor::class
);
Usage
.. code-block:: php
$textExtractorRegistry = \TYPO3\CMS\Core\Resource\TextExtraction\TextExtractorRegistry::getInstance();
$extractor = $textExtractorRegistry->getTextExtractor($file);
if ($extractor !== NULL) {
$content = $extractor->extractText($file);
}
Impact
======
The registry on its own doesn't do anything. It provides a facility in the core
that allows extensions to provide text extraction services to be used by other
extensions.
.. index:: PHP-API, FAL
@@ -0,0 +1,60 @@
.. include:: /Includes.rst.txt
.. _feature-47712:
=================================
Feature: #47712 - New Locking API
=================================
See :issue:`47712`
Description
===========
The new Locking API follows a new approach. Due to the problem of a very scattered support of locking methods
in the various operating systems, the new API introduces a locking service, which provides access to the various
locking methods. Some basic methods are shipped with the Core, but the available methods may be extended by
extensions.
A locking method has to implement the `LockingStrategyInterface`. Each method has a set of capabilities, which
may vary depending on the current system, and a priority.
If a function requires a lock, the locking service is asked for the best fitting mechanism matching the requested
capabilities.
e.g. Semaphore locking is only available on Linux systems.
Usage example
=============
Acquire a simple exclusive lock:
.. code-block:: php
$lockFactory = GeneralUtility::makeInstance(LockFactory::class);
$locker = $lockFactory->createLocker('someId');
$locker->acquire() || die('ups, lock couldn\'t be acquired. That should never happen.');
...
$locker->release();
Some methods also support non-blocking locks:
.. code-block:: php
$lockFactory = GeneralUtility::makeInstance(LockFactory::class);
$locker = $lockFactory->createLocker(
'someId',
LockingStrategyInterface::LOCK_CAPABILITY_SHARED | LockingStrategyInterface::LOCK_CAPABILITY_NOBLOCK
);
try {
$result = $locker->acquire(LockingStrategyInterface::LOCK_CAPABILITY_SHARED | LockingStrategyInterface::LOCK_CAPABILITY_NOBLOCK);
catch (LockAcquireWouldBlockException $e) {
// some process owns the lock, let's do something else meanwhile
}
if ($result) {
$locker->release();
}
.. index:: PHP-API
@@ -0,0 +1,31 @@
.. include:: /Includes.rst.txt
.. _feature-50136:
=================================
Feature: #50136 - Add SVG support
=================================
See :issue:`50136`
Description
===========
Added rendering support for SVG images. When an SVG image is scaled there is no processed file created but only a
sys_file_processedfile record with the calculated new dimensions.
When a mask of explicit cropping is set for an SVG image, the a processed file is created like for all other images.
An extra fallback is added to ImageInfo to determine SVG dimensions when IM/GM fails. The new fallback reads the
contents of the SVG file as a normal XML file and tries to find width and height in the outer tag. When no
width and height are found viewBox is checked and when present the 3th and 4th value are used as width and height.
Impact
======
SVG is added as default supported image file extension to `$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']`.
.. index:: LocalConfiguration, FAL
@@ -0,0 +1,22 @@
.. include:: /Includes.rst.txt
.. _feature-50501:
===================================================================
Feature: #50501 - Extension Manager: Disable automatic installation
===================================================================
See :issue:`50501`
Description
===========
The extension manager currently downloads and installs an extension from TER directly. Some people want to do
audits or modifications before installing an extension, therefore there is now an option to disable the automatic
installation process and just download an extension.
The option is located in the settings of the extension manager itself (Extensions > Installed > Extension Manager).
.. index:: ext:extensionmanager
@@ -0,0 +1,20 @@
.. include:: /Includes.rst.txt
.. _feature-59646:
================================================
Feature: #59646 - Add TSFE property $requestedId
================================================
See :issue:`59646`
Description
===========
A new property within the main TypoScriptFrontendController for the frontend called $requestedId stores
the information about the page ID which is set before the page ID processing and resolving.
It is accessible via `$TSFE->getRequestedId()`. Also see `$TSFE->fetch_the_id()` method.
.. index:: PHP-API, Frontend
@@ -0,0 +1,38 @@
.. include:: /Includes.rst.txt
.. _feature-58621:
======================================
Feature: #58621 - FormatCaseViewHelper
======================================
See :issue:`58621`
Description
===========
Add a format case view helper to change casing of strings.
Possible modes are:
* `upper` Transforms the input string to its uppercase representation
* `lower` Transforms the input string to its lowercase representation
* `capital` Transforms the input string to its first letter upper-cased
* `uncapital` Transforms the input string to its first letter lower-cased
.. code-block:: html
<f:format.case>Some Text with miXed case</f:format.case> renders "SOME TEXT WITH MIXED CASE"
<f:format.case mode="capital">someString</f:format.case> renders "SomeString"
Impact
======
The new ViewHelper can be used in all new projects. There is no interference with any part of existing code.
.. index:: Fluid
@@ -0,0 +1,21 @@
.. include:: /Includes.rst.txt
.. _feature-59646-1668719172:
================================================================================================
Feature: #59646 - Add RTE configuration property buttons.link.[*type*].properties.target.default
================================================================================================
See :issue:`59646`
Description
===========
New RTE configuration property `buttons.link.[*type*].properties.target.default` may be used
in Page TSconfig to configure a default target for links of a given type.
Possible link types are: page, file, url, mail, spec. More types may be provided by extensions.
.. index:: TSConfig, RTE, Backend
@@ -0,0 +1,58 @@
.. include:: /Includes.rst.txt
.. _feature-59712:
===========================================================
Feature: #59712 - Additional params for HTMLparser userFunc
===========================================================
See :issue:`59712`
Description
===========
It is now possible to supply additional parameters to a userFunc of the HTMLparser:
::
myobj = TEXT
myobj.value = <a href="/" class="myclass">MyText</a>
myobj.HTMLparser.tags.a.fixAttrib.class {
userFunc = Tx\MyExt\Myclass->htmlUserFunc
userFunc.myparam = test1
}
By default only the value of the processed attribute is passed to the userFunc
as the first parameter:
::
function htmlUserFunc($attributeValue, HtmlParser $htmlParser) {
// $attributeValue is set to the current attribute value "myclass"
}
When additional options are provided as described above, these options will be
passed in the first function parameter as an array. The attribute value is passed
in the array with the ``attributeValue`` array key.
::
function htmlUserFunc(array $params, HtmlParser $htmlParser) {
// $params['attributeValue'] contains the current attribute value "myclass".
// $params['myparam'] is set to "test" in the current example.
}
Impact
======
If additional parameters are provided to the HTMLparser userFunc setting the first parameter
passed to the called function changes from a string with the attribute value to an array
containing the attributeValue key and all additional settings.
This has an impact to all installations where additional parameters are used in the userFunc
setting of the HTMLparser.
.. index:: PHP-API, RTE, TypoScript, Frontend
@@ -0,0 +1,28 @@
.. include:: /Includes.rst.txt
.. _feature-61463:
==============================================================
Feature: #61463 - Allow processed folders in different storage
==============================================================
See :issue:`61463`
Description
===========
The processing folder of a storage can now be a combined identifier.
This makes it possible to have the processed files outside of the
storage in case of a read-only storage for instance.
Impact
======
For existing systems there is no impact. When the processing folder is changed
to a folder in a different storage you need to make sure the folder exists
and is writable.
.. index:: FAL, Database, Backend
@@ -0,0 +1,32 @@
.. include:: /Includes.rst.txt
.. _feature-63040:
=====================================================================================
Feature: #63040 - Add RTE configuration property buttons.abbreviation.removeFieldsets
=====================================================================================
See :issue:`63040`
Description
===========
The new property `buttons.abbreviation.removeFieldsets` may be used in Page TSconfig
to configure the abbreviation dialogue.
If set, the listed fieldsets of the Abbreviation dialogue are not shown.
Possible values in the list are: acronym, definedAcronym, abbreviation, definedAbbreviation
Impact
======
The acronym tag is deprecated in HTML5. Installations that want to use the Abbreviation
feature of the RTE, but do not wish to use the acronym setting tab of the Abbreviation
dialogue, may set this property in the Page TSconfig of the RTE, specifying
`buttons.abbreviation.removeFieldsets = acronym,definedAcronym`
.. index:: TSConfig, RTE, Backend
@@ -0,0 +1,19 @@
.. include:: /Includes.rst.txt
.. _feature-63703:
====================================================================
Feature: #63703 - Add option to stop a running task in the scheduler
====================================================================
See :issue:`63703`
Description
===========
The scheduler CLI has received an option to stop a running task.
The new option can be used with "-s".
.. index:: CLI, ext:scheduler
@@ -0,0 +1,18 @@
.. include:: /Includes.rst.txt
.. _feature-64686:
================================================================
Feature: #64686 - Add backend user groups to backend user module
================================================================
See :issue:`64686`
Description
===========
The backend user groups can now be maintained in a sub-module of the
"Backend users" backend module.
.. index:: Backend, ext:beuser
@@ -0,0 +1,55 @@
.. include:: /Includes.rst.txt
.. _feature-65584:
====================================
Feature: #65584 - Add image cropping
====================================
See :issue:`65584`
Description
===========
A new functionality is introduced that allows the editor to define image cropping settings to a *sys_file_reference*.
The current support crop setting is a comma separated string defining: offsetX,offsetY,width,height
Impact
======
The value set for a *sys_file_reference* will be passed through to the image rendering of TYPO3 by default.
The new option of *sys_file_reference* is defined as exclude field in TCA so it needs to be enabled for editors.
Disable cropping of image when used with *typoscript* rendering:
.. code-block:: typoscript
# Disable cropping for all images
tt_content.image.20.1.file.crop =
Set custom cropping setting for when used with *typoscript* rendering:
.. code-block:: typoscript
# Overrule/set cropping for all images
tt_content.image.20.1.file.crop = 50,50,100,100
Disable cropping of image when used in *fluid*:
.. code-block:: html
<f:image image="{imageObject}" crop="" />
Set custom cropping setting for image when used in *fluid*:
.. code-block:: html
<f:image image="{imageObject}" crop="50,50,100,100" />
.. index:: Fluid, Backend, Frontend
@@ -0,0 +1,47 @@
.. include:: /Includes.rst.txt
.. _feature-65585:
================================================
Feature: #65585 - Add TCA type imageManipulation
================================================
See :issue:`65585`
Description
===========
TCA type `imageManipulation` brings an image manipulation wizard to the core.
This first version brings image cropping with the possibility to
set a certain aspect ratio for the cropped area. The
sys_file_reference.crop property is extended and can now also hold
a json string to describe the image manipulation.
The `LocalCropScaleMaskHelper` that is used by the core
to create adjusted images is also adjusted to handle the new format.
Impact
======
There is an new TCA type column type `imageManipulation` it supports the following config:
- file_field: string, default `uid_local`
- enableZoom: bool, default `FALSE`
- allowedExtensions: string, default `$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']`
- ratios: array, default
- '1.7777777777777777' => '16:9',
- '1.3333333333333333' => '4:3',
- '1' => '1:1',
- 'NaN' => 'Free',
When `ratios` is set in TCA the defaults are neglected.
Property `sys_file_reference.crop` can now hold a string representing a json object. `LocalCropScaleMaskHelper` checks
if the it can parse the string as json. If it can it assumes it holds the properties: `x`, `y`, `width` and `height`.
.. index:: TCA, LocalConfiguration, Backend
@@ -0,0 +1,106 @@
.. include:: /Includes.rst.txt
.. _feature-65767:
=============================================
Feature: #65767 - System Information Dropdown
=============================================
See :issue:`65767`
Description
===========
A new, extensible flyout menu item is introduced that contains information about
the system TYPO3 is installed on.
Impact
======
In a default installation. the new flyout item will be placed between the "help" and the "user"
flyout items and is accessible by administrators only.
Items
^^^^^
It is possible to add own system information items by creating a slot. The slot must be registered in
an extension's ext_localconf.php
.. code-block:: php
$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
$signalSlotDispatcher->connect(
\TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem::class,
'getSystemInformation',
\Vendor\Extension\SystemInformation\Item::class,
'getItem'
);
This requires the class `Item` and its method `getItem()` in EXT:extension\Classes\SystemInformation\Item.php:
.. code-block:: php
class Item {
public function getItem() {
return array(array(
'title' => 'The title shown on hover',
'value' => 'Description shown in the list',
'status' => SystemInformationHookInterface::STATUS_OK,
'count' => 4,
'icon' => \TYPO3\CMS\Backend\Utility\IconUtility::getSpriteIcon('extensions-example-information-icon')
));
}
}
Due to the SignalSlot internals, the data array must be encapsulated with another array! If there is no data to return, return `NULL`.
The icon `extensions-example-information-icon` must be registered in ext_localconf.php:
.. code-block:: php
\TYPO3\CMS\Backend\Sprite\SpriteManager::addSingleIcons(
array(
'information-icon' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath($_EXTKEY) . 'Resources/Public/Images/Icons/information-icon.png'
),
$_EXTKEY
);
"extensions-" is a hardcoded prefix, combined with `$_EXTKEY` (e.g. "example") creates the prefix "extensions-example-" to
be used with every icon being registered. Since the first parameter of `SpriteManager::addSingleIcons()` is an array, multiple icons
can be registered at once.
Messages
^^^^^^^^
Messages are shown at the bottom og the dropdown. An extension can provide its own slot to fill the messages:
.. code-block:: php
$signalSlotDispatcher = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\SignalSlot\Dispatcher::class);
$signalSlotDispatcher->connect(
\TYPO3\CMS\Backend\Backend\ToolbarItems\SystemInformationToolbarItem::class,
'loadMessages',
\Vendor\Extension\SystemInformation\Message::class,
'getMessage'
);
This requires the class `Message` and its method `getMessage()` in EXT:extension\Classes\SystemInformation\Message.php:
.. code-block:: php
class Message {
public function getMessage() {
return array(array(
'status' => SystemInformationHookInterface::STATUS_OK,
'text' => 'Something went somewhere terribly wrong. Take a look at the reports module.'
));
}
}
Due to the SignalSlot internals, the data array must be encapsulated with another array! If there is no data to return, return `NULL`.
.. index:: PHP-API, Backend
@@ -0,0 +1,24 @@
.. include:: /Includes.rst.txt
.. _feature-65996:
===================================================================================
Feature: #65996 - Show confirm message on closing an edit form with unsaved changes
===================================================================================
See :issue:`65996`
Description
===========
A new functionality is introduced that asks the editor to confirm closing an edit form with unsaved changes.
Impact
======
When clicking the close icon of an edit form with unsaved changes, a confirmation modal will be shown.
.. index:: Backend
@@ -0,0 +1,26 @@
.. include:: /Includes.rst.txt
.. _feature-66029:
=============================================================
Feature: #66029 - Show remaining characters below text fields
=============================================================
See :issue:`66029`
Description
===========
The amount of remaining characters is displayed below text fields.
Impact
======
When focusing a form field, the amount of remaining characters gets
rendered below the form field, if a TCA field definition has the "max"
definition.
.. index:: TCA, Backend
@@ -0,0 +1,41 @@
.. include:: /Includes.rst.txt
.. _feature-66042:
======================================================
Feature: #66042 - Web Libraries are included via bower
======================================================
See :issue:`66042`
Description
===========
Web libraries like Bootstrap, jQuery or Font Awesome are now installed via bower package management,
see http://bower.io/ for details on how bower is set up.
All third-party libraries needed to build final CSS or JS files that will be shipped with the core are
excluded from the TYPO3 Core Git and installed via bower when building e.g. a new CSS file out of less.
For setting up a development environment working with web libraries bower (which can be installed via npm
on a local machine) installs all needed dependencies defined in bower.json. The file .bowerrc describes
where the files are put. To set up the third-party libraries and their dependencies, execute the following
command.
.. code-block:: text
bower install
For updating the code-base to a new version, the bower.json in the root directory can be adapted.
Executing `bower update` will then update the third-party libraries.
Impact
======
Setting up a development environment when working with frontend libraries (e.g. LESS)
requires npm and bower to be installed on the local machine.
.. index:: JavaScript, Backend
@@ -0,0 +1,84 @@
.. include:: /Includes.rst.txt
.. _feature-66047:
=======================================================
Feature: #66047 - Introduce JavaScript notification API
=======================================================
See :issue:`66047`
Description
===========
The Flashmessages API has been moved from `TYPO3.Flashmessages` to `top.TYPO3.Flashmessages` in TYPO3 CMS 7.0.
Now we introduce the new JavaScript Notification API and remove the refactoring of the FlashMessage API which was made for TYPO3 CMS 7.0.
The compatibility layer for TYPO3.FlashMessage has changed to use the new Notification API and will be removed with TYPO3 v9 as before.
The new Notification API works similar to old Flashmessages, you can use it from the Top-Frame, where is it loaded one time for the complete backend.
Please look at the examples section in this document for more details.
Migration
=========
The affected 3rd party extensions must be modified to use `top.TYPO3.Notification` instead of `top.TYPO3.Flashmessages`.
Examples:
1) Old and new syntax in general
.. code-block:: javascript
// Old and deprecated:
top.TYPO3.Flashmessages.display(TYPO3.Severity.notice)
// New and the only correct way:
top.TYPO3.Notification.notice(title, message)
2) Notice notification
.. code-block:: javascript
// duration is optional, default is 5 seconds
top.TYPO3.Notification.notice(title, message, duration)
3) Info notification
.. code-block:: javascript
// duration is optional, default is 5 seconds
top.TYPO3.Notification.info(title, message, duration)
4) Success notification
.. code-block:: javascript
// duration is optional, default is 5 seconds
top.TYPO3.Notification.success(title, message, duration)
5) Warning notification
.. code-block:: javascript
// duration is optional, default is 5 seconds
top.TYPO3.Notification.warning(title, message, duration)
6) Error notification
.. code-block:: javascript
// duration is optional, default is 0 seconds which means sticky!
top.TYPO3.Notification.error(title, message, duration)
.. index:: JavaScript, Backend
@@ -0,0 +1,49 @@
.. include:: /Includes.rst.txt
.. _feature-66077:
==============================================================
Feature: #66077 - Introduce callouts to replace content alerts
==============================================================
See :issue:`66077`
Description
===========
In several places alerts (flash messages) were used to display context information.
We introduce content info boxes and replace all occurrences where flash messages were used.
Impact
======
We introduced a new layout for context information and added a ViewHelper to render the markup.
Examples
========
Simple info box with a title. Please note that the title will always be HTML encoded by the ViewHelper
.. code-block:: html
<f:be.infobox title="Message title">your box content</f:be.infobox>
All options of the ViewHelper. If you pass your message as ViewHelper argument, it will also be HTML encoded.
.. code-block:: html
<f:be.infobox title="Message title" message="your box content" state="-2" iconName="check" disableIcon="TRUE" />
If you really need to output HTML in your message, use the closing variant. All children of the ViewHelper will be used as message.
.. code-block:: html
<f:be.infobox title="Message title" state="-2" iconName="check" disableIcon="TRUE">
<h1>{AlertMessage}</h1>
</f:be.infobox>
.. index:: Fluid, Backend
@@ -0,0 +1,62 @@
.. include:: /Includes.rst.txt
.. _feature-66370:
========================================================
Feature: #66370 - Add flexible Preview URL configuration
========================================================
See :issue:`66370`
Description
===========
It is now possible to configure the preview link generated for the save+view button in Backend.
This allows to have different preview URLs depending on the record type.
Common usecase is to have previews for blog or news records, but this feature now allows you to
define a different preview page for content elements as well, which might be handy if those are stored
in a sysfolder.
Impact
======
New page TSconfig is introduced. The options are:
.. code-block:: typoscript
TCEMAIN.preview {
<table name> {
previewPageId = 123
useDefaultLanguageRecord = 0
fieldToParameterMap {
uid = tx_myext_pi1[showUid]
}
additionalGetParameters {
tx_myext_pi1.special = HELLO # results in tx_myext_pi1[special]
}
}
}
The `previewPageId` is the uid of the page to use for preview. If this setting is omitted the current page will be used.
If the current page is not a normal page, the root page will be chosen.
The `useDefaultLanguageRecord` defaults to `1` and ensures that translated records will use the uid of the default record
for the preview link. You may disable this, if your extension can deal with the uid of translated records.
The `fieldToParameterMap` is a mapping which allows you to select fields of the record to be included as GET-parameters in
the preview link. The key specifies the field name and the value specifies the GET-parameter name.
Finally `additionalGetParameters` allow you to add arbitrary GET-parameters and even override others.
Predefined GET-parameters
^^^^^^^^^^^^^^^^^^^^^^^^^
The Core automatically sets the `no_cache` and the `L` parameter. The language matches the language of the current record.
You may override each parameter by using the `additionalGetParameters` configuration option.
.. index:: TSConfig, Frontend, Backend
@@ -0,0 +1,32 @@
.. include:: /Includes.rst.txt
.. _feature-66445:
========================================================
Feature: #66445 - Add file extension to mimeType mapping
========================================================
See :issue:`66445`
Description
===========
As a fix for wrong mimeType detection for SVG files without XML prologue we added a new setting to map known file extensions to mimeTypes.
The new setting is `$GLOBALS['TYPO3_CONF_VARS']['SYS']['FileInfo']['fileExtensionToMimeType']` which contains an array:
.. code-block:: php
array(
'svg' => 'image/svg+xml'
)
Impact
======
The automatic detection for mimeTypes works great, but in some special cases not.
This new setting should only be used, if the automatic detection fails.
.. index:: LocalConfiguration
+42
View File
@@ -0,0 +1,42 @@
:template: changelogOverview.html
.. include:: /Includes.rst.txt
.. _changelog-7-2:
7.2 Changes
===========
**Table of contents**
.. contents::
:local:
:depth: 1
Breaking Changes
^^^^^^^^^^^^^^^^
.. toctree::
:maxdepth: 1
:titlesonly:
:glob:
Breaking-*
Features
^^^^^^^^
.. toctree::
:maxdepth: 1
:titlesonly:
:glob:
Feature-*
Deprecation
^^^^^^^^^^^
.. toctree::
:maxdepth: 1
:titlesonly:
:glob:
Deprecation-*