Zum Inhalt springen

SelectBox mit vielen DS

Erstellt am 29. September 2011 · 2 Antworten · letzte Antwort am 30. September 2011

Tags: Frage

schittl ·

Hallo,

habe folgendes Problem. Bastele gerade an einer eigenen Extension und da habe ich kleine Probleme im Backend. Dabei handelt es sich dabei vermutlich um die SelectBox. Meine grobe Struktur:

- Kunden
- Adresse

Dabei möchte ich in der Kundenmaske eine Adressauswahlbox anzeigen. Folgendes habe dazu im TCA hinterlegt:

'adresse' => array (		
  'exclude' => 1,		
  'label' => 'LLL:EXT:kunden/locallang_db.xml:tx_kunden.adresse',		
  'config' => array (
    'type' => 'select',	
    'foreign_table' => 'adresse',	
    'foreign_table_where' => 'AND adresse.pid='.$confArr['adresse_pid'].' AND adresse.addressgroup='.$confArr['kunden_address_typ'].' ORDER BY adresse.last_name',
    'iconsInOptionTags' => 1,
    'noIconsBelowSelect' => 1,
    'maxitems' => 1,
  )
),

Alles soweit so gut. Nur habe ich aber ca. 40000 DS in der Tabelle "adresse".:o Das macht es ja unmöglich den Select zu generieren. Nun meine Frage:

Gibt es ne andere Möglichkeit das anders auswählbar zu gestalten oder eventuell etwas zu cachen. Wäre für jede Idee dankbar.

mfg
schittl

maxhb ·

Hi!
Wenn du Kunden und Adressen als verschiedene Elemente (also Tabellen) definiert hast, dann kannst Du die Relation zwischen beiden als DB-Relation modellieren. Im Backend hat man dann die Möglichkeit für einen Kunden Adressen auszuwählen, ähnlich wie dies bei dem Dateiauswahldialog im fileadmin möglich ist.

Hier mal ein kleienr Auszug aus einer eigenen Extension (TCA.php), die zwischen einer Tabelle für Urteile eine Verknüpfung zu einer Tabelle mit Aktenzeichen erstellt:

'aktenzeichen' => array (		
	'exclude' => 0,		
	'label' => 'LLL:EXT:qcom_bfh_urteile/locallang_db.xml:tx_qcombfhurteile_urteile.aktenzeichen',		
	'config' => array (
		'type' => 'select',	
		'foreign_table' => 'tx_qcombfhurteile_aktenzeichen',	
		'foreign_table_where' => 'ORDER BY tx_qcombfhurteile_aktenzeichen.aktenzeichen',	
		'size' => 10,	
		'minitems' => 0,
		'maxitems' => 99,	
		'wizards' => array(
			'_PADDING'  => 2,
			'_VERTICAL' => 1,
			'add' => array(
				'type'   => 'script',
				'title'  => 'Create new record',
				'icon'   => 'add.gif',
						'params' => array(
					'table'    => 'tx_qcombfhurteile_aktenzeichen',
					'pid'      => '###CURRENT_PID###',
					'setValue' => 'prepend'
				),
				'script' => 'wizard_add.php',
			),
		),
	)

CU
maxhb