function export() { $separator = $this->app_conf->get('csv_separator'); // header $headers = array(); reset($this->fields); foreach ($this->fields as $f) { $headers[] = $f['name']; } $data = array(); $data[] = join($separator, $headers); // entries $entries = $this->{$this->model}->get_all($headers); reset($entries); foreach ($entries as $e) { $data[] = hc_build_csv(array_values($e), $separator); } // output $out = join("\n", $data); $file_name = isset($this->conf['export']) ? $this->conf['export'] : 'export'; $file_name .= '-' . date('Y-m-d_H-i') . '.csv'; $this->load->helper('download'); force_download($file_name, $out); return; }
protected function _prepare_export() { $separator = $this->app_conf->get('csv_separator'); // header $headers = array(); reset($this->fields); foreach ($this->fields as $f) { $headers[] = $f['name']; } $data = array(); $data[] = join($separator, $headers); // entries $entries = $this->model->get_all($headers); reset($entries); foreach ($entries as $e) { $data[] = hc_build_csv(array_values($e), $separator); } return $data; }
function csv($separator = ',', $skip = array()) { $related_fields = array_merge($this->has_one, $this->has_many); // header $headers = array(); $fields = $this->get_fields(); reset($fields); foreach ($fields as $f) { if (in_array($f['name'], $skip)) { continue; } // $headers[ $f['name'] ] = Hc_lib::parse_lang( $f['label'] ); $headers[$f['name']] = $f['name']; } $data = array(); $data[] = join($separator, $headers); // entries $keys = array_keys($headers); $this->clear(); $this->get(); foreach ($this as $s) { $e = array(); reset($keys); foreach ($keys as $k) { if (isset($related_fields[$k])) { $e[] = $s->{$k}->get()->title(); } else { $e[] = $s->{$k}; } } $data[] = hc_build_csv($e, $separator); } $return = join("\n", $data); return $return; }
function export_stats() { $separator = $this->app_conf->get('csv_separator'); // header $headers = array(lang('user_level_staff'), lang('shifts'), lang('time_duration')); $data = array(); $data[] = join($separator, $headers); // shifts foreach ($this->data['stats_shifts'] as $staff_id => $array) { $staff = $this->data['staffs'][$staff_id]; $values = array(); $values[] = $staff->title(); $values[] = $this->data['stats_shifts'][$staff->id][0]; $values[] = $this->hc_time->formatPeriodShort($this->data['stats_shifts'][$staff->id][1], 'hour'); $data[] = hc_build_csv(array_values($values), $separator); } // output $out = join("\n", $data); $file_name = 'stats-'; $file_name .= $this->data['start_date'] . '-' . $this->data['end_date'] . '.csv'; $this->load->helper('download'); force_download($file_name, $out); return; }