2016-06-10 291 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'元素。這就是訣竅:) –