X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=CRM%2FImport%2FDataSource%2FCSV.php;h=79e68a0d7ff21af016d3f4153316d18906047766;hb=f20abb09cde0c320cb082cc7ac9f974017c499e6;hp=f749631844f66019b51a8e04aa765a1d8c9a8ed1;hpb=88c2899672b9acba8bae5ac15f22f36f9284a195;p=civicrm-core.git diff --git a/CRM/Import/DataSource/CSV.php b/CRM/Import/DataSource/CSV.php index f749631844..79e68a0d7f 100644 --- a/CRM/Import/DataSource/CSV.php +++ b/CRM/Import/DataSource/CSV.php @@ -68,30 +68,22 @@ class CRM_Import_DataSource_CSV extends CRM_Import_DataSource { } /** - * Process the form submission. - * - * @param array $params - * @param string $db - * @param \CRM_Core_Form $form + * Initialize the datasource, based on the submitted values stored in the user job. * * @throws \API_Exception * @throws \CRM_Core_Exception */ - public function postProcess(&$params, &$db, &$form) { - $file = $params['uploadFile']['name']; - $firstRowIsColumnHeader = $params['skipColumnHeader'] ?? FALSE; + public function initialize(): void { $result = self::_CsvToTable( - $file, - $firstRowIsColumnHeader, - CRM_Utils_Array::value('import_table_name', $params), - CRM_Utils_Array::value('fieldSeparator', $params, ',') + $this->getSubmittedValue('uploadFile')['name'], + $this->getSubmittedValue('skipColumnHeader'), + $this->getSubmittedValue('fieldSeparator') ?? ',' ); + $this->addTrackingFieldsToTable($result['import_table_name']); - $form->set('originalColHeader', CRM_Utils_Array::value('column_headers', $result)); - $form->set('importTableName', $result['import_table_name']); $this->updateUserJobMetadata('DataSource', [ 'table_name' => $result['import_table_name'], - 'column_headers' => $firstRowIsColumnHeader ? $result['column_headers'] : [], + 'column_headers' => $this->getSubmittedValue('skipColumnHeader') ? $result['column_headers'] : [], 'number_of_columns' => $result['number_of_columns'], ]); } @@ -103,8 +95,6 @@ class CRM_Import_DataSource_CSV extends CRM_Import_DataSource { * File name to load. * @param bool $headers * Whether the first row contains headers. - * @param string $tableName - * Name of table from which data imported. * @param string $fieldSeparator * Character that separates the various columns in the file. * @@ -115,7 +105,6 @@ class CRM_Import_DataSource_CSV extends CRM_Import_DataSource { private static function _CsvToTable( $file, $headers = FALSE, - $tableName = NULL, $fieldSeparator = ',' ) { $result = []; @@ -184,9 +173,6 @@ class CRM_Import_DataSource_CSV extends CRM_Import_DataSource { } } - if ($tableName) { - CRM_Core_DAO::executeQuery("DROP TABLE IF EXISTS $tableName"); - } $table = CRM_Utils_SQL_TempTable::build()->setDurable(); $tableName = $table->getName(); CRM_Core_DAO::executeQuery("DROP TABLE IF EXISTS $tableName");