【问题标题】:TYPO3 6.0.4 default controller for extension not foundTYPO3 6.0.4 未找到扩展的默认控制器
【发布时间】:2013-04-03 19:05:10
【问题描述】:

我使用扩展构建器创建了我的第三个扩展,但这个扩展无法正确安装。我得到了错误:

扩展“NtImpressions”和插件的默认控制器 “画廊”无法确定。请检查 TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin() 在您的 ext_localconf.php。

我没有修改扩展文件中的任何内容。插件完全由扩展生成器生成。这是 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'
    ),
);    
?>

【问题讨论】:

  • 尝试删除“XXX”。与 $_EXTKEY 一致。如果这没有帮助,请尝试使用一个空数组作为“不可缓存的操作”-数组。这两个想法都只是一时兴起。
  • 我都尝试了相同的结果... \TYPO3\CMS\Extbase\Utility\ExtensionUtility::configurePlugin( $_EXTKEY, 'Gallery', array( 'Galerie' => 'list, show ', ), 数组( ) );

标签: typo3 extbase


【解决方案1】:

我猜命名空间设置不正确,TYPO3 无法确定您的控制器GalerieController-&gt;listAction

configurePlugin 的第一部分在 TYPO3 6.0 中注册了命名空间,因此需要将这个命名空间添加到所有类中。命名空间被解析为可以找到具有该类的文件的路径。这相当于旧语法。

旧语法:

class Tx_YourExtension_Controller_YourController {
    //...
}

现在是

<?php
namespace YourVendor\YourExtension\Controller; 

class YourController {
    //...
}

所以如下配置

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

将 Xxx 注册为 Vendor,因此您的所有类都需要在该命名空间中

<?php
namespace Xxx\Gallery\Controller

class GalleryController {
    // ...
}

“Gallary”是大写驼峰式的扩展键。

【讨论】:

  • 您好 Merec,感谢您的回答!你把我带到了正确的轨道上!我认为这是 Extension Builder 中的一个错误:我的 GaleryControler 中的类定义如下所示:“class Xxx\NtGallery\Domain\Repository\GalerieRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {”并且给出了命名空间在文件的顶部。在我将存储库类定义更改为“类 GalerieRepository 扩展 \TYPO3\CMS\Extbase\Persistence\Repository ”后,一切正常。谢谢!!
猜你喜欢
  • 2014-04-04
  • 1970-01-01
  • 2015-02-06
  • 1970-01-01
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多