Я разрабатываю расширение TYPO3 Extbase, которое извлекает события из XML-API.
Расширение состоит из 1 контроллера и 2 действий.
Так что мой 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
-Действие плагина выводятся.
Однако на Page B
Я также хочу использовать тот же плагин, но хочу вывести результаты full
-Действие.
Я немного растерялся. Как я могу выбрать действие в раскрывающемся списке в бэкэнде или что-то?
Документация по TYPO3 действительно плохая и не содержит много информации, поэтому я ищу здесь помощь.
Все примеры, которые я нашел, имеют дело только с одним действием.
Вы должны создать 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
Других решений пока нет …