public function getDataStructureIdentifierPreProcess(array $tca, $tableName, $fieldName, array $row)
    {
        if ($tableName === 'tt_content' && $fieldName === 'pi_flexform' && $row['CType'] === 'gridelements_pi1') {
            if (!empty($row['tx_gridelements_backend_layout'])) {
                $pageUid = $row['pid'];
                $layoutId = $row['tx_gridelements_backend_layout'];
                /** @var $layoutSetupInstance LayoutSetup */
                $layoutSetupInstance = GeneralUtility::makeInstance(LayoutSetup::class)->init($pageUid);
                $layoutSetup = $layoutSetupInstance->getLayoutSetup($layoutId);
                if ($layoutSetup['pi_flexform_ds_file']) {
                    // Our data structure is in a record. Re-use core internal syntax to resolve that.
                    $identifier = [
                        'type'       => 'record',
                        'tableName'  => 'tx_gridelements_backend_layout',
                        'uid'        => $layoutId,
                        'fieldName'  => 'pi_flexform_ds_file',
                        'flexformDS' => 'FILE:' . $layoutSetup['pi_flexform_ds_file'],
                    ];
                } elseif ($layoutSetup['pi_flexform_ds']) {
                    $identifier = [
                        'type'       => 'record',
                        'tableName'  => 'tx_gridelements_backend_layout',
                        'uid'        => $layoutId,
                        'fieldName'  => 'pi_flexform_ds',
                        'flexformDS' => $layoutSetup['pi_flexform_ds'],
                    ];
                } else {
                    // This could be an additional core patch that allows referencing a DS file directly.
                    // If so, the second hook below would be obsolete.
                    $identifier = [
                        'type' => 'gridelements-dummy',
                    ];
                }
            } else {
                $identifier = [
                    'type' => 'gridelements-dummy',
                ];
            }
        } else {
            // Not my business
            $identifier = [];
        }
        return $identifier;
    }
public function getDataStructureIdentifierPreProcess(array $tca, $tableName, $fieldName, array $row)
    {
        if ($tableName === 'tt_content' && $fieldName === 'pi_flexform' && $row['CType'] === 'gridelements_pi1') {
            if (!empty($row['tx_gridelements_backend_layout'])) {
                $pageUid = $row['pid'];
                $layoutId = $row['tx_gridelements_backend_layout'];
                /** @var $layoutSetupInstance LayoutSetup */
                $layoutSetupInstance = GeneralUtility::makeInstance(LayoutSetup::class)->init($pageUid);
                $layoutSetup = $layoutSetupInstance->getLayoutSetup($layoutId);
                if ($layoutSetup['pi_flexform_ds_file']) {
                    // Our data structure is in a record. Re-use core internal syntax to resolve that.
                    $identifier = [
                        'type'       => 'record',
                        'tableName'  => 'tx_gridelements_backend_layout',
                        'uid'        => $layoutId,
                        'fieldName'  => 'pi_flexform_ds_file',
                        'flexformDS' => 'FILE:' . $layoutSetup['pi_flexform_ds_file'],
                    ];
                } elseif ($layoutSetup['pi_flexform_ds']) {
                    $identifier = [
                        'type'       => 'record',
                        'tableName'  => 'tx_gridelements_backend_layout',
                        'uid'        => $layoutId,
                        'fieldName'  => 'pi_flexform_ds',
                        'flexformDS' => $layoutSetup['pi_flexform_ds'],
                    ];
                } else {
                    // This could be an additional core patch that allows referencing a DS file directly.
                    // If so, the second hook below would be obsolete.
                    $identifier = [
                        'type' => 'gridelements-dummy',
                    ];
                }
            } else {
                $identifier = [
                    'type' => 'gridelements-dummy',
                ];
            }
        } else {
            // Not my business
            $identifier = [];
        }
        return $identifier;
    }
public function getDataStructureIdentifierPreProcess ( array $ tca , $ tableName , $ fieldName , array $ row ) { if ( $ tableName === 'tt_content' && $ fieldName === 'pi_flexform' && $ row [ 'CType' ] === 'gridelements_pi1' ) { if ( ! empty ( $ row [ 'tx_gridelements_backend_layout' ] ) ) { $ pageUid = $ row [ 'pid' ] ; $ layoutId = $ row [ 'tx_gridelements_backend_layout' ] ; /** @var $layoutSetupInstance LayoutSetup */ $ layoutSetupInstance = GeneralUtility :: makeInstance ( LayoutSetup :: class ) -> init ( $ pageUid ) ; $ layoutSetup = $ layoutSetupInstance -> getLayoutSetup ( $ layoutId ) ; if ( $ layoutSetup [ 'pi_flexform_ds_file' ] ) { // Our data structure is in a record. Re-use core internal syntax to resolve that. $ identifier = [ 'type' => 'record' , 'tableName' => 'tx_gridelements_backend_layout' , 'uid' => $ layoutId , 'fieldName' => 'pi_flexform_ds_file' , 'flexformDS' => 'FILE:' . $ layoutSetup [ 'pi_flexform_ds_file' ] , ] ; } elseif ( $ layoutSetup [ 'pi_flexform_ds' ] ) { $ identifier = [ 'type' => 'record' , 'tableName' => 'tx_gridelements_backend_layout' , 'uid' => $ layoutId , 'fieldName' => 'pi_flexform_ds' , 'flexformDS' => $ layoutSetup [ 'pi_flexform_ds' ] , ] ; } else { // This could be an additional core patch that allows referencing a DS file directly. // If so, the second hook below would be obsolete. $ identifier = [ 'type' => 'gridelements-dummy' , ] ; } } else { $ identifier = [ 'type' => 'gridelements-dummy' , ] ; } } else { // Not my business $ identifier = [ ] ; } return $ identifier ; }
Method to find flex form configuration of a tt_content gridelements
content element.

@param array $tca
@param $tableName
@param $fieldName
@param array $row
@return array
Method to find flex form configuration of a tt_content gridelements content element .