Auflösung: ich habe einen Wert dynamisch gelesen und diesen als SQL-Abfrage eingebaut. Der wert kam aus dem Flexform selber und sollte die vorher ausgewählte Seiten ID enthalten. Nun scheint Typo3 diese Funktion zweimal aufzurufen. Einmal, um die Felder in der Auswahlliste ausgeben zu können und ein zweites mal, um die bereits ausgewählten, gespeicherten ids mit Werten abzugleichen und diese dann im selektierten Feld anzeigen zu können. Beim zweiten Aufruf werden aber manche Flexform Felder nicht an die Funktion übergeben. Die Sql abfrage wird fehlerhaft, ein Abgleichen kann nicht erfolgen.
Das war das Feld, welches ich dynamisch einbinden wollte: $config['row']['pi_flexform']['data']['sDEF']['lDEF']['page']['vDEF']; Lösung war einfach ein Abfangen ob das Feld gefüllt ist, ansonsten Alles ausgeben. Eventuell benötigt es mal Jemand oder schreibt mir, dass das auslesen des Flexformfeldes innerhalb der Funktion auch anders geht. Mit bestem Gruß lars Lars Möller schrieb: > Hallo Liste, > > > ich habe ein interessantes Problem mit Flexform und itemsProcFunc. > > Die Funktion lässt sich integrieren und Felder werden tatsächlich angezeigt. > Werden welche ausgewählt und gespeichert, kann man im flexform Feld in > der Datenbank auch den passenden Eintrag finden: > <field index="content"> > <value index="vDEF">33,31,28,33</value> > </field> > > > Allerdings werden beim erneuten Aufruf diese Datensätze nicht in der > linken Selection angezeigt. > > Die php mit der Funktion sieht in Teilen so aus > >> $optionList = array(); >> $extConfigArray = array(); >> $select = 'uid, header '; >> $table = 'tt_content'; >> $where = ' hidden = 0 AND deleted = 0 and >> sys_language_uid='.$test .' and pid= '.$sql_select[0]; >> //$where .= $GLOBALS['TSFE']->sys_page->enableFields($table); >> $order = ''; >> $group = ''; >> $limit = ''; >> >> $optionList[0] =array('', 0); >> $res = $GLOBALS['TYPO3_DB']->exec_SELECTquery($select, $table, $where, >> $group, $order, $limit); >> $w=1; >> while ($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) { >> $optionList[$w] =array($row['header'], $row['uid']); >> $w++; >> >> } >> > // hier kommt die Ergänzung rein > >> $config['items'] = array_merge($config['items'], $optionList); >> >> return $config; >> > > Wenn ich der php Datei eine "händische" Zeile ergänze > > optionList[$w] =array('test', 31); > > Kann ich diesen test ebenfalls auswählen speichern und er wird auf der > linken Auswahlseite angezeigt. > Ich kann beliebig Zeilen hinzubauen diese werden dann alle ebenfalls an > die Datenbankausgabe zur Auswahl angehängt und sind ebenfalls auswählbar > und werden auch nach dem speichern angezeigt. Der firebug zeigt mir, > dass die Felder aus der DB auch richtig formatiert mit key und value > ankommen. > > Was Läuft hier schief? Hat Jemand eine Idee dazu? > Verwendet wird Typo3 4.5.2 > > > Mit bestem Gruß > lars > > > > _______________________________________________ > TYPO3-german mailing list > TYPO3-german@lists.typo3.org > http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german > _______________________________________________ TYPO3-german mailing list TYPO3-german@lists.typo3.org http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german