Anleitung zu TYPO3 TCA [45+ Tipps]

As a TYPO3 developer; I’m sure TYPO3 TCA is something you are dealing with in your frequent custom TYPO3 projects. In this article, You will explore in-depth all possible things in TYPO3 TCA. Keep reading!

Anleitung zu TYPO3 TCA [45+ Tipps]

FYI. This blog is translated by machine. Please ignore any spelling and grammar errors; sorry for such inconvenience. We appreciate your understanding and support.

Sind Sie ein TYPO3 Entwickler? Dann ist TYPO3 TCA sicher etwas, mit dem Sie bei Ihren häufigen TYPO3 Projekten zu tun haben. In diesem Artikel erfahren Sie alles über die Möglichkeiten von TYPO3 TCA. Lesen Sie weiter!

WusstenSie, dass es das TCA-Konzept schon seit über 20 Jahren bei TYPO3 gibt - das zeigt die Stärke von TYPO3 TCA. Der geniale TYPO3 Gründer Kasper hat es ins Leben gerufen. Der größte Teil des TYPO3 Backends ist mit der TYPO3 TCA Technik konfiguriert worden. Im Grunde ist es nur ein langes PHP-Array von TYPO3, mit dem man die Funktionen des TYPO3-Kerns nahezu beliebig anpassen und erweitern kann. Erfahren Sie mehr über die Struktur von TCA, die Überprüfung von TCA, hilfreiche TYPO3 TCA-Erweiterungen und eine Liste von Beispielcodes zur Konfiguration von TCA.

Wussten Sie, dass die vollständige Form von TCA ist? Tabellen-Konfigurations-Array :)

#T3Kudos Kasper Skårhøj schrieb die ursprüngliche Referenz zu TCA. François Suter hat die nachfolgenden Versionen aktualisiert. Mehrere Mitglieder des Core Teams und andere Mitwirkende haben dieses Dokument im Laufe der Zeit gepflegt.

Globales Array namens $GLOBALS['TCA'], Dieses Array ist eine Schicht über den Datenbanktabellen, mit denen TYPO3 arbeiten kann. Es ist ein sehr zentrales Element der TYPO3-Architektur.

Die $GLOBALS['TCA']-Definition einer Tabelle umfasst auch Folgendes:

  • Beziehungen zwischen dieser Tabelle und anderen Tabellen
  • Welche Felder sollen im Backend angezeigt werden, und mit welchem Layout
  • Wie soll ein Feld überprüft werden (z. B. erforderlich, Ganzzahl, usw.)
  • Wie ein Feld im Frontend von Extbase und allen Erweiterungen, die sich auf diese Informationen beziehen können, verwendet wird

Hier ist die Struktur der ersten und zweiten Ebene der TYPO3 TCA-Konfiguration.

TCA der ersten Ebene

 

$GLOBALS['TCA']['Seiten'] = [
    ...
];

$GLOBALS['TCA']['tt_content'] = [
    ...
];
$GLOBALS['TCA']['tx_my_extension'] = [
    ...
];

 

TCA der 2. Ebene

 

$GLOBALS['TCA']['tx_my_extension'] = [
    'ctrl' => [
        ....
    ],
    'interface' => [
        ....
    ],
    'Spalten' => [
        ....
    ],
    'Typen' => [
        ....
    ],
    'Paletten' => [
        ....
    ],
];

Wenn Sie Ihr benutzerdefiniertes TCA hinzugefügt haben und etwas nicht funktioniert, können Sie das TCA einfach im TYPO3-Backend > System > Konfiguration überprüfen und testen.

Möchten Sie unsere benutzerdefinierten Felder mit TYPO3 TCA hinzufügen? Hier ist der Beispielcode für das Hinzufügen eines Feldes zu tt_content.

Schritt 1. ext_tables.sql

 

CREATE TABLE tt_content (
        tx_examples_noprint tinyint(4) DEFAULT '0' NOT NULL
);

 

 

Schritt 2. Konfiguration/TCA/Overrides/tt_content.php

 

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTCAcolumns(
   'tt_content',
   [
      'tx_examples_noprint' => [
         'exclude' => 0,
         'label' => 'LLL:EXT:examples/Resources/Private/Language/locallang_db.xlf:tt_content.tx_examples_noprint',
         'config' => [
            'type' => 'check',
            'renderType' => 'checkboxToggle',
            'items' => [
               [
                  0 => '',
                  1 => ''
               ]
            ],
         ],
      ],
   ]
);

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
   'tt_content',
   'access',
   'tx_examples_noprint',
   'vor:editlock'
);

 

