2 if ( !function_exists(
'prepare_csv') ){
9 function prepare_csv($str){
10 return str_replace(
'"',
'""',$str);
14 if ( !function_exists(
'fputcsv') ){
20 function fputcsv($filePointer,$dataArray,$delimiter=
',',$enclosure=
'"')
29 $dataArray = array_map(
'prepare_csv', $dataArray);
30 $string = $enclosure.implode($enclosure.$delimiter.$enclosure, $dataArray).$enclosure;
37 fwrite($filePointer,$string);
47 import(
'Dataface/RecordReader.php');
49 $query =
$app->getQuery();
50 $query[
'-limit'] = 9999999;
52 if ( isset($query[
'-relationship']) and @$query[
'--related'] ){
53 $query[
'-related:start'] = 0;
54 $query[
'-related:limit'] = 9999999;
55 $record =&
$app->getRecord();
56 $relationship =&
$table->getRelationship($query[
'-relationship']);
58 $records =& df_get_related_records($query);
62 foreach ( $relationship->_schema[
'short_columns'] as $colhead ){
63 $f =& $relationship->getField($colhead);
64 if ( @
$f[
'visibility'][
'csv'] ==
'hidden' ){
68 $headings[] = $colhead;
72 foreach ($records as $record){
73 if ( !$record->checkPermission(
'view') )
continue;
77 foreach ($data as $row){
78 fputcsv($temp, $row,
",",
'"');
83 $query[
'-limit'] = null;
88 foreach (array_merge(array_keys(
$table->fields()), array_keys(
$table->graftedFields())) as $colhead){
90 if ( @
$f[
'visibility'][
'csv'] ==
'hidden' ){
94 $headings[] = $colhead;
99 fputcsv($temp, $headings,
",",
'"');
100 foreach ($records as $record){
101 if ( !$record->checkPermission(
'view') )
continue;
103 fputcsv($temp, $data,
",",
'"');
109 header(
"Content-type: text/csv; charset={$app->_conf['oe']}");
110 header(
'Content-disposition: attachment; filename="'.$query[
'-table'].
'_results_'.date(
'Y_m_d_H_i_s').
'.csv"');
112 $fstats = fstat($temp);
113 while ( ob_end_clean() );
125 $columns = array_merge(array_keys($record->_table->fields()), array_keys($record->_table->graftedFields()));
128 $f =& $record->_table->getField($key);
129 if ( @
$f[
'visibility'][
'csv'] ==
'hidden' ){
133 $out[] = $record->display($key);
141 $r =& $record->_relationship;
142 foreach ($r->_schema[
'short_columns'] as $col){
143 $f =& $r->getField($col);
144 if ( @
$f[
'visibility'][
'csv'] ==
'hidden' ){
148 $out[] = $record->display($col);