Bisher ist es bei Extbase Erweiterungen nur möglich, mittels Tx_Extbase_Utility_Extension::registerModule() seine eigenen Backend Module in vorhandene Module einzuklinken, sprich in web, file, user, tools usw.
Über die traditionelle Methode t3lib_extmGm::addModule() kann man sich jedoch ein Dummy-Hauptmodul erstellen, in das man die neuen Module dann als Submodule einklinken kann.
ext_localconf.php
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
if (TYPO3_MODE === 'BE') {
$mainModuleName = str_replace('_', '', $_EXTKEY) . 'M1';
// Hack damit das Modul direkt nach dem Web Modul erscheint
// die Angabe der $position in addModule() funktioniert hier leider nicht
if (!isset($TBE_MODULES[$mainModuleName])) {
$temp_TBE_MODULES = array();
foreach($TBE_MODULES as $key => $val) {
if($key == 'web') {
$temp_TBE_MODULES[$key] = $val;
$temp_TBE_MODULES[$mainModuleName] = '';
} else {
$temp_TBE_MODULES[$key] = $val;
}
}
$TBE_MODULES = $temp_TBE_MODULES;
}
// Hauptmodul erstellen
t3lib_extMgm::addModule($mainModuleName, '', '', t3lib_extMgm::extPath($_EXTKEY).'Configuration/BackendModule/');
// Erstes richtiges Backend Modul der Extension
Tx_Extbase_Utility_Extension::registerModule(
$_EXTKEY,
$mainModuleName,
'subModuleName',
'',
array(
// ...
),
array(
// ...
)
);
} |
Unter Configuration/BackendModule/ (das Verzeichnis kann natürlich beliebig gewählt werden) erstellen wir noch eine conf.php:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
< ?php
/**
* Dummy Konfiguration fürs Haupt Backend Modul
*/
define('TYPO3_MOD_PATH', '../typo3conf/ext/ext_key/Configuration/BackendModule/');
$MCONF['name'] = 'txextkeyM1';
$MCONF['script'] = '_DISPATCH';
$MCONF['access'] = 'user,group';
$MLANG['default']['tabs_images']['tab'] = 'moduleicon.gif';
$MLANG['default']['ll_ref'] = 'LLL:EXT:ext_key/Resources/Private/Language/locallang_mod_main.xml';
?> |
Somit kann TYPO3 unser “Dummy” Hauptmodul ordnungsgemäß erstellen und die eigentlichen Module werden als Kind-Module hinzugefügt.
Das Ganze sieht dann so aus:

Discussion
No comments yet.