Schritt 3. Geschehen

Ich habe versucht, eine Liste von hilfreichen TYPO3 TCA-Erweiterungen zu recherchieren und zusammenzustellen (siehe unten).

EXT.style Leitfaden

 

Installation

composer require --dev typo3/cms-styleguide

github.com/TYPO3/styleguide

Schritt 1. Seitenbaum erstellen

Schritt 2. Beispiele verwenden

Schritt 3. TCA-Code finden

EXT.extension_builder

 

Der Extension Builder hilft Ihnen bei der Erstellung und Verwaltung Ihrer Extbase-basierten TYPO3-Extensions. Der Extension Builder ist ein Werkzeug für TYPO3-Extension-Entwickler, um die Implementierung von Extensions zu erleichtern. Er bietet einen "Kickstart"-Modus, um ein einfaches Frontend-Plugin mit grundlegenden CRUD-Funktionen (Create - Read - Update - Delete) zu starten (nicht im Produktionsmodus zu verwenden), das erweitert und an die tatsächlichen Bedürfnisse angepasst werden kann.

 

EXT.Beispiele

Codebeispiele für die Kerndokumentation - Diese Erweiterung enthält mehrere Codebeispiele aus der Kerndokumentation.

 

EXT.tcabuilder

TCA Builder - TCA auf einfache Weise erstellen und ändern! Mit dem TCA-Builder können Sie die Felder in der Typenliste einfach und sprechend erstellen oder ändern.

EXT.additional_tca

Additional TCA - Diese Erweiterung hilft Ihnen, Ihre TCA aufgeräumt und einfach zu pflegen. Bietet Methoden für Tab-Labels Bietet Methoden für wiederkehrende Felder wie sys_language_uid, hidden und mehr Bietet Konfigurationsvorgaben für Markdown t3editor, Prozentfelder, Währungsfelder und mehr.

EXT.ama_t3_upgrade_assistent

Upgrade Assistant - Diese Erweiterung zielt darauf ab, den Upgrade-Prozess zu vereinfachen. In einem ersten Schritt bietet sie ein Backend-Modul, das TCA im PHP-Format erzeugt.

EXT.legacy_collections

APIs für Legacy sys_collection DB-Tabellen - Fügt PHP-Klassen, TCA-Konfiguration und Datenbanktabellen für generische Datensammlungen hinzu.

EXT.tonic

TypoTonic Core - Erstellen Sie einfach und intuitiv TCA-Einträge (z.B. News, Jobs, Events und mehr) ohne eine neue Erweiterung zu entwickeln. Es werden nur Templates benötigt; es enthält viele Plugins für alle Arten der Nutzung!

Visual Studio Code + TYPO3 TCA Schnipsel

Eine Sammlung von Snippets für die TYPO3 TCA

 

Elemente Grundlagen TYPO3 TCA

TCA 1. grundlegende Eingabe

'input_1' => [
           'l10n_mode' => 'prefixLangTitle',
           'exclude' => 1,
           'label' => 'input_1 description',
           'description' => 'Feldbeschreibung',
           'config' => [
               'type' => 'input',
               'behaviour' => [
                   'allowLanguageSynchronization' => true,
               ]
           ],
       ],

 

 

TCA 2. InputLink

'input_29' => [
           'exclude' => 1,
           'label' => 'input_29 renderType=inputLink description',
           'description' => 'Feldbeschreibung',
           'config' => [
               'type' => 'input',
               'renderType' => 'inputLink',
           ],
  ],

TCA 3. Schieberegler-Eingang

 'input_30' => [
           'exclude' => 1,
           'label' => 'input_30 slider step=10 width=200 eval=trim,int',
           'config' => [
               'type' => 'input',
               'size' => 5,
               'eval' => 'trim,int',
               'range' => [
                   'lower' => -90,
                   'upper' => 90,
               ],

               'Standard' => 0,
               'Schieberegler' => [
                   'Schritt' => 10,
                   'Breite' => 200,
               ],
           ],
       ],

TCA 4: Eingabe mit Dropdown (mit Hilfe des User Function Wizard)

 'input_32' => [
           'exclude' => 1,
           'label' => 'input_32 wizard userFunc',
           'config' => [
               'type' => 'input',
               'size' => 10,
               'eval' => 'int',
               'wizards' => [
                   'userFuncInputWizard' => [
                       'typ' => 'userFunc',
                       'userFunc' => 'TYPO3\\CMS\\Styleguide\\\UserFunctions\\FormEngine\\WizardInput33->render',
                       'params' => [
                           'color' => 'green',
                       ],
                   ],
               ],
           ],
       ],

