diff --git a/modules/backend/behaviors/ImportExportController.php b/modules/backend/behaviors/ImportExportController.php index 72d407c83..f70cf1fd4 100644 --- a/modules/backend/behaviors/ImportExportController.php +++ b/modules/backend/behaviors/ImportExportController.php @@ -1,6 +1,7 @@ config = $this->makeConfig($controller->importExportConfig, $this->requiredConfig); /* - * Import form widget + * Import form widgets */ if ($this->importUploadFormWidget = $this->makeImportUploadFormWidget()) { $this->importUploadFormWidget->bindToController(); } + + if ($this->importOptionsFormWidget = $this->makeImportOptionsFormWidget()) { + $this->importOptionsFormWidget->bindToController(); + } + } // @@ -72,6 +83,9 @@ class ImportExportController extends ControllerBehavior public function import() { + $this->controller->pageTitle = $this->controller->pageTitle + ?: Lang::get($this->getConfig('import[title]', 'Import records')); + $this->prepareVars(); } @@ -91,6 +105,10 @@ class ImportExportController extends ControllerBehavior $matches = post('column_match', []); $sessionKey = $this->importUploadFormWidget->getSessionKey(); + if ($optionData = post('ImportOptions')) { + $model->fill($optionData); + } + $model->importDataFromColumnMatch($matches, $sessionKey, [ 'firstRowTitles' => post('first_row_titles', false) ]); @@ -134,7 +152,7 @@ class ImportExportController extends ControllerBehavior $reader->setOffset(1); } - $data = $reader->setLimit(20)->fetchColumn((int) $columnId); + $data = $reader->setLimit(50)->fetchColumn((int) $columnId); /* * Clean up data @@ -163,6 +181,7 @@ class ImportExportController extends ControllerBehavior public function prepareVars() { $this->vars['importUploadFormWidget'] = $this->importUploadFormWidget; + $this->vars['importOptionsFormWidget'] = $this->importOptionsFormWidget; $this->vars['importDbColumns'] = $this->getImportDbColumns(); $this->vars['importFileColumns'] = $this->getImportFileColumns(); @@ -227,6 +246,25 @@ class ImportExportController extends ControllerBehavior return $widget; } + protected function makeImportOptionsFormWidget() + { + if ($fieldConfig = $this->getConfig('import[form]')) { + $widgetConfig = $this->makeConfig($fieldConfig); + $widgetConfig->model = $this->importGetModel(); + $widgetConfig->alias = 'importOptionsForm'; + $widgetConfig->arrayName = 'ImportOptions'; + + $widget = $this->makeWidget('Backend\Widgets\Form', $widgetConfig); + return $widget; + } + elseif ($this->importUploadFormWidget) { + $stepSection = $this->importUploadFormWidget->getField('step3_section'); + $stepSection->hidden = true; + } + + return null; + } + protected function getImportFilePath() { return $this diff --git a/modules/backend/behaviors/importexportcontroller/partials/_import.htm b/modules/backend/behaviors/importexportcontroller/partials/_import.htm index 7d2e0a861..05adaa725 100644 --- a/modules/backend/behaviors/importexportcontroller/partials/_import.htm +++ b/modules/backend/behaviors/importexportcontroller/partials/_import.htm @@ -2,4 +2,6 @@ render() ?> + render() ?> + \ No newline at end of file