TYPO3 TCA benutzerfreundlich einrichten

  • Published on
    19-May-2015

  • View
    5.864

  • Download
    4

Embed Size (px)

DESCRIPTION

Vortrag zum Thema TYPO3 TCA vom TYPO3 Camp Mnchen

Transcript

<ul><li> 1. TCA TYPO3 Configuration Array benutzerfreundlich einrichtenPeter Schuhmann, Dynamic Lines GmbH</li></ul> <p> 2. zustzliches Label immer anzeigenext_tables.phplabel =&gt; lastname,label_alt =&gt; firstname,label_alt_force =&gt; TRUE,ErgebnisPeter Schuhmann, Dynamic Lines GmbH 3. Tabs verwendenext_tables.phpdividers2tabs =&gt; TRUE,tca.phptypes =&gt; array( 0 =&gt; array(showitem =&gt; hidden;;1;;1-1-1, ctype , lastname, ,--div--;Address,address, street, zip, city)),Ein Tab wird mit --div--;, deklariert. Fr kann auch auf Locallang zugegriffen werden. Wird der ersteTab nicht manuell festgelegt, wird dieser als General festgelegt. ErgebnisPeter Schuhmann, Dynamic Lines GmbH 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 ermglichen. Dieses Feldkann dann als Label fr 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. Types einrichtentca.php$TCA[] = array( ctrl =&gt; $TCA[][ctrl], interface =&gt; array(showRecordFieldList =&gt; hidden,firstname,lastname,address,street,zip,city,ctype ), feInterface =&gt; $TCA[][feInterface],columns =&gt; array(...ctype =&gt; array(exclude =&gt; 0,label =&gt; LLL:EXT:/locallang_db.xml:tx__order.ctype,config =&gt; array( type =&gt; select, items =&gt; array(/* Label der unterschiedlichen Typen */ array(LLL:EXT:/locallang_db.xml:tx__order.ctype.I.0,0), array(LLL:EXT:/locallang_db.xml:tx__order.ctype.I.1,1), ), size =&gt; 1, maxitems =&gt; 1,))...) types =&gt; array(/* Welche Felder sollen bei welchem Typen angezeigt werden (Reihenfolge entscheidend) (0 = Default) */0 =&gt; array(showitem =&gt; hidden;;1;;1-1-1, ctype , lastname,address, street, zip, city),1 =&gt; array(showitem =&gt; hidden;;1;;1-1-1, ctype, lastname) ), palettes =&gt; array(1 =&gt; array(showitem =&gt; ) ));Peter Schuhmann, Dynamic Lines GmbH) 5 6. Types einrichtenext_tables.phptype =&gt; ctype,Mit diesem Befehl wird angegeben, welches Feld fr die Typumschaltung zustndig 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. IRREVorteilLeichte Pflege der Daten fr 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. IRRELsungIn der Datei typo3/class.db_list.inc - die fr die Ausfhrung 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 nchsten 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.phpErgebnisPeter Schuhmann, Dynamic Lines GmbH 9. Treeview rendern tca.phpcategory =&gt; array(exclude =&gt; 1,label =&gt;XT:demo/Resources/Private/Language/locallang_db.xml:tx_demo_domain_model_course.category,config =&gt; array( type =&gt; select, foreign_table =&gt; tx_demo_domain_model_category, MM =&gt; tx_demo_course_category_mm, size =&gt; 10,Ergebnis autoSizeMax =&gt; 30, maxitems =&gt; 9999, multiple =&gt; 0, renderMode =&gt; tree, treeConfig =&gt; array( parentField =&gt; parentcategory, appearance =&gt; array(expandAll =&gt; TRUE,showHeader =&gt; TRUE,maxLevels =&gt; 999, ) )),), Voraussetzung ist, dass die Tabelle tx_demo_domain_model_category auf sich selbst verweist.Peter Schuhmann, Dynamic Lines GmbH 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</p>