Typoscript COA中的TYPO3扩展无法识别默认控制器

时间:2016-06-28 21:39:38

标签: typo3 typo3-7.6.x

我正在尝试使用自定义创建的扩展程序呈现的内容覆盖我的Typoscript中的标记。

据我所知它应该像这样工作(MENU_PRODUKT_CATEGORIES)是我的标记:

 MENU_PRODUKT_CATEGORIES = COA
        MENU_PRODUKT_CATEGORIES {
            10 = USER
            10 {
                userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
                extensionName = MoTimeProducts
                pluginName = Products
                vendorName = products
                controller = Category
                action = parentList
            }
        }

extensionName和相关配置对我来说似乎也是正确的。当我var_dump()我的ext_localconf.php配置时,会显示:

我的第一个参数,其中MoTimeProducts是我的extensionName,产品是我的vendorName。这是对的吗?

MoTimeProducts.products

第二个参数应该是pluginName,看起来也不错。

Products

这就是我的完整ext_localconf配置的样子:

    <?php
if (!defined('TYPO3_MODE')) {
    die('Access denied.');
}

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'MoTimeProducts.' . $_EXTKEY,
    'Products',
    array(
        'Category' => 'list, parentList',
        'Product' => 'list, show, filter, ajaxFilter, refList',
        'Formular' => 'display'
    ),
    // non-cacheable actions
    array(
        'Category' => '',
        'Product' => 'ajaxFilter, list',
        'Formular' => 'display'
    )
);

我的控制器和动作配置似乎也很好。我在CategoryController中的行动

/**
 * action list
 *
 * @return void
 */
public function parentListAction() {
    $this->view->assign('categories', $currentCategory = $this->categoryRepository->getHighestLevelCategories($GLOBALS['TSFE']->sys_language_uid));
}

我还有一个用于后端配置的弹性表单,插入插件也可能是个原因吗?

感谢阅读。

1 个答案:

答案 0 :(得分:1)

哦,哇,是

MENU_PRODUKT_CATEGORIES = COA
            MENU_PRODUKT_CATEGORIES {
                10 = USER
                10 {
                    userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
                    pluginName = Products
                    extensionName = Products
                    vendorName = MoTimeProducts
                    controller = Category
                    action = list
                    switchableControllerActions {
                        Category {
                            1 = parentList
                        }
                    }
                }
            }

其中带有小写插件名称组合的vendorName是插件配置的第一个参数。

编辑:事实证明,插件/扩展名具有相同的名称是非常糟糕的做法,这可能会导致混淆和错误。人们应该像我不惜一切代价那样避免这样做!

相关问题