public function exportCustomCSV() { $custom_query = Tools::post('custom_query'); $csvSeparator = Tools::post('csv_separator'); $headerRow = Tools::post('with_header_row'); $csv_file_name = Tools::post('csv_file_name'); $fileName = TMP . $csv_file_name . '.csv'; $fp = fopen($fileName, 'w'); $this->DB->SetFetchMode(ADODB_FETCH_ASSOC); $result = $this->DB->Execute($custom_query); $errorMsg = $this->DB->ErrorMsg(); if ($errorMsg != "") { FlashSession::setFlash('error', $errorMsg); return false; } $cp = 0; if ($result !== false) { while (!$result->EOF) { $aRecords = $result->fields; if ($headerRow && $cp == 0) { FileManager::putCSV($fp, $aRecords, $csvSeparator, '', true); } FileManager::putCSV($fp, $aRecords, $csvSeparator, ''); $result->MoveNext(); $cp++; } } fclose($fp); FileManager::downloadCSVFile($fileName); }
/** * @param $fileName * @param $tableName * @param $importFieldsType * @param $fieldsList * @param $csvSeparator * @param $exportFieldsName */ private function runCSVExport($fileName, $tableName, $importFieldsType, $fieldsList, $csvSeparator, $exportFieldsName) { $fileName = $fileName . '.csv'; $fp = fopen($fileName, 'w'); if ($exportFieldsName) { FileManager::putCSV($fp, $fieldsList, $csvSeparator, ''); } if ($importFieldsType == "all") { $query = "SELECT * FROM {$tableName}"; } else { $query = "SELECT " . implode(",", $fieldsList) . " FROM {$tableName}"; } $format = "Exported rows : %current%/%max% [%bar%] %percent% (%elapsed%)"; $filler = '=>'; $empty = ' '; $width = 100; $cp = 0; $result = $this->DB->Execute($query); if ($result !== false) { $count = $result->_numOfRows; /** * Init Progress Bar */ $bar = new Console_ProgressBar($format, $filler, $empty, $width, $count); while (!$result->EOF) { $aRecords = $result->fields; FileManager::putCSV($fp, $aRecords, $csvSeparator, ''); $result->MoveNext(); $cp++; $bar->update($cp); } $this->showNotice("Export has been successfully finished : " . $cp . " rows exported."); } fclose($fp); $errorMsg = $this->DB->ErrorMsg(); if ($errorMsg != "") { $this->showError($errorMsg); } }