TYPO3 v15 dev-main snapshot ()
This commit is contained in:
+115
@@ -0,0 +1,115 @@
|
||||
.. include:: /Includes.rst.txt
|
||||
|
||||
.. _deprecation-104108-1718354448:
|
||||
|
||||
================================================================
|
||||
Deprecation: #104108 - Table dependant definition of columnsOnly
|
||||
================================================================
|
||||
|
||||
See :issue:`104108`
|
||||
|
||||
Description
|
||||
===========
|
||||
|
||||
When linking to the edit form it's possible to instruct the
|
||||
:php:`EditDocumentController` to only render a subset of available
|
||||
fields for relevant records using the `columnsOnly` functionality,
|
||||
by adding the fields to be rendered as a comma-separated list.
|
||||
|
||||
However, the edit form can render records from many tables, and not just
|
||||
a single table, in the same request.
|
||||
|
||||
Therefore, the limit fields functionality has been extended to allow
|
||||
setting the fields to be rendered on a per-table basis. This means that
|
||||
passing a comma-separated list of fields as a value for `columnsOnly`
|
||||
has been deprecated.
|
||||
|
||||
Impact
|
||||
======
|
||||
|
||||
Passing a comma-separated list of fields as value for `columnsOnly` will
|
||||
trigger a PHP deprecation warning. A compatibility layer will automatically
|
||||
set the field list for the required tables.
|
||||
|
||||
|
||||
Affected installations
|
||||
======================
|
||||
|
||||
All installations passing a comma-separated list of fields as a value for
|
||||
`columnsOnly`.
|
||||
|
||||
|
||||
Migration
|
||||
=========
|
||||
|
||||
The fields to be rendered have to be passed as an :php:`array` under the
|
||||
corresponding table name.
|
||||
|
||||
An example, building such link using the `UriBuilder`:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$urlParameters = [
|
||||
'edit' => [
|
||||
'pages' => [
|
||||
1 => 'edit',
|
||||
],
|
||||
],
|
||||
'columnsOnly' => 'title,slug'
|
||||
'returnUrl' => $request->getAttribute('normalizedParams')->getRequestUri(),
|
||||
];
|
||||
|
||||
GeneralUtility::makeInstance(UriBuilder::class)->buildUriFromRoute('record_edit', $urlParameters);
|
||||
|
||||
Above example has to be migrated to:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$urlParameters = [
|
||||
'edit' => [
|
||||
'pages' => [
|
||||
1 => 'edit',
|
||||
],
|
||||
],
|
||||
'columnsOnly' => [
|
||||
'pages' => [
|
||||
'title',
|
||||
'slug'
|
||||
]
|
||||
],
|
||||
'returnUrl' => $request->getAttribute('normalizedParams')->getRequestUri(),
|
||||
];
|
||||
|
||||
GeneralUtility::makeInstance(UriBuilder::class)->buildUriFromRoute('record_edit', $urlParameters);
|
||||
|
||||
Additionally, when rendering records from many tables, a configuration
|
||||
could look like the following:
|
||||
|
||||
.. code-block:: php
|
||||
|
||||
$urlParameters = [
|
||||
'edit' => [
|
||||
'pages' => [
|
||||
1 => 'edit',
|
||||
],
|
||||
'tt_content' => [
|
||||
2 => 'edit',
|
||||
],
|
||||
],
|
||||
'columnsOnly' => [
|
||||
'pages' => [
|
||||
'title',
|
||||
'slug'
|
||||
],
|
||||
'tt_content' => [
|
||||
'header',
|
||||
'subheader'
|
||||
]
|
||||
],
|
||||
'returnUrl' => $request->getAttribute('normalizedParams')->getRequestUri(),
|
||||
];
|
||||
|
||||
// https:://example.com/typo3/record/edit?edit[pages][1]=edit&edit[tt_content][2]=edit&columnsOnly[pages][0]=title&columnsOnly[pages][1]=slug&columnsOnly[tt_content][0]=header&columnsOnly[tt_content][1]=subheader
|
||||
$link = GeneralUtility::makeInstance(UriBuilder::class)->buildUriFromRoute('record_edit', $urlParameters);
|
||||
|
||||
.. index:: Backend, NotScanned, ext:backend
|
||||
Reference in New Issue
Block a user