blog.bartlweb - a technologist's external brain

Flexform-Daten in Typo3-Extension auslesen

Um die Flexform-Daten eines Plugins zu nutzen benötigt man in seiner eigenen Extension etwas PHP-Code. Dabei kann nicht nur auf Flexform-Daten des aktuellen Plugins sondern auch auf jene jedes beliebigen (soweit der Datensatz bekannt ist) zugegriffen werden.

Flexform-Daten des aktuellen Plugins

$this->pi_initPIflexForm();
$this->flexform = array();
 
// get flexform data
$piFlexForm = $this->cObj->data['pi_flexform'];
$sDef = current($piFlexForm['data']);
foreach ( $piFlexForm['data'] as $sheet => $data ) {
    foreach ($data['lDEF'] as $key => $val ) {
        $this->flexform[$key] = $this->pi_getFFvalue($piFlexForm, $key, $sheet, 'lDEF');
    }
}

fremde Flexform-Daten

$row=$this->pi_getRecord(tt_content, $this->conf['foreignFlexformContentElementID']); 
$flexformData = t3lib_div::xml2array($row['pi_flexform']);
 
$foreignFlexform = array();
 
$piFlexForm = $flexformData;
$sysLanguage = $GLOBALS['TSFE']->sys_language_uid;
$sDef = current($piFlexForm['data']);
$lDef = array_keys($sDef);
foreach ( $piFlexForm['data'] as $sheet => $data ) {
    foreach ( $data as $lang => $value ) {
        foreach ( $value as $key => $val ) {
            $foreignFlexform[$key] = $this->pi_getFFvalue($piFlexForm, $key, $sheet);
        }
    }
}

Dieser Artikel hat dir deinen Tag gerettet?
... und mühevolles Probieren, Recherchieren und damit Stunden an Zeit gespart? ... oder einfach nur dein Problem gelöst?

Dann würde ich mich freuen, wenn Du meine Zeit für die Erstellung dieses Blogartikels mit einer kleinen Spende honorierst:

Kommentare

Noch kein Kommentar vorhanden.
Sei der Erste - ich freue mich über deine Anmerkungen, Kritik und Fragen.

Kommentar schreiben

Deine E-Mailadresse wird nur für Benachrichtigungen und Rückfragen verwendet und wird nicht veröffentlicht.

Benachrichtigungen können jederzeit wieder abbestellt werden.

Bitte tippe die Zahlenkombination "3281" ein, nur dann kann ich deinen Kommentar entgegennehmen.

Bitte fülle dieses Feld nicht aus, nur dann kann ich deinen Kommentar entgegennehmen.