[TYPO3-german] TCA: Problem mit foreign_table

Raphael Weber mailinglisten at screensolutions.de
Wed Mar 28 11:22:51 CEST 2012


Hallo,

ich bastel gerade an einer kleinen Extension, die u.a. die 
tt_address-Tabelle erweitert. In einem der Felder, nämlich 
'tx_vnautomagcommunity_automag', soll ein Wert gespeichert werden, der 
sich auf eine weitere Tabelle ('tx_vnautomagcommunity_automag') bezieht. 
Die Datensätze dieser Tabelle sind allesamt auf der Rootpage, also mit 
pid=0 gespeichert.
Mein Problem: ich kriege es nicht hin, dass die Datensätze aus dieser 
Tabelle als Optionen in dem dafür angelegten SELECT-Feld im 
tt_adress-Formular landen. Das Feld ist zwar da, enthält als einziges 
Item aber nur den leeren Standard-Wert.

Auszüge aus der ext_tables.php meiner Extension:

[PHP]
$tempColumns = array (
	[...]
     'tx_vnautomagcommunity_automag' => array (
         'exclude' => 1,
         'label' => 
'LLL:EXT:vn_automagcommunity/locallang_db.xml:tt_address.tx_vnautomagcommunity_automag', 

         'config' => array (
             'type' => 'select',
             'items' => array (
                 array('',0),
             ),
             'foreign_table' => 'tx_vnautomagcommunity_automag',
             'foreign_table_where' => 'ORDER BY 
tx_vnautomagcommunity_automag.uid',
             'size' => 1,
             'minitems' => 0,
             'maxitems' => 1,
         )
     ),

	[...]

);


t3lib_div::loadTCA('tt_address');
t3lib_extMgm::addTCAcolumns('tt_address',$tempColumns,1);

[...]

$TCA['tx_vnautomagcommunity_automag'] = array (
	'ctrl' => array (
		'title'     => 
'LLL:EXT:vn_automagcommunity/locallang_db.xml:tx_vnautomagcommunity_automag', 
	
		'label'     => 'magtitle',	
		'tstamp'    => 'tstamp',
		'crdate'    => 'crdate',
		'cruser_id' => 'cruser_id',
		'default_sortby' => 'ORDER BY magtitle',	
		'delete' => 'deleted',	
		'enablecolumns' => array (		
			'disabled' => 'hidden',
		),
		'dynamicConfigFile' => t3lib_extMgm::extPath($_EXTKEY).'tca.php',
		'iconfile'          => 
t3lib_extMgm::extRelPath($_EXTKEY).'icon_tx_vnautomagcommunity_automag.gif',
	),
);


$TCA['tt_address']['ctrl']['type'] = 'tx_vnautomagcommunity_type';
[...]
$TCA['tt_address']['types']['1'] = array('showitem' => 'hidden;;;;1-1-1, 
name;;2, tx_vnautomagcommunity_type;;;;1-1-1, 
tx_vnautomagcommunity_clubname;;15, address;;10, email;;5, phone;;11, 
image;;;;4-4-4, description, addressgroup;;;;1-1-1, 
tx_vnautomagcommunity_automag;;14;;1-1-1, 
tx_vnautomagcommunity_creator;;13');
[...]

[/PHP]


Ich habe auch etwas mit dem Wert für 'foreign_table_where' rumprobiert, 
z.B. ergänzt mit 'AND tx_vnautomagcommunity_automag.pid=0' und auch 
'rootLevel' => 1 hat keinen Erfolg gebracht.

Woran kann das liegen, dass die Abfrage keine Datensätze bringt? Die 
Tabelle existiert, enthält Datensätze und ist im TCA registriert?
Falls du keinen konkreten Tipp für mich hast: wie würdest du hier ans 
Debuggen gehen?

Bin für jeden Tipp dankbar, da mit meinem Latein am Ende :(

Grüße,
	raphael


More information about the TYPO3-german mailing list