我有一个插件http://typo3.org/extensions/repository/view/aw_consume
我正在将其用作它正在工作的内容元素
当我尝试分配给我的排版中的子部分时,没有任何显示
LOGOUT < plugin.tx_awconsume.widgets.menu
此插件是使用 TYPO3 6.1.4 上安装的 extension_builder 扩展创建的
更新 3
plugin.tx_awconsume {
view {
templateRootPath = {$plugin.tx_awconsume.view.templateRootPath}
partialRootPath = {$plugin.tx_awconsume.view.partialRootPath}
layoutRootPath = {$plugin.tx_awconsume.view.layoutRootPath}
}
persistence {
storagePid = {$plugin.tx_awconsume.persistence.storagePid}
}
features {
# uncomment the following line to enable the new Property Mapper.
# rewrittenPropertyMapper = 1
}
widgets {
menu = USER
menu {
userFunc = TYPO3CMSExtbaseCoreBootstrap->run
pluginName = FeAwConsume
extensionName = AwConsume
controller = ConsumerItem
action = list
vendorName = Alexweb
}
}
}
ext_tables.php
TYPO3CMSExtbaseUtilityExtensionUtility::registerPlugin(
$_EXTKEY,
'FeAwConsume',
'fe_awconsume'
);
ext_localconf.php
TYPO3CMSExtbaseUtilityExtensionUtility::configurePlugin(
'Alexweb.' . $_EXTKEY,
'FeAwConsume',
array(
'ConsumerItem' => 'list, show, new, create, delete',
),
// non-cacheable actions
array(
'ConsumerItem' => 'create, delete',
)
);
我已经根据@lorenz答案更新了代码片段,但我仍然没有得到输出
我也在TER 0.1.5中推送了最新版本
更新 4
我确实设法在添加后才获得预期的输出
plugin.tx_awconsume.widgets {
menu = USER
menu {
userFunc = TYPO3CMSExtbaseCoreBootstrap->run
pluginName = FeAwConsume
extensionName = AwConsume
controller = ConsumerItem
action = list
vendorName = Alexweb
}
}
从typo3confextaw_consumeConfigurationTypoScriptsetup.txt
到模板排版文件
它最初被extension_builder扩展放置的位置,但是我有一种感觉,这不是一个好主意
如果您仔细查看您的ext_localconf.php,您会注意到您使用了供应商名称。供应商名称应以大写字母开头,因此您的ext_localconf.php应为:
TYPO3CMSExtbaseUtilityExtensionUtility::configurePlugin(
'Alexweb.' . $_EXTKEY,
'MyPlugin',
array(
'ConsumerItem' => 'list, show, new, create, delete',
),
array(
'ConsumerItem' => 'create, delete',
)
);
您的ext_tables.php应如下所示:
TYPO3CMSExtbaseUtilityExtensionUtility::registerPlugin(
$_EXTKEY,
'MyPlugin',
'Speaking name of my plugin'
);
插件的 TypoScript 对象应包含供应商名称(属性是 vendorName,而不是 vendor):
userFunc = TYPO3CMSExtbaseCoreBootstrap->run
pluginName = MyPlugin
extensionName = AwConsume
vendorName = Alexweb
controller = ConsumerItem
action = list
请记住,您的类还必须包含供应商名称/使用正确的命名空间:
namespace AlexwebAwConsumeController;
class ConsumerItemController extends TYPO3CMSExtbaseMvcControllerActionController {
}
那你应该没事了。
扩展名称是扩展密钥的 UpperCamelCase 变体,因此如果您的扩展密钥为"aw_consume",则扩展名称为"AwConsume"。此名称在类中使用
插件名称是作为扩展一部分的特定插件的名称。由于扩展中可以有许多插件,因此您应该为其选择一个合适的名称。插件名称也应该是 UpperCamelCase。您可以为同一控制器使用多个插件,因此插件不必像控制器一样命名。
另请参阅 http://forge.typo3.org/projects/typo3v4-mvc/wiki/FAQ#What-is-the-Extension-Name