[TYPO3-german] Flexform, itemsProcFunc, abhängige Felder
Jan Kornblum
jan.kornblum at gmx.de
Mon Aug 6 00:32:09 CEST 2012
Hi Gruppe,
in der Flexform-Konfig eines Plugins lege ich in einem 1. Feld den
Speicherort der Datensätze fest ("recordsPid"), also analog zum
klassischen tt_content-Feld "pages".
Nun gibt es ein 2. Feld (type=select) in der Flexform, in dem man
einzelne Datensätze selektieren können soll. Dieses Feld soll natürlich
nur diejenigen Datensätze auflisten, die in dem in Feld 1 definierten
Sysfolder liegen.
Und hier finde ich keine vernünftige Lösung zu Befüllen des 2. Feldes:
1. Es gibt keinen Marker in der Flex für ein "foreign-table-where", der
auf ein anderes Feld der gleichen Flexform zugreifen kann (auch
###REC_FIELD_xxx### geht hier ja nicht)
2. Der Umweg über eine itemsProcFunc geht vom Ansatz zwar aber
innerhalb der itemsprocFunc kann ich mehr schlecht als recht auf das 1.
Feld zugreifen:
<config>
<type>select</type>
<multiple>1</multiple>
<size>5</size>
<maxitems>10</maxitems>
<autosizemax>5</autosizemax>
<allowNonIdValues>1</allowNonIdValues>
<items type="array"></items>
<itemsProcFunc>tx_ext_addFieldsToFlexForm->addFields</itemsProcFunc>
</config>
...innerhalb der tx_ext_addFieldsToFlexForm->addFields() dann...
$flex = t3lib_div::xml2array($config['row']['pi_flexform']);
$recordsPid = $flex['data']['sDEF']['lDEF']['recordsPid']['vDEF'];
t3lib_div::debug($recordsPid);
...allerdings wird die itemsprocFunc im BE dabei komischwerweise
zweimal aufgerufen, einmal ist "$recordsPid=156", beim zweiten Mal ist
"$recordsPid=pages_156|Pagetitle", was man ja nicht wirklich gescheit
"verwerten" kann.
Wie macht ihr sowas? Ist ja eigentlich nicht gerade ein exotisches
Problem, oder? Ich möchte "recordsPid" auch nicht über TSConfig setzen
oder etwas wie "allgemeine Datensatzsammlung" verwenden, um das Plugin
"einfach" zu halten...
Danke und gute Nacht, Jan
More information about the TYPO3-german
mailing list