Flexform в typo3 7.6.2 не работает

Я создал расширение, используя расширение Builder в версии Typo3 7.6.2. Теперь я хотел бы добавить flexform к расширению «Продукты» для подробного PID страницы. Но я старался изо всех сил интегрировать flexform, но это не сработало.

Вот мой код —

В ext_tables.php —

  \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
'Wxproducts.' . $_EXTKEY,
'Wxproducts',
'Products'
);

// flexform integration
$pluginSignature = str_replace('_','','Wxproducts'.$_EXTKEY) . '_products';
$TCA['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
t3lib_extMgm::addPiFlexFormValue($pluginSignature, 'FILE:EXT:' . $_EXTKEY . '/Configuration/FlexForms/flexform_products.xml');

В конфигурации / FlexForms / flexform_products.php —

<T3DataStructure>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>Function</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<switchableControllerActions>
<TCEforms>
<label>Select function</label>
<config>
<type>select</type>
<items>

<numIndex index="0">
<numIndex index="0">List</numIndex>
<numIndex index="1">Products->list</numIndex>
</numIndex>

<numIndex index="1">
<numIndex index="0">Detail</numIndex>
<numIndex index="1">Products->show</numIndex>
</numIndex>

</items>
</config>
</TCEforms>
</switchableControllerActions>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>

Это не работает. Я не могу понять, в чем проблема. Любая идея!

Заранее спасибо!

4

Решение

Ваш $ pluginSignature Кажется, переменная неправильная, на ней указано название поставщика. Попробуйте следующий код:

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

Вот пример, взятый из книги TYPO3 Extbase:

$pluginSignature = 'simpleblog_bloglisting';

simpleblog является ключом расширения, и bloglisting это имя плагина.

4

Другие решения

В файле ext_tables.php в строке:

t3lib_extMgm::addPiFlexFormValue

попробуйте использовать это:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPiFlexFormValue
0

Если вы допустили ошибку в pluginSignature, попробуйте следующий код, который может вам помочь.

Работа с v7.6.3

— ext_tables.php

/*** FlexForm ***/
$extensionName = \TYPO3\CMS\Core\Utility\GeneralUtility::underscoredToUpperCamelCase($_EXTKEY);
$pluginSignature = strtolower($extensionName) . '_products';

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

-FlexForm.xml

<T3DataStructure>
<meta>
<langDisable>1</langDisable>
</meta>
<sheets>
<sDEF>
<ROOT>
<TCEforms>
<sheetTitle>Settings</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<!-- View -->
<switchableControllerActions>
<TCEforms>
<label>Select Options</label>
<onChange>reload</onChange>
<config>
<type>select</type>
<items>
<numIndex index="0">
<numIndex index="0">...Select Item...</numIndex>
</numIndex>
<numIndex index="1">
<numIndex index="0">Action 1</numIndex>
<numIndex index="1">ControllerName->action1;ControllerName->action2</numIndex> <!-- Allow action to FE -->
</numIndex>
<numIndex index="2">
<numIndex index="0">Action 2</numIndex>
<numIndex index="1">ControllerName->action3;ControllerName->action4</numIndex> <!-- Allow action to FE -->
</numIndex>
</items>
</config>
</TCEforms>
</switchableControllerActions>

<settings.formID>
<TCEforms>
<label>Available Forms</label>
<displayCond>FIELD:switchableControllerActions:=:ControllerName->action1;ControllerName->action2</displayCond>
<config>
<type>select</type>
<size>1</size>
<minitems>0</minitems>
<maxitems>1</maxitems>
<itemsProcFunc>TYPO3\VendorName\Controller\ControllerName->flexFormsListItems</itemsProcFunc>
<items type="array"></items>
</config>
</TCEforms>
</settings.formID>
</el>
</ROOT>
</sDEF>
</sheets>
</T3DataStructure>
0
По вопросам рекламы [email protected]