[TYPO3-german] Backend-Eingabefelder: $TCA vs. Flexforms vs. TemplaVoila-Datastructure

Christian Wolff chris at connye.com
Thu Apr 16 12:25:11 CEST 2009


Daniela Waranie schrieb:
> Hallo zusammen,
> 
> ich bin leider noch sehr an der TYPO3 Oberfläche und versuche mich jetzt
> tiefer einzuarbeiten. Nun eine Verständnisfrage. Bitte verzeiht, dass
> ich vor der Fragestellung nicht mehrere Hundert Seiten Doku gelesen habe
> und ich daher noch kein Gesamtbild habe).
> 
> Nachfolgend eine Beschreibung, so wie ich das Thema verstanden habe:
> (Bitte berichtigt mich, wenn ich etwas falsch verstanden habe.)
> 
> Durch das $TCA wird festgelegt wie und welche Formular-Felder im Backend
> angezeigt werden (mal abgesehen von Rechteeinschränkungen an anderer
> Stelle), wie diese editiert werden können, wie diese arrangiert sind und
> so weiter. Das $TCA bezieht sich dabei grundsätzlich auf die real
> existierenden Datenbank Tabellen / Felder. Einige Plugins erweitern
> dieses $TCA und die Datenbank um weitere Tabellen / Felder.
> 
> Zusätzlich gibt es aber auch Formalarfelder im Backend die keine reale
> Entsprechung in der Datenbank-Tabelle haben. Diese Felder sind in Form
> von XML-Strukturen definiert und konfiguriert. Diese XML-Struktur heißt
> bei TYPO3 konkret 'Flexforms'. Die Felder, die in einem Flexform-XML
> definiert werden, haben keine direkte Entsprechnung in der Datenbank.
> Das gesamte Flexform-XML, mit all seinen Feldern, wird in einem einzigen
> Datenbankfeld gespeichert.
> 
> Flexform-XML wird an unterschiedlichen Stellen eingesetzt: z.B. in
> Plugins oder in der TemplaVoila-Datastructure.
> 
> Fragen:
> 1) Werden im $TCA nur Formular-Felder "konfiguriert", die keine
> Entsprechung in der Datenbank haben?
> 2) Wo genau ist definiert, welche XML-Elemente in einem Flexform-XML
> vorkommen müssen bzw. dürfen? Welche XML-Attribute erlaubt sind? Welche
> Werte jeweils erlaubt sind? Gibt es eine XSD oder DTD?
> 3) Heißt das ROOT-Element von Flexform-XML '<TCEforms>' oder
> '<T3DataStructure>'? Ist 'Datastructur' = 'Flexform'? Wird das
> Flexform-XML in eine umgebenes XML 'eingebettet', welches eine ander
> XSD/DTD folgt?
> 4) Wo wird Flexform-XML bei TYPO3 ansonsten noch eingesetzt, außer bei
> TemplaVoila-DS und in Plugins?
> 5) Kann es zu "konfigurations"-Kollisionen zwischen $TCA und
> Flexform-XML kommen? Was hat ggf. Vorrang?
> 6) Gibt es einen Flexform-Generator oder einen Flexform-Editor?
> 
> Vielen Dank im Voraus
> Lieben Gruß
> Daniela Waranie

Hi Daniela,
du hast die situation schon ganz richtig erfasst. es gibt das
Flexform-XML vorallem um ein immer weiteres aufblähen der tt_content
tabelle zu vermeiden weil jede keline extension noch ein zusätzliches
feld definiert. nachteil bei XML in einem datenfeld ist natürlich das es
sich mit SQL nicht ordenlich abfragen lässt.
deswegen sollte man sich genau überlegen was man als flexform macht und
was nicht.

nun direkt zu deinen fragen:
1) im $TCA = Table Configuration Array, werden die BE-Darstellung von
feldern der Datenbank, configuriert. also ob das feld gezeigt werden
soll. ob es sich als auswahlbox, eingabe feld oder sonstwas darstellt.

2) das t3DataStructure-XML format ist in dem dokument "Typo3 Core API"
beschrieben. hier ein link direkt auf die entsprechende seite:
http://typo3.org/documentation/document-library/core-documentation/doc_core_api/4.2.0/view/7/1/

3) <T3DataStructure> ist das root element. darin gibt es das element
<TCEforms> entspricht entspricht dem configurations element im Page-TS
TCEFORMS siehe hierzu das dokument TSConfig, auch hier geht es darum die
darstellung der felder, zu konfigurieren und ist wenn du so willst die
möglichkeit einzelne werte aus dem $TCA zu überschreiben bzw. neue
hinzuzufügen. das $TCA kommt ja direkt aus ext_tables.php dateien. und
TCEForms. erlaubt dann auf höhere ebene eine konfiguration. z.b um das
title feld deiner seiten in eine textarea umzuwandeln wenn du den
redakteuren die möglichkeit geben willst zeilenumbrüche einzugeben. oder
im fall von flexforms felder für das rendering in diesen zu konfigureiren.

4) haupteinsatz sind die Flexforms, und natürlich Templa voila. die
T3DataStructure ist aber als generelle datenstrucktur entwickelt. so das
du es grundsätzlich auch für beliebige dinge einsetzten kannst.

5) nein kann es nicht. da ganz klar geregelt ist das werte des $TCA von
den später kommenden configurationen überschrieben werden(PAGE-TS,
Flexform).

6) mir ist kein solcher editor bekannt.

gruss chris
-- 
Christian Wolff // Berlin
http://www.connye.com

some projects:
http://richtermediagroup.com | http://titanic.de |
http://fairplay-homepage.de


More information about the TYPO3-german mailing list