Zum Inhalt springen

layout für eingabeformular im backend verändern

Erstellt am 21. Oktober 2008 · 3 Antworten · letzte Antwort am 18. Oktober 2011

Tags: TCA, Frage

agrajag ·

hallo!

ich habe vor kurzem meine erste extension mit dem kickstarter erstellt und die frontend-ausgabe läuft problemlos.
im backend ist die eingabe der daten aber etwas umständlich, weil für jedes datenbankfeld eine neue zeile verwendet wird und alles einfach in einer langen wurst da steht.

ein beispiel der generellen struktur meiner daten:

tag 1 anzeigen? | veranstaltungstyp | ort | uhrzeit | verfügbarkeit | tag 2 anzeigen? | veranstaltungstyp | ...

Bild: img253.imageshack.us/…/tmptypo3frageho3.th.gif
("hide" und "startdatum" hier bitte ignorieren, die gibts nur einmal am anfang)

ich würde aber gerne die formularelemente im backend gruppieren bzw. mit großüberschriften versehen - nach dem schema:

Zeile 1: Montag
Zeile 2: ( ) anzeigen - Veranstaltungstyp - Ort - Uhrzeit - Verfügbarkeit

Zeile 3: Dienstag
Zeile 4: ( ) anzeigen - Veranstaltungstyp - Ort - Uhrzeit - Verfügbarkeit

ist das im rahmen von tca.php oder ext_tables.php möglich?

es wäre auch schon besser, wenn ich die fortlaufende tabelle zwischen zwei tagen unterbrechen könnte, damit das ganze zumindest ein bisschen optisch abgegrenzt ist.

Norman2k ·

Das kannst du in der tca.php steuern.
Felder gruppieren:

<?php
'types' => array (
		'0' => array('showitem' => 'feld1, feld2;;2, feld5')
),
'palettes' => array (
	'1' => array('showitem' => ''),
	'2' => array('showitem' => 'feld3,feld4'),
)
?>

Und/oder mehrer Tabs verwenden:

<?php
'types' => array (
		'0' => array('showitem' => '
		--div--;Montag,feld1, feld2;;2, feld5
		--div--;Dienstag,feld6, feld7 feld8
		--div--;Mittwoch, usw...')
),
'palettes' => array (
	'1' => array('showitem' => ''),
	'2' => array('showitem' => 'feld3,feld4'),
)
?>

Die Tabs musst du in der ext_tables.php noch aktivieren

<?php
$TCA['tx_deine_extension'] = array (
	'ctrl' => array (
		...
		'dividers2tabs' => TRUE,
		...
	)
)
?>
agrajag ·

super - genau das habe ich gesucht!

vielleicht eine anmerkung für die kompletten newbies:

'types' => array (
                '0' => array('showitem' => 'feld1, feld2;;2, feld5')
),

die 2 hier: ..., feld2;;2, ...
bezieht sich auf das 2. argument in palettes - also palettes['2'].

danke nochmals für die hilfe!

skip ·

Important add, which i spend a day for!
To use palettes as organizational units, you can use the keyword "--palette--" in the tca.php > types
this will add a palette to the backend iwthout binding it to any other field.

	"types" => Array (
		"0" => Array("showitem" => "--palette--;;2, feuser_id, position_title, fax, misc, display_order",
					'canNotCollapse' => 1,
					),
	),

To make the palette allways visible add the option 'canNotCollapse' => 1 to the tca.php > palettes > concretePalette Arrays
This will make the palette allways visible.

	"palettes" => Array (
		"1" => Array("showitem" => "gender,first_name,last_name,title",
					'canNotCollapse' => 1,),
		"2" => Array("showitem" => "address2,city,zone,zip,country", 
					'canNotCollapse' => 1,),
		"3" => Array("showitem" => "l18n_parent,l18n_diffsource",
					'canNotCollapse' => 1,),
	),

These settings will make it possible to use palettes as organizational units in the backend
Bild: i53.tinypic.com/nxjfrk.png