Microweber\Providers\FormsManager::export_to_excel PHP Метод

export_to_excel() публичный Метод

public export_to_excel ( $params )
    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);
        }
    }