Im Prinzip reichen die Seitentypen die TYPO3 von Hause aus mitbringt aus. Es mag jedoch den ein oder anderen Fall geben, wo es Sinn macht, dass bestimmte Seiten im Backend gesondert gekennzeichnet sind. Dazu bietet sich natürlich ein leicht verändertes Seitenicon an. Doch wie bekommt man das hin?
Im Grunde relativ einfach.
Man erstellt sich eine neue Extension und schreibt in die ext_tables.php die notwendige Konfiguration:
$TCA['pages']['columns']['doktype']['config']['items'][] = Array ('Spezialseite 1', 77,'EXT:myextension/static/version1.gif'); |
Damit hat man TYPO3 gesagt das es einen neuen Seitentypen mit der ID 77 im Backend anzeigen soll. Dieser hat den Titel „Spezialseite 1“ und wird in den Seiteneingenschaften mit dem Icon „../version.gif“ angezeigt.
Wer jedoch jetzt abspeichert wundert sich warum im Seitenbaum noch nichts zu sehen ist.
Dafür ist eine zweite Konfiguration notwendig. Für Versionen < 4.4 reichte es aus das $PAGES_TYPES Array zu erweitern:
$PAGES_TYPES['77'] = Array ('icon' =>'/typo3conf/ext/myextension/static/version1.gif'); |
Ab der Version 4.4 ist das direkte Hinzufügen als deprecated eingestuft und man muss den feineren Weg über den SpriteManager gehen.
t3lib_SpriteManager::addTcaTypeIcon('pages', '77', '../typo3conf/ext/myextension/static/version1.png'); |
Bei der Verwendung des SprinteManagers ist auf zwei Sachen zu achten:
- zum einen muss das Icon im PNG-Format vorliegen
- zum zweiten muss man dem Pfad zum Icon ein ../ voranstellen. Tut man das nicht, so wird als Pfad-Prefix ../../typo3/ gewählt.
Um abwärtskompatibel zu sein sollte man jedoch beide Zuweisungen in eine If-Abfrage mit der TYPO3 Versionsnummer packen.
if (t3lib_div::int_from_ver(TYPO3_version) >= 4004000) { t3lib_SpriteManager::addTcaTypeIcon('pages', '77', '../typo3conf/ext/myextension/static/version1.png'); }else{ $PAGES_TYPES['77'] = Array ('icon' => '/typo3conf/ext/myextension/static/version1.gif'); } |
Zum Schluss noch ein Tipp um beim Testen nicht zu verzweifeln. Der neue Cachingmechanismus für das Backend kann einem nämlich das Testen ganz schön schwer machen. Falls es also mal nicht so läuft und das Icon partout nicht angezeigt wird: einfach über das Install-Tool den Ordner typo3temp/compress/ leeren. Das hilft Wunder und schont Nerven 🙂
Dies ist ein Gastbeitrag von Dirk Diebel für die “Alles muss raus” Aktion.