3. Tabs verwenden
ext_tables.php
'dividers2tabs' => TRUE,
tca.php
'types' => 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 erste
Tab nicht manuell festgelegt, wird dieser als „General“ festgelegt.
Ergebnis
Peter Schuhmann, Dynamic Lines GmbH
4. Hidden Fields
Das TCA bietet kein direktes Feld, welches als Hidden Field deklariert werden kann. Da im TCA unter types festgelegten
Felder 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.
Beispiel
Ein Hidden Field kann beispielsweise genutzt werden um eine eigene Darstellung im Listen-Modul zu ermöglichen. Dieses Feld
kann dann als Label für die Tabelle genutzt werden um Redakteuren den Zugriff zu vereinfachen. Beispielsweise kann so neben
dem Vor- und Nachnamen auch der Firmenname mit ausgegeben werden.
Peter Schuhmann, Dynamic Lines GmbH
6. Types einrichten
ext_tables.php
'type' => '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.
Ergebnis
Peter Schuhmann, Dynamic Lines GmbH
7. IRRE
Vorteil
Leichte Pflege der Daten für den Anwender. Die Daten befinden sich dort, wo man sie erwartet.
Nachteil
Angelegte Kindelemente werden in der Listenansicht
angezeigt. Bearbeitet der Anwender einen Kinddatensatz
direkt, wird die Eltern-ID entfernt und der Kinddatensatz
wird zum Hauptdatensatz.
Peter Schuhmann, Dynamic Lines GmbH
8. IRRE
Lösung
In 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“ aus
dem 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
<?php
class 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';
}
}
}
?> Ergebnis
Peter Schuhmann, Dynamic Lines GmbH