Backend\Behaviors\ImportExportController

Overview

ImportExportController adds features for importing and exporting data.

This behavior is implemented in the controller like so:

public $implement = [
    \Backend\Behaviors\ImportExportController::class,
];

public $importExportConfig = 'config_import_export.yaml';

The $importExportConfig property makes reference to the configuration values as either a YAML file, located in the controller view directory, or directly as a PHP array.

Extends

Public Properties

public Model $importModel

public array $importColumns

importColumns configuration.

public Model $exportModel

public array $exportColumns

exportColumns configuration.

Show inherited public properties

Inherited Public Properties

Protected Properties

protected $requiredProperties

requiredProperties that must exist in the controller using this behavior.

protected array $requiredConfig

requiredConfig values that must exist when applying the primary config file.

protected array $actions

actions visible in context of the controller

protected Backend\Classes\WidgetBase $importUploadFormWidget

importUploadFormWidget reference to the widget used for uploading import file.

protected Backend\Classes\WidgetBase $importOptionsFormWidget

importOptionsFormWidget reference to the widget used for specifying import options.

protected string $exportFileName

exportFileName used for export output.

protected Backend\Classes\WidgetBase $exportFormatFormWidget

exportFormatFormWidget reference to the widget used for standard export options.

protected Backend\Classes\WidgetBase $exportOptionsFormWidget

exportOptionsFormWidget reference to the widget used for custom export options.

Show inherited protected properties

Inherited Protected Properties


Public Methods

public __construct()

public __construct(Backend\Classes\Controller $controller): void

__construct the behavior

public actionImport()

public actionImport(): void

actionImport handles the import action logic

public actionImportLoadColumnSampleForm()

public actionImportLoadColumnSampleForm(): void

public beforeDisplay()

public beforeDisplay(): void

beforeDisplay fires before the page is displayed and AJAX is executed.

public beforeDisplayExport()

public beforeDisplayExport(): void

beforeDisplayExport loads the export form widgets

public beforeDisplayImport()

public beforeDisplayImport(): void

beforeDisplayImport loads the import form widgets

public download()

public download($name, $outputName = null): void

download action

public export()

public export(): void

export action

public exportFromList()

public exportFromList(string $definition = null, array $options = []): void

exportFromList outputs the list results as a CSV export.

public exportGetModel()

public exportGetModel(): void

public exportRender()

public exportRender(): void

public import()

public import(): void

import action

public importExportExtendColumns()

public importExportExtendColumns($columns, $context = null): void

public importExportExtendModel()

public importExportExtendModel(Model $model): Model 

public importExportGetFileName()

public importExportGetFileName(): string 

public importExportMakePartial()

public importExportMakePartial(
    string $partial,
    array $params = []
): string 

importExportMakePartial controller accessor for making partials within this behavior.

public importGetModel()

public importGetModel(): void

public importIsColumnRequired()

public importIsColumnRequired($columnName): void

public importRender()

public importRender(): void

public onExport()

public onExport(): void

public onExportLoadForm()

public onExportLoadForm(): void

public onImport()

public onImport(): void

public onImportLoadColumnSampleForm()

public onImportLoadColumnSampleForm(): void

public onImportLoadForm()

public onImportLoadForm(): void

public prepareExportVars()

public prepareExportVars(): void 

prepareExportVars for the view data.

public prepareImportVars()

public prepareImportVars(): void

prepareImportVars for the view data.

Show inherited public methods

Inherited Public Methods

Protected Methods

protected actionExport()

protected actionExport(): void

actionExport handles the export action logic

protected checkPermissionsForType()

protected checkPermissionsForType($type): void

checkPermissionsForType checks to see if the import/export is controlled by permissions and if the logged in user has permissions.

protected checkRequiredImportColumns()

protected checkRequiredImportColumns(): void

protected checkUseListExportMode()

protected checkUseListExportMode(): void

protected createCsvReader()

protected createCsvReader($path): League\Csv\Reader 

createCsvReader creates a new CSV reader with options selected by the user

protected exportFromListAsCsv()

protected exportFromListAsCsv($widget, $options): string 

protected exportFromListAsJson()

protected exportFromListAsJson($widget, $options): string 

protected getExportColumns()

protected getExportColumns(): void

protected getFormatOptionsForModel()

protected getFormatOptionsForModel(): array 

getFormatOptionsForModel returns the file format options used by models.

protected getFormatOptionsForPost()

protected getFormatOptionsForPost(): array 

getFormatOptionsForPost returns the file format options from postback. This method can be used to define presets.

protected getImportDbColumns()

protected getImportDbColumns(): void

protected getImportFileColumns()

protected getImportFileColumns(): void

protected getImportFileColumnsFromCsv()

protected getImportFileColumnsFromCsv($path): void

getImportFileColumnsFromCsv path

protected getImportFileColumnsFromJson()

protected getImportFileColumnsFromJson($path): void

protected getImportFilePath()

protected getImportFilePath(): void

protected getImportSampleColumnsFromCsv()

protected getImportSampleColumnsFromCsv($path, $columnIndex): void

protected getImportSampleColumnsFromJson()

protected getImportSampleColumnsFromJson($path, $columnIndex): void

protected getImportSourceIndexOffset()

protected getImportSourceIndexOffset(bool $firstRowTitles): int 

getImportSourceIndexOffset to add to the reported row number in status messages

protected getModelForType()

protected getModelForType($type): void

protected getRedirectUrlForType()

protected getRedirectUrlForType($type = null): void

protected isCustomFileFormat()

protected isCustomFileFormat(): void

isCustomFileFormat returns true if the process is using a custom format via customJson or otherwise.

protected makeExportFileName()

protected makeExportFileName($mode = 'json'): void

protected makeExportFormatFormWidget()

protected makeExportFormatFormWidget(): void

protected makeExportOptionsFormWidget()

protected makeExportOptionsFormWidget(): void

protected makeImportOptionsFormWidget()

protected makeImportOptionsFormWidget(): void

protected makeImportUploadFormWidget()

protected makeImportUploadFormWidget(): void

protected makeListColumns()

protected makeListColumns($config, $model): void

protected makeOptionsFormWidgetForType()

protected makeOptionsFormWidgetForType($type): void

protected processExportColumnsFromPost()

protected processExportColumnsFromPost(): void

Show inherited protected methods

Inherited Protected Methods