如何使子页继承父包

时间:2017-04-14 09:58:22

标签: typo3 typoscript extbase typo3-7.6.x typo3-extensions

我想知道如何让子页面(超过10k)继承父页面插件。

制作插件的旧方法是创建一个扩展pi1/class.tx_extkey_pi1.php的{​​{1}}文件 并且很容易在父页面中设置并自动设置子页面。

现在,使用Extbase MVC插件,我有控制器而不是扩展\TYPO3\CMS\Frontend\Plugin\AbstractPlugin,但我无法使其递归。

有人知道这样做的方法吗?

非常感谢您的帮助

1 个答案:

答案 0 :(得分:2)

AbstractPlugin

继承自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
}

然而,使用switchableControllerActions在TypoScript中选择特定操作是一种解决方法 - 以下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"
        }
    }
}