当前,我正在尝试在左侧的typo3后端模块列表中创建一个模块组。我的小组对同一扩展中的模块正常工作。但是,当我尝试从其他扩展中添加模块时,它根本不起作用。
我在其他扩展程序之一的mainmodule
文件中创建了此模块组(ext_tables.php
),
/**
* Creates a Backend Module Category
*/
$GLOBALS['TBE_MODULES'] = array_slice($GLOBALS['TBE_MODULES'], 0, 1, true) +
['mainmodule' => ''] +
array_slice($GLOBALS['TBE_MODULES'], 1, count($GLOBALS['TBE_MODULES']) - 1, true);
$GLOBALS['TBE_MODULES']['_configuration']['mainmodule'] = [
'iconIdentifier' => 'module',
'labels' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang_myExt.xlf:mlang_key',
'name' => 'mainmodule',
];
我正尝试在其他扩展中使用mainmodule,如下所示:
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
'VEN.' . $extKey,
'mainmodule', // Make module a submodule of 'mainmodule'
'randomkey', // Submodule key
'',
...
该模块始终在其“自己的”主模块中创建。
我已经尝试过此处给出的所有关于stackoverflow的解决方案,并花了数小时尝试解决此问题。我就是无法正常工作。
答案 0 :(得分:1)
似乎在此扩展之前已加载其他扩展,这些扩展定义了新的后端模块类别。因此\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule
将因为缺少类别而失败。要检查这一点,请查看typo3conf/PackageStates.php
中扩展的加载顺序。
要解决此问题,请将此扩展名添加到constraint
中的ext_em.conf
和require
中的composer.json
中,以使其在依赖于新扩展名的其他扩展名之前加载后端模块类别。参见https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ExtensionArchitecture/DeclarationFile/Index.html和https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ExtensionArchitecture/ComposerJson/Index.html。
其他解决方案可能是在每个扩展名中添加新类别(如果尚不存在)。