Search code examples
typo3extbasetypo3-7.6.xtypo3-extensions

How to offer custom FE plugin settings in TYPO3 7.6 extensions?


In general you use flexforms to offer custom TYPO3 plugin settings. So I've setup the following lines in my ext_tables.php:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    'DS.Dscontrolpanel',
    'Dsentitymodullist',
    'Entitymodullist'
);

// ...

// Flexform
$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist']['dscontrolpanel_entitymodullist'] = 'pi_flexform';
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue('dscontrolpanel_entitymodullist','FILE:EXT:dscontrolpanel/Configuration/FlexForms/flexform_dscontrolpanel.xml');

and start a little test flexform just to test it (flexform_dscontrolpanel.xml):

<T3DataStructure>
<ROOT>
    <TCEforms>
        <sheetTitle>Test 1</sheetTitle>
    </TCEforms>
    <type>array</type>
    <el>
        <test>
            <TCEforms>
                <label>Test 2</label>
                <config>
                    <default>1</default>
                    <type>check</type>
                    <items type="array">
                        <numIndex index="1" type="array">
                            <numIndex index="0">enabled</numIndex>
                            <numIndex index="1">1</numIndex>
                        </numIndex>
                    </items>
                </config>
            </TCEforms>
        </test>
    </el>
</ROOT>

After that I cleared both the TYPO3 cache and the PHP opcode cache. But nothing happens in my FE Plugin form. Is there a new way in TYPO3 7.6+ to add custom settings to TYPO3 FE plugins or do I just miss something?


Solution

  • I think you have build wrong the plugin siganture.

    dscontrolpanel_dsentitymodullist instead of dscontrolpanel_entitymodullist

    \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
        'DS.Dscontrolpanel',
        'Dsentitymodullist',
        'Entitymodullist'
    );
    
    // ...
    
    // Flexform                                                                        vv
    $GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist']['dscontrolpanel_dsentitymodullist'] = 'pi_flexform';
    \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue(
    //                  vv
        'dscontrolpanel_dsentitymodullist',
        'FILE:EXT:dscontrolpanel/Configuration/FlexForms/flexform_dscontrolpanel.xml'
    );