Task #80100
closedStory #69617: FormEngine bugs
Bypass fetch of database record if already loaded
100%
Description
In order to let FormEngine being used with arbitrary array of data, \TYPO3\CMS\Backend\Form\FormDataProvider\DatabaseEditRow
should return right away if the database row is already populated.
This could happen if an extension is registering a provider called before this database provider. See EXT:image_autoresize with #79850 for such a use case.
Files
Updated by Gerrit Code Review over 7 years ago
- Status changed from New to Under Review
Patch set 1 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/51929
Updated by Gerrit Code Review over 7 years ago
Patch set 2 for branch master of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/51929
Updated by Gerrit Code Review over 7 years ago
Patch set 1 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/52003
Updated by Gerrit Code Review over 7 years ago
Patch set 2 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/52003
Updated by Xavier Perseguers over 7 years ago
- Status changed from Under Review to Resolved
- % Done changed from 0 to 100
Applied in changeset 3f35a3c18062ff26ec1551cef80bd7ff13d4e9d2.
Updated by Gerrit Code Review over 7 years ago
- Status changed from Resolved to Under Review
Patch set 3 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/52003
Updated by Gerrit Code Review over 7 years ago
Patch set 4 for branch TYPO3_7-6 of project Packages/TYPO3.CMS has been pushed to the review server.
It is available at https://review.typo3.org/52003
Updated by Xavier Perseguers over 7 years ago
- Status changed from Under Review to Resolved
Applied in changeset 0f2028a318708e4b7fa51cd6fc010a172b673080.
Updated by Morten Pless over 7 years ago
- File Buttonpress has no effect.png added
- File Buttonpress has no effect.png added
This change breaks the ability to add new data with IRRE.
At least in my setup.
Can anyone confirm?
Updated by Xavier Perseguers over 7 years ago
Maybe you should provide a bit more information of what exactly is "your setup".
Updated by Xavier Perseguers over 7 years ago
- File deleted (
Buttonpress has no effect.png)
Updated by Xavier Perseguers over 7 years ago
Updated by Faton Haliti over 7 years ago
It breaks when trying to add array data which was configured in flexform.
My setup is:
Typo3 v8.7.0-dev
MySql 5.7.17
Apache 2.4.25
Updated by Michael Schütz over 7 years ago
- File error-inline-localization-DatabaseEditRow.png error-inline-localization-DatabaseEditRow.png added
InlineLocalization fails with error 200 in TYPO3 8.7.0
-------------------------------------------------------
I have a setup, where I use tt_content records inside of tt_content record as childs
-------------------------------------------------------
1.) /typo3/sysext/backend/Classes/Form/FormDataProvider/DatabaseEditRow.php <<< delivers in TYPO3 v8.7.0 not the data from database. In TYPO3 v8.6.1 it works
1.1.) Reason there is changed the IF-statement
L:34 if ($result['command'] !== 'edit') {
L:35 return $result;
L:36 }
L:34 if ($result['command'] !== 'edit' || !empty($result['databaseRow'])) {
L:35 return $result;
L:36 }
But "$result['databaseRow']" isn't empty it just contains the "uid" as reference to the record. In the next step "$result['databaseRow']" does not get completed with the information of the whole record-information. So in the next steps the localization of the childs fails because there is no target language ID in "sys_language_uid" and no reference to record in source-language "l18_parent". After looping through all DataProviders "sys_language_uid" and "l18n_parent" are "0".
Content of array "$result". Key databaseRow contains already the reference uid to the record. Fetching data is skipped now by "!empty($result['databaseRow'])"
"command": "edit",
"tableName": "tt_content",
"vanillaUid": 6,
"returnUrl": "\/typo3\/index.php?ajaxID=%2Fajax%2Frecord%2Finline%2Fsynchronizelocalize&ajaxToken=24813fec11afe3df797970cc3ce0373006d284ff",
"recordTitle": "",
"parentPageRow": null,
"neighborRow": null,
"databaseRow": {
"uid": 6
},
"effectivePid": 0,
"rootline": [],
...
Updated by Daniel Goerz over 7 years ago
- Related to Bug #80825: FlexForm Sections don't get saved before the parent record was stored to the DB added
Updated by Christian Kuhn over 7 years ago
- Related to Bug #80855: IRRE: "Localize all records" and "Synchronize with default language" not working anymore added
Updated by König David over 7 years ago
- Related to Bug #81175: IRRE synchronizeLocalizeRecords dont work since TYPO3 7.6.17 added
Updated by Christian Kuhn about 7 years ago
For reference, here is a list of patches:
- https://review.typo3.org/#/c/51929/ - #80100 - initial patch
- https://review.typo3.org/#/c/52174/ - #80473, #80426 - non admin users can't create flex on existing elements
- https://review.typo3.org/#/c/52543/ - #80855 - inline localization synchronization broken
- https://review.typo3.org/#/c/53215/ - #80825 - flex section container on new record gets wrong (newly created) NEW123 prefix
Updated by Benni Mack almost 6 years ago
- Status changed from Resolved to Closed