Subheader in CEs in TYPO3 CMS 6.2.x und höher

Wer das subheader-Feld für Content Elemente (CEs) nutzte und einTYPO3 CMS Update auf 6.2 hinter sich gebracht hat, oder das Feld in einer neuen Installation nutzen will, der tut sich sicherlich erstmal schwer. Dazu muss man ins TCA (Table-Configuration-Array) von TYPO3 CMS schreiben.

Hier ein Weg um das Feld zur Verfügung  zu stellen:

Entweder in einer eigenen Extension (z.B. für die Seite, die man verwendet) oder im typo3conf-Verzeichnis die Datei extTables.php bearbeiten und folgende Zeilen ergänzen:

if (TYPO3_MODE === 'BE') {
    // enable subheader field to all tt_content elements
   \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
         'tt_content', 
         'header', 
         '--linebreak--,subheader;LLL:EXT:cms/locallang_ttc.xlf:subheader_formlabel', 
         'after:header_layout'
     );
}

Dannach muss – falls die Datei in typo3conf liegt – kontrolliert werden, ob sie  in der typo3conf/LocalConfiguration.php hinterlegt ist. Da muss eine Zeile innerhalb der DB-Klammer so aussehen:

DB {
...
    'extTablesDefinitionScript' => 'extTables.php',
...
}

Wenn man die TCA-Manipulation in eine Erweiterung packt, dann wird sie automatisch angezogen.

Alle Caches (via Installtool) leeren und Untertitel nutzen.

Know Problems

Im pageConfigTS darf auf keinen Fall der Wert

TCEFORM.tt_content.subheader.disabled = 1

stehen.

Typoscript und Rendering

Um das Rendering zu beeinflussen bietet sich folgenden Typoscript-Object an:

lib.stdheader.20 = TEXT
lib.stdheader.20 {
 field = subheader
 wrap = <h3 class="subheader>|</h3>

 if >
 if.isTrue.field = subheader
}

Natürlich spricht nichts dagegen hier ein CASE einzubauen, der den Subheader in Abhängigkeit vom Feld header_layout setzt.