2

私はプラグインを持っています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 = TYPO3\CMS\Extbase\Core\Bootstrap->run
            pluginName = FeAwConsume
            extensionName = AwConsume
            controller = ConsumerItem
            action = list
            vendorName = Alexweb
        }
    }
}

ext_tables.php

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    $_EXTKEY,
    'FeAwConsume',
    'fe_awconsume'
);

ext_localconf.php

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::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 = TYPO3\CMS\Extbase\Core\Bootstrap->run
        pluginName = FeAwConsume
        extensionName = AwConsume
        controller = ConsumerItem
        action = list
        vendorName = Alexweb
    }
}

からテンプレート タイポスクリプト ファイルへ\typo3conf\ext\aw_consume\Configuration\TypoScript\setup.txt

extension_builder 拡張機能によって最初に配置された場所ですが、これはあまり良い考えではないと感じました

4

1 に答える 1

2

ext_localconf.php をよく見ると、ベンダー名を使用していることに気付くでしょう。ベンダー名は大文字で始まる必要があるため、ext_localconf.phpは次のようになります。

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'Alexweb.' . $_EXTKEY,
    'MyPlugin',
    array(
        'ConsumerItem' => 'list, show, new, create, delete',        
    ),
    array(
        'ConsumerItem' => 'create, delete',     
    )
);

ext_tables.phpはのようになります。

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    $_EXTKEY,
    'MyPlugin',
    'Speaking name of my plugin'
);

プラグインの TypoScript オブジェクトには、ベンダー名が含まれている必要があります (プロパティは vendorName であり、vendor ではありません):

    userFunc = TYPO3\CMS\Extbase\Core\Bootstrap->run
    pluginName = MyPlugin
    extensionName = AwConsume
    vendorName = Alexweb
    controller = ConsumerItem
    action = list

クラスにもベンダー名を含める/正しい名前空間を使用する必要があることに注意してください。

namespace Alexweb\AwConsume\Controller;

class ConsumerItemController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
}

その後、あなたは元気になるはずです。

拡張機能名は拡張キーの UpperCamelCase バリアントであるため、拡張キーが「aw_consume」の場合、拡張機能名は「AwConsume」になります。この名前はクラスで使用されます

プラグイン名は、拡張機能の一部である特定のプラグインの名前です。拡張機能には多くのプラグインが含まれる可能性があるため、適切な名前を選択する必要があります。プラグイン名も UpperCamelCase にする必要があります。同じコントローラーに対して複数のプラグインを使用できるため、プラグインにコントローラーのような名前を付ける必要はありません。

http://forge.typo3.org/projects/typo3v4-mvc/wiki/FAQ#What-is-the-Extension-Nameも参照してください

于 2013-11-16T11:50:40.403 に答える