Typo3 8.7.10 Действия переключаемого контроллера не работают - PullRequest
0 голосов
/ 11 октября 2018

Из приведенных примеров я попытался создать переключаемое управляющее действие для моего модуля расширения, но оно не отображается.Кто-нибудь может помочь мне понять, почему?

В моем ext_localconf.php у меня есть следующее:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
        'myeventplugin',
        'Pi1',
        [
            'Events' => 'list, display'
        ],
        // non-cacheable actions
        [
            'Events' => 'list, display'
        ]
    );

В моем ext_tables.php у меня есть следующее:

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
        'myeventplugin',
        'Pi1',
        'Events'
);  

$pluginSignature = 'myeventplugin_Pi1';

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

В моей конфигурации / FlexForms /flexform_pi1.xml У меня есть следующее:

<?xml version="1.0" encoding="UTF-8"?>
<T3DataStructure>
<sheets>
    <sDEF>
        <ROOT>
            <TCEforms>
                <sheetTitle>Events Plugin Config</sheetTitle>
            </TCEforms>
            <type>
                array
            </type>
            <el>
                <switchableControllerActions>
                    <TCEforms>
                        <label>View</label>
                        <onChange>reload</onChange>
                        <config>
                            <type>select</type>
                            <renderType>selectSingle</renderType>
                            <items type="array">
                                <numIndex index="0" type="array">
                                    <numIndex index="0">Event List</numIndex>
                                    <numIndex index="1">Events->list</numIndex>
                                </numIndex> 
                                <numIndex index="1" type="array">
                                    <numIndex index="0">Event Display</numIndex>
                                    <numIndex index="1">Events->display</numIndex>
                                </numIndex>               
                            </items>
                        </config>
                    </TCEforms>
                </switchableControllerActions>
            </el>
        </ROOT>
    </sDEF>
</sheets>
</T3DataStructure>

Когда я включаю плагин, я не вижу созданного мной дополнительного меню выбора, поэтому я не могу указать, какое действие я хочу вызвать.

Я подумал, что, возможно, переменная $ pluginSignature неверна из-за регистра.Поэтому в ext_tables.php в перепробовали следующее:

 $extensionName = strtolower(\TYPO3\CMS\Core\Utility\GeneralUtility::underscoredToUpperCamelCase($_EXTKEY));
 $pluginSignature = $extensionName.'_'.'Pi1';

и

 $extensionName = strtolower(\TYPO3\CMS\Core\Utility\GeneralUtility::underscoredToUpperCamelCase($_EXTKEY));
 $pluginSignature = $extensionName.'_'.'pi1'; 

и

 $pluginSignature = 'myeventplugin_Pi1';       

и

 $pluginSignature = 'myeventplugin_pi1';

... но все равно не повезло

1 Ответ

0 голосов
/ 11 октября 2018

Я смотрю в моем последнем расширении: в ext_tables.php я написал

    $extensionName = strtolower(\TYPO3\CMS\Core\Utility\GeneralUtility::underscoredToUpperCamelCase($extKey));
    $pluginName = strtolower('plg');
    $pluginSignature = $extensionName.'_'.$pluginName;

, поэтому в моем случае $ pluginSignature = 'thoffer_plg', в вашем случае это должно быть 'myeventplugin_pi1'.

Следующие строки:

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

Это функционально для меня, в вашем случае выглядит нормально.Лучший способ - переустановить расширение, если вы измените значения для flexforms, потому что это обычно глубоко кэшируется.

...