Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
TCA TYPO3 Configuration Array benutzerfreundlich einrichtenPeter Schuhmann, Dynamic Lines GmbH
zusätzliches Label immer anzeigenext_tables.phplabel     => lastname,label_alt       => firstname,label_alt_force => TRUE,...
Tabs verwendenext_tables.phpdividers2tabs => TRUE,tca.phptypes => array(         0 => array(showitem => hidden;;1;;1-1-1, ...
Hidden FieldsDas TCA bietet kein direktes Feld, welches als Hidden Field deklariert werden kann. Da im TCA unter types fes...
Types einrichtentca.php$TCA[<tabelname>] = array(         ctrl => $TCA[<tabelname>][ctrl],         interface => array(    ...
Types einrichtenext_tables.phptype => ctype,Mit diesem Befehl wird angegeben, welches Feld für die Typumschaltung zuständi...
IRREVorteilLeichte Pflege der Daten für den Anwender. Die Daten befinden sich dort, wo man sie erwartet.                  ...
IRRELösungIn der Datei „typo3/class.db_list.inc“ - die für die Ausführung der Datenbankabfrage der Listenansicht verantwor...
Treeview rendern   tca.php            category => array(                      exclude => 1,                      label =>X...
LinksCore Documentationhttp://typo3.org/documentation/document-library/core-documentation/doc_core_api/4.1.0/view/4/2/Feed...
Upcoming SlideShare
Loading in …5
×

TYPO3 TCA benutzerfreundlich einrichten

7,953 views

Published on

Vortrag zum Thema TYPO3 TCA vom TYPO3 Camp München

Published in: Technology
  • Be the first to comment

TYPO3 TCA benutzerfreundlich einrichten

  1. 1. TCA TYPO3 Configuration Array benutzerfreundlich einrichtenPeter Schuhmann, Dynamic Lines GmbH
  2. 2. zusätzliches Label immer anzeigenext_tables.phplabel => lastname,label_alt => firstname,label_alt_force => TRUE,ErgebnisPeter Schuhmann, Dynamic Lines GmbH
  3. 3. Tabs verwendenext_tables.phpdividers2tabs => TRUE,tca.phptypes => array( 0 => array(showitem => hidden;;1;;1-1-1, ctype , lastname, ,--div--;Address,address, street, zip, city)),Ein Tab wird mit „--div--;<tabname>,“ deklariert. Für <tabname> kann auch auf Locallang zugegriffen werden. Wird der ersteTab nicht manuell festgelegt, wird dieser als „General“ festgelegt. ErgebnisPeter Schuhmann, Dynamic Lines GmbH
  4. 4. Hidden FieldsDas TCA bietet kein direktes Feld, welches als Hidden Field deklariert werden kann. Da im TCA unter types festgelegtenFelder die Sichtbarkeit der Felder steuert, kann man das Feld, welches nicht angezeigt werden soll einfach aus der Typ-Deklaration entfernen. Mittels Hook kann das Feld dann nach wie vor beschrieben werden.BeispielEin Hidden Field kann beispielsweise genutzt werden um eine eigene Darstellung im Listen-Modul zu ermöglichen. Dieses Feldkann dann als Label für die Tabelle genutzt werden um Redakteuren den Zugriff zu vereinfachen. Beispielsweise kann so nebendem Vor- und Nachnamen auch der Firmenname mit ausgegeben werden.Peter Schuhmann, Dynamic Lines GmbH
  5. 5. Types einrichtentca.php$TCA[<tabelname>] = array( ctrl => $TCA[<tabelname>][ctrl], interface => array( showRecordFieldList => hidden,firstname,lastname,address,street,zip,city,ctype ), feInterface => $TCA[<tabelname>][feInterface],columns => array(... ctype => array( exclude => 0, label => LLL:EXT:<extname>/locallang_db.xml:tx_<extname>_order.ctype, config => array( type => select, items => array(/* Label der unterschiedlichen Typen */ array(LLL:EXT:<extname>/locallang_db.xml:tx_<extname>_order.ctype.I.0,0), array(LLL:EXT:<extname>/locallang_db.xml:tx_<extname>_order.ctype.I.1,1), ), size => 1, maxitems => 1, ))...) types => array(/* Welche Felder sollen bei welchem Typen angezeigt werden (Reihenfolge entscheidend) (0 = Default) */ 0 => array(showitem => hidden;;1;;1-1-1, ctype , lastname,address, street, zip, city), 1 => array(showitem => hidden;;1;;1-1-1, ctype, lastname) ), palettes => array( 1 => array(showitem => ) ));Peter Schuhmann, Dynamic Lines GmbH ) 5
  6. 6. Types einrichtenext_tables.phptype => ctype,Mit diesem Befehl wird angegeben, welches Feld für die Typumschaltung zuständig ist. Ändert sich der Wert dieses Feldes,wird die Seite neugeladen. In diesem Fall lautet der Name des Feldes ctype.ErgebnisPeter Schuhmann, Dynamic Lines GmbH
  7. 7. IRREVorteilLeichte Pflege der Daten für den Anwender. Die Daten befinden sich dort, wo man sie erwartet. NachteilAngelegte Kindelemente werden in der Listenansichtangezeigt. Bearbeitet der Anwender einen Kinddatensatzdirekt, wird die Eltern-ID entfernt und der Kinddatensatzwird zum Hauptdatensatz.Peter Schuhmann, Dynamic Lines GmbH
  8. 8. IRRELösungIn der Datei „typo3/class.db_list.inc“ - die für die Ausführung der Datenbankabfrage der Listenansicht verantwortlich ist -befindet sich ein Hook, mit welchem die Darstellung angepasst werden kann. Alternativ die Extension „tca_addWhere“ ausdem Repository laden (wird die nächsten Tage online gestellt).ext_localconf.php$TYPO3_CONF_VARS[SC_OPTIONS][typo3/class.db_list.inc][makeQueryArray][] =EXT:tca_addWhere/class.tx_tcaaddwhere_hook.php:tx_tcaaddwhere_hook;class.tx_tcaaddwhere_hook.php<?phpclass tx_tcaaddwhere_hook { public function makeQueryArray_post(&$queryParts, $piObj, $table, $id, $addWhere, $fieldList, $_params) { if ($table == tx_demo_domain_model_category) { $queryParts[WHERE] .= AND parentcategory = 0; } }}?> ErgebnisPeter Schuhmann, Dynamic Lines GmbH
  9. 9. Treeview rendern tca.php category => array( exclude => 1, label =>XT:demo/Resources/Private/Language/locallang_db.xml:tx_demo_domain_model_course.category, config => array( type => select, foreign_table => tx_demo_domain_model_category, MM => tx_demo_course_category_mm, size => 10, Ergebnis autoSizeMax => 30, maxitems => 9999, multiple => 0, renderMode => tree, treeConfig => array( parentField => parentcategory, appearance => array( expandAll => TRUE, showHeader => TRUE, maxLevels => 999, ) ) ), ), Voraussetzung ist, dass die Tabelle tx_demo_domain_model_category auf sich selbst verweist. Peter Schuhmann, Dynamic Lines GmbH
  10. 10. LinksCore Documentationhttp://typo3.org/documentation/document-library/core-documentation/doc_core_api/4.1.0/view/4/2/FeedbackPeter.Schuhmann@dynamiclines.dePeter Schuhmann, Dynamic Lines GmbH

×