Как заставить дочерние страницы наследовать родительский пакет

Я хотел бы знать, как я могу заставить дочерние страницы (более 10 КБ) наследовать плагин родительской страницы.

Старый способ сделать плагин заключался в создании файла pi1/class.tx_extkey_pi1.php, который расширяет \TYPO3\CMS\Frontend\Plugin\AbstractPlugin и который легко установить на родительской странице и автоматически на дочерних страницах.

Теперь, с плагином Extbase MVC, у меня есть контроллеры, которые расширяют ActionController, но я не могу сделать его рекурсивным.

Кто-нибудь знает способ сделать это?

Большое спасибо за любую помощь


person Jul6art    schedule 14.04.2017    source источник
comment
Извините, я забыл поздороваться, прежде чем задать свой вопрос, так что ... всем привет!   -  person Jul6art    schedule 14.04.2017
comment
Вы хотите получить значения uid вложенных дочерних страниц, или вы хотите унаследовать выполнение плагина для подстраниц (в основном с помощью TypoScript). Возможно, вы могли бы предоставить некоторый код вашего предыдущего класса на основе AbstractPlugin   -  person Oliver Hader    schedule 14.04.2017
comment
Да, я мог бы предоставить код предыдущей версии, но проблема не в коде. Это способ мыслить. Раньше при добавлении плагина в шаблон страницы затрагивались и дочерние страницы. Теперь, когда я это делаю, я просто могу манипулировать конфигурацией на дочерних страницах, но для использования действий мне нужно добавить плагин в блок контента.   -  person Jul6art    schedule 14.04.2017
comment
Ах, это только о TypoScript и о том, как вызывать классы Extbase? В старых версиях вы использовали userFunc = tx_extkey_pi1->main и хотели бы знать, как это делается в Extbase, верно?   -  person Oliver Hader    schedule 14.04.2017


Ответы (1)


АннотацияПлагин

Классы, которые наследуются от AbstractPlugin (так называемые Pi-Based-Plugins), вызываются в TypoScript следующим образом:

page = PAGE
page.10 = USER
page.10 {
  userFunc = tx_myext_pi1->main
}

Extbase

Используя диспетчер Extbase MVC, плагины вызываются следующим образом — это вызовет первое зарегистрированное действие первого зарегистрированного контроллера в ext_localconf.php:

page = PAGE
page.10 = USER
page.10 {
    userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
    vendorName = MyVendor
    extensionName = MyExtension
    pluginName = MyPlugin
}

Однако существует обходной путь для выбора определенного действия в TypoScript с помощью switchableControllerActions — следующий TypoScript вызывает MyVendor\MyExtension\MyController::myAction():

page = PAGE
page.10 = USER
page.10 {
    userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
    vendorName = MyVendor
    extensionName = MyExtension
    pluginName = MyPlugin
    switchableControllerActions {
        My {       // automatically expanded to class name "MyController"
            0 = my // automatically expanded to method name "myAction"
        }
    }
}
person Oliver Hader    schedule 14.04.2017
comment
Спасибо, Оливер Хадер, что уделил мне время, я проверю. Спасибо - person Jul6art; 14.04.2017
comment
Спасибо, я проверил это, и это работает, дети страницы унаследовали плагин. Единственное, что я думаю, это то, что он не расширяет основной макет - person Jul6art; 14.04.2017