[Aktualisiert im April 2020] In einem aktuellen Projekt müssen in einem Backend-Modul Daten in die Session gespeichert und wieder ausgelesen werden. Weiterlesen
Schlagwort-Archiv: module
Extbase Backend Modul als Hauptmodul integrieren
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
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:
< ?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: