Story #69617: FormEngine bugs
Adding inline relations in FlexForms is broken
Given a field of type
inline in a plugin's FlexForm, creating IRRE child records fails with status code 500 Internal Server Error.
#1437654409: No $tableName given InvalidArgumentException thrown in file /opt/typo3_src-master/typo3/sysext/backend/Classes/Form/FormDataCompiler.php in line 81.
I attached the full stacktrace.
Going back before commit
efa8c85, this does not happen.
[BUGFIX] FormEngine: Fix IRRE handling in flexforms
This patchset solves multiple problems with handling IRRE within a
- creating new records no longer triggers an internal server error
due to missing parent data
- IRRE children are passed to the renderer so that they get displayed
in the backend
- child table is determined correctly within flexforms when toggling
Reviewed-by: Frank Nägler <firstname.lastname@example.org>
Tested-by: Frank Nägler <email@example.com>
Reviewed-by: Christian Kuhn <firstname.lastname@example.org>
Tested-by: Christian Kuhn <email@example.com>
[BUGFIX] FormEngine: Select correct FlexForm DS for inline records
If an inline field is defined within a FlexForm that has multiple data
structures defined the FormAjaxInlineController always selects the
default data structure due to missing context information.
This patch transmits the required context within the AJAX request to
enable selecting the appropriate data structure for the flexform.
It also changes the method to determine the path through the flexform
data structure to work in the case of an inline element configured
within a flexform within another inline element.
Tested-by: Armin Ruediger Vieweg <firstname.lastname@example.org>
Tested-by: Sebastian Michaelsen <email@example.com>
Tested-by: Felix Rauch <firstname.lastname@example.org>
Reviewed-by: Claus Due <email@example.com>
Tested-by: Christopher Orth <firstname.lastname@example.org>
Tested-by: Torsten <email@example.com>
Tested-by: Philipp Wrann <firstname.lastname@example.org>
Reviewed-by: Andreas Fernandez <email@example.com>
Tested-by: Andreas Fernandez <firstname.lastname@example.org>
Reviewed-by: Wouter Wolters <email@example.com>
Tested-by: Wouter Wolters <firstname.lastname@example.org>
#6 Updated by Felix Rauch over 4 years ago
Not sure if this belongs here, I've been testing patch set 8 of https://review.typo3.org/44579 and am still getting a 500 Internal Server Error when creating new relations.
Configuration retrieved from FlexForm is incomplete or not of type "inline".
This is the field's config, I don't know how it is incomplete:
<settings.boxBackground> <TCEforms> <label>Lorem</label> <config> <type>inline</type> <maxitems>1</maxitems> <foreign_table>sys_file_reference</foreign_table> <foreign_field>uid_foreign</foreign_field> <foreign_table_field>tablenames</foreign_table_field> <foreign_label>uid_local</foreign_label> <foreign_sortby>sorting_foreign</foreign_sortby> <foreign_selector>uid_local</foreign_selector> <foreign_selector_fieldTcaOverride type="array"> <config> <appearance> <elementBrowserType>file</elementBrowserType> <elementBrowserAllowed>jpg,png</elementBrowserAllowed> </appearance> </config> </foreign_selector_fieldTcaOverride> <foreign_match_fields type="array"> <fieldname>box_background</fieldname> </foreign_match_fields> <appearance type="array"> <newRecordLinkAddTitle>1</newRecordLinkAddTitle> <headerThumbnail> <field>uid_local</field> <height>64</height> <width>64</width> </headerThumbnail> </appearance> </config> </TCEforms> </settings.boxBackground>
#8 Updated by Christian Kuhn over 4 years ago
Felix, i can confirm your issue by thinking, but this is not trivial to solve. we'll probably merge the patch as is to mitigate the flex-inline problem for now and will extract your 'flex-inline-with-multiple-flex-ds-defined' to an own issue that will be handled after release.
#13 Updated by Nikolas Hagelstein over 3 years ago
David Voigt wrote:
I'm experiencing this issue in TYPO3 7.6.4, too. This core patch fixed the issue for me (don't forget to patch fluidcontent, too. Link is included in this page):
Not really ;) Of course $databaseRow need to be fetched correctly in detailAction as well. Otherwise ur not able open the image.
Find patch attached.