TCA 5: Eingabe mit Farbwähler

 'input_34' => [
           'exclude' => 1,
           'label' => 'input_34 renderType=colorpicker description',
           'description' => 'Feldbeschreibung',
           'config' => [
               'type' => 'input',
               'renderType' => 'colorpicker',
               'size' => 10,
           ],
       ],

TCA 6: Eingabe mit Farbwähler (mit Dropdown)

'input_37' => [
           'exclude' => 1,
           'label' => 'input_37 renderType=colorpicker valuePicker',
           'config' => [
               'type' => 'input',
               'renderType' => 'colorpicker',
               'size' => 10,
               'valuePicker' => [
                   'items' => [
                       [ 'blue', '#0000FF'],
                       [ 'red', '#FF0000'],
                       [ 'typo3 orange', '#FF8700'],
                   ],
               ],
           ],
       ],

Elemente Gruppe TYPO3 TCA

TCA 7. gruppenbezogene Datenbank-Grundlagen

'group_db_1' => [
'exclude' => 1,
'label' => 'group_db_1 allowed=be_users,be_groups description',
'description' => 'Feldbeschreibung',
'config' => [
     'type' => 'group',
     'internal_type' => 'db',
     'allowed' => 'be_users,be_groups',
     'fieldControl' => [
         'editPopup' => [
             'disabled' => false,
         ],
         'addRecord' => [
             'disabled' => false,
         ],
         'listModule' => [
             'disabled' => false,
         ],
     ],
  ],
],

TCA 8. Gruppe DB (mit deaktiviertem Element-Browser)

'group_db_3' => [
'exclude' => 1,
'label' => 'group_db_3 allowed=tx_styleguide_staticdata, disable elementBrowser',
'config' => [
     'type' => 'group',
     'internal_type' => 'db',
     'allowed' => 'tx_styleguide_staticdata',
     'fieldControl' => [
         'elementBrowser' => [
             'disable' => true,
         ],
     ],
  ],

],

TCA 9. Gruppe DB (mit Max Items)

'group_db_4' => [
'exclude' => 1,
'label' => 'group_db_4 allowed=tx_styleguide_staticdata, size=1',
'config' => [
     'type' => 'group',
     'internal_type' => 'db',
     'allowed' => 'tx_styleguide_staticdata',
     'size' => 1,
     'maxitems' => 1,
  ],
],

Elemente RTE TYPO3 TCA

TCA 10. RTE Basic

 'rte_1' => [
           'exclude' => 1,
           'label' => 'rte_1 description',
           'description' => 'Feldbeschreibung',
           'config' => [
               'type' => 'text',
               'enableRichtext' => true,
               'fieldControl' => [
                   'fullScreenRichtext' => [
                       'disabled' => false,
                     ],
                ],
           ], 
     ],

Elemente Wählen Sie TCA

TCA 11. Dropdown Basic

'select_single_1' => [
           'exclude' => 1,
           'label' => 'select_single_1 zwei Positionen, Langtextbeschreibung',
           'description' => 'Feldbeschreibung',
           'config' => [
               'type' => 'select',
               'renderType' => 'selectSingle',
               'items' => [
                   [
                       'foo und das hier ist ein sehr langer Text, der vielleicht nicht wirklich in das Formular in einer Zeile passt.'
                           . ' Ok, fügen wir noch mehr Text hinzu, um zu sehen, wie es aussieht, wenn es umbrochen wird. Ist das jetzt genug? Nein?'
                           . ' Dann fügen wir hier noch mehr nutzlosen Text ein!',
                         1
                   ],
                   ['bar', 'bar'],
               ],
           ],
       ],

TCA 12: Dropdown mit Symbolen

'select_single_4' => [
           'exclude' => 1,
           'label' => 'select_single_4 items with icons',
           'config' => [
               'type' => 'select',
               'renderType' => 'selectSingle',
               'items' => [
                   ['foo 1', 'foo1', 'EXT:styleguide/Resources/Public/Icons/tx_styleguide.svg'],
                   ['foo 2', 'foo2', 'EXT:styleguide/Resources/Public/Icons/tx_styleguide.svg'],
               ],
           ],
       ],

TCA 13: Baumseiten auswählen

