TYPO3: Seitenbaum eines Backend-Moduls im Hauptmodul "Web" deaktivieren


Share it: facebookTwitter | LinkedIn

Wenn man ein eigenes Backend-Modul in TYPO3 erstellt und dieses im Hauptmodul "Web" positioniert, wird der Seitenbaum zwischen der Menüleiste und dem eigentlichen Inhalt des Moduls angezeigt. Um dies zu verhindern gibt es die Einstellung "navigationComponentId" im Funktsionsaufruf der TYPO3-Funktion ExtensionUtility::registerModule, die sich normalerweise in der Datei ext_tables.php der Custom-Extension befindet.

Videtraining TYPO3

Beispiel: Backend-Modul ohne Seitenbaum im Hauptmodul "Web"

Der folgende Code zeigt ein Beispiel für die Registrierung eines Backend-Moduls, welches im Hauptmodul "Web" platziert wird. In der ext_tables.php der Custom-Extension:

<?php
defined('TYPO3_MODE') || die('Access denied.');

call_user_func(
    function()
    {

        // Registrierung des Backend-Moduls
        \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
            'MyExt',	// Extension
            'web',		// Modulposition
            'theme',	// Modulname
            '',
            [
                \VENDOR\MyExt\Controller\ThemeController::class => 'dashboard'
            ],
            [
                'access' => 'admin',
                'icon' => 'EXT:myext/Resources/Public/Icons/eleganz.svg',
                'labels' => 'LLL:EXT:myext/Resources/Private/Language/locallang_mod.xlf',
				// Auf leer setzen um Seitenbaum zu deaktivieren.
                'navigationComponentId' => '',
				// Wichtig: Einstellungen des Hauptmoduls nicht erben.
                'inheritNavigationComponentFromMainModule' => false
            ]
        );

    }
);

Was macht der Code genau?

Die Option in Zeile 22 deaktiviert den Seitenbaum, indem der Pfad zur Navigationskomponente auf einen leeren String gesetzt wird.

Die Option in Zeile 24 verhindert, dass die Einstellung wieder vom Elternmodul geerbt wird. Dies betrifft aber nur das Hauptmodul Web, nicht die anderen Hauptmodule.

Modul im Hauptmodul "Admin Werkzeuge (tools)" mit Seitenbaum anzeigen

Wir haben gelernt, dass das Web-Hauptmodul den Seitenbaum per Standard anzeigt und die anderen Module nicht. Was aber, wenn der Seitenbaum im Hauptmodul Admin-Werkzeuge (Tools) anzeigt werden soll? Dies muss man explizit aktivieren, indem man den Klassenpfad TYPO3/CMS/Backend/PageTree/PageTreeElement als Wert für navigationComponentId einträgt. Siehe nachfolgender Code in Zeile 22.

<?php
defined('TYPO3_MODE') || die('Access denied.');

call_user_func(
    function()
    {

        // Registrierung des Backend-Moduls
        \TYPO3\CMS\Extbase\Utility\ExtensionUtility::registerModule(
            'MyExt',	// Extension
            'tools',	// Modulposition
            'theme',	// Modulname
            '',
            [
                \VENDOR\MyExt\Controller\ThemeController::class => 'dashboard'
            ],
            [
                'access' => 'admin',
                'icon' => 'EXT:myext/Resources/Public/Icons/eleganz.svg',
                'labels' => 'LLL:EXT:myext/Resources/Private/Language/locallang_mod.xlf',
				// PageTreeElement-Klasse nutzen, um Seitenbaum zu aktivieren.
                'navigationComponentId' => 'TYPO3/CMS/Backend/PageTree/PageTreeElement'
            ]
        );

    }
);

Fazit

Da das Backend-Hauptmodul Web in TYPO3 standardmäßig den Seitenbaum anzeigt, ist ein zusätzlicher Parameter notwendig, um bei einem Custom-Modul den Seitenbaum zu deaktivieren. Da alle anderen Hauptmodule keinen Seitenbaum anzeigen, muss dieser manuell aktiviert werden, wenn er angezeigt werden soll.

Videtraining TYPO3
Finger pointing at you!

WE WANT YOU!

Your are a web design expert and you like writing articles?

JOIN US

cleverreach

Kommentar schreiben

* Diese Felder sind erforderlich

Kommentare

Keine Kommentare


Share it: facebookTwitter | LinkedIn
100% anonymous web host