public function export_to_excel($params)
{
//this function is experimental
set_time_limit(0);
$adm = $this->app->user_manager->is_admin();
if ($adm == false) {
return array('error' => 'Error: not logged in as admin.' . __FILE__ . __LINE__);
}
if (!isset($params['id'])) {
return array('error' => 'Please specify list id! By posting field id=the list id ');
} else {
$lid = intval($params['id']);
$data = get_form_entires('limit=100000&list_id=' . $lid);
$surl = $this->app->url_manager->site();
$csv_output = '';
if (is_array($data)) {
$csv_output = 'id,';
$csv_output .= 'created_at,';
$csv_output .= 'user_ip,';
foreach ($data as $item) {
if (isset($item['custom_fields'])) {
foreach ($item['custom_fields'] as $k => $v) {
$csv_output .= $this->app->format->no_dashes($k) . ',';
$csv_output .= "\t";
}
}
}
$csv_output .= "\n";
foreach ($data as $item) {
if (isset($item['custom_fields'])) {
$csv_output .= $item['id'] . ',';
$csv_output .= "\t";
$csv_output .= $item['created_at'] . ',';
$csv_output .= "\t";
$csv_output .= $item['user_ip'] . ',';
$csv_output .= "\t";
foreach ($item['custom_fields'] as $item1 => $val) {
$output_val = $val;
$output_val = str_replace('{SITE_URL}', $surl, $output_val);
$csv_output .= $output_val . ',';
$csv_output .= "\t";
}
$csv_output .= "\n";
}
}
}
$filename = 'export' . '_' . date('Y-m-d_H-i', time()) . uniqid() . '.csv';
$filename_path = userfiles_path() . 'export' . DS . 'forms' . DS;
$filename_path_index = userfiles_path() . 'export' . DS . 'forms' . DS . 'index.php';
if (!is_dir($filename_path)) {
mkdir_recursive($filename_path);
}
if (!is_file($filename_path_index)) {
@touch($filename_path_index);
}
$filename_path_full = $filename_path . $filename;
file_put_contents($filename_path_full, $csv_output);
$download = $this->app->url_manager->link_to_file($filename_path_full);
return array('success' => 'Your file has been exported!', 'download' => $download);
}
}