'select_tree_1' => [
           'exclude' => 1,
           'label' => 'select_tree_1 pages, showHeader=true, expandAll=true, size=20, order by sorting, static items, description',
           'description' => 'Feldbeschreibung',
           'config' => [
               'type' => 'select',
               'renderType' => 'selectTree',
               'foreign_table' => 'pages',
               'foreign_table_where' => 'ORDER BY pages.sorting',
               'size' => 20,
               'items' => [
                   [ 'static from tca 4711', 4711 ],
                   [ 'static from tca 4712', 4712 ],
               ],
               'behaviour' => [
                   'allowLanguageSynchronization' => true,
               ],
               'treeConfig' => [
                   'parentField' => 'pid',
                   'appearance' => [
                       'expandAll' => true,
                       'showHeader' => true,
                   ],
               ],
           ],
       ],

Elemente Spezial TYPO3 TCA

TCA 14. Spezielles benutzerdefiniertes TCA

 'special_custom_1' => [
           'exclude' => 1,
           'label' => 'special_custom_1, identisch mit be_groups custom_options description',
           'description' => 'Feldbeschreibung',
           'config' => [
               // @todo: eine "custom" Option registrieren, damit hier etwas angezeigt wird
               'type' => 'select',
               'renderType' => 'selectCheckBox',
               'special' => 'custom',
           ],
       ],

TCA 15. Besondere Sprachen

'special_languages_1' => [
           'exclude' => 1,
           'label' => 'special_languages_1, identisch mit be_groups allowed_languages description',
           'description' => 'Feldbeschreibung',
           'config' => [
               'type' => 'select',
               'renderType' => 'selectCheckBox',
               'special' => 'languages',
           ],
       ],

TCA 16. Mod-Liste Gruppen

 'special_modlistgroup_1' => [
           'exclude' => 1,
           'label' => 'special_modlistgroup_1, identisch mit be_groups groupMods description',
           'description' => 'Feldbeschreibung',
           'config' => [
               'type' => 'select',
               'renderType' => 'selectCheckBox',
               'special' => 'modListGroup',
               'size' => '5',
               'autoSizeMax' => 50,
           ],
       ],

Elemente t3editor TYPO3 TCA

TCA 17. T3Editor Basic

t3editor_1' => [
           'exclude' => 1,
           'label' => 't3editor_1 format=html, rows=7',
           'description' => 'Feldbeschreibung',
           'config' => [
               'type' => 'text',
               'renderType' => 't3editor',
               'format' => 'html',
               'rows' => 7,
           ],
       ],

TCA 18. T3Editor Reload

 t3editor_reload_1' => [
           'exclude' => 1,
           'label' => 't3editor_reload_1',
           'onChange' => 'reload',
           'config' => [
               'type' => 'select',
               'renderType' => 'selectSingle',
               'items' => [
                   [
                       'label1',
                       0,
                   ],
                   [
                       'label2',
                       1,
                   ],
               ],
           ],
       ],

TCA 19. T3Editor Inline

 t3editor_inline_1' => [
           'exclude' => 1,
           'label' => 't3editor_inline_1',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_elements_t3editor_inline_1_child',
               'foreign_field' => 'parentid',
               'foreign_table_field' => 'parenttable',
           ],
       ],

Flex TYPO3 TCA

TCA 20. Flex Sheet Beschreibung

