[TYPO3-dev] TCA - type select, select from joined tables?
Steffen Ritter
info at rs-websystems.de
Tue May 20 12:26:51 CEST 2008
Well
forget about this crouded way :P
much more easy an not misusing typo3 api:
define a view containing you joined data and define this view as a own
table with tca so that typo3 can access it,
then simply set foreign_table to tx_myext_specialview
greetings
Steffen
Steffen Ritter schrieb:
> Well,
> you can provide your own function building the select field. But then
> you won't get a display of the selected value in the backend on list view.
> if you use foreign_table there are some more configuration options (not
> well documented except then in sourcecode)
> THe function t3lib_befunc::exec_foreign_table_where_query will handle
> your request.
> it evaluates
> 'foreign_table_where' => ...
> while setting
> ###REC_FIELD_
> ###CURRENT_PID###, ###THIS_UID###, ###THIS_CID### ,###STORAGE_PID###,
> ###SITEROOT###, ###PAGE_TSCONFIG_ID, ###PAGE_TSCONFIG_IDLIST###,
> ###PAGE_TSCONFIG_STR###
> After replacing this markers the "WhereString" is parsed by
> $GLOBALS['TYPO3_DB']->splitGroupOrderLimit($fTWHERE)
>
> So I just did not try, but looking at source I think it should be
> possible usning
> foreign_table => table1, table2, table3, table4
>
> foreing_table_where => table1.primKey = table2.foreignKey AND
> table2.primKey = table3.ForeignKey AND table3.primKey =
> table4.ForeignKey AND table4.primKey = 134 AND table3.field2 = 1
> AND table2.field3 = 1;
>
>
> But since there is no handling for what label there should be used you
> will have to play a trick...
> the fields which should bee fetched get reduced only to uid, since there
> is no TCA Definition for a table called "table1, table2, table3, table4"...
> so you might set it :P
> $TCA['table1, table2, table3, table4']['ctrl']['label']='table1.title';
> with
> $TCA['table1, table2, table3, table4']['ctrl']['label_userFunc']
>
> you can set how the title of your items should be rendered (details at
> t3lib_befunc:getRecordTitle)
>
> I hope this can help you a bit
>
> Greetings
>
> Steffen
>
>
>
> Brian Bendtsen schrieb:
>> Hi
>> I have never figured this out, how do I join tables in the TCA. I
>> would like to have a select box where it is possible to select from
>> values in a recordset thats created from joining a few tables.
>>
>> My sql looks something like this:
>>
>> SELECT table1.name FROM table1, table2, table3, table4 WHERE
>> table1.primKey = table2.foreignKey AND table2.primKey =
>> table3.ForeignKey AND table3.primKey = table4.ForeignKey AND
>> table4.primKey = 134 AND table3.field2 = 1 AND table2.field3 = 1;
>>
>> Any help is appreciated
>>
>> In the api manual, in the advanced lookup section a "itemsProcFunc" is
>> mentioned, but its not explained much.
>>
>> Is there some more docs about this somewhere? Or some examples?
>>
>> /Brian
More information about the TYPO3-dev
mailing list