.xmlファイルを作成します。私は規約がないことを知っていますが、あなたのエクステンションのプラグインタイプごとに別々のファイルが必要なので、プラグインと同じ名前を付けることをお勧めします。
typo3conf/ext/extensionkey/Configuration/FlexForms/Pluginname.xml
xmlファイルはそうのように、選択型オプションとしてキーswitchableControllerActionsで少なくともTCEFORM構造を含める必要があります。
<?xml version="1.0" encoding="UTF-8"?>
<T3DataStructure>
<sheets>
<general>
<ROOT>
<TCEforms>
<sheetTitle>Display type</sheetTitle>
</TCEforms>
<type>array</type>
<el>
<switchableControllerActions>
<TCEforms>
<label>Display</label>
<config>
<type>select</type>
<items type="array">
<numIndex index="1" type="array">
<numIndex index="0">List</numIndex>
<numIndex index="1">Controller->list</numIndex>
</numIndex>
<numIndex index="2" type="array">
<numIndex index="0">Search bar</numIndex>
<numIndex index="1">Controller->searchbar</numIndex>
</numIndex>
</items>
</config>
</TCEforms>
</switchableControllerActions>
</el>
</ROOT>
</general>
</sheets>
</T3DataStructure>
次に、ファイルを登録して、バックエンドでFlexformを認識させます。変数$pluginSignature
を書き留めます。パターンはextension_pluginname
と一致する必要があります。それに応じてプラグイン名を定義する必要があります。
$extensionName = strtolower(\TYPO3\CMS\Core\Utility\GeneralUtility::underscoredToUpperCamelCase($_EXTKEY));
$pluginSignature = $extensionName.'_'.$pluginName;
//...
// Register FlexForm Configuration
$TCA['tt_content']['types']['list']['subtypes_addlist'][$pluginSignature] = 'pi_flexform';
ExtensionManagementUtility::addPiFlexFormValue(
$pluginSignature,
'FILE:EXT:'.$_EXTKEY.'/Configuration/FlexForms/Pluginname.xml'
);
最後に、システムキャッシュをフラッシュするとよいです。設定オプションがプラグイン設定で表示されるはずです。定義されたswitchableControllerActions値は、プラグインインスタンスの標準アクションを置き換えます。
ただし、いくつか注意する点があります。定義したアクションが、許可されたcacheableControllerActionの組み合わせに置き換わることに注意してください。
<numIndex index="1" type="array">
<numIndex index="0">List</numIndex>
<numIndex index="1">Controller->list;Controller->show</numIndex>
</numIndex>
ありがとう:あなたの拡張機能がある場合はそのようなので、extample、このプラグインのインスタンスの別のアクション
show()
のために、1つは追加する必要があります。 $ TCA ['tt_content'] ['types'] ['list'] ['subtypes_addlist'] [$ pluginSignature] = 'pi_flexform'; – psiess良い点、私はそれを逃した、答えを更新します。 – j4k3
PHPコードはext_tables.phpに挿入する必要があります –