'flex_1' => [
           'exclude' => 1,
           'label' => 'flex_1 Blattbeschreibung',
           'description' => 'Feldbeschreibung',
           'config' => [
               'type' => 'flex',
               'ds' => [
                   'default' => '
                       <T3DataStructure>
                           <Blätter>
                               <sBlattBeschreibung_1>
                                   <ROOT>
                                       <TCEforms>
                                           <sheetTitle>Blattbeschreibung 1</sheetTitle>
                                           <sheetDescription>
                                               sheetDescription: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
                                               Nam id ante ornare, iaculis elit a, malesuada augue. Etiam neque odio,
                                               condimentum sed dolor vitae, sollicitudin varius lacus. Pellentesque sit amet aliquam arcu.
                                               Phasellus ut euismod felis. Fusce at tempor turpis.
                                               Nam eu arcu id lorem vestibulum tristique vel in erat. Phasellus maximus, arcu nec
                                               condimentum venenatis, mauris nisl venenatis tellus, eget suscipit arcu nunc et purus.
                                               Nunc luctus congue vulputate. Donec placerat, lorem vitae rhoncus euismod, ipsum ligula
                                               tempor sapien, ac sodales metus mauris et lacus. Donec in ante a lectus semper rutrum nec
                                               ut orci. Quisque id mi ultrices lacus fermentum consequat quis sed odio. Sed quis turpis
                                               rutrum, convallis sem vitae, cursus enim. Maecenas sit amet sem nisi.
                                           </sheetDescription>
                                           <sheetShortDescr>
                                               sheetShortDescr: Lorem ipsum dolor sit amet, consectetur adipiscing elit.
                                               Nam id ante ornare, iaculis elit a, malesuada augue. Etiam neque odio,
                                               condimentum sed dolor vitae, sollicitudin varius lacus. Pellentesque sit amet aliquam arcu.
                                               Phasellus ut euismod felis. Fusce at tempor turpis.
                                           </sheetShortDescr>
                                       </TCEforms>
                                       <type>array</type>
                                       <el>
                                           <input_1>
                                               <TCEforms>
                                                   <label>Eingabe_1</label>
                                                   <config>
                                                       <type>Eingabe</type>
                                                   </config>
                                               </TCEforms>
                                           </input_1>
                                       </el>
                                   </ROOT>
                               </sBlattbeschreibung_1>
                               <sBlattbeschreibung_2>
                                   <ROOT>
                                       <TCEforms>
                                           <sheetTitle>Blattbeschreibung 2</sheetTitle>
                                           <sheetDescription>
                                               foo
                                           </sheetDescription>
                                           <sheetShortDescr>
                                               bar
                                          </sheetShortDescr>
                                       </TCEforms>
                                       <type>Array</type>
                                       <el>
                                           <input_2>
                                               <TCEforms>
                                                   <label>Eingabe_2</label>
                                                   <config>
                                                       <type>Eingabe</type>
                                                   </config>
                                               </TCEforms>
                                           </input_2>
                                       </el>
                                   </ROOT>
                               </sheetdescription_2>
                           </sheets>
                       </T3DataStructure>
                   ',
               ],
           ],
       ],

TCA 21. Abschnitt Container

 'flex_2' => [
           'exclude' => 1,
           'label' => 'flex_2 section container',
           'config' => [
               'type' => 'flex',
               'ds' => [
                   'default' => '
                       <T3DataStructure>
                           <Blätter>
                               <sAbschnitt>
                                   <ROOT>
                                       <TCEforms>
                                           <sheetTitle>Abschnitt</sheetTitle>
                                       </TCEforms>
                                       <type>Array</type>
                                       <el>
                                           <section_1>
                                               <title>Abschnitt_1</title>
                                               <type>Reihe</type>
                                               <section>1</section>
                                               <el>
                                                   <container_1>
                                                       <Typ>Array</Typ>
                                                       <title>Container_1</title>
                                                       <el>
                                                           <input_1>
                                                               <TCEforms>
                                                                   <label>Eingabe_1 Beschreibung</label>
                                                                   <description>Feldbeschreibung</description>
                                                                   <config>
                                                                       <type>Eingabe</type>
                                                                   </config>
                                                               </TCEforms>
                                                           </input_1>
                                                           <input_2>
                                                               <TCEforms>
                                                                   <label>input_2 renderType=colorpicker</label>
                                                                   <config>
                                                                       <type>Eingabe</type>
                                                                       <renderType>Farbaufkleber</renderType>
                                                                       <Größe>10</Größe>
                                                                   </config>
                                                               </TCEforms>
                                                           </input_2>
                                                       </el>
                                                   </container_1>
                                                   <container_2>
                                                       <Typ>Array</Typ>
                                                       <title>Container_2</title>
                                                       <el>
                                                           <text_1>
                                                               <TCEforms>
                                                                   <label>text_1 standardmäßig "foo"</label>
                                                                   <config>
                                                                       <type>Text</type>
                                                                       <default>foo</default>
                                                                   </config>
                                                               </TCEforms>
                                                           </text_1>
                                                       </el>
                                                   </container_2>
                                               </el>
                                           </section_1>
                                       </el>
                                   </ROOT>
                               </sSection>
                           </sets>
                       </T3DataStructure>
                   ',
               ],
           ],
       ],

Inline TYPO3 TCA

TCA 22. Inline Basic

'inline_1' => [
           'exclude' => 1,
           'label' => 'inline_1',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_inline_11_child',
               'appearance' => [
                   'showSynchronizationLink' => wahr,
                   'showAllLocalizationLink' => wahr,
                   'showPossibleLocalizationRecords' => true,
               ],
               'maxitems' => 1,
           ],
       ],

