Typo3:将不同扩展名的模块放在typo3后端模块列表中的一个模块组中

时间:2019-08-28 09:31:38

标签: typo3 typo3-8.x

当前,我正在尝试在左侧的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的解决方案,并花了数小时尝试解决此问题。我就是无法正常工作。

1 个答案:

答案 0 :(得分:1)

似乎在此扩展之前已加载其他扩展,这些扩展定义了新的后端模块类别。因此\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule将因为缺少类别而失败。要检查这一点,请查看typo3conf/PackageStates.php中扩展的加载顺序。

要解决此问题,请将此扩展名添加到constraint中的ext_em.confrequire中的composer.json中,以使其在依赖于新扩展名的其他扩展名之前加载后端模块类别。参见https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ExtensionArchitecture/DeclarationFile/Index.htmlhttps://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ExtensionArchitecture/ComposerJson/Index.html

其他解决方案可能是在每个扩展名中添加新类别(如果尚不存在)。