2016-06-10 1 views
1

Я разрабатываю Ext-Extension TYPO3 Extension, который извлекает события из XML-API. Расширение состоит из 1 контроллера и 2 действия.Вызвать специфическое действие extbase для плагина

Так мой ext_localconf.php выглядит примерно так:

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

Содержание действия почти то же самое, latest -действие получает только 3 события из API, то full -действие извлекает все события из API. Также они визуализируют события несколько иначе, то есть используют разные шаблоны.

Теперь в TYPO3-Backend на Page A Я добавляю новое содержимое с типом plugin. Я выбираю свой плагин для сохранения содержимого. В интерфейсе выводятся результаты, полученные с помощью latest -Action плагина.

Однако на Page B, я также хочу использовать тот же плагин, но хочу вывести результаты full -Action.

Я смущен. Как я могу выбрать действие в выпадающем списке в бэкэнде или что-то в этом роде?

Документация о TYPO3 действительно плохая и не содержит большого количества информации, поэтому я ищу здесь помощь.

Все примеры, которые я нашел, касаются только одного действия.

ответ

1

Вы должны создать flexform для плагина, или если ваш плагин имеет форму flexform, просто добавьте следующее.

Для выбора действий и контроллера в плагине вам необходимо использовать switchableControllerActions в flexform.

<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> 

Если у вас нет гибкой формы для расширения, создайте ее в папке Configuration/Flexform. Проверьте эту ссылку. https://wiki.typo3.org/Extension_Development,_using_Flexforms

+0

спасибо. У меня еще нет flexform. Я проверю вашу ссылку и вернусь, чтобы дать некоторую обратную связь. –

+0

Простой, просто следуйте ссылке, которую я добавил в сообщении. Спросите меня, есть ли у вас вопросы :) –

+0

Добавляю сначала, что я действительно не читал ваш пример кода. Просто появился термин «flexform», и я начал исследовать. Я построил поле выбора, а затем не смог его вызвать в качестве действия выбранное значение. Затем я снова просмотрел эту страницу и увидел, что вы используете элемент 'swticthableControllerActions'. Это сделало трюк :) –