Eigene Backendmodul-Gruppe einfügen

Bei mehreren Backendmodulen möchten man diese vielleicht nicht im "Web-Modul" gelistet haben sondern in einer eigenen Modulgruppe. Dies kann in einer Extension relativ einfach selbst angelegt werden.

Dafür braucht es im Prinzip nicht mehr als im vorherigem Artikel "Backendmodule registrieren" beschrieben.

Zunächst legen wir wieder eine neues Modul an, lassen aber diesmal das Array für die Controller / Funktions leer.

Beispiel:

/***
 * Add Backend Modulgroup
 */
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
     'MyVendor.' . $_EXTKEY, 'myModulgroup', '', '', 
     array(
                   ), 
    array(
        'access' => 'user,group',
        'icon' => 'EXT:' . $_EXTKEY . '/ext_icon.gif',
        'labels' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang_main_modul.xlf',
            )
    );

Wichtig ist auch hier wieder die passende Sprachdatei, ohne die werden die Texte nicht ausgegeben:

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<xliff version="1.0">
    <file source-language="en" datatype="plaintext" original="mymodul" date="2013-09-08T21:34:32Z" product-name="articles">
        <header/>
        <body>
            <!-- Backend Modul Labels -->
          
            <trans-unit id="mlang_tabs_tab">
                <source>Modul Titel</source>
            </trans-unit>
            <trans-unit id="mlang_labels_tabdescr">
                <source>Modul Titel</source>
            </trans-unit>
            <trans-unit id="mlang_labels_tablabel">
                <source>Modul Titel</source>
            </trans-unit>
            
        </body>
    </file>
</xliff>

 


Die Positionierung der Modulgruppe im Menü

Ihr könnt dann die Position der eurer Modulgruppe im Backenmenü frei bestimmen. Um zum Beispiel die Gruppe nach dem Modul "web" einzufügen reicht folgender Code in der ext_tables.php:

if (!isset($TBE_MODULES['myModulgroup'])) {
    $temp_TBE_MODULES = array();
    foreach ($TBE_MODULES as $key => $val) {
        if ($key == 'web') {
            $temp_TBE_MODULES[$key] = $val;
            $temp_TBE_MODULES['myModulgroup'] = '';
        } else {
            $temp_TBE_MODULES[$key] = $val;
        }
    }
    $TBE_MODULES = $temp_TBE_MODULES;
}

Module der neuen Gruppe hinzufügen

Um nun eure Module der neu erstellten Gruppe hinzuzufügen, müstt ihr denen in der ersten Zeile nach "registerModule" eueren kex der Hauptmodulgruppe angeben.

Beispiel:

/***
 * Add Backend Modul
 */
\TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
     'MyVendor.' . $_EXTKEY, 'myModulgroup', 'myModul', '', // Position
     array(
        'MyController' => 'myFunction',
            ),
    array(
        'access' => 'user,group',
        'icon' => 'EXT:' . $_EXTKEY . '/ext_icon.gif',
        'labels' => 'LLL:EXT:' . $_EXTKEY . '/Resources/Private/Language/locallang_settings.xlf',
            )
    );

Das war es auch schon :)

Weitere Artikel zu diesem Thema:

Empfehlenswerte Lektüre:

HTML5 Handbuch

Stefan Münz (Gründer von SELFHTML) geht in der 10. Auflage seines Bestsellers auf die Besonderheiten von HTML5 und CSS3 ein. Dabei wird ebenso die Ausgabe auf Smaptphones und Handys berücksichtigt, wie auch jQuery als Scriptsprache. Damit ist das Buch ein wertvoller Ratgeber für alle die Webseiten entwickeln unabhängig vom eingesetztem CMS System.

Kommentare

keine Kommentare vorhanden


Kommentar verfassen

Die Email Adresse wird nicht veröffentlicht.