Microweber\Utils\Import::queue_import_csv PHP Method

queue_import_csv() public method

public queue_import_csv ( $filename )
    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();
        } elseif (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);
    }