/** ------------------------------------- /** Create XML File /** -------------------------------------*/ function create_xml() { global $DSP, $IN, $LANG, $OUT; /** ------------------------------------- /** Snag POST data /** -------------------------------------*/ $member_file = !$IN->GBL('member_file', 'POST') ? '' : $IN->GBL('member_file', 'POST'); switch ($IN->GBL('delimiter', 'POST')) { case 'tab': $this->delimiter = "\t"; break; case ',': $this->delimiter = ","; break; case 'other': $this->delimiter = $IN->GBL('delimiter_special', 'POST'); } $this->enclosure = !$IN->GBL('enclosure', 'POST') ? '' : $this->prep_enclosure($IN->GBL('enclosure', 'POST')); $encrypt = $IN->GBL('encrypt', 'POST') == 'y' ? TRUE : FALSE; $type = $IN->GBL('type', 'POST'); /** ------------------------------------- /** Read file contents /** -------------------------------------*/ if (function_exists('file_get_contents')) { $contents = file_get_contents($member_file); } else { $fp = fopen($member_file, 'r'); $contents = fread($fp, filesize($member_file)); fclose($fp); } /** ------------------------------------- /** Get structure /** -------------------------------------*/ $structure = array(); foreach ($_POST as $key => $val) { if (substr($key, 0, 5) == 'field') { $structure[] = $val; } } /** ------------------------------------- /** Instantiate EE_XMLparser Class /** -------------------------------------*/ if (!class_exists('EE_XMLparser')) { require PATH_CORE . 'core.xmlparser' . EXT; } $XML = new EE_XMLparser(); /** ------------------------------------- /** Convert the data to XML /** -------------------------------------*/ $params = array('data' => $contents, 'structure' => $structure, 'root' => 'members', 'element' => 'member', 'delimiter' => $this->delimiter, 'enclosure' => $this->enclosure); $xml = $XML->delimited_to_xml($params); /** ------------------------------------- /** Add type="text" parameter for plaintext passwords /** -------------------------------------*/ if ($encrypt === TRUE) { $xml = str_replace('<password>', '<password type="text">', $xml); } if (!empty($XML->errors)) { $OUT->show_user_error('general', $XML->errors); exit; } /** ------------------------------------- /** Output to browser or download /** -------------------------------------*/ switch ($type) { case 'view': $this->view_xml($xml); break; case 'download': $this->download_xml($xml); break; } }