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 具有相同的名称是非常糟糕的做法,这会导致混淆和错误。人们应该不惜一切代价避免像我那样做!
我正在尝试用我自定义创建的扩展程序呈现的内容覆盖我的 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 具有相同的名称是非常糟糕的做法,这会导致混淆和错误。人们应该不惜一切代价避免像我那样做!