Вход Регистрация
Файл: source/library/scrud/templates/csv.php
Строк: 39
<?php

$csv 
= array();
$aryHeader = array();
$aryAlias = array();
foreach (
$fields as $field) {
    if (!
in_array($field$this->fields))
        continue;
    
$aryHeader[] = $field;
    if (!
array_key_exists($field$this->fieldsAlias)) {
        
$aryAlias[] = $field;
    } else {
        
$aryAlias[] = $this->fieldsAlias[$field];
    }
}
$csv[] = $aryAlias;
foreach (
$this->results as $v) {
    
$tmp = array();
    foreach (
$aryHeader as $v1) {
        
$__value '';
        
$__aryField explode('.'$v1);
        if (
count($__aryField) > 1) {
            
$__tmp $v;
            foreach (
$__aryField as $key => $value) {
                if (
is_array($__tmp[$value])) {
                    
$__tmp $__tmp[$value];
                } else {
                    
$__value $__tmp[$value];
                }
            }
        } else if (
count($__aryField) == 1) {
            
$__value $result[$field];
        }
        if (!isset(
$this->form[$v1])) {
            
$this->form[$v1]['element'][0] = '';
        }
        switch (
$this->form[$v1]['element'][0]) {
            case 
'select':
            case 
'autocomplete':
            case 
'radio':
                
$e $this->form[$v1]['element'];
                
$options = array();
                
$params = array();
                if (isset(
$e[1]) && !empty($e[1])) {
                    if (
array_key_exists('option_table'$e[1])) {
                        if (
array_key_exists('option_key'$e[1]) &&
                                
array_key_exists('option_value'$e[1])) {
                            
$_dao = new GenericDao($e[1]['option_table'], $this->da);
                            
$params['fields'] = array($e[1]['option_key'], $e[1]['option_value']);
                            
$rs $_dao->find($params);
                            if (!empty(
$rs)) {
                                foreach (
$rs as $v2) {
                                    
$options[$v2[$e[1]['option_key']]] = $v2[$e[1]['option_value']];
                                }
                            }
                        }
                    } else {
                        
$options $e[1];
                    }
                }
                
                if (isset(
$e[2]) && array_key_exists('multiple'$e[2]) && !is_array($__value)){
                    
$tmp1 explode(','$__value);
                    
$__value = array();
                    foreach (
$tmp1 as $mv){
                        if (!empty(
$mv)){
                            
$__value[] = $mv;
                        }
                    }
                }
                
                if (!
is_array($__value)){
                    if (isset(
$e[1]) && !empty($__value)) {
                        
$tmp[] = (isset($options[$__value])) ? $options[$__value] : $__value;
                    }
                }else{
                    
$tmp1 '';
                    
$sp '';
                    foreach (
$__value as $sv){
                        
$tmp1 .= $sp.((isset($options[$sv])) ? $options[$sv] : $sv);
                        
$sp ',';
                    }
                    
$tmp[] = $tmp1;
                }
                
                break;
            case 
'checkbox':
                
$value explode(','$__value);
                if (!empty(
$value) && is_array($value) && count($value) > 0) {
                    
$tmp1 = array();
                    foreach (
$value as $k2 => $v2) {
                        if (isset(
$this->form[$v1]['element'][1][$v2])) {
                            
$tmp1[] = $this->form[$v1]['element'][1][$v2];
                        }
                    }
                    
$value implode(', '$tmp1);
                } else {
                    
$value '';
                }
                
$tmp[] = $value;
                break;
            default :
                
$tmp[] = $__value;
                break;
        }
    }
    
$csv[] = $tmp;
}

header("Content-type: text/csv");
header("Content-Disposition: attachment; filename=" $_GET['table'] . "-" date("YmdHis") . ".csv");
header("Pragma: no-cache");
header("Expires: 0");

foreach (
$csv as $v) {
    echo 
arrayToCsv($v) . "n";
}
Онлайн: 0
Реклама