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.
Tabellenkonfigurations-Array (TCA)
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
Aufbau von TYPO3 TCA
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' => [
....
],
];
Testen wir TCA
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.
Wie kann man Custom TCA verlängern?
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
Hilfreiche TYPO3 TCA-Erweiterungen
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
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!
Nützliche TYPO3 TCA in IDEs
Visual Studio Code + TYPO3 TCA Schnipsel
Eine Sammlung von Snippets für die TYPO3 TCA
'input_1' => [
'l10n_mode' => 'prefixLangTitle',
'exclude' => 1,
'label' => 'input_1 description',
'description' => 'Feldbeschreibung',
'config' => [
'type' => 'input',
'behaviour' => [
'allowLanguageSynchronization' => true,
]
],
],
'input_29' => [
'exclude' => 1,
'label' => 'input_29 renderType=inputLink description',
'description' => 'Feldbeschreibung',
'config' => [
'type' => 'input',
'renderType' => 'inputLink',
],
],
'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,
],
],
],
'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',
],
],
],
],
],
'input_34' => [
'exclude' => 1,
'label' => 'input_34 renderType=colorpicker description',
'description' => 'Feldbeschreibung',
'config' => [
'type' => 'input',
'renderType' => 'colorpicker',
'size' => 10,
],
],
'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'],
],
],
],
],
'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,
],
],
],
],
'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,
],
],
],
],
'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,
],
],
'rte_1' => [
'exclude' => 1,
'label' => 'rte_1 description',
'description' => 'Feldbeschreibung',
'config' => [
'type' => 'text',
'enableRichtext' => true,
'fieldControl' => [
'fullScreenRichtext' => [
'disabled' => false,
],
],
],
],
'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'],
],
],
],
'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'],
],
],
],
'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,
],
],
],
],
'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',
],
],
'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',
],
],
'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,
],
],
t3editor_1' => [
'exclude' => 1,
'label' => 't3editor_1 format=html, rows=7',
'description' => 'Feldbeschreibung',
'config' => [
'type' => 'text',
'renderType' => 't3editor',
'format' => 'html',
'rows' => 7,
],
],
t3editor_reload_1' => [
'exclude' => 1,
'label' => 't3editor_reload_1',
'onChange' => 'reload',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
[
'label1',
0,
],
[
'label2',
1,
],
],
],
],
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_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>
',
],
],
],
'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_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,
],
],
'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,
]
],
],
'inline_1' => [
'exclude' => 1,
'label' => 'inline_1',
'config' => [
'type' => 'inline',
'foreign_table' => 'tx_styleguide_inline_1n1n_child',
'foreign_field' => 'parentid',
'foreign_table_field' => 'parenttable',
],
],
'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,
],
'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',
],
],
'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,
],
],
],
],
'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,
],
],
],
'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']
),
],
'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',
],
],
],
],
],
],
'title' => [
'exclude' => 1,
'l10n_mode' => 'prefixLangTitle',
'label' => 'Titel',
'config' => [
'type' => 'input',
'size' => '30',
'eval' => 'erforderlich',
]
],
'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,
],
]
],
'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,
],
]
],
'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,
],
],
],
'input_1' => [
'exclude' => 1,
'l10n_mode' => 'prefixLangTitle',
'label' => 'input_1',
'config' => [
'type' => 'input',
'size' => '30',
'eval' => 'erforderlich',
]
],
'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,
],
]
],
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,
],
],
'hidden' => [
'exclude' => 1,
'label' => 'disable',
'config' => [
'type' => 'check',
'items' => [
'1' => [
'0' => 'Deaktivieren',
],
],
],
],
'text_1' => [
'label' => 'text_1',
'config' => [
'type' => 'input',
'size' => 30,
'max' => 255,
],
],
'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'],
],
],
],
],
],
],
],
'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,
],
],
],
'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,
],
],
'palette_1_1' => [
'exclude' => 1,
'label' => 'palette_1_1',
'description' => 'Feldbeschreibung',
'config' => [
'type' => 'check',
'default' => 1,
],
],
'type' => [
'exclude' => 1,
'label' => 'type',
'config' => [
'type' => 'select',
'renderType' => 'selectSingle',
'items' => [
['type 0', '0'],
['type test', 'test'],
],
],
],
'input_1' => [
'exclude' => 1,
'label' => 'input_1 default=Standardwert'',
'config' => [
'type' => 'input',
'default' => 'Vorgabewert',
],
],
Warten Sie! Was wäre, wenn Sie Ihren TCA-Datensatz mit einem Klick übersetzen könnten?
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!
Einpacken!
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!
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.
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.
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.