TYPO3 4.7.2如何通过Typoscript引入Extbase插件?

4
我写了一个扩展程序,并通过后端实现插件,所有操作均正确。但是当我尝试通过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

我反复检查了一切,但没有发现任何问题......尝试去掉"action"和"controller"部分,但没有任何变化。

我的ext_localconf.php中的configurePlugin部分如下:

Tx_Extbase_Utility_Extension::configurePlugin(
    $_EXTKEY,
    'Graphicmenu',
    array(
        'Menu' => 'show',
    ),
    // non-cacheable actions
    array(
        'Menu' => '',
    )
);

"show"操作没有任何参数。在这里,我从中加载ts设置,以取出要显示的对象的Uid。

PS:每次更改后,我都清除缓存并删除typo3conf中的“temp_CACHED_…”文件。

1个回答

7
您需要修改您的Bootstrap,这里有一个通用的语法:
lib.foo = USER
lib.foo {
    userFunc = tx_extbase_core_bootstrap->run
    extensionName = YourExtension
    pluginName = YourPlugin
    vendorName = YourVendor
    switchableControllerActions {
        Standard {
            1 = action2
            2 = action3
        }
    }
}

注意:extensionName值中的CamelCase非常重要!(感谢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
        }
    }
}

有人能指导我一些相关的参考资料吗?"switchable"控制器动作中的"switchable"是什么意思?为什么它们被组织成一个数组的数组,当大多数人似乎只使用"1 = action"来强制默认操作到他们想要的操作时?所以我的后续问题是:我在哪里可以找到这里提到的"General syntax"(及其变体)? - norwebian
这是典型的TypoScript,你也可以这样写:switchableControllerActions.Menu.1 = show - biesior
谢谢,@biesior,但让我重新表达一下问题:“您所提到的一般语法在哪里找到?”我知道它是typoscript,但我找不到ExtBase TSref,可以这么说。 我已经创建了一个新的问题来记录我迄今为止的研究和发现:http://stackoverflow.com/questions/20123037/where-is-extbase-reference-material-available - norwebian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接