/** * Converts a given config in Flexform to a conf-Array. * @param string Flexform data * @param array Array to write the data into, by reference * @param boolean is set if called recursive. Don't call function with this parameter, it's used inside the function only * @access public * */ public function readFlexformIntoConf($flexData, &$conf, $recursive=FALSE) { if ($recursive === FALSE) { $flexData = t3lib_div::xml2array($flexData, 'T3'); } if (is_array($flexData)) { if (isset($flexData['data'])) { $flexData = $flexData['data']; } foreach ($flexData as $key => $value) { if (isset($value['lDEF'])) { $value = $value['lDEF']; } if (is_array($value['el']) && count($value['el']) > 0) { foreach ($value['el'] as $ekey => $element) { if (isset($element['vDEF'])) { $conf[$ekey] = $element['vDEF']; } else { if(is_array($element)) { $this->readFlexformIntoConf($element, $conf[$key][key($element)][$ekey], TRUE); } else { $this->readFlexformIntoConf($element, $conf[$key][$ekey], TRUE); } } } } else { $this->readFlexformIntoConf($value, $conf[$key], TRUE); } if ($value['vDEF']) { $conf[$key] = $value['vDEF']; } } } }