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


_______________________________________________
TYPO3-german mailing list
TYPO3-german@lists.typo3.org
http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german

Antwort per Email an