TT_CONTENT um eigene Felder erweitern

In unten stehendem Beispiel werden zwei zusätzliche Textfelder, customfield1 und customfield2, angelegt.

Input-Felder im BE definieren

Eintrag in der Datei nema_template/Configuration/TSconfig/Page.tsconfig vor der Konfiguration der Eingabefelder für das eigene Content Element.

## Configuration/TCA/Overrides/tt_content.php
\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns('tt_content', [
  'customfield1' => [
    'exclude' => false,
    'label' => 'LLL:EXT:nema_template/Resources/Private/Language/Tca.xlf:customfield1',
    'config' => [
      'type' => 'input'
    ],
  ],
  'customfield2' => [
    'exclude' => false,
    'label' => 'LLL:EXT:nema_template/Resources/Private/Language/Tca.xlf:customfield2',
    'config' => [
      'type' => 'input'
    ],
  ],
]);

Die Sprachdatei nema_template/Resources/Private/Language/Tca.xlf muss natürlich auch entsprechend erweitert werden.

Konfiguration erweitern

In derselben Datei weiter unten wird der Code wie folgt um die neuen Felder ergänzt:

## Configuration/TCA/Overrides/tt_content.php
// $GLOBALS['TCA']['tt_content']['types']['nematemplate_newcontentelement '] = [
//   'showitem' => '
//     --div--;LLL:EXT:core/Resources/Private/Language/Form/locallang_tabs.xlf:general,
//       --palette--;;general,
         customfield1,
         customfield2,
//       header;LLL:EXT:nema_template/Resources/Private/Language/Tca.xlf:header,
//       subheader;LLL:EXT:nema_template/Resources/Private/Language/Tca.xlf:subheader,
//       ...
//   ',
// ];

Datenbanktabelle erweitern

Auf der obersten Ebene des Extension-Ordners wird eine Datei ext_tables.sql angelegt, die jedes neue Feld der Datenbanktabelle tt_content definiert:

CREATE TABLE tt_content ( 
  customfield1 VARCHAR(255) DEFAULT '' NOT NULL, 
  customfield2 VARCHAR(255) DEFAULT '' NOT NULL, 
);