Как предложить пользовательские настройки плагина FE в расширениях TYPO3 7.6? - PullRequest
0 голосов
/ 17 мая 2018

Как правило, вы используете flexforms, чтобы предлагать пользовательские настройки плагина TYPO3.Поэтому я установил следующие строки в моей 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');

и запустил небольшой тест flexform, просто чтобы проверить его (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>

После этого я очистил кеш TYPO3 и кэш кода операции PHP.Но в моей форме FE Plugin ничего не происходит.Есть ли в TYPO3 7.6+ новый способ добавления пользовательских настроек в плагины TYPO3 FE или я просто что-то пропустил?

Ответы [ 2 ]

0 голосов
/ 17 мая 2018

Почему бы вам просто не зарегистрировать плагин внешнего интерфейса?Затем он автоматически сгенерирует гибкую форму для вас, которую вы можете расширить, плюс он даст вам это по умолчанию

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

Я не изменю свой первый ответ, но, очевидно, я ошибся.Выполните следующие действия, и вы сможете добавить свою FlexForm:

На всякий случай

$pluginSignature = str_replace('_', '', $extKey) . '_yourextensionKey';

Зарегистрировать свою FlexForm:

$GLOBALS['TCA']['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';

Найти свою FlexForm:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue($pluginSignature, 'FILE:EXT:' . $extKey . '/Configuration/FlexForms/FlexFormNameHere.xml');
0 голосов
/ 17 мая 2018

Я думаю, что вы неправильно построили сигнатуру плагина.

dscontrolpanel_dsentitymodullist вместо 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'
);
...