//
you're reading...

TYPO3

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

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:

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.

Post a Comment