public function queue_import_csv($filename) { only_admin_access(); if (!is_file($filename)) { return array('error' => "You have not provided a existing backup to restore."); } $csv = new \Keboola\Csv\CsvFile($filename); $head = $csv->getHeader(); if (!isset($head[2])) { $csv = new \Keboola\Csv\CsvFile($filename, ';'); $head = $csv->getHeader(); } else { if (isset($head[0]) and stristr($head[0], ';')) { $csv = new \Keboola\Csv\CsvFile($filename, ';'); $head = $csv->getHeader(); } } if (empty($head) or empty($csv)) { return array('error' => "CSV file cannot be parsed properly."); } $rows = array(); $i = 0; foreach ($csv as $row) { if ($i > 0) { $r = array(); if (is_array($row)) { foreach ($row as $k => $v) { if (isset($head[$k])) { $row[$head[$k]] = $v; $new_k = strtolower($head[$k]); $new_k = str_replace(' ', '_', $new_k); $new_k = str_replace('__', '_', $new_k); // $new_k = preg_replace("/[^a-zA-Z0-9_]+/", "", $new_k); $new_k = rtrim($new_k, '_'); $r[$new_k] = $v; } } } $rows[] = $r; } $i++; } $content_items = $rows; $content_items = $this->map_array($rows); return $this->batch_save($content_items); }