tach zsam,
beim schreiben eines FE Plugin kommts öfter vor, daß ich die Daten in der pi1/flexform_ds.xml ändern muss.
simples beispiel:
<tx_koi_wetter>
<root>
<tceforms>
<sheettitle>LLL:EXT:koi/pi1/locallang.xml:pi_flexform_sheet_wetter</sheettitle>
</tceforms>
<type>array</type>
<el>
<date_time>
<tceforms>
<label>LLL:EXT:koi/pi1/locallang.xml:pi_flexform_wetter_date_time</label>
<config>
<type>check</type>
<items type="array">
<numindex index="0" type="array">
<numindex index="0"></numindex>
<numindex index="1">1</numindex>
</numindex>
</items>
</config>
</tceforms>
</date_time>
daraus wird der date_time abschnitt gelöscht.
Anschließend greife ich (nach löschen aller cashes) über
$flexform = $this->cObj->data['pi_flexform'];
im Quelltext darauf zu und welch Wunder - die alte Kamelle ist immer noch vorhanden.
Schau ich dann in die tt_content pi_flexform rein, sehe ich den alten Wert da auch noch rumlungern.
Meine ext_tables.php sieht so aus:
t3lib_div::loadTCA('tt_content');
$TCA['tt_content']['types']['list']['subtypes_excludelist'][$_EXTKEY.'_pi1']='layout,select_key,pages,recursive';
$TCA['tt_content']['types']['list']['subtypes_addlist'][$_EXTKEY.'_pi1']='pi_flexform';
t3lib_extMgm::addPiFlexFormValue($_EXTKEY.'_pi1', 'FILE:EXT:'.$_EXTKEY.'/flexform_ds.xml');
wie der Name vermuten lässt ist t3lib_extMgm::addPiFlexFormValue dafür zuständig neue Werte hinzuzufügen. Aber wer oder was beseitigt den Müll.
In class.t3lib_extmgm.php gibts jedenfalls kein replacePiFlexFormValue() oder so ähnlich. Die Daten per Hand aus der DB zu löschen kann doch eigentlich nicht das Mittel der Wahl sein. Habe danach schon hier im Forum gesucht und rumgegoogelt bin aber bisher nicht fündig geworden.
Ist das Verhalten so gewünscht, oder noch nicht aufgefallen, oder der Fehler zwischen den @O@ ?
Gruss - koi
(Typo3 4.2.5 - das Verhalten war in älteren Versionen genauso)