TYPO3: Eigene Seitentypen bzw. Doktypes hinzufügen

Hier noch ein schnelles Snippet, wie man in der ext_tables.php seiner eigenen Extension rubbel-die-katz mal eine neue Art von Seite anlegen kann. Manchmal tut es der Seitentyp „Standard“ einfach nicht – warum auch immer 😉

In meinem Fall brauchte ich für besondere Inhaltsseiten eine Seitenart mit den normalen Feldern einer üblichen Seite, jedoch mit – je nach Doktype – unterschiedlichen Feldern. Was das Hinzufügen von Feldern je nach Doktype angeht, so werde ich dies in einem anderen Artikel noch posten.

Im Prinzip ist es wichtig seinem Seitentyp eine bestimmte ID zuzuweisen ohne dabei einen bestehenden Doktype zu überschreiben. In meinem Beispiel nehm ich ganz hart die ID 57, allerdings wäre eine Prüfung des Arrays auf die letzte Stelle mehr zu empfehlen. Wie dem auch sei, hier das Snippet (getestet unter TYPO3 6.1.6)

Innerhalb der ext_tables.php einer Extension

// Übernimmt die Konfiguration von Standardfeldern des Seitentyps "Standard" auf die neue Seite
$TCA['pages']['types']['57'] = array("showitem"=>"--palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.standard;standard, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.title;title, --div--;LLL:EXT:cms/locallang_tca.xlf:pages.tabs.access, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.visibility;visibility, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.access;access, --div--;LLL:EXT:cms/locallang_tca.xlf:pages.tabs.metadata, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.abstract;abstract, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.metatags;metatags, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.editorial;editorial, --div--;LLL:EXT:cms/locallang_tca.xlf:pages.tabs.appearance, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.layout;layout, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.replace;replace, --div--;LLL:EXT:cms/locallang_tca.xlf:pages.tabs.behaviour, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.links;links, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.caching;caching, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.language;language, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.miscellaneous;miscellaneous, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.module;module, --div--;LLL:EXT:cms/locallang_tca.xlf:pages.tabs.resources, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.media;media, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.storage;storage, --palette--;LLL:EXT:cms/locallang_tca.xlf:pages.palettes.config;config, --div--;LLL:EXT:cms/locallang_tca.xlf:pages.tabs.extended,");

// Ein Divider für die Selectbox der Seiten und der neue Doktype
$TCA['pages']['columns']['doktype']['config']['items']['56'] = array('0' => 'Meine neuen Seitentypen', '1' => '--div--');
$TCA['pages']['columns']['doktype']['config']['items']['57'] = array('0' => 'Meine Seitentypen', '1' => '57');

// Ein Icon für meinen Seitentypen
t3lib_SpriteManager::addTcaTypeIcon('pages', '57', '../' . \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::extRelPath($_EXTKEY) . 'Resources/Public/Icons/meinIcon.png');

Ein Kommentar

  • Danke, klasse Anleitung. Hätte ich alleine nicht rausgefunden. Und die anderen Anleitungen im Netz sind alle irgendwie verwirrend, falsch oder einfach deprecated.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Highlighting von Codes ist mit den Tags  [ts], [php], [html], [javascript], [xml] oder [code] möglich.