2016-06-10 292 views
1

我正在开发一个TYPO3 Extbase扩展,它从XML-API中获取事件。 该扩展包含1个控制器和2个操作。为插件调用特定的extbase动作

所以我ext_localconf.php有些看起来是这样的:

Tx_Extbase_Utility_Extension::configurePlugin($_EXTKEY, 'pi1', array(
    'Api' => 'latest,full' 
), 
array(
    'Api' => 'latest,full' 
)); 

行动的内容几乎是一样的,latest清议取出由API只有3个事件中,清议full从获取的所有事件API。此外,他们确实呈现事件有点不同,这意味着他们使用不同的模板。

现在在TYPO3-Backend上Page A我添加了一个类型为plugin的新内容。我选择我的插件保存内容。在前端输出由插件的latest产生的结果。

但是,在Page B,我也想使用相同的插件,但要输出full -Action的结果。

我有点困惑。我如何在后端的下拉列表中选择操作?

关于TYPO3的文档非常糟糕,缺乏大量的信息,所以我在这里寻求帮助。

我发现的所有例子只处理一个动作。

回答

1

你必须为插件创建一个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

+0

谢谢。我还没有弹性。我会检查你的链接,并回来给一些反馈。 –

+0

其简单,只需按照我在帖子中添加的链接..问我,如果你有问题:) –

+0

添加第一我没有真正阅读你的代码示例。只是“flexform”这个词出现了,我开始研究。我构建了一个选择字段,然后没有管理它将所选值作为动作调用。然后我重新浏览这个页面,看到你使用'swticthableControllerActions'元素。这就是诀窍:) –