为插件调用特定的extbase操作



我正在开发一个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

最新更新