[TYPO3-german] Flexform itemsProcFunc
Lars Möller
moeller at basis5.de
Fri Mar 4 11:52:19 CET 2011
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 at lists.typo3.org
> http://lists.typo3.org/cgi-bin/mailman/listinfo/typo3-german
>
More information about the TYPO3-german
mailing list