TYPO3 v15 dev-main snapshot ()
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-73461-1668719172:
|
||||
|
||||
=============================================================
|
||||
Breaking: #73461 - Import module disabled for non admin users
|
||||
=============================================================
|
||||
|
||||
See :issue:`73461`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The import module of EXT:impexp has been disabled for non-admin users by default.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
For non-admin users who need that functionality, the userTsConfig option :typoscript:`options.impexp.enableImportForNonAdminUser = 1`
|
||||
can be set. This can become a security problem to the TYPO3 instance in core versions
|
||||
7.6 and 6.2 and should only be enabled for "trustworthy" backend users in general.
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations with non-admin users making active use of the import / export module
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Set userTsConfig option :typoscript:`options.impexp.enableImportForNonAdminUser = 1` to restore the old behavior.
|
||||
|
||||
.. index:: TSConfig, ext:impexp
|
||||
@@ -0,0 +1,46 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-74375:
|
||||
|
||||
=================================================
|
||||
Breaking: #74375 - fe_users.image migrated to FAL
|
||||
=================================================
|
||||
|
||||
See :issue:`74375`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The Frontend User field "image" was previously handled via images located under
|
||||
:file:`uploads/pics/`, as simple file references, not able to handle duplicate images etc.
|
||||
|
||||
The field is now set up to add references of the File Abstraction Layer avoiding
|
||||
the need to copy all images to :file:`uploads/pics/`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using the `fe_users.image` field in the frontend or backend may result in unexpected
|
||||
behaviour.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation using the field "image" within the database table "fe_users",
|
||||
common in third-party extensions using the field for storing images for frontend
|
||||
users (like mm_forum).
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the File Abstraction Layer for output and deal with rendering or changing images
|
||||
for frontend users.
|
||||
|
||||
Use the migration wizard provided in the install tool to migrate existing data to
|
||||
proper file references.
|
||||
|
||||
.. index:: Frontend, Database, FAL
|
||||
@@ -0,0 +1,42 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-76108:
|
||||
|
||||
==============================================================
|
||||
Breaking: #76108 - Replace ExtJS category tree with D3 and SVG
|
||||
==============================================================
|
||||
|
||||
See :issue:`76108`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Backend ExtJS category tree has been replaced with one based on D3.js and SVG.
|
||||
The js file :file:`typo3/sysext/backend/Resources/Public/JavaScript/tree.js` has been removed.
|
||||
|
||||
The expanded/collapsed state will not be saved to the backend user settings any more.
|
||||
It was not used in the core, as all category trees have setting `expandAll` set to `true`.
|
||||
It also polluted backend user settings with tons of data without giving much usability gain.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Any JS code referencing ExtJS component :js:`TYPO3.Components.Tree` or its sub-components
|
||||
(like :js:`TYPO3.Components.Tree.StandardTree`) will no longer work.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations having extensions which modify the :js:`TYPO3.Components.Tree`
|
||||
(implemented in :file:`typo3/sysext/backend/Resources/Public/JavaScript/tree.js`) component,
|
||||
or rely on the file being present.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Migration of the JS code to the new `SvgTree` component is recommended.
|
||||
|
||||
.. index:: JavaScript, Backend
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-76259-1668719184:
|
||||
|
||||
=======================================================================================
|
||||
Breaking: #76259 - Return value of AbstractDatabaseRecordList::makeSearchString changed
|
||||
=======================================================================================
|
||||
|
||||
See :issue:`76259`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The value returned by :php:`AbstractDatabaseRecordList::makeSearchString`
|
||||
has been adjusted.
|
||||
|
||||
The SQL fragment no longer includes the leading `AND` SQL operator and the
|
||||
method returns `"1=1"` if no search word is specified or if the table contains
|
||||
no searchable fields.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
3rd Party extensions need to ensure that valid SQL queries are being built
|
||||
using the returned fragment.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations using 3rd party extensions that use :php:`AbstractDatabaseRecordList::makeSearchString`
|
||||
and expect the leading `AND`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Migrate your code to use the Doctrine QueryBuilder where the `AND`
|
||||
is no longer needed or prepend the missing `AND` before using the
|
||||
return value.
|
||||
|
||||
.. index:: Database, PHP-API, Backend
|
||||
+49
@@ -0,0 +1,49 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-76259-1668719195:
|
||||
|
||||
=====================================================================
|
||||
Breaking: #76259 - Signature of getResult() in PageLayoutView changed
|
||||
=====================================================================
|
||||
|
||||
See :issue:`76259`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
As part of migrating the core code to use Doctrine DBAL the signature of the method
|
||||
:php:`PageLayoutView::getResult()` has changed.
|
||||
|
||||
Instead of accepting :php:`bool`, :php:`\mysqli_result` or :php:`object` as a
|
||||
result provider only :php:`\Doctrine\DBAL\Driver\Statement` objects are accepted.
|
||||
|
||||
The new signature is:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
public function getResult(\Doctrine\DBAL\Driver\Statement $result, string $table = 'tt_content') : array
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
3rd party extensions using :php:`PageLayoutView::getResult()` need to provide the correct
|
||||
input type, otherwise exceptions of type :php:`InvalidArgumentException` will be thrown.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations using 3rd party extensions that use :php:`PageLayoutView::getResult()`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Refactor all code that works with :php:`PageLayoutView::getResult()` to provide the expected
|
||||
Doctrine Statement object.
|
||||
|
||||
.. index:: Database, PHP-API, Backend
|
||||
+56
@@ -0,0 +1,56 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-76259-1668719172:
|
||||
|
||||
=====================================================================================
|
||||
Breaking: #76259 - Signature of setTotalItems() in AbstractDatabaseRecordList changed
|
||||
=====================================================================================
|
||||
|
||||
See :issue:`76259`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
As part of migrating the core code to use Doctrine DBAL the signature of the method
|
||||
:php:`AbstractDatabaseRecordList::setTotalItems()` has changed.
|
||||
|
||||
The new signature is:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
public function setTotalItems(string $table, int $pageId, array $constraints)
|
||||
{
|
||||
$queryBuilder = $this->getQueryBuilder($table, $pageId, $constraints);
|
||||
$this->totalItems = (int)$queryBuilder->count('*')
|
||||
->execute()
|
||||
->fetchColumn();
|
||||
}
|
||||
|
||||
The parameter :php:`$constraints` is expected to be an array of Doctrine Expressions
|
||||
or SQL fragments.
|
||||
|
||||
In case of SQL fragments proper quoting needs to be ensured by the invoking method.
|
||||
SQL fragments should not have a leading ` AND ` SQL operator.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
3rd party extensions using :php:`AbstractDatabaseRecordList::setTotalItems()` need
|
||||
to update the method invocation.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations using 3rd party extensions that use :php:`AbstractDatabaseRecordList::setTotalItems()`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Instead of passing an array of parameters built using the deprecated :php:`makeQueryArray()` method
|
||||
explicitly pass in the table name, page id and any additional query restrictions required.
|
||||
|
||||
.. index:: Database, PHP-API, Backend
|
||||
@@ -0,0 +1,39 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-76259:
|
||||
|
||||
========================================================
|
||||
Breaking: #76259 - Value passed to hook getTable changed
|
||||
========================================================
|
||||
|
||||
See :issue:`76259`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The value of :php:`$additionalWhere` passed to the method :php:`getDBlistQuery()`
|
||||
as part of the hook `getTable` in :php:`\TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList`
|
||||
has changed and no longer includes the leading `AND`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
3rd Party extensions implementing the hook method need to ensure the leading `AND` is no
|
||||
longer present. The leading `AND` should also not be returned anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
|
||||
Installations using 3rd party extensions that implement the hook method.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Migrate the hook method to no longer expect or prepend the leading `AND`.
|
||||
|
||||
.. index:: Database, PHP-API, Backend
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-76879:
|
||||
|
||||
=============================================================
|
||||
Breaking: #76879 - Remove unused properties from PageTreeView
|
||||
=============================================================
|
||||
|
||||
See :issue:`76879`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following unused properties have been removed from the :php:`PageTreeView` class:
|
||||
|
||||
* :php:`ext_separateNotinmenuPages`
|
||||
* :php:`ext_alphasortNotinmenuPages`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions which use one of the public properties above will throw a fatal error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations with a 3rd party extension using one of the classes above.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No migration available.
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-76879-1668719172:
|
||||
|
||||
===================================================================================
|
||||
Breaking: #76879 - Remove unused property pidSelect from AbstractDatabaseRecordList
|
||||
===================================================================================
|
||||
|
||||
See :issue:`76879`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The unused public property :php:`pidSelect` has been removed from the :php:`AbstractDatabaseRecordList` class.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions which use the public property will throw a fatal error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations with a 3rd party extension using the :php:`pidSelect` property.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use :php:`AbstractDatabaseRecordList::setOverridePageIdList()` to set an array of page ids
|
||||
that should be used to restrict the query.
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,31 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-76891:
|
||||
|
||||
==========================================
|
||||
Breaking: #76891 - syslog lowlevel command
|
||||
==========================================
|
||||
|
||||
See :issue:`76891`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The lowlevel cleaner syslog command has been migrated to a Symfony Command to show the latest sys_log entries on the command line.
|
||||
|
||||
The new command can be called via `./typo3/sysext/core/bin/typo3 syslog:list`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling `./typo3/cli_dispatch.phpsh lowlevel_cleaner syslog -r` will not show the expected output anymore as before.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use `./typo3/sysext/core/bin/typo3 syslog:list` with the optional verbose parameter instead.
|
||||
|
||||
.. index:: CLI, ext:lowlevel
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77049:
|
||||
|
||||
=============================================================================
|
||||
Breaking: #77049 - Remove unused properties from SuggestWizardDefaultReceiver
|
||||
=============================================================================
|
||||
|
||||
See :issue:`77049`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following unused properties have been removed from the :php:`SuggestWizardDefaultReceiver` class:
|
||||
|
||||
- :php:`selectClause`
|
||||
- :php:`addWhere`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions which use one of the protected properties above will not work properly as the
|
||||
properties are not used by class methods anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations with a 3rd party extension extending the :php:`SuggestWizardDefaultReceiver` class.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Don't set the properties in extended classes and make use of the constructor and queryTable
|
||||
method instead, as it is done in the :php:`SuggestWizard` class.
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+58
@@ -0,0 +1,58 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77062:
|
||||
|
||||
=====================================================================
|
||||
Breaking: #77062 - Example image in TS constants descriptions removed
|
||||
=====================================================================
|
||||
|
||||
See :issue:`77062`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
In previous TYPO3 versions it was possible to add help text and an help image to a certain category or
|
||||
configuration option in the TypoScript Constant Editor of the TYPO3 Backend. This was previously done via an
|
||||
additional Constant Editor option within the `TSConstantEditor` object.
|
||||
|
||||
The functionality has been removed without substitution.
|
||||
|
||||
Along with that change, the following PHP methods have been removed:
|
||||
|
||||
* :php:`ExtendedTemplateService::ext_getTSCE_config_image()`
|
||||
* :php:`ConfigurationForm::ext_getTSCE_config_image()`
|
||||
|
||||
The following public properties have been removed:
|
||||
|
||||
* :php:`ExtendedTemplateService::$ext_localGfxPrefix`
|
||||
* :php:`ExtendedTemplateService::$ext_localWebGfxPrefix`
|
||||
|
||||
Within :php:`ConfigurationForm::ext_initTSstyleConfig()` the second and third parameter have been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Setting an option :typoscript:`TSConstantEditor.basic.image = EXT:sys_note/ext_icon.png` for a category or configuration option in TypoScript constants has no effect anymore.
|
||||
|
||||
Calling any of the removed methods will result in a fatal PHP error.
|
||||
|
||||
Using any of the removed properties will result in a PHP warning.
|
||||
|
||||
Calling :php:`ConfigurationForm::ext_initTSstyleConfig()` with the second or third parameter will result in a PHP warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation with extended TypoScript constant editor configuration.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the affected TypoScript constant editor configuration code, and any reference to the removed PHP
|
||||
methods and properties.
|
||||
|
||||
.. index:: TypoScript, PHP-API
|
||||
@@ -0,0 +1,66 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77081:
|
||||
|
||||
===================================================================================
|
||||
Breaking: #77081 - Removed TCA tree options: width, allowRecursiveMode, autoSizeMax
|
||||
===================================================================================
|
||||
|
||||
See :issue:`77081`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following three TCA configuration options have been removed from the FormEngine TCA Tree
|
||||
functionality which is e.g. used within the FormEngine for the selection of categories.
|
||||
|
||||
TCA Column Config
|
||||
|
||||
* [config][treeConfig][appearance][allowRecursiveMode]
|
||||
|
||||
The option hasn't been working for a while and the documentation vs. implementation
|
||||
was off - see :issue:`77074`
|
||||
|
||||
* [config][treeConfig][appearance][width]
|
||||
|
||||
* [config][autoSizeMax]
|
||||
|
||||
The options have no influence on the rendering of FormEngine select field configured
|
||||
with :php:`'renderType' => 'selectTree'` anymore.
|
||||
|
||||
The Recursive selection button (the green arrow button located on the category tree toolbar) was
|
||||
not widely used, mostly due that nobody expected the green "refresh" icon was related to recursive
|
||||
selection.
|
||||
|
||||
When implemented 4 years ago, the purpose of this button was to ease handling of
|
||||
"record storage page". But now the "recursive" select box can be used for this usage.
|
||||
|
||||
The option `autosizemax` has been dropped as the `size` can be used as maximum height.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The recursive selection mode button is not available any longer.
|
||||
|
||||
The options `width` and `autoSizeMax` have no impact on the tree rendering.
|
||||
|
||||
The TCA Tree now fills the full width of the parent container.
|
||||
|
||||
Instead of using the option `autoSizeMax` the configuration is now using the `size` parameter as maximal
|
||||
height of the TCA tree.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation using a TCA Tree within FormEngine with one of the options above configured.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the `size` option and tune it to higher value, if it was used in combination
|
||||
with `autoSizeMax`.
|
||||
|
||||
.. index:: TCA, Backend
|
||||
@@ -0,0 +1,58 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77137-1668719172:
|
||||
|
||||
================================================
|
||||
Breaking: #77137 - JavaScript API of RTE changed
|
||||
================================================
|
||||
|
||||
See :issue:`77137`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Due to the migration of the RTE from ExtJS to Bootstrap and jQuery, some API methods have been changed or removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
ExtJS-based plugins will throw JavaScript errors.
|
||||
|
||||
The following methods have been removed:
|
||||
|
||||
* `onContainerResize`
|
||||
* `getWindowDimensions`
|
||||
* `setTabPanelHeight`
|
||||
* `syncHeight`
|
||||
|
||||
The following methods have been changed:
|
||||
|
||||
* `openContainerWindow`
|
||||
* `buildButtonConfig`
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations using custom RTE plugins are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
The former `Ext.Window` objects are replaced by Bootstrap modals.
|
||||
|
||||
See the list below for a migration of the changed methods:
|
||||
|
||||
openContainerWindow
|
||||
The third parameter `dimensions` which used to be an array has changed to `height`, containing an integer
|
||||
|
||||
buildButtonConfig
|
||||
The method takes now two additional arguments: `active` and `severity`. The parameter `active` is a boolean
|
||||
value and declares the button being either active or not. The parameter `severity` is an integer representing the
|
||||
severity of the button. This should always represent the severity of the modal, use one of the severities defined in
|
||||
:js:`TYPO3/CMS/Backend/Severity`.
|
||||
|
||||
.. index:: JavaScript, RTE, Backend
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77137:
|
||||
|
||||
==============================================
|
||||
Breaking: #77137 - RTE option "colors" removed
|
||||
==============================================
|
||||
|
||||
See :issue:`77137`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The RTE configuration option `RTEsetup.properties.colors` has been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The color picker is streamlined with all occurrences in the backend, it shows all available colors.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations configuring `RTEsetup.properties.colors` are affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
There is no migration available, the obsolete configuration can be removed.
|
||||
|
||||
.. index:: RTE, TSConfig, Backend
|
||||
+57
@@ -0,0 +1,57 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77156:
|
||||
|
||||
================================================================================
|
||||
Breaking: #77156 - TSconfig and TStemplate soft references functionality removed
|
||||
================================================================================
|
||||
|
||||
See :issue:`77156`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Soft references based on TSconfig, TStemplate and images within :file:`fileadmin/` have been removed.
|
||||
|
||||
The soft reference keys `TSconfig` and `TStemplate` that could previously be set via
|
||||
:php:`$GLOBALS[TCA][$table][columns][$column][config][softref]` are not evaluated anymore.
|
||||
|
||||
The soft reference keys `images`, `typolink` and `typolink_tag` are not evaluating files within :file:`fileadmin/`
|
||||
anymore that are not based on the File Abstraction Layer.
|
||||
|
||||
The public PHP property :php:`SoftReferenceIndex::$fileAdminDir` has been removed.
|
||||
|
||||
The following PHP methods has been removed without substitution:
|
||||
|
||||
- :php:`SoftReferenceIndex::findRef_TStemplate()`
|
||||
- :php:`SoftReferenceIndex::findRef_TSconfig()`
|
||||
- :php:`SoftReferenceIndex::fileadminReferences()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Setting the softref properties `TSconfig` and `TStemplate` within TCA will not be evaluated anymore and will
|
||||
throw a deprecation message.
|
||||
|
||||
Calling any of the PHP methods above will throw a fatal PHP error.
|
||||
|
||||
The soft reference index will not be updated with the TSconfig and TStemplate properties anymore, as well
|
||||
as files directly linked or referenced with the :file:`fileadmin/` directory.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
If the soft reference index is evaluated in a third-party extension, this might result in unexpected behaviour.
|
||||
|
||||
All TYPO3 instances using extensions setting TSconfig or TStemplate soft references in TCA are also affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the softref keys `TStemplate` and `TSconfig` from the TCA definition of the third party extensions.
|
||||
|
||||
.. index:: TCA, PHP-API
|
||||
+44
@@ -0,0 +1,44 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77180:
|
||||
|
||||
===============================================================
|
||||
Breaking: #77180 - Dropped ExtJS support in Frontend TypoScript
|
||||
===============================================================
|
||||
|
||||
See :issue:`77180`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following TypoScript options
|
||||
|
||||
.. code-block:: typoscript
|
||||
|
||||
page.javascriptLibs.ExtJs
|
||||
page.javascriptLibs.ExtJs.debug
|
||||
page.inlineLanguageLabel
|
||||
page.extOnReady
|
||||
|
||||
have been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using the settings above will not include ExtJs and inline language labels anymore in the TYPO3 Frontend.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using the shipped ExtJS bundle in the frontend.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Include ExtJS via :typoscript:`page.includeJS` manually if needed or migrate to another supported modern framework.
|
||||
|
||||
.. index:: JavaScript, TypoScript
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77182:
|
||||
|
||||
==================================================================
|
||||
Breaking: #77182 - Removed BasicFileUtility methods and properties
|
||||
==================================================================
|
||||
|
||||
See :issue:`77182`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The `BasicFileUtility` class was used for checking file mounts and paths, and is only
|
||||
used for non-FAL files.
|
||||
Now, old legacy functionality has been removed.
|
||||
|
||||
The :php:`init()` method has been replaced by a real constructor. A possibility to set the
|
||||
file extension permissions has been added via `setFileExtensionPermissions()`.
|
||||
|
||||
The DefaultConfiguration setting :php:`$GLOBALS[TYPO3_CONF_VARS][BE][fileExtensions][ftpspace]`
|
||||
has been removed.
|
||||
|
||||
The following public properties within BasicFileUtility have been removed:
|
||||
|
||||
* `getUniqueNamePrefix`
|
||||
* `tempFN`
|
||||
* `f_ext`
|
||||
* `mounts`
|
||||
* `webPath`
|
||||
* `isInit`
|
||||
|
||||
The following public methods within `BasicFileUtility` have been removed:
|
||||
|
||||
* `checkPathAgainstMounts()`
|
||||
* `findFirstWebFolder()`
|
||||
* `slashPath()`
|
||||
* `is_webpath()`
|
||||
* `checkIfFullAccess()`
|
||||
* `init()`
|
||||
|
||||
The following public properties within `BasicFileUtility` have been set to have a protected visibility:
|
||||
|
||||
* `is_directory`
|
||||
* `is_allowed`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods above or using one of the properties above will result in PHP errors and warnings respectively.
|
||||
|
||||
Using the `TYPO3_CONF_VARS` setting has no effect anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using pre - 6.0 core functionality within extensions.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the File Abstraction Layer to achieve the same functionality.
|
||||
|
||||
.. index:: PHP-API, FAL, LocalConfiguration
|
||||
@@ -0,0 +1,47 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77184:
|
||||
|
||||
==================================================
|
||||
Breaking: #77184 - Various TSFE properties removed
|
||||
==================================================
|
||||
|
||||
See :issue:`77184`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following public properties of the PHP class :php:`TypoScriptFrontendController` have been removed.
|
||||
|
||||
* :php:`TYPO3_CONF_VARS`
|
||||
* :php:`defaultBodyTag`
|
||||
* :php:`clientInfo`
|
||||
|
||||
Additionally, the first parameter of the :php:`TypoScriptFrontendController` constructor has no effect anymore and can be set
|
||||
to null.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Accessing or setting the properties will throw a PHP warning and have no effect anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation working with the public property in a third-party extension or instantiating the `TSFE` object itself.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
For any calls to :php:`$GLOBALS['TSFE']->TYPO3_CONF_VARS` the global array :php:`$GLOBALS['TYPO3_CONF_VARS']` should be used.
|
||||
|
||||
For the property :php:`defaultBodyTag` the according TypoScript settings can be used to override the
|
||||
body tag or the page title.
|
||||
|
||||
The information previously stored in the clientInfo property can be fetched via :php:`GeneralUtility::clientInfo()`.
|
||||
|
||||
.. index:: PHP-API, Frontend
|
||||
@@ -0,0 +1,29 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77186:
|
||||
|
||||
====================================================
|
||||
Breaking: #77186 - ExtDirect eID entry point removed
|
||||
====================================================
|
||||
|
||||
See :issue:`77186`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The frontend eID script to call the `ExtDirect` API for backend calls has been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling `index.php?eID=ExtDirect` will result in an PHP exception.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Instances using the ExtDirect eID script.
|
||||
|
||||
.. index:: JavaScript, Backend, PHP-API
|
||||
@@ -0,0 +1,36 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77209:
|
||||
|
||||
===============================================
|
||||
Breaking: #77209 - Adapt default RECORDS tables
|
||||
===============================================
|
||||
|
||||
See :issue:`77209`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The value of the constant :typoscript:`styles.content.shortcut.tables` which is set by
|
||||
EXT:fluid_styled_content has been changed from :typoscript:`tt_content,tt_address,tt_news,tx_news_domain_model_news` to :typoscript:`tt_content`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Shortcuts to records of the tables tt_address, tt_news and tx_news_domain_model_news don't work anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations which use shortcut to records of the tables tt_address, tt_news and tx_news_domain_model_news
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Adopt the TS and use :typoscript:`styles.content.shortcut.tables := addToList(tt_address,tt_news,tx_news_domain_model_news)`
|
||||
|
||||
.. index:: TypoScript, Frontend
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77280:
|
||||
|
||||
==========================================================================
|
||||
Breaking: #77280 - Uploads template shows file title in favor of file name
|
||||
==========================================================================
|
||||
|
||||
See :issue:`77280`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The file title is now shown instead of the file name, if the title is present.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The output of the template changes.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Every installation using the "File links" content element with files having a specified title is affected.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Override the template and remove the condition to restore the original behavior.
|
||||
|
||||
.. index:: Frontend
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77342:
|
||||
|
||||
============================================================================
|
||||
Breaking: #77342 - Removed templateFile override via FlexForm in EXT:felogin
|
||||
============================================================================
|
||||
|
||||
See :issue:`77342`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The possibility to override the template file via FlexForm when inserting a Frontend Login plugin has been removed.
|
||||
|
||||
The need for the upload folder :file:`uploads/tx_felogin` has been removed, and the folder is not generated anymore.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The template file cannot be selected anymore from the Frontend Login plugin. Existing installations using this option before
|
||||
will fall back to the TypoScript setting silently.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
TYPO3 instances using the `templateFile` option via FlexForms in Frontend Login plugins.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the TypoScript setting :typoscript:`plugin.tx_felogin.templateFile` to set an alternative template file.
|
||||
|
||||
.. index:: Frontend, ext:felogin, TypoScript
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77345:
|
||||
|
||||
===================================================================
|
||||
Breaking: #77345 - EXT:form - Remove deprecated IMAGEBUTTON element
|
||||
===================================================================
|
||||
|
||||
See :issue:`77345`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The :typoscript:`IMAGEBUTTON` element has been removed in TYPO3 v8.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using the :typoscript:`IMAGEBUTTON` element is not working anymore, i.e. no :typoscript:`IMAGEBUTTON` element will be rendered.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations using the :typoscript:`IMAGEBUTTON` element.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove all usages of the :typoscript:`IMAGEBUTTON` element.
|
||||
|
||||
.. index:: TypoScript, ext:form
|
||||
+41
@@ -0,0 +1,41 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77390:
|
||||
|
||||
==================================================================================================
|
||||
Breaking: #77390 - Expected return type of hook getResultRows_SQLpointer in Indexed Search changed
|
||||
==================================================================================================
|
||||
|
||||
See :issue:`77390`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
As part of migrating the core code to use Doctrine DBAL the expected return value of the hook
|
||||
:php:`getResultRows_SQLpointer` in EXT:indexed_search has changed.
|
||||
|
||||
It is required that :php:`\Doctrine\DBAL\Driver\Statement` objects are returned instead of the
|
||||
previous types :php:`bool` or :php:`\mysqli_result`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
3rd party extensions implementing the hook :php:`getResultRows_SQLpointer` need to provide the
|
||||
correct return type, otherwise fatal errors will occur when processing the search results.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations using 3rd party extensions that implement the hook :php:`getResultRows_SQLpointer`
|
||||
for Indexed Search.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Migrate the implementation of the hook to provide the expected Doctrine Statement object.
|
||||
|
||||
.. index:: Database, ext:indexed_search, PHP-API
|
||||
@@ -0,0 +1,38 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77391:
|
||||
|
||||
===============================================
|
||||
Breaking: #77391 - DataHandler method protected
|
||||
===============================================
|
||||
|
||||
See :issue:`77391`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Method :php:`doesRecordExist_pageLookUp()` of class :php:`DataHandler` has been
|
||||
changed from public access to protected access and the returned object changed to an
|
||||
instance of :php:`QueryBuilder`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the method will trigger a fatal PHP error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions that use method :php:`doesRecordExist_pageLookUp()`. This is very unlikely
|
||||
since the method is mostly only useful for core internal handling.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No migration possible, remove the method call.
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77416:
|
||||
|
||||
===============================================================
|
||||
Breaking: #77416 - Removed property from DatabaseIntegrityCheck
|
||||
===============================================================
|
||||
|
||||
See :issue:`77416`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The property :php:`$perms_clause` has been removed from class :php:`DatabaseIntegrityCheck`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Setting or reading this property on an instance of :php:`TYPO3\CMS\Core\Integrity\DatabaseIntegrityCheck` will
|
||||
result in a fatal PHP error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
All installations with a 3rd party extension using this class.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No migration available.
|
||||
|
||||
.. index:: PHP-API, Database
|
||||
+47
@@ -0,0 +1,47 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77453-1668719172:
|
||||
|
||||
=====================================================================
|
||||
Breaking: #77453 - Signature of AbstractPlugin::pi_exec_query changed
|
||||
=====================================================================
|
||||
|
||||
See :issue:`77453`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The value returned by :php:`AbstractPlugin::pi_exec_query` has changed.
|
||||
|
||||
Instead of returning one of :php:`bool`, :php:`\mysqli_result` or :php:`object`
|
||||
the method always returns a :php:`Doctrine\Dbal\Driver\Statement`.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
3rd Party extensions using :php:`AbstractPlugin::pi_exec_query` need to be modified
|
||||
to work with the new return type.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations using 3rd party extensions that use :php:`AbstractPlugin::pi_exec_query`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Migrate your code to use the :php:`Statement` object:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$statement = $this->pi_exec_query(...);
|
||||
while($row = $statement->fetch())
|
||||
{
|
||||
// ... do something here
|
||||
}
|
||||
|
||||
.. index:: Database, PHP-API
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77453:
|
||||
|
||||
========================================================================
|
||||
Breaking: #77453 - Signature of AbstractPlugin::pi_list_makelist changed
|
||||
========================================================================
|
||||
|
||||
See :issue:`77453`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The expected result data type of the method :php:`AbstractPlugin::pi_list_makelist` has changed.
|
||||
|
||||
Instead of accepting :php:`bool`, :php:`\mysqli_result` or :php:`object` as a
|
||||
result provider only :php:`\Doctrine\DBAL\Driver\Statement` objects are accepted.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
3rd party extensions using :php:`AbstractPlugin::pi_list_makelist` need to provide the correct
|
||||
input type.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Installations using 3rd party extensions that use :php:`AbstractPlugin::pi_list_makelist`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Migrate all code that works with the :php:`AbstractPlugin::pi_list_makelist` to provide the expected
|
||||
Doctrine Statement object.
|
||||
|
||||
.. index:: PHP-API, Database
|
||||
@@ -0,0 +1,43 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77460:
|
||||
|
||||
==============================================
|
||||
Breaking: #77460 - Extbase query cache removed
|
||||
==============================================
|
||||
|
||||
See :issue:`77460`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The PHP-based query cache functionality within the Extbase persistence layer has been removed.
|
||||
|
||||
The following public methods within the Extbase persistence layer have been removed:
|
||||
|
||||
* :php:`Typo3DbBackend->quoteTextValueCallback()`
|
||||
* :php:`Typo3DbBackend->initializeObject()`
|
||||
* :php:`Typo3DbBackend->injectCacheManager()`
|
||||
* Interface definition in :php:`QuerySettingsInterface->getUseQueryCache()`
|
||||
|
||||
The TypoScript configuration :typoscript:`config.tx_extbase.persistence.useQueryCache` has no effect anymore.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The according cache configuration set via :php:`$GLOBALS[TYPO3_CONF_VARS][SYS][cache][cacheConfigurations][extbase_typo3dbbackend_queries]` has no effect anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation effectively relying on the query cache via a third party extension or explicitly deactivating the query cache of extbase.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the according lines and migrate to Doctrine.
|
||||
|
||||
.. index:: Database, PHP-API, LocalConfiguration, ext:extbase
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77481:
|
||||
|
||||
=================================================
|
||||
Breaking: #77481 - Remove favicon from TBE_STYLES
|
||||
=================================================
|
||||
|
||||
See :issue:`77481`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The configuration :php:`$GLOBALS['TBE_STYLES']['favicon']` has been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The configuration :php:`$GLOBALS['TBE_STYLES']['favicon']` is not evaluated anymore.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation using :php:`$GLOBALS['TBE_STYLES']['favicon']`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Define the favicon in the setting of EXT:backend in the extension manager.
|
||||
|
||||
.. index:: Backend, PHP-API
|
||||
@@ -0,0 +1,45 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77502:
|
||||
|
||||
==========================================================
|
||||
Breaking: #77502 - Extbase: pre-parsing of queries removed
|
||||
==========================================================
|
||||
|
||||
See :issue:`77502`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Extbase's custom implementation to pre-parse and cache queries has been removed in favor of using the RDBMS' native implementation
|
||||
via Doctrine DBAL.
|
||||
|
||||
The following public methods have been removed:
|
||||
|
||||
* :php:`Typo3DbBackend->quoteTextValueCallback()`
|
||||
* :php:`Typo3DbQueryParser->preparseQuery()`
|
||||
* :php:`Typo3DbQueryParser->normalizeParameterIdentifier()`
|
||||
* :php:`Typo3DbQueryParser->addDynamicQueryParts()`
|
||||
* :php:`ComparisonInterface->setParameterIdentifier`
|
||||
* :php:`ComparisonInterface->getParameterIdentifier`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods above will result in a fatal PHP error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation using custom logic inside Extbase's own Persistence layer within `Typo3DbBackend` or `Typo3DbQueryParser`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove the functionality and just use :php:`Typo3DbQueryParser->parseQuery()`.
|
||||
|
||||
.. index:: Database, PHP-API, ext:extbase
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77557:
|
||||
|
||||
=======================================================================
|
||||
Breaking: #77557 - Signature of QueryView->getQueryResultCode() changed
|
||||
=======================================================================
|
||||
|
||||
See :issue:`77557`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method signature of :php:`QueryView->getQueryResultCode()` has changed
|
||||
from :php:`getQueryResultCode($mQ, $res, $table)` to :php:`getQueryResultCode($type, array $dataRows, $table)`.
|
||||
|
||||
The second argument is no longer a MySQLi or DBAL result object, but an array of rows.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions using this method will throw a fatal error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions using :php:`QueryView->getQueryResultCode()`
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Move away from the method or feed it with an array of database rows.
|
||||
|
||||
.. index:: PHP-API, Database
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77558:
|
||||
|
||||
=======================================================
|
||||
Breaking: #77558 - PageLayoutController removed methods
|
||||
=======================================================
|
||||
|
||||
See :issue:`77558`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following methods have been removed from :php:`PageLayoutController` without substitution:
|
||||
|
||||
* :php:`exec_languageQuery()`
|
||||
* :php:`isColumnEmpty()`
|
||||
* :php:`getElementsFromColumnAndLanguage()`
|
||||
|
||||
All of those methods were internally used within the Page module, the risk that an extension using them is low.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The methods executed page module specific queries. Extensions calling the method will throw a fatal error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions calling one of the aforementioned methods.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Move away from those methods.
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77587:
|
||||
|
||||
=====================================================
|
||||
Breaking: #77587 - Removed LiveSearch->getQueryString
|
||||
=====================================================
|
||||
|
||||
See :issue:`77587`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The public utility method `getQueryString()` within the `LiveSearch` PHP class has been removed.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the method directly will result in a PHP fatal error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation extending TYPO3's internal LiveSearch functionality via an extension.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use one of the various quoting options shipped with the Doctrine DBAL.
|
||||
|
||||
.. index:: PHP-API, Database
|
||||
+36
@@ -0,0 +1,36 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _breaking-77591:
|
||||
|
||||
====================================================================
|
||||
Breaking: #77591 - Removed WorkspaceService->isOldStyleWorkspaceUsed
|
||||
====================================================================
|
||||
|
||||
See :issue:`77591`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method `WorkspaceService->isOldStyleWorkspaceUsed()` was removed without substitution. It existed to identify if
|
||||
Workspaces still were configured for TYPO3 4.4.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the PHP method directly will result in a fatal PHP error.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
TYPO3 installations using workspaces and extending the workspaces functionality extensively by providing a fallback layer to functionality for TYPO3 4.4 or lower.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove any occurrences to the PHP method.
|
||||
|
||||
.. index:: PHP-API, ext:workspaces
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-76259:
|
||||
|
||||
===================================================================================
|
||||
Deprecation: #76259 - Deprecate method makeQueryArray of AbstractDatabaseRecordList
|
||||
===================================================================================
|
||||
|
||||
See :issue:`76259`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`AbstractDatabaseRecordList::makeQueryArray()` has been marked
|
||||
as deprecated.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Using the method mentioned will trigger a deprecation log entry. The hook `makeQueryArray`
|
||||
provided within this method is no longer called by the core.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Instances that use the method.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Migrate your code to the Doctrine based replacement :php:`\TYPO3\CMS\Recordlist\RecordList\AbstractDatabaseRecordList::getQueryBuilder`
|
||||
and the associated hook `buildQueryParameters`.
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-76520:
|
||||
|
||||
======================================================================
|
||||
Deprecation: #76520 - Deprecate method pages_getTree of PageLayoutView
|
||||
======================================================================
|
||||
|
||||
See :issue:`76520`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method :php:`pages_getTree()` of `PageLayoutView` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the method :php:`pages_getTree` will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation with a 3rd party extension calling the method in its PHP code.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
No migration available, implement the required functionality in your own code.
|
||||
|
||||
.. index:: PHP-API
|
||||
+51
@@ -0,0 +1,51 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-76804:
|
||||
|
||||
=======================================================================
|
||||
Deprecation: #76804 - Deprecate GeneralUtility::strtoupper & strtolower
|
||||
=======================================================================
|
||||
|
||||
See :issue:`76804`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following methods within `GeneralUtility` have been marked as deprecated:
|
||||
|
||||
* `strtoupper()`
|
||||
* `strtolower()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods above will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any installation with a 3rd party extension calling one of the methods in its PHP code.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Instead of :php:`GeneralUtility::strtoupper($value)` use:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
mb_strtoupper($value, 'utf-8');
|
||||
|
||||
Instead of :php:`GeneralUtility::strtolower($value)` use:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
mb_strtolower($value, 'utf-8');
|
||||
|
||||
Alternatively use the native implementation of :php:`strtoupper($value)` or :php:`strtolower($value)`
|
||||
if the handled string consists of ascii characters only.
|
||||
|
||||
.. index:: PHP-API
|
||||
+35
@@ -0,0 +1,35 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-77164:
|
||||
|
||||
====================================================================
|
||||
Deprecation: #77164 - ErrorpageMessage and AbstractStandaloneMessage
|
||||
====================================================================
|
||||
|
||||
See :issue:`77164`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The two PHP classes `ErrorpageMessage` and `AbstractStandaloneMessage` have been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Instantiating one of the PHP classes will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 instance using the two PHP classes directly because of a specialized error handling or exception handling method.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use the new Fluid-based ErrorPageController class.
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,29 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-77405:
|
||||
|
||||
=========================================================
|
||||
Deprecation: #77405 - PageRepository->getPathFromRootline
|
||||
=========================================================
|
||||
|
||||
See :issue:`77405`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The PHP method `PageRepository->getPathFromRootline()` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the method will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation with a third-party extension using this method.
|
||||
|
||||
.. index:: PHP-API, Frontend
|
||||
@@ -0,0 +1,48 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-77432:
|
||||
|
||||
==============================================================
|
||||
Deprecation: #77432 - Extbase: Prepared Statement Query Option
|
||||
==============================================================
|
||||
|
||||
See :issue:`77432`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The option to use prepared statements within the Extbase persistence layer has been removed. The method
|
||||
`getUsePreparedStatement()` has been removed from the `QuerySettingsInterface`, as the database
|
||||
abstraction layer will take care of prepared statements automatically.
|
||||
|
||||
The implementation of the following properties within `Typo3QuerySettings` has been marked as
|
||||
deprecated:
|
||||
|
||||
* `getUsePreparedStatement()`
|
||||
* `usePreparedStatement()`
|
||||
|
||||
The protected property `usePreparedStatement` has been marked as deprecated as well.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling one of the methods above within the `QuerySettings` object within the extbase persistence
|
||||
will trigger a deprecation notice warning.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 instance with an extbase extension using custom query settings using the
|
||||
`usePreparedStatement()` option.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Remove any calls to the methods within the extensions' code, as the TYPO3 abstraction layer will
|
||||
handle them automatically.
|
||||
|
||||
.. index:: PHP-API, ext:extbase, Database
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-77477:
|
||||
|
||||
==================================================
|
||||
Deprecation: #77477 - TemplateService->fileContent
|
||||
==================================================
|
||||
|
||||
See :issue:`77477`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The method `fileContent` within the class `TemplateService` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling the method will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 instance with a third-party extension calling the method directly.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Implement the same logic directly in PHP with `getFileName()` and `file_get_contents()`.
|
||||
|
||||
.. index:: PHP-API
|
||||
@@ -0,0 +1,39 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-77502:
|
||||
|
||||
=============================================================
|
||||
Deprecation: #77502 - Extbase: pre-parsing of queries removed
|
||||
=============================================================
|
||||
|
||||
See :issue:`77502`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The following methods and properties within Extbase's persistence query comparison interface have been marked as deprecated:
|
||||
|
||||
* :php:`Comparison->setParameterIdentifier()`
|
||||
* :php:`Comparison->getParameterIdentifier()`
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Calling any of the methods above will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Any TYPO3 installation using custom logic inside Extbase's own persistence layer with parameters and placeholders within
|
||||
`Typo3DbBackend` or `Typo3DbQueryParser` and actively overwriting parameter identifiers within Extbase.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Usage of these methods can be replaced by simply using the `DataMapper->getPlainValue()` functionality.
|
||||
|
||||
.. index:: PHP-API, Database, ext:extbase
|
||||
@@ -0,0 +1,35 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-77557:
|
||||
|
||||
===================================================
|
||||
Deprecation: #77557 - Method QueryView->tableWrap()
|
||||
===================================================
|
||||
|
||||
See :issue:`77557`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Method :php:`QueryView->tableWrap()` has been marked as deprecated.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions using this method will trigger a deprecation log entry.
|
||||
|
||||
|
||||
Affected Installations
|
||||
======================
|
||||
|
||||
Extensions using :php:`QueryView->tableWrap()`
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
Use :php:`'<pre>' . $str . '</pre>'` instead.
|
||||
|
||||
.. index:: PHP-API, Backend
|
||||
@@ -0,0 +1,24 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-73461-1668719172:
|
||||
|
||||
==========================================================
|
||||
Feature: #73461 - Enable import module for non admin users
|
||||
==========================================================
|
||||
|
||||
See :issue:`73461`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The new userTsConfig option :typoscript:`options.impexp.enableImportForNonAdminUser` can be used to enable
|
||||
the import module of EXT:impexp for non admin users.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
This option should be enabled for "trustworthy" backend users only.
|
||||
|
||||
.. index:: TSConfig, Backend, ext:impexp
|
||||
@@ -0,0 +1,137 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-74365:
|
||||
|
||||
================================================================
|
||||
Feature: #74365 - Add Linkservice for unified referencing syntax
|
||||
================================================================
|
||||
|
||||
See :issue:`74365`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Resources within TYPO3 have been referenced using multiple, different forms of syntax
|
||||
in the past.
|
||||
|
||||
TYPO3 now supports a modern and future-proof way of referencing resources using an
|
||||
extensible and expressive syntax which is easy to understand.
|
||||
|
||||
In order to understand the syntax, we will guide you through using a simple page
|
||||
link.
|
||||
|
||||
`t3://page?uid=13&campaignCode=ABC123`
|
||||
|
||||
The syntax consists of three main parts, much like parts on an URL:
|
||||
|
||||
Syntax Namespace (t3://)
|
||||
The namespace is set to `t3://` to ensure the `LinkService` should be called to
|
||||
parse the URL.
|
||||
This value is fixed and mandatory.
|
||||
|
||||
Resource handler key (page)
|
||||
The resource handler key is a list of available handlers that TYPO3 can work
|
||||
with. At the time of writing these handlers are:
|
||||
|
||||
* page
|
||||
* file
|
||||
* folder
|
||||
|
||||
More keys can be added via `$TYPO3_CONF_VARS['SYS']['linkHandler']` in an associative
|
||||
array where the key is the handler key and the value is a class implementing
|
||||
the LinkHandlerInterface.
|
||||
|
||||
Resource parameters(?uid=13&campaignCode=ABC123)
|
||||
These are the specific identification parameters that are used by any handler.
|
||||
Note that these may carry additional parameters in order to configure the
|
||||
behavior of any handler.
|
||||
|
||||
Handler syntax
|
||||
==============
|
||||
|
||||
page
|
||||
----
|
||||
|
||||
The page identifier is a compound string based on several optional settings.
|
||||
|
||||
uid
|
||||
**int**:
|
||||
The **uid** of a page record.
|
||||
|
||||
`t3://page?uid=13`
|
||||
alias
|
||||
**string**:
|
||||
The **alias** of a page record (as an alternative to the UID).
|
||||
|
||||
`t3://page?alias=myfunkyalias`
|
||||
type
|
||||
**int** *(optional)*:
|
||||
|
||||
`t3://page?uid=13&type=3` will reference page 13 in type 3.
|
||||
parameters
|
||||
**string** *(optional, prefixed with &)*:
|
||||
|
||||
`t3://page?uid=1313&my=param&will=get&added=here`
|
||||
fragment
|
||||
**string** *(optional, prefixed with #)*:
|
||||
|
||||
`t3://page?alias=myfunkyalias#c123`
|
||||
|
||||
`t3://page?uid=13&type=3#c123`
|
||||
|
||||
`t3://page?uid=13&type3?my=param&will=get&added=here#c123`
|
||||
|
||||
file
|
||||
----
|
||||
|
||||
uid
|
||||
**int**: The UID of a file within the FAL database table `sys_file`.
|
||||
`t3://file?uid=13`
|
||||
|
||||
identifier
|
||||
**int**: The identifier of a file when not indexed in FAL.
|
||||
`t3://file?identifier=folder/myfile.jpg`
|
||||
|
||||
folder
|
||||
------
|
||||
|
||||
identifier
|
||||
**string**: The identifier of a given folder.
|
||||
`t3://folder?identifier=fileadmin`
|
||||
|
||||
storage
|
||||
**string**: The FAL storage to the given folder (optional).
|
||||
`t3://folder?storage=1&identifier=myfolder`
|
||||
|
||||
|
||||
Examples:
|
||||
=========
|
||||
|
||||
Linking to a page in RTE
|
||||
------------------------
|
||||
|
||||
The old way of linking to a page in the RTE resulted in the following code in the
|
||||
database:
|
||||
`<link 13?campaignCode=ABC123 _blank class="linkMe" #c1234>Text</link>`
|
||||
|
||||
The new way would be the following code in the database:
|
||||
`<a href="t3://page?uid=13&campaignCode=ABC123#c1234" target="_blank" class="linkMe">Text</a>`
|
||||
|
||||
As you can see, the syntax is more in line with known markup, thus removing the
|
||||
demand of data processing from or to the RTE component.
|
||||
|
||||
Referencing an image in RTE
|
||||
---------------------------
|
||||
|
||||
`<img src="t3://file?uid=134&renderAs=png" width="200" height="200">`
|
||||
|
||||
In this example we illustrate a **fictional** usecase of identifier configuration (mind the "renderAs" part).
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Currently the impact is rather low, since a fallback mechanism will still be able to
|
||||
work with the old syntax.
|
||||
|
||||
.. index:: RTE, Backend
|
||||
@@ -0,0 +1,57 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-76107:
|
||||
|
||||
====================================================
|
||||
Feature: #76107 - Add fluid interceptor registration
|
||||
====================================================
|
||||
|
||||
See :issue:`76107`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Interceptors in Fluid Standalone have been introduced to be able to change the template output.
|
||||
The Fluid API already allows for registration of custom interceptors. Now it is possible to define
|
||||
custom interceptors via the following option:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['fluid']['interceptors']
|
||||
|
||||
Interceptors registered here are added to the Fluid parser configuration.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Extensions are able to register custom interceptors using the available configuration in :php:`$TYPO3_CONF_VARS[fluid][interceptors]`.
|
||||
|
||||
Registered classes have to implement the `\TYPO3Fluid\Fluid\Core\Parser\InterceptorInterface`.
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
// Register an own interceptor to fluid parser configuration
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SYS']['fluid']['interceptors'][\TYPO3\CMS\Fluid\Core\Parser\Interceptor\DebugInterceptor::class] =
|
||||
\TYPO3\CMS\Fluid\Core\Parser\Interceptor\DebugInterceptor::class;
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
use TYPO3Fluid\Fluid\Core\Parser\InterceptorInterface;
|
||||
use TYPO3Fluid\Fluid\Core\Parser\ParsingState;
|
||||
use TYPO3Fluid\Fluid\Core\Parser\SyntaxTree\NodeInterface;
|
||||
|
||||
class DebugInterceptor implements InterceptorInterface
|
||||
{
|
||||
public function process(NodeInterface $node, $interceptorPosition, ParsingState $parsingState) : NodeInterface
|
||||
{
|
||||
return $node;
|
||||
}
|
||||
|
||||
public function getInterceptionPoints()
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
.. index:: PHP-API, LocalConfiguration, Fluid
|
||||
@@ -0,0 +1,51 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-76108:
|
||||
|
||||
=============================================================
|
||||
Feature: #76108 - Replace ExtJS category tree with D3 and SVG
|
||||
=============================================================
|
||||
|
||||
See :issue:`76108`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The Backend ExtJS category tree (renderType `selectTree`) has been replaced with one based on D3.js_ and SVG.
|
||||
Tree implements a 'virtual scroll' pattern, meaning that it renders only as many nodes as fit in the viewport.
|
||||
|
||||
.. _D3.js: https://d3js.org/
|
||||
|
||||
Additionally the tree now display icon overlay (e.g. for disabled categories).
|
||||
|
||||
Structure
|
||||
---------
|
||||
|
||||
There are three RequireJS modules:
|
||||
|
||||
- SvgTree.js - this is a base JS object able to render a SVG based tree. It can expand and collapse child nodes, render icons for each node, and keep track of the select nodes.
|
||||
- SelectTree.js - extends the SvgTree object (prototype inheritance) with checkboxes
|
||||
- SvgTreeToolbar.js - toolbar for SvgTree which allows to search, collapse all and expand all tree nodes
|
||||
|
||||
Visual Scroll
|
||||
-------------
|
||||
|
||||
SvgTree renders only as many nodes as fit in the wrapping container. This requires that the wrapping container has a fixed height set.
|
||||
So e.g. if one node takes 20px height, and the wrapper has 200px, only 10 nodes will be rendered at the time.
|
||||
|
||||
Data binding
|
||||
------------
|
||||
|
||||
Thanks to D3, each SVG node representing tree item is bound to the data object. The general idea is that all operations (like showing/hiding/selecting...) are first performed on the dataset, and then the view (SVG) is refreshed.
|
||||
In the :js:`initialize` function SvgTree loads the whole tree as json
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
- New tree is faster.
|
||||
- A new 'indeterminate' state for the category has been introduced introduced. The category is in the 'indeterminate' state if at last one of its descendants is selected (checked).
|
||||
- Tree data is not rendered inline in HTML any more but fetched via Ajax
|
||||
|
||||
.. index:: JavaScript, Backend
|
||||
+39
@@ -0,0 +1,39 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-76209:
|
||||
|
||||
===========================================================================
|
||||
Feature: #76209 - Hook to register custom result browsers in AbstractPlugin
|
||||
===========================================================================
|
||||
|
||||
See :issue:`76209`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The hook :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Frontend\Plugin\AbstractPlugin::class]['pi_list_browseresults']` allows
|
||||
registering custom result browser implementations. This approach allows to override the default implementation of
|
||||
:php:`AbstractPlugin::pi_list_browseresults()` for either all extensions or only for specific ones.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
The hook may be registered in `ext_localconf.php`:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Frontend\Plugin\AbstractPlugin::class]['pi_list_browseresults'][1463475262] = \Vendor\ExtensionKey\Hook\ResultBrowserHook::class
|
||||
|
||||
The registered class must implement the method :php:`pi_list_browseresults()` with the following arguments:
|
||||
|
||||
* int `$showResultCount` Determines how the results of the page browser will be shown
|
||||
* string `$tableParams` Attributes for the table tag which is wrapped around the table cells containing the browse links
|
||||
* array `$wrapArr` Array with elements to overwrite the default $wrapper-array
|
||||
* string `$pointerName` Variable name for the pointer
|
||||
* bool `$hscText` Enable htmlspecialchars() for the pi_getLL function
|
||||
* bool `$forceOutput` Forces the output of the page browser if you set this option to `true`
|
||||
* object `$pObj` The AbstractPlugin instance calling the hook
|
||||
|
||||
.. index:: PHP-API, LocalConfiguration, Frontend
|
||||
+54
@@ -0,0 +1,54 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-76259:
|
||||
|
||||
================================================================
|
||||
Feature: #76259 - Introduce buildQueryParametersPostProcess Hook
|
||||
================================================================
|
||||
|
||||
See :issue:`76259`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
With the migration to Doctrine the hook `buildQueryParameters`
|
||||
has been introduced in the class :php:`DatabaseRecordList`. This hook
|
||||
replaces the hook `makeQueryArray` from the deprecated method
|
||||
:php:`AbstractDatabaseRecordList::makeQueryArray`.
|
||||
|
||||
Using this hook allows modifying the parameters used to query the database
|
||||
for records to be shown in the record list view.
|
||||
|
||||
The hook-object needs to be registered in :php:`$GLOBALS['TYPO3_CONF_VARS']['SC_OPTIONS'][\TYPO3\CMS\Recordlist\RecordList\DatabaseRecordList::class]['buildQueryParameters'][]`
|
||||
and implement the public method :php:`buildQueryParametersPostProcess`.
|
||||
|
||||
The signature of the :php:`buildQueryParametersPostProcess` method is as following:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
public function buildQueryParametersPostProcess(
|
||||
array $parameters,
|
||||
string $table,
|
||||
int $pageId,
|
||||
array $additionalConstraints,
|
||||
array $fieldList,
|
||||
AbstractDatabaseRecordList $parentObject
|
||||
) : void {
|
||||
}
|
||||
|
||||
The following fields are part of the `$parameters` array and can be modified:
|
||||
|
||||
============== ========== ===========
|
||||
Key Type Description
|
||||
-------------- ---------- -----------
|
||||
table string The queried tablename
|
||||
fields string[] The columns to retrieve
|
||||
groupBy string[] The columns to group the result by
|
||||
firstResult int|null The offset to start retrieve rows from
|
||||
maxResults int|null The maximum number of rows to retrieve
|
||||
orderBy array[] Array of arrays containing fieldname/sorting pairs
|
||||
where string[] Array of where conditions to apply to the database query.
|
||||
============== ========== ===========
|
||||
|
||||
.. index:: PHP-API, Database
|
||||
+22
@@ -0,0 +1,22 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-77280:
|
||||
|
||||
=======================================================================
|
||||
Feature: #77280 - Render the file title in "file links" content element
|
||||
=======================================================================
|
||||
|
||||
See :issue:`77280`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
In the content element "File links" now displays the file title, if present.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
In the frontend the file name will be replaced by the title as soon as a file has a title.
|
||||
|
||||
.. index:: Frontend
|
||||
+37
@@ -0,0 +1,37 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-77336:
|
||||
|
||||
=========================================================================
|
||||
Feature: #77336 - Allow passing an own unit collection to BytesViewHelper
|
||||
=========================================================================
|
||||
|
||||
See :issue:`77336`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The BytesViewHelper accepts a new parameter named `units`. It must be a comma separated list of units.
|
||||
|
||||
First example: Use the translation VH
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
{fileSize -> f:format.bytes(units: '{f:translate(\'viewhelper.format.bytes.units\', \'fluid\')}'}
|
||||
|
||||
Second example: Provide a plain list
|
||||
|
||||
.. code-block:: html
|
||||
|
||||
<f:format.bytes units="byte, kilo, mega, husel, pusel">{size}</f:format.bytes>
|
||||
|
||||
results in the currently used collection, provided by the core.
|
||||
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
A custom list of units can be passed to the ViewHelper and will be used for formatting. The existing behaviour has not changed.
|
||||
|
||||
.. index:: Fluid
|
||||
@@ -0,0 +1,23 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-77349:
|
||||
|
||||
==========================================================
|
||||
Feature: #77349 - Additional locations for extension icons
|
||||
==========================================================
|
||||
|
||||
See :issue:`77349`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
Extensions can now hold their extension icons in additional locations to the existing ones (ext_icon.png, ext_icon.svg, ext_icon.gif):
|
||||
|
||||
- `Resources/Public/Icons/Extension.png`
|
||||
- `Resources/Public/Icons/Extension.svg`
|
||||
- `Resources/Public/Icons/Extension.gif`
|
||||
|
||||
This makes it possible to restrict access to more directories, thus hardening the TYPO3 instance.
|
||||
|
||||
.. index:: Backend
|
||||
+19
@@ -0,0 +1,19 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _feature-77481:
|
||||
|
||||
=====================================================================
|
||||
Feature: #77481 - Add possibility to define a favicon for the backend
|
||||
=====================================================================
|
||||
|
||||
See :issue:`77481`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The new option `backendFavicon` in the extension manager configuration makes it possible to
|
||||
change the favicon of the backend. This makes it easier to distinguish between different
|
||||
installations and stages.
|
||||
|
||||
.. index:: Backend
|
||||
@@ -0,0 +1,21 @@
|
||||
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _important-77411-1668719172:
|
||||
|
||||
======================================================
|
||||
Important: #77411 - Removed extbase table column cache
|
||||
======================================================
|
||||
|
||||
See :issue:`77411`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
The extbase table column cache `extbase_typo3dbbackend_tablecolumns`,
|
||||
which was used to store all database fields of all database tables,
|
||||
hass been removed.
|
||||
|
||||
The associated configuration variable :php:`$GLOBALS[TYPO3_CONF_VARS][SYS][caching][cacheConfigurations][extbase_typo3dbbackend_tablecolumns]` can safely be removed.
|
||||
|
||||
.. index:: Database, ext:extbase, LocalConfiguration
|
||||
@@ -0,0 +1,52 @@
|
||||
:template: changelogOverview.html
|
||||
.. include:: /Includes.rst.txt
|
||||
.. _changelog-8-3:
|
||||
|
||||
8.3 Changes
|
||||
===========
|
||||
|
||||
**Table of contents**
|
||||
|
||||
.. contents::
|
||||
:local:
|
||||
:depth: 1
|
||||
|
||||
Breaking Changes
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Breaking-*
|
||||
|
||||
Features
|
||||
^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Feature-*
|
||||
|
||||
Deprecation
|
||||
^^^^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Deprecation-*
|
||||
|
||||
Important
|
||||
^^^^^^^^^
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:titlesonly:
|
||||
:glob:
|
||||
|
||||
Important-*
|
||||
Reference in New Issue
Block a user