【发布时间】:2019-05-16 12:37:47
【问题描述】:
我有一个包含各种操作的插件,这是我每次请求页面时都想调用的操作之一。我尝试了this 的方式,但是当我在同一页面上有插件时(可以说它是一个联系表单)然后插件不知道其他操作,所以我每次都必须在switchableControllerActions 中包含所有操作.
还有其他方法吗?也许在某种钩子中注册控制器的动作?
【问题讨论】:
我有一个包含各种操作的插件,这是我每次请求页面时都想调用的操作之一。我尝试了this 的方式,但是当我在同一页面上有插件时(可以说它是一个联系表单)然后插件不知道其他操作,所以我每次都必须在switchableControllerActions 中包含所有操作.
还有其他方法吗?也许在某种钩子中注册控制器的动作?
【问题讨论】:
也许你可以创建扩展的 lib 对象,看看下面的用户函数:
lib.myData = USER
lib.myData {
userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
extensionName = Ext
pluginName = pluginName
vendorName = MyVendor
switchableControllerActions {
MyController{
1 = myAct
}
}
settings < plugin.tx_ext.settings
settings {
// Your settings
}
}
现在,您可以将 lib 对象调用到流体模板(根据每个页面的需要),您可以将此对象添加到主页面布局。
HereGeorg Ringer 创建了相同的代码来使用 Typoscript 呈现新闻列表。
希望对您有所帮助!
【讨论】:
好的,我收到了提示,这就是解决方案:
20 = USER_INT
20 {
userFunc = Vendor\Extension\UserFunc\Class->function
}
【讨论】:
您可以使用 FlexForms 设置预设的 Controller->Action。因此,即使您在一个页面上使用了两次插件,您也可以通过 FlexForm 控制每个插件的 Controller->Action。
也许这对一口井有帮助: Multiple controllers in an extension
【讨论】: