ImportExport

AbstractYes

T3D file Import / Export library (TYPO3 Record Document)

Internal

This class is not considered part of the public TYPO3 API.

Table of Contents

Properties

$cacheGetRecordPath  : array<string|int, mixed>
Cache for record paths
$dat  : array<string|int, mixed>
Internal import/export memory
$defaultImportExportFolder  : Folder|null
$defaultUploadFolderResolver  : DefaultUploadFolderResolver
$diffUtility  : DiffUtility
$doesImport  : bool
Set by importData() when an import is started.
$errorLog  : array<string|int, mixed>
Error log.
$excludeDisabledRecords  : bool
Flag to control whether all disabled records and their children are excluded (true) or included (false). Defaults to the old behaviour of including everything.
$excludeMap  : array<string|int, mixed>
Exclude map. Keys are table:uid pairs and if set, records are not added to the export.
$extensionDependencies  : array<string|int, mixed>
Listing extension dependencies.
$fileNameValidator  : FileNameValidator
$fileProcObj  : ExtendedFileUtility|null
File processing object
$forceAllUids  : bool
If set, all UID values are forced! (update or import)
$globalIgnorePid  : bool
If set, PID correct is ignored globally
$iconFactory  : IconFactory
$importMapId  : array<string|int, mixed>
After records are written this array is filled with [table][original_uid] = [new_uid]
$importMode  : array<string|int, mixed>
Setting the import mode for specific import records.
$mode  : string
Whether "import" or "export" mode of object.
$pageDoktypeRegistry  : PageDoktypeRegistry
$pid  : int
Root page of import or export page tree
$pidRecord  : array<string|int, mixed>|null
Root page record of import or of export page tree
$relStaticTables  : array<string|int, mixed>
Add tables names here which should not be exported with the file.
$remainHeader  : array<string|int, mixed>
$resourceFactory  : ResourceFactory
$showDiff  : bool
If set, a diff-view column is added to the preview.
$showStaticRelations  : bool
If set, static relations (not exported) will be shown in preview as well
$softrefCfg  : array<string|int, mixed>
Soft reference token ID modes.
$softrefInputValues  : array<string|int, mixed>
Array of values to substitute in editable soft references.
$tcaSchemaFactory  : TcaSchemaFactory
$temporaryFolderName  : string|null
$update  : bool
Updates all records that has same UID instead of creating new!

Methods

getErrorLog()  : array<string|int, mixed>
getImportMapId()  : array<string|int, mixed>
getMode()  : string
getOrCreateDefaultImportExportFolder()  : Folder|null
Returns a \TYPO3\CMS\Core\Resource\Folder object for saving export files to the server and is also used for uploading import files.
getOrCreateTemporaryFolderName()  : string
getPid()  : int
hasErrors()  : bool
injectDefaultUploadFolderResolver()  : void
injectDiffUtility()  : void
injectFileNameValidator()  : void
injectIconFactory()  : void
injectPageDoktypeRegistry()  : void
injectResourceFactory()  : void
injectTcaSchemaFactory()  : void
removeDefaultImportExportFolder()  : void
removeTemporaryFolderName()  : void
renderPreview()  : array<string|int, mixed>
Displays a preview of the import or export.
setExcludeDisabledRecords()  : void
Set flag to control whether disabled records and their children are excluded (true) or included (false). Defaults to the old behaviour of including everything.
setExcludeMap()  : void
setExtensionDependencies()  : void
setForceAllUids()  : void
setGlobalIgnorePid()  : void
setImportMode()  : void
setPid()  : void
setRelStaticTables()  : void
setShowDiff()  : void
setShowStaticRelations()  : void
setSoftrefCfg()  : void
setSoftrefInputValues()  : void
setUpdate()  : void
addError()  : void
Sets error message in the internal error log
addGeneralErrorsByTable()  : void
Log general error message for a given table
addRecord()  : void
Add a record, its relations and soft references, to the preview
addRelations()  : void
Add database relations of a record to the preview
addSoftRefs()  : void
Add soft references of a record to the preview
compareRecords()  : string
Compares two records, the current database record and the one from the import memory.
createDefaultImportExportFolder()  : void
Creates a \TYPO3\CMS\Core\Resource\Folder object for saving export files to the server and is also used for uploading import files.
createTemporaryFolderName()  : string
excludePageAndRecords()  : void
Exclude a page, its sub pages (recursively) and records placed in them from this import/export
flatInversePageTree()  : void
Recursively flattening the $pageTree array to a one-dimensional array with uid-pid pairs.
getBackendUser()  : BackendUserAuthentication
getDefaultUploadTemporaryFolder()  : Folder|null
Returns a \TYPO3\CMS\Core\Resource\Folder object that could be used for uploading temporary files in user context. The folder _temp_ below the default upload folder of the user is used.
getFileProcObj()  : ExtendedFileUtility
Returns file processing object, initialized only once.
getLanguageService()  : LanguageService
getPidRecord()  : array<string|int, mixed>|null
Return record of root page of import or of export page tree - or null if access denied to that page.
getRecordFromDatabase()  : array<string|int, mixed>|null
Returns given fields of record if it exists.
getRecordPath()  : string
Returns the page title path of a PID value. Results are cached internally
isRecordDisabled()  : bool
Test whether a record is disabled (e.g. hidden)
isRecordExcluded()  : bool
Returns TRUE if the element should be excluded from import and export.
isSoftRefIncluded()  : bool
Returns TRUE if the soft reference should be included in export.
isTableStatic()  : bool
Returns TRUE if the input table name is to be regarded as a static relation (that is, not exported etc).
renderControls()  : string
Render input controls for import or export
renderImportModeSelector()  : string
Render select box with import options for the record.
renderIndent()  : string
renderRecordExcludeCheckbox()  : string
Render check box for exclusion of a record from export.
renderSelectBox()  : string
Renders a select box from option values.
renderSoftRefExportSelector()  : string
Render select box with export options for soft references.
renderSoftRefImportTextField()  : string
Render text field when importing a soft reference.
resolveStoragePath()  : string|null
Checks if the input path relative to the public web path can be found in the file mounts of the backend user.
traverseAllRecords()  : void
Go through ALL records (if the pages are displayed first, those will not be among these!)
traversePageRecords()  : void
Go through remaining pages (not in tree)
traversePageTree()  : void
Go through page tree for display

Properties

$cacheGetRecordPath

Cache for record paths

protected array<string|int, mixed> $cacheGetRecordPath = []

$dat

Internal import/export memory

protected array<string|int, mixed> $dat = []

$defaultImportExportFolder

protected Folder|null $defaultImportExportFolder = null

$doesImport

Set by importData() when an import is started.

protected bool $doesImport = false

$errorLog

Error log.

protected array<string|int, mixed> $errorLog = []

$excludeDisabledRecords

Flag to control whether all disabled records and their children are excluded (true) or included (false). Defaults to the old behaviour of including everything.

protected bool $excludeDisabledRecords = false

$excludeMap

Exclude map. Keys are table:uid pairs and if set, records are not added to the export.

protected array<string|int, mixed> $excludeMap = []

$extensionDependencies

Listing extension dependencies.

protected array<string|int, mixed> $extensionDependencies = []

$forceAllUids

If set, all UID values are forced! (update or import)

protected bool $forceAllUids = false

$globalIgnorePid

If set, PID correct is ignored globally

protected bool $globalIgnorePid = false

$importMapId

After records are written this array is filled with [table][original_uid] = [new_uid]

protected array<string|int, mixed> $importMapId = []

$importMode

Setting the import mode for specific import records.

protected array<string|int, mixed> $importMode = []

Available options are: force_uid, as_new, exclude, ignore_pid, respect_pid

$mode

Whether "import" or "export" mode of object.

protected string $mode = ''

$pid

Root page of import or export page tree

protected int $pid = -1

$pidRecord

Root page record of import or of export page tree

protected array<string|int, mixed>|null $pidRecord = null

$relStaticTables

Add tables names here which should not be exported with the file.

protected array<string|int, mixed> $relStaticTables = []

(Where relations should be mapped to same UIDs in target system).

$remainHeader

protected array<string|int, mixed> $remainHeader = []

$showDiff

If set, a diff-view column is added to the preview.

protected bool $showDiff = false

$showStaticRelations

If set, static relations (not exported) will be shown in preview as well

protected bool $showStaticRelations = false

$softrefCfg

Soft reference token ID modes.

protected array<string|int, mixed> $softrefCfg = []

$softrefInputValues

Array of values to substitute in editable soft references.

protected array<string|int, mixed> $softrefInputValues = []

$temporaryFolderName

protected string|null $temporaryFolderName = null

$update

Updates all records that has same UID instead of creating new!

protected bool $update = false

Methods

getErrorLog()

public getErrorLog() : array<string|int, mixed>
Return values
array<string|int, mixed>

getImportMapId()

public getImportMapId() : array<string|int, mixed>
Return values
array<string|int, mixed>

getMode()

public getMode() : string
Return values
string

getOrCreateDefaultImportExportFolder()

Returns a \TYPO3\CMS\Core\Resource\Folder object for saving export files to the server and is also used for uploading import files.

public getOrCreateDefaultImportExportFolder() : Folder|null
Return values
Folder|null

getOrCreateTemporaryFolderName()

public getOrCreateTemporaryFolderName() : string
Return values
string

getPid()

public getPid() : int
Return values
int

hasErrors()

public hasErrors() : bool
Return values
bool

removeDefaultImportExportFolder()

public removeDefaultImportExportFolder() : void

removeTemporaryFolderName()

public removeTemporaryFolderName() : void

renderPreview()

Displays a preview of the import or export.

public renderPreview() : array<string|int, mixed>
Return values
array<string|int, mixed> —

The preview data

setExcludeDisabledRecords()

Set flag to control whether disabled records and their children are excluded (true) or included (false). Defaults to the old behaviour of including everything.

public setExcludeDisabledRecords(bool $excludeDisabledRecords) : void
Parameters
$excludeDisabledRecords : bool

Set to true if if all disabled records should be excluded, false otherwise

setExcludeMap()

public setExcludeMap(array<string|int, mixed> $excludeMap) : void
Parameters
$excludeMap : array<string|int, mixed>

setExtensionDependencies()

public setExtensionDependencies(array<string|int, mixed> $extensionDependencies) : void
Parameters
$extensionDependencies : array<string|int, mixed>

setForceAllUids()

public setForceAllUids(bool $forceAllUids) : void
Parameters
$forceAllUids : bool

setGlobalIgnorePid()

public setGlobalIgnorePid(bool $globalIgnorePid) : void
Parameters
$globalIgnorePid : bool

setImportMode()

public setImportMode(array<string|int, mixed> $importMode) : void
Parameters
$importMode : array<string|int, mixed>

setPid()

public setPid(int $pid) : void
Parameters
$pid : int

setRelStaticTables()

public setRelStaticTables(array<string|int, mixed> $relStaticTables) : void
Parameters
$relStaticTables : array<string|int, mixed>

setShowDiff()

public setShowDiff(bool $showDiff) : void
Parameters
$showDiff : bool

setShowStaticRelations()

public setShowStaticRelations(bool $showStaticRelations) : void
Parameters
$showStaticRelations : bool

setSoftrefCfg()

public setSoftrefCfg(array<string|int, mixed> $softrefCfg) : void
Parameters
$softrefCfg : array<string|int, mixed>

setSoftrefInputValues()

public setSoftrefInputValues(array<string|int, mixed> $softrefInputValues) : void
Parameters
$softrefInputValues : array<string|int, mixed>

setUpdate()

public setUpdate(bool $update) : void
Parameters
$update : bool

addError()

Sets error message in the internal error log

protected addError(string $message) : void
Parameters
$message : string

Error message

addGeneralErrorsByTable()

Log general error message for a given table

protected addGeneralErrorsByTable(string $table) : void
Parameters
$table : string

database table name

addRecord()

Add a record, its relations and soft references, to the preview

protected addRecord(string $table, int $uid, array<string|int, mixed> &$lines, int $indent[, bool $checkImportInPidRecord = false ]) : void
Parameters
$table : string

Table name

$uid : int

Record uid

$lines : array<string|int, mixed>

Output lines array

$indent : int

Indentation level

$checkImportInPidRecord : bool = false

If you want import validation, you can set this so it checks if the import can take place on the specified page.

addRelations()

Add database relations of a record to the preview

protected addRelations(array<string|int, mixed> $relations, array<string|int, mixed> &$lines, int $indent[, array<string|int, mixed> $recursionCheck = [] ]) : void
Parameters
$relations : array<string|int, mixed>

Array of relations

$lines : array<string|int, mixed>

Output lines array

$indent : int

Indentation level

$recursionCheck : array<string|int, mixed> = []

Recursion check stack

addSoftRefs()

Add soft references of a record to the preview

protected addSoftRefs(array<string|int, mixed> $softrefs, array<string|int, mixed> &$lines, int $indent) : void
Parameters
$softrefs : array<string|int, mixed>

Soft references

$lines : array<string|int, mixed>

Output lines array

$indent : int

Indentation level

compareRecords()

Compares two records, the current database record and the one from the import memory.

protected compareRecords(array<string|int, mixed> $databaseRecord, array<string|int, mixed> $importRecord, string $table[, bool $inverse = false ]) : string

Will return HTML code to show any differences between them!

Parameters
$databaseRecord : array<string|int, mixed>

Database record, all fields (old values)

$importRecord : array<string|int, mixed>

Import memory record for the same table/uid, all fields (new values)

$table : string

The table name of the record

$inverse : bool = false

Inverse the diff view (switch red/green, needed for pre-update difference view)

Return values
string —

HTML

createDefaultImportExportFolder()

Creates a \TYPO3\CMS\Core\Resource\Folder object for saving export files to the server and is also used for uploading import files.

protected createDefaultImportExportFolder() : void

createTemporaryFolderName()

protected createTemporaryFolderName() : string
Return values
string

excludePageAndRecords()

Exclude a page, its sub pages (recursively) and records placed in them from this import/export

protected excludePageAndRecords(int $pageUid, array<string|int, mixed> $page) : void
Parameters
$pageUid : int

Uid of the page to exclude

$page : array<string|int, mixed>

Page array with uid/subrow (from ->dat[header][pagetree])

flatInversePageTree()

Recursively flattening the $pageTree array to a one-dimensional array with uid-pid pairs.

protected flatInversePageTree(array<string|int, mixed> $pageTree, array<string|int, mixed> &$list[, int $pid = -1 ]) : void
Parameters
$pageTree : array<string|int, mixed>

Page tree array

$list : array<string|int, mixed>

List with uid-pid pairs

$pid : int = -1

