Exemplo n.º 1
0
 /** -------------------------------------
 	/**  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;
     }
 }