|
|
|
@ -83,8 +83,11 @@ class Export |
|
|
|
|
} |
|
|
|
|
/** |
|
|
|
|
* Export tabular data to XML-file |
|
|
|
|
* @param array $data |
|
|
|
|
* @param string $filename |
|
|
|
|
* @param array Simple array of data to put in XML |
|
|
|
|
* @param string Name of file to be given to the user |
|
|
|
|
* @param string Name of common tag to place each line in |
|
|
|
|
* @param string Name of the root element. A root element should always be given. |
|
|
|
|
* @param string Encoding in which the data is provided |
|
|
|
|
*/ |
|
|
|
|
function export_table_xml($data, $filename = 'export', $item_tagname = 'item', $wrapper_tagname = null, $encoding='ISO-8859-1') |
|
|
|
|
{ |
|
|
|
@ -112,6 +115,53 @@ class Export |
|
|
|
|
DocumentManager :: file_send_for_download($file, true, $filename.'.xml'); |
|
|
|
|
exit; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Export hierarchical tabular data to XML-file |
|
|
|
|
* @param array Hierarchical array of data to put in XML, each element presenting a 'name' and a 'value' property |
|
|
|
|
* @param string Name of file to be given to the user |
|
|
|
|
* @param string Name of common tag to place each line in |
|
|
|
|
* @param string Name of the root element. A root element should always be given. |
|
|
|
|
* @param string Encoding in which the data is provided |
|
|
|
|
*/ |
|
|
|
|
function export_complex_table_xml($data, $filename = 'export', $wrapper_tagname, $encoding='ISO-8859-1') |
|
|
|
|
{ |
|
|
|
|
$file = api_get_path(SYS_ARCHIVE_PATH).'/'.uniqid('').'.xml'; |
|
|
|
|
$handle = fopen($file, 'a+'); |
|
|
|
|
fwrite($handle, '<?xml version="1.0" encoding="'.$encoding.'"?>'."\n");
|
|
|
|
|
|
|
|
|
|
if (!is_null($wrapper_tagname)) |
|
|
|
|
{ |
|
|
|
|
fwrite($handle, '<'.$wrapper_tagname.'>'); |
|
|
|
|
} |
|
|
|
|
$s = Export::_export_complex_table_xml_helper($data); |
|
|
|
|
fwrite($handle,$s); |
|
|
|
|
if (!is_null($wrapper_tagname)) |
|
|
|
|
{ |
|
|
|
|
fwrite($handle, '</'.$wrapper_tagname.'>'."\n"); |
|
|
|
|
} |
|
|
|
|
fclose($handle); |
|
|
|
|
DocumentManager :: file_send_for_download($file, true, $filename.'.xml'); |
|
|
|
|
exit; |
|
|
|
|
} |
|
|
|
|
/** |
|
|
|
|
* Helper for the hierarchical XML exporter |
|
|
|
|
*/ |
|
|
|
|
function _export_complex_table_xml_helper($data,$level=1) { |
|
|
|
|
if (count($data)<1) { return '';} |
|
|
|
|
$string = ''; |
|
|
|
|
foreach ($data as $index => $row) |
|
|
|
|
{ |
|
|
|
|
$string .= "\n".str_repeat("\t",$level).'<'.$row['name'].'>'; |
|
|
|
|
if (is_array($row['value'])) { |
|
|
|
|
$string .= Export::_export_complex_table_xml_helper($row['value'],$level+1)."\n"; |
|
|
|
|
} else { |
|
|
|
|
$string .= $row['value']; |
|
|
|
|
} |
|
|
|
|
$string .= str_repeat("\t",$level).'</'.$row['name'].'>'; |
|
|
|
|
} |
|
|
|
|
return $string; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
/* |
|
|
|
|
============================================================================== |
|
|
|
|