PID value (internal, don't set from outside)

getDefaultUploadTemporaryFolder()

Returns a \TYPO3\CMS\Core\Resource\Folder object that could be used for uploading temporary files in user context. The folder _temp_ below the default upload folder of the user is used.

protected getDefaultUploadTemporaryFolder() : Folder|null
Return values
Folder|null

getPidRecord()

Return record of root page of import or of export page tree - or null if access denied to that page.

protected getPidRecord() : array<string|int, mixed>|null

If the page is the root of the page tree, add some basic but missing information.

Return values
array<string|int, mixed>|null

getRecordFromDatabase()

Returns given fields of record if it exists.

protected getRecordFromDatabase(string $table, int $uid[, string $fields = 'uid,pid' ]) : array<string|int, mixed>|null
Parameters
$table : string

Table name

$uid : int

UID of record

$fields : string = 'uid,pid'

Field list to select. Default is "uid,pid"

Return values
array<string|int, mixed>|null —

Result of \TYPO3\CMS\Backend\Utility\BackendUtility::getRecord() which means the record if found, otherwise NULL

getRecordPath()

Returns the page title path of a PID value. Results are cached internally

protected getRecordPath(int $pid) : string
Parameters
$pid : int

Record PID to check

Return values
string —

The path for the input PID

isRecordDisabled()

Test whether a record is disabled (e.g. hidden)

protected isRecordDisabled(string $table, int $uid) : bool
Parameters
$table : string

Name of the records' database table

$uid : int

Database uid of the record

Return values
bool —

true if the record is disabled, false otherwise

isRecordExcluded()

Returns TRUE if the element should be excluded from import and export.

protected isRecordExcluded(string $table, int $uid) : bool
Parameters
$table : string

Table name

$uid : int

Record UID

Return values
bool —

TRUE, if the record should be excluded

isSoftRefIncluded()

Returns TRUE if the soft reference should be included in export.

protected isSoftRefIncluded(string $tokenID) : bool
Parameters
$tokenID : string

Token ID for soft reference

Return values
bool —

TRUE, if soft reference should be included

isTableStatic()

Returns TRUE if the input table name is to be regarded as a static relation (that is, not exported etc).

protected isTableStatic(string $table) : bool
Parameters
$table : string

Table name

Return values
bool —

TRUE, if table is marked static

renderControls()

Render input controls for import or export

protected renderControls(array<string|int, mixed> $line) : string
Parameters
$line : array<string|int, mixed>

Output line array

Return values
string —

HTML

renderImportModeSelector()

Render select box with import options for the record.

protected renderImportModeSelector(string $table, int $uid, bool $doesRecordExist) : string
Parameters
$table : string

Table name

$uid : int

Record UID

$doesRecordExist : bool

Is there already a record with this UID in the database?

Return values
string —

HTML

renderIndent()

protected renderIndent(int $indent) : string
Parameters
$indent : int
Return values
string

renderRecordExcludeCheckbox()

Render check box for exclusion of a record from export.

protected renderRecordExcludeCheckbox(string $recordRef) : string
Parameters
$recordRef : string

The record ID of the form [table]:[id].

Return values
string —

HTML

renderSelectBox()

Renders a select box from option values.

protected renderSelectBox(string $name, string $value, array<string|int, mixed> $options) : string
Parameters
$name : string

Form element name

$value : string

Current value

$options : array<string|int, mixed>

Options to display (key/value pairs)

Return values
string —

HTML

renderSoftRefExportSelector()

Render select box with export options for soft references.

protected renderSoftRefExportSelector(array<string|int, mixed> $softref) : string

An export box is shown only if a substitution scheme is found for the soft reference.

Parameters
$softref : array<string|int, mixed>

Soft reference

Return values
string —

HTML

renderSoftRefImportTextField()

Render text field when importing a soft reference.

protected renderSoftRefImportTextField(array<string|int, mixed> $softref) : string
Parameters
$softref : array<string|int, mixed>

Soft reference

Return values
string —

HTML

resolveStoragePath()

Checks if the input path relative to the public web path can be found in the file mounts of the backend user.

protected resolveStoragePath(string $dirPrefix[, bool $checkAlternatives = true ]) : string|null

If not, it checks all file mounts of the user for the relative path and returns it if found.

Parameters
$dirPrefix : string

Path relative to public web path.

$checkAlternatives : bool = true

If set to false, do not look for an alternative path.

Tags
throws
Exception
Return values
string|null —

If a path is available, it will be returned, otherwise NULL.

traverseAllRecords()

Go through ALL records (if the pages are displayed first, those will not be among these!)

protected traverseAllRecords(array<string|int, mixed> $pageTree, array<string|int, mixed> &$lines) : void
Parameters
$pageTree : array<string|int, mixed>

Page tree array with uid/subrow (from ->dat[header][pagetree])

$lines : array<string|int, mixed>

Output lines array

traversePageRecords()

Go through remaining pages (not in tree)

protected traversePageRecords(array<int, array<string|int, mixed>> $pageTree, array<string|int, mixed> &$lines) : void
Parameters
$pageTree : array<int, array<string|int, mixed>>

Page tree array with uid/subrow (from ->dat[header][pagetree])

$lines : array<string|int, mixed>

Output lines array

traversePageTree()

Go through page tree for display

protected traversePageTree(array<int, array<string|int, mixed>> $pageTree, array<string|int, mixed> &$lines[, int $indent = 0 ]) : void
Parameters
$pageTree : array<int, array<string|int, mixed>>

Page tree array with uid/subrow (from ->dat[header][pagetree])

$lines : array<string|int, mixed>

Output lines array

$indent : int = 0

Indentation level

On this page

Search results