
TYPO3: Seitenbaum eines Backend-Moduls im Hauptmodul "Web" deaktivieren
Share it: facebook | Twitter | 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.

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.
Weitere Quellen
- Backend module API (Extbase)
- About ext_tables.php
- Hilfe? Fragen? Simon Köhler


Kommentar schreiben
Kommentare
Keine Kommentare
Share it: facebook | Twitter | LinkedIn