在排版中分配插件



我有一个插件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

最新更新