TCA 23. Inline 1n

'inline_1' => [
           'exclude' => 1,
           'label' => 'inline_1 Beschreibung',
           'description' => 'Feldbeschreibung',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_inline_1n_child',
               'foreign_field' => 'parentid',
               'foreign_table_field' => 'parenttable',
               'appearance' => [
                   'showSynchronizationLink' => wahr,
                   'showAllLocalizationLink' => wahr,
                   'showPossibleLocalizationRecords' => true,
                   'showRemovedLocalizationRecords' => true,
               ]
           ],
       ],

TCA 24. Inline 1n1n

'inline_1' => [
           'exclude' => 1,
           'label' => 'inline_1',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_inline_1n1n_child',
               'foreign_field' => 'parentid',
               'foreign_table_field' => 'parenttable',
           ],
       ],

TCA 25. Inline 1nnol10n

'inline_1' => [
           'exclude' => 1,
           'l10n_mode' => 'exclude',
           'label' => 'inline_1',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_inline_1nnol10n_child',
               'foreign_field' => 'parentid',
               'foreign_table_field' => 'parenttable',
           ],
           'maxitems' => 1,
       ],

TCA 26. Inline Erweitern

'inline_1' => [
           'exclude' => 1,
           'label' => 'inline_1',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_inline_expand_inline_1_child',
               'foreign_field' => 'parentid',
               'foreign_table_field' => 'parenttable',
           ],
       ],

TCA 27. TCA Baum auswählen

'select_tree_1' => [
           'exclude' => 1,
           'label' => 'select_tree_1',
           'config' => [
               'type' => 'select',
               'renderType' => 'selectTree',
               'foreign_table' => 'pages',
               'size' => 8,
               'treeConfig' => [
                   'expandAll' => true,
                   'parentField' => 'pid',
                   'appearance' => [
                       'showHeader' => true,
                   ],
               ],
           ],
       ],

TCA 28. Inline Erweitern Einzel

 'inline_1' => [
           'exclude' => 1,
           'label' => 'inline_1',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_inline_expandsingle_child',
               'foreign_field' => 'parentid',
               'foreign_table_field' => 'parenttable',
               'appearance' => [
                   'expandSingle' => true,
               ],

           ],

       ],

TCA 29. Inline FAL

'inline_1' => [
           'exclude' => 1,
           'label' => 'inline_1 typical fal image',
           'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
               'inline_1',
               [
                   'appearance' => [
                       'createNewRelationLinkTitle' => 'LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:images.addFileReference'
                   ],
                   'overrideChildTca' => [
                       'columns' => [
                           'crop' => [
                               'description' => 'Feldbeschreibung',
                           ],
                       ],
                       'types' => [
                           \TYPO3\CMS\Core\Resource\File::FILETYPE_IMAGE => [
                               'showitem' => '
                               --palette--;;imageoverlayPalette,
                               --palette--;;filePalette'
                           ],
                       ],
                   ],
               ],
               $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext']
           ),
       ],

TCA 30. Inline-Vorgaben für ausländische Datensätze

'inline_1' => [
           'exclude' => 1,
           'label' => 'inline_1',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_inline_foreignrecorddefaults_child',
               'foreign_field' => 'parentid',
               foreign_table_field' => 'parenttable',
               'overrideChildTca' => [
                   'columns' => [
                       'input_1' => [
                           'config' => [
                               'default' => 'Standardtext aus übergeordneter Tabelle',
                           ],
                       ],
                   ],
               ],
           ],
       ],

TCA 31. Inline MM

 'title' => [
           'exclude' => 1,
           'l10n_mode' => 'prefixLangTitle',
           'label' => 'Titel',
           'config' => [
               'type' => 'input',
               'size' => '30',
               'eval' => 'erforderlich',
           ]
       ],

TCA 32. Inline MN

  'inline_1' => [
           'exclude' => 1,
           'label' => 'inline_1',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_inline_mn_mm',
               'foreign_field' => 'parentid',
               'foreign_sortby' => 'parentsort',
               'foreign_label' => 'childid',
               'appearance' => [
                   'showSynchronizationLink' => 1,
                   'showAllLocalizationLink' => 1,
                   'showPossibleLocalizationRecords' => 1,
                   'showRemovedLocalizationRecords' => 1,
               ],
           ]
       ],

TCA 33. Inline MNMM

'inline_1' => [
           'exclude' => 1,
           'label' => 'inline_1',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_inline_mn_mm',
               'foreign_field' => 'parentid',
               'foreign_sortby' => 'parentsort',
               'foreign_label' => 'childid',
               'appearance' => [
                   'showSynchronizationLink' => 1,
                   'showAllLocalizationLink' => 1,
                   'showPossibleLocalizationRecords' => 1,
                   'showRemovedLocalizationRecords' => 1,
               ],
           ]
       ],

TCA 34. Inline MN Gruppe

'inline_1' => [
           'exclude' => 1,
           'label' => 'inline_1',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_inline_mngroup_mm',
               'foreign_field' => 'parentid',
               'foreign_sortby' => 'parentsort',
               'foreign_label' => 'childid',
               'foreign_unique' => 'childid',
               'foreign_selector' => 'childid',
               'appearance' => [
                   'showSynchronizationLink' => 1,
                   'showAllLocalizationLink' => 1,
                   'showPossibleLocalizationRecords' => 1,
                   'showRemovedLocalizationRecords' => 1,
               ],
           ],
       ],

TCA 35. Inline MN Symmetrisch

           'input_1' => [
           'exclude' => 1,
           'l10n_mode' => 'prefixLangTitle',
           'label' => 'input_1',
           'config' => [
               'type' => 'input',
               'size' => '30',
               'eval' => 'erforderlich',
           ]
       ],

TCA 36. Inline-Zweige

'branches' => [
           'exclude' => 1,
           'label' => 'branches',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_inline_mnsymmetric_mm',
               'foreign_field' => 'hotelid',
               'foreign_sortby' => 'hotelsort',
               'foreign_label' => 'branchid',
               symmetric_field' => 'branchid',
               symmetric_sortby' => 'branchsort',
               symmetric_label' => 'hotelid',
               'maxitems' => 10,
               'appearance' => [
                   'showSynchronizationLink' => 1,
                   'showAllLocalizationLink' => 1,
                   'showPossibleLocalizationRecords' => 1,
                   'showRemovedLocalizationRecords' => 1,
               ],
           ]
       ],

TCA 37. sys_language_uid

 sys_language_uid' => [
           'exclude' => 1,
           'label' => 'sys_language_uid',
           'config' => [
               'type' => 'select',
               'renderType' => 'selectSingle',
               'foreign_table' => 'sys_language',
               'foreign_table_where' => 'ORDER BY sys_language.title',
               'items' => [
                   ['all Languages', -1],
                   ['default', 0],
               ],
               'default' => 0,
           ],
       ],

TCA 38. Kontrollkästchen Aktivieren/Deaktivieren

'hidden' => [
           'exclude' => 1,
           'label' => 'disable',
           'config' => [
               'type' => 'check',
               'items' => [
                   '1' => [
                       '0' => 'Deaktivieren',
                   ],
               ],
           ],
       ],

TCA 39. Einfache Eingabe/Textbox

    'text_1' => [
           'label' => 'text_1',
           'config' => [
               'type' => 'input',
               'size' => 30,
               'max' => 255,
           ],
       ],

TCA 40. Inline-Datensätze

 'inline_1' => [
           'exclude' => 1,
           'label' => 'inline_1',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'sys_file_reference',
               'foreign_field' => 'uid_foreign',
               'foreign_sortby' => 'sorting_foreign',
               'foreign_table_field' => 'tablenames',
               'foreign_match_fields' => [
                   'Feldname' => 'inline_1',
               ],
               'foreign_label' => 'uid_local',
               'foreign_selector' => 'uid_local',
               'overrideChildTca' => [
                   'columns' => [
                       'uid_local' => [
                           'config' => [
                               'appearance' => [
                                   'elementBrowserType' => 'Datei',
                                   'elementBrowserAllowed' => $GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'],
                               ],
                           ],
                       ],
                   ],
               ],
           ],
       ],

TCA 41. Inline-Kombination

'inline_1' => [
           'exclude' => 1,
           'label' => 'inline_1',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_inline_usecombination_mm',
               'foreign_field' => 'select_parent',
               'foreign_selector' => 'select_child',
               'foreign_unique' => 'select_child',
               'maxitems' => 9999,
               'appearance' => [
                   'newRecordLinkAddTitle' => 1,
                   'useCombination' => true,
                   'collapseAll' => false,
                   'levelLinksPosition' => 'top',
                   'showSynchronizationLink' => 1,
                   'showPossibleLocalizationRecords' => 1,
                   'showAllLocalizationLink' => 1,
               ],
           ],
       ],

TCA 42. Inline-Kombibox

'inline_1' => [
           'exclude' => 1,
           'label' => 'inline_1',
           'config' => [
               'type' => 'inline',
               'foreign_table' => 'tx_styleguide_inline_usecombinationbox_mm',
               'foreign_field' => 'select_parent',
               'foreign_selector' => 'select_child',
               'foreign_unique' => 'select_child',
               'maxitems' => 9999,
               'appearance' => [
                   'newRecordLinkAddTitle' => 1,
                   'useCombination' => true,
                   'collapseAll' => false,
                   'levelLinksPosition' => 'top',
                   'showSynchronizationLink' => 1,
                   'showPossibleLocalizationRecords' => 1,
                   'showAllLocalizationLink' => 1,
               ],
               'size' => 6,
           ],
       ],

TCA 43. Palette Einfach

  'palette_1_1' => [
           'exclude' => 1,
           'label' => 'palette_1_1',
           'description' => 'Feldbeschreibung',
           'config' => [
               'type' => 'check',
               'default' => 1,
           ],
       ],

TCA 44. Einfaches Auswahlfeld

'type' => [
           'exclude' => 1,
           'label' => 'type',
           'config' => [
               'type' => 'select',
               'renderType' => 'selectSingle',
               'items' => [
                   ['type 0', '0'],
                   ['type test', 'test'],
               ],
           ],
       ],

TCA 45. Einfache Textarea

'text_1' => [
           'exclude' => 1,
           'label' => 'text_1',
           'config' => [
               'typ' => 'text',
           ],
       ],

TCA 46. Einfache Eingabe (mit Standardwert)

 'input_1' => [
           'exclude' => 1,
           'label' => 'input_1 default=Standardwert'',
           'config' => [
               'type' => 'input',
               'default' => 'Vorgabewert',
           ],  
       ],

Warten Sie und entdecken Sie wichtige Tipps für TCA! Mit der Leistungsfähigkeit von TYPO3 AI können Sie viel mehr tun, als nur Felder zu konfigurieren. Stellen Sie sich vor, Sie können Ihre TCA-Datensätze mit einem einzigen Klick übersetzen - ohne zusätzliche Plugins oder Programmierung. TYPO3 AI bringt intelligente Lösungen direkt in Ihren Workflow und macht komplexe Aufgaben wie die Übersetzung und Optimierung von Inhalten so einfach wie nie zuvor!

Vielen Dank für die Lektüre meines TYPO3-Blogs. Ich hoffe, Sie fanden ihn hilfreich.

Üben Sie weiter mit TYPO3 TCA! Ich bin mir sicher, dass Sie mit der TYPO3 TCA-Konfiguration in der Lage sein werden, eine maßgeschneiderte TYPO3-Entwicklung zu entwickeln, je nach den Anforderungen Ihres Kunden.

Haben Sie irgendwelche Fragen oder Probleme? Ich werde Ihnen gerne helfen. Fühlen Sie sich frei, in das Kommentarfeld unten zu schreiben.

Ich wünsche Ihnen viel Spaß mit TYPO3 TCA!

Your One-Stop Solutions for Custom TYPO3 Development

  • A Decade of TYPO3 Industry Experience
  • 350+ Successful TYPO3 Projects
  • 87% Repeat TYPO3 Customers
TYPO3 Service
service

Post a Comment

×
Captcha Code Kann das Bild nicht gelesen werden? Klicken Sie hier, um zu aktualisieren
  • user
    Susanne Wolff 2021-09-09 um 11:34 am
    This article was very good, I love reading blogs that are high in content and representations. with in-depth examples and considering The Table Configuration array, Man it is a real roller coaster, I didn’t have a problem in getting started with it but adding custom fields got me scratching my head though. Thank you for the in-depth description of the same.

    I have been following T3Planet for the blogs for quite a while now and looking at the quality of your blogs, I would give you guys an A+ for the content, explanation, and providing necessary tools.
  • user
    Tobias Richter 2021-09-06 um 11:58 am
    I searched for TYPO3 TCA and this blog pops up, thought about giving it a try and it didn't let me down at all.

    In-depth technical knowledge,
    Examples,
    Required documentations,
    Links,

    Overall a very good package in form of a blog.

    Thanks for sharing. looking forward to the next one.
  • user
    Kasper Müller 2021-09-06 um 11:38 am
    Very informative and technically sound article. Fits perfectly with everything I have to do with TYPO3.

    And thanks for the tips though. Some of them are already proving to be helpful in my day-to-day life. Keep up the good work.