Project

General

Profile

Actions

Bug #73125

closed

Story #69617: FormEngine bugs

500 Error in GroupElement.php due to group db fields in flexform containers

Added by Marcos Fadul about 8 years ago. Updated over 5 years ago.

Status:
Closed
Priority:
Must have
Assignee:
Category:
FormEngine aka TCEforms
Target version:
-
Start date:
2016-02-04
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
7
PHP Version:
5.5
Tags:
Complexity:
Is Regression:
Yes
Sprint Focus:

Description

There is a bug in the typo3/sysext/backend/Classes/Form/Element/GroupElement.php on line 278. I think it is only happening with nested flexforms.

                    if (!$this_table && $onlySingleTableAllowed) {
                        $this_table = $allowed[0];
                    }
                    $itemArray[] = array('table' => $this_table, 'id' => $this_uid);
                    if (!$disabled && $show_thumbs) {
                        $rr = BackendUtility::getRecordWSOL($this_table, $this_uid);

$this_table should be a string as expected from getRecordWSOL, but as it is coming from a trimExplode it is actually a array. On line 55 you can see.
$allowed = GeneralUtility::trimExplode(',', $config['allowed'], true);

A simple array_shift would solve this issue.

This issue is hiding another issue with container elements in flexform using group-> db fields. The elements in the containers are not being prepend with the table name and this cause later a problem.

Example:

<T3DataStructure>
    <meta>
        <langDisable>1</langDisable>
    </meta>
    <ROOT>
        <type>array</type>
        <el>
            <settings.container>
                <TCEforms>
                    <label>Download Container</label>
                </TCEforms>
                <section>1</section>
                <type>array</type>
                <el>
                    <item>
                        <type>array</type>
                        <label>New Document</label>
                        <title>New Document</title>
                        <el>
                            <document>
                                <TCEforms>
                                    <label>Document</label>
                                    <config>
                                        <type>group</type>
                                        <internal_type>db</internal_type>
                                        <allowed>tx_dms_domain_model_document</allowed>
                                        <size>1</size>
                                        <maxitems>1</maxitems>
                                        <minitems>1</minitems>
                                    </config>
                                </TCEforms>
                            </document>
                            <languageContainer>
                                <TCEforms>
                                    <label>More Languages Documents</label>
                                </TCEforms>
                                <section>1</section>
                                <type>array</type>
                                <el>
                                    <item>
                                        <type>array</type>
                                        <label>New Localization</label>
                                        <title>New Localization</title>
                                        <el>
                                            <document>
                                                <TCEforms>
                                                    <label>Document</label>
                                                    <config>
                                                        <type>group</type>
                                                        <internal_type>db</internal_type>
                                                        <allowed>tx_dms_domain_model_document</allowed>
                                                        <size>1</size>
                                                        <maxitems>1</maxitems>
                                                        <minitems>1</minitems>
                                                    </config>
                                                </TCEforms>
                                            </document>
                                        </el>
                                    </item>
                                </el>
                            </languageContainer>
                        </el>
                    </item>
                </el>
            </settings.container>
        </el>
    </ROOT>
</T3DataStructure>

This produces a pi_flexform like

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<T3FlexForms>
    <data>
        <sheet index="sDEF">
            <language index="lDEF">
                <field index="settings.container">
                    <el index="el">
                        <section index="1">
                            <itemType index="item">
                                <el>
                                    <field index="document">
                                        <value index="vDEF">2</value>
                                    </field>
                                    <field index="languageContainer">
                                        <el index="el">
                                            <section index="1">
                                                <itemType index="item">
                                                    <el>
                                                        <field index="document">
                                                            <value index="vDEF">3</value>
                                                        </field>
                                                    </el>
                                                </itemType>
                                                <itemType index="_TOGGLE">0</itemType>
                                            </section>
                                        </el>
                                    </field>
                                </el>
                            </itemType>
                            <itemType index="_TOGGLE">0</itemType>
                        </section>
                    </el>
                </field>
            </language>
        </sheet>
    </data>
</T3FlexForms>

And produces the error.


Related issues 2 (0 open2 closed)

Related to TYPO3 Core - Bug #76281: Change 47369 killed features in fluxRejected2016-05-24

Actions
Related to TYPO3 Core - Bug #76986: FlexForm with nested lists does not store values of 2nd LevelRejected2016-07-07

Actions
Actions

Also available in: Atom PDF