Kai*_*Kai 4 plugins typo3 typoscript extbase
我写了一个扩展,并通过后端实现插件完成所有事情.
但是当我尝试通过typoscript实现我的扩展时,我每次都会收到此错误:
糟糕,发生错误!
无法确定默认控制器.请检查ext_localconf.php中的Tx_Extbase_Utility_Extension :: configurePlugin().
我不知道为什么..我尝试了不同的实现(根据tx_extbase_core_bootstrap-> run或tx_extbase_dispatcher-> dispatch以及附加信息而没有),当前的typoscript如下所示:
plugin.tx_graphichmenu {
settings {
menuUid = 1
}
}
lib.tx_graphichmenu = USER
lib.tx_graphichmenu {
userFunc = tx_extbase_core_bootstrap->run
extensionName = Graphichmenu
pluginName = Graphicmenu
controller = MenuController
action = showAction
}
temp.mainTemplate.subparts.stickyfooter < lib.tx_graphichmenu
Run Code Online (Sandbox Code Playgroud)
我双精度和三重检查一切,我发现没有一个单一的错......试过了没有"行动"和"调节器"的一部分,并没有什么改变
我在ext_localconf.php中的configurePlugin部分如下所示:
Tx_Extbase_Utility_Extension::configurePlugin(
$_EXTKEY,
'Graphicmenu',
array(
'Menu' => 'show',
),
// non-cacheable actions
array(
'Menu' => '',
)
);
Run Code Online (Sandbox Code Playgroud)
"show"动作没有参数.在那里我加载ts设置从我拿到对象的Uid显示
PS:每次更改后我都清除了缓存并删除了typo3conf中的"temp_CACHED _..."文件
你需要修改你的bootstrap,有一般的语法:
lib.foo = USER
lib.foo {
userFunc = tx_extbase_core_bootstrap->run
extensionName = YourExtension
pluginName = YourPlugin
vendorName = YourVendor
switchableControllerActions {
Standard {
1 = action2
2 = action3
}
}
}
Run Code Online (Sandbox Code Playgroud)
注意:CamelCase的extensionName价值很重要!(感谢Kai的确认)所以如果extkey是:kai_some_extension它必须写成KaiSomeExtension
所以在你的情况下它应该是这样的:
lib.foo = USER
lib.foo {
userFunc = tx_extbase_core_bootstrap->run
extensionName = GraphicHmenu
pluginName = Graphicmenu
switchableControllerActions {
Menu {
1 = show
}
}
}
Run Code Online (Sandbox Code Playgroud)