0

拡張機能ビルダーで 3 つ目の拡張機能を作成しましたが、この拡張機能は適切にインストールされません。エラーが発生します:

拡張機能「NtImpressions」とプラグイン「Gallery」のデフォルト コントローラを特定できません。ext_localconf.php で TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin() を確認してください。

拡張ファイルは何も変更していません。プラグインは、拡張機能ビルダーによって完全に生成されます。これは ext_localconf.php です

<?php
if (!defined('TYPO3_MODE')) {
    die ('Access denied.');
}    
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
    'Xxx.' . $_EXTKEY,
    'Gallery',
    array(
        'Galerie' => 'list, show',          
    ),
    array(
        'Galerie' => '',

    )
);    
?>

そしてext_tables.php

<?php
if (!defined('TYPO3_MODE')) {
    die ('Access denied.');
}    
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerPlugin(
    $_EXTKEY,
    'Gallery',
    'Galerie'
);    
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addStaticFile($_EXTKEY, 'Configuration/TypoScript', 'Impressionen');    
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addLLrefForTCAdescr('tx_ntimpressions_domain_model_galerie', 'EXT:nt_impressions/Resources/Private/Language/locallang_csh_tx_ntimpressions_domain_model_galerie.xlf');
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::allowTableOnStandardPages('tx_ntimpressions_domain_model_galerie');
$TCA['tx_ntimpressions_domain_model_galerie'] = array(
    'ctrl' => array(
        'title' => 'LLL:EXT:nt_impressions/Resources/Private/Language/locallang_db.xlf:tx_ntimpressions_domain_model_galerie',
        'label' => 'bezeichnung',
        'tstamp' => 'tstamp',
        'crdate' => 'crdate',
        'cruser_id' => 'cruser_id',
        'dividers2tabs' => TRUE,    
        'versioningWS' => 2,
        'versioning_followPages' => TRUE,
        'origUid' => 't3_origuid',
        'languageField' => 'sys_language_uid',
        'transOrigPointerField' => 'l10n_parent',
        'transOrigDiffSourceField' => 'l10n_diffsource',
        'delete' => 'deleted',
        'enablecolumns' => array(
            'disabled' => 'hidden',
            'starttime' => 'starttime',
            'endtime' => 'endtime',
        ),
        'searchFields' => 'bezeichnung,beschreibung,bilder,bilder_beschreibung,',
        'dynamicConfigFile' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extPath($_EXTKEY) . 'Configuration/TCA/Galerie.php',
        'iconfile' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath($_EXTKEY) . 'Resources/Public/Icons/tx_ntimpressions_domain_model_galerie.gif'
    ),
);    
?>
4

1 に答える 1

2

名前空間が正しく設定されておらず、TYPO3 がコントローラーを判別できないと思われますGalerieController->listAction

の最初の部分はconfigurePluginTYPO3 6.0 の名前空間を登録するため、この名前空間をすべてのクラスに追加する必要があります。Namespace は、クラスを含むファイルが見つかるパスに解析されます。これは古い構文と同等です。

古い構文:

class Tx_YourExtension_Controller_YourController {
    //...
}

今でしょ

<?php
namespace YourVendor\YourExtension\Controller; 

class YourController {
    //...
}

したがって、次の構成

\TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin(
'Xxx.' . $_EXTKEY,
...

Xxx をベンダーとして登録するため、すべてのクラスがその名前空間にある必要があります

<?php
namespace Xxx\Gallery\Controller

class GalleryController {
    // ...
}

"Gallary" は上部キャメル ケースの拡張キーです。

于 2013-04-15T11:55:38.943 に答える