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

TYPO3 Extension in Typoscript COA does not recognize Default Controller

我正在尝试用我自定义创建的扩展程序呈现的内容覆盖我的 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 和 products 我的 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));
}

我还有用于后端配置和插入插件的 flex 表单,这也是一个原因吗?

感谢阅读。

哦,哇哦

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 与小写插件名称的组合是插件配置的第一个参数。

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