Zum Inhalt springen

Flexforms: XML wird nicht eingelesen

Erstellt am 2. Oktober 2009 · 1 Antwort · letzte Antwort am 2. Oktober 2009

Tags: Frage

nweber ·

Hallo liebes Forum,

ich arbeite z.Z. an einer EXT eines Kollegen und wollte sie "mal schnell" auf Flexforms umstellen (ich hoffe ihr wisst, was ich meine). Meine Hoffnung war/ist, die Änderungen und Erweiterung so zügiger umsetzen zu können, da ich all meine EXT so aufbaue und gewisse Strukturen übernehmen kann.

Das Problem ist nun, das (wohl) meine XML-Datei nicht eingelesen wird, die Werte im ARRAY beim Einlesen ($this->cObj->data['pi_flexform']) also nicht vorhanden sind und mein FOREACH nicht greift.

Der Aufbau ist bei mir immer in diesem Stil:
http://wiki.typo3.org/index.php/Extension_Development,_using_Flexforms

Mein INIT sieht also folgendermaßen aus:

function initFlexForm()
{
    $this->pi_initPIflexForm();
    $this->lConf = array();
    $piFlexForm = $this->cObj->data['pi_flexform'];

    foreach( $piFlexForm['data'] as $sheet => $data ) {
        foreach( $data as $lang => $value ) {
            foreach( $value as $key => $val ) {
                foreach( $val as $vDEF => $flexValue ) {
                    $this->lConf[$sheet][$key] = $flexValue;
                }
            }
        }
    }
}
// END initFlexForm

Am Ende meiner ext_tables.php steht:

t3lib_div::loadTCA('tt_content');
$TCA['tt_content']['types']['list']['subtypes_excludelist'][$_EXTKEY.'_pi1'] = 'layout,select_key';
$TCA['tt_content']['types']['list']['subtypes_addlist'][$_EXTKEY.'_pi1'] = 'pi_flexform';

t3lib_extMgm::addPlugin(array(
    'LLL:EXT:XXXXXXXX/locallang_db.xml:tt_content.list_type_pi1',
    $_EXTKEY . '_pi1',
    t3lib_extMgm::extRelPath($_EXTKEY) . 'ext_icon.gif'),
    'list_type'
);
t3lib_extMgm::addStaticFile($_EXTKEY,'pi1/static/','XXXXXXXXX');
t3lib_extMgm::addPiFlexFormValue($_EXTKEY.'_pi1', 'FILE:EXT:'.$_EXTKEY.'/flexform_ds_pi1.xml');

...also im Prinzip alles wie aus dem WIKI - auch die XML-Datei.

Hat jemand eine Idee, warum mein Config-ARRAY leer ist?
Bin dankbar für jegliche Hinweise, mir gehen so langsam die Ideen aus.

Lieben Gruß,
Niels

nweber ·

...und dafür habe ich nun soviel Zeit in den Sand gesetzt. Naja, manchesmal muss man halt auch (mal wieder) Lehrgeld bezahlen.

Lösung:
"Erst wenn das Content-Element auf einer Seite das erste Mal gespeichert wird, wird auch der Inhalt der Flexform angelegt." (PS: Danke Frank!)

Mit anderen Worten: Nach erneutem Abspeichern und Cache-Löschen hat es funktioniert.
Man, man, man... #paralyzed#

Cach'it Baby,
Niels