我正在开发一个TYPO3 Extbase-Extension,它从XML-API获取事件。扩展由1个控制器和2个操作组成。
所以我的ext_localconf.php
看起来有点像这样:
Tx_Extbase_Utility_Extension::configurePlugin($_EXTKEY, 'pi1', array(
'Api' => 'latest,full'
),
array(
'Api' => 'latest,full'
));
动作的内容几乎相同,latest
-动作只从API获取3个事件,full
-动作从API获取所有事件。此外,它们对事件的呈现方式也有所不同,这意味着它们使用不同的模板。
现在,在Page A
上的TYPO3后端中,我添加了一个类型为plugin
的新内容。我选择我的插件保存内容。在前端输出插件的latest
-操作产生的结果。
然而,在Page B
上,我也想使用相同的插件,但希望输出full
-Action的结果。
我有点困惑。如何在后台的下拉列表中选择操作?
TYPO3上的文档非常糟糕,缺少很多信息,所以我在这里寻求帮助。
我发现的所有例子都只涉及一个动作。
您必须为插件创建一个flexform,或者如果您的插件现在有一个flexform,只需添加以下内容。
为了能够在插件中选择操作和控制器,您需要在flexform中使用switchableControllerActions
。
<switchableControllerActions>
<TCEforms>
<label>View</label>
<onChange>reload</onChange>
<config>
<type>select</type>
<items type="array">
<numIndex index="1" type="array">
<numIndex index="0">Latest events</numIndex>
<numIndex index="1">Api->latest;</numIndex>
</numIndex>
<numIndex index="1" type="array">
<numIndex index="0">All events</numIndex>
<numIndex index="1">Api->full;</numIndex>
</numIndex>
</items>
</config>
</TCEforms>
</switchableControllerActions>
如果您没有用于扩展的flexform,请在Configuration/flexform文件夹中创建一个。检查此链接。https://wiki.typo3.org/Extension_Development,_using_Flexforms