Import extends ImportExport
T3D file Import library (TYPO3 Record Document)
This class is not considered part of the public TYPO3 API.
Table of Contents
Constants
- IMPORT_MODE_AS_NEW = 'as_new'
- IMPORT_MODE_EXCLUDE = 'exclude'
- IMPORT_MODE_FORCE_UID = 'force_uid'
- IMPORT_MODE_IGNORE_PID = 'ignore_pid'
- IMPORT_MODE_RESPECT_PID = 'respect_pid'
- SOFTREF_IMPORT_MODE_EDITABLE = 'editable'
- SOFTREF_IMPORT_MODE_EXCLUDE = 'exclude'
Properties
- $cacheGetRecordPath : array<string|int, mixed>
- Cache for record paths
- $dat : array<string|int, mixed>
- Internal import/export memory
- $decompressionAvailable : bool
- $defaultImportExportFolder : Folder|null
- $defaultStorage : ResourceStorage|null
- Currently registered default storage object
- $diffUtility : DiffUtility
- $doesImport : bool
- Set by importData() when an import is started.
- $enableLogging : bool
- Disable logging when importing
- $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.
- $fileadminFolderName : string
- Name of the "fileadmin" folder where files for export/import should be located
- $fileIdMap : array<string|int, mixed>
- Mapping between the fileID from import memory and the final filenames they are written to.
- $fileProcObj : ExtendedFileUtility
- 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.
- $importNewId : array<string|int, mixed>
- Keys are [tablename]:[new NEWxxx ids (or when updating it is uids)] while values are arrays with table/uid of the original record it is based on.
- $importNewIdPids : array<string|int, mixed>
- Page id map for page tree (import)
- $isFilesSavedOutsideImportFile : bool
- $lang : LanguageService
- $mode : string
- Whether "import" or "export" mode of object.
- $permsClause : string
- A WHERE clause for selection records from the pages table based on read-permissions of the current backend user.
- $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>
- $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.
- $storageRepository : StorageRepository
- $storages : array<string|int, ResourceStorage>
- Array of currently registered storage objects
- $storagesAvailableForImport : array<string|int, ResourceStorage>
- Array of currently registered storage objects available for importing files to
- $suggestedInsertUids : array<string|int, mixed>
- Used to register the forced UID values for imported records that we want to create with the same UIDs as in the import file. Admin-only feature.
- $temporaryFolderName : string|null
- $update : bool
- Updates all records that has same UID instead of creating new!
Methods
- __construct() : mixed
- The constructor
- addFiles() : void
- Add file relations of a record to the preview.
- checkImportPrerequisites() : void
- Checks all requirements that must be met before import.
- getDat() : array<string|int, mixed>
- getErrorLog() : array<string|int, mixed>
- getExcludeMap() : array<string|int, mixed>
- getExtensionDependencies() : array<string|int, mixed>
- getFileadminFolderName() : string
- getImportMapId() : array<string|int, mixed>
- getImportMode() : array<string|int, mixed>
- getMetaData() : 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
- getRelStaticTables() : array<string|int, mixed>
- getSoftrefCfg() : array<string|int, mixed>
- getSoftrefInputValues() : array<string|int, mixed>
- getSupportedFileExtensions() : array<string|int, mixed>
- hasErrors() : bool
- importData() : void
- Imports the memory data into the TYPO3 database.
- isDecompressionAvailable() : bool
- isEnableLogging() : bool
- isExcludeDisabledRecords() : bool
- isForceAllUids() : bool
- isGlobalIgnorePid() : bool
- isShowDiff() : bool
- isShowStaticRelations() : bool
- isUpdate() : bool
- loadFile() : void
- Loads the TYPO3 import file $fileName into memory.
- processSoftReferencesFlexFormCallBack() : array<string|int, mixed>
- Callback function to traverse the FlexForm structure and remap its soft reference relations.
- remapRelationsOfFlexFormCallBack() : array<string|int, mixed>
- Callback function to remap relations in FlexForm data
- removeDefaultImportExportFolder() : void
- removeTemporaryFolderName() : void
- renderPreview() : array<string|int, mixed>
- Displays a preview of the import or export.
- setEnableLogging() : void
- setErrorLog() : void
- 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
- setImportMapId() : void
- setImportMode() : void
- setMode() : void
- setPid() : void
- setRelStaticTables() : void
- setShowDiff() : void
- setShowStaticRelations() : void
- setSoftrefCfg() : void
- setSoftrefInputValues() : void
- setUpdate() : void
- writeFilesToTemporaryFolder() : array<string|int, mixed>
- Writes the files from the import array to the temporary folder and returns the actual filenames.
- 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
- addSingle() : void
- Adds a single record to the $importData array. Also copies files to the temporary folder.
- addSoftRefs() : void
- Add soft references of a record to the preview
- addToMapId() : void
- Store the mapping between the import file record UIDs and the final record UIDs in the database after import.
- callHook() : void
- Call Hook
- checkDokType() : bool
- Verifies that a table is allowed on a certain doktype of a page.
- checkOrCreateDir() : bool
- Returns TRUE if directory exists and if it doesn't it will create directory and return TRUE if that succeeded.
- compareRecords() : string
- Compares two records, the current database record and the one from the import memory.
- createDataHandler() : DataHandler
- Returns a new DataHandler object
- 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
- doRespectPid() : bool
- Checks if the position of an updated record is configured to be corrected.
- excludePageAndRecords() : void
- Exclude a page, its sub pages (recursively) and records placed in them from this import/export
- fetchStorages() : void
- Fetch all available file storages and index by storage UID
- fixUidLocalInSysFileReferenceRecords() : void
- Normally the importer works like the following: Step 1: import the records with cleared field values of relation fields (see addSingle()) Step 2: update the records with the right relation ids (see setRelations())
- flatInversePageTree() : void
- Recursively flattening the $pageTree array to a one-dimensional array with uid-pid pairs.
- getBackendUser() : BackendUserAuthentication
- getDiffUtility() : DiffUtility
- Returns string comparing object, initialized only once.
- getFileProcObj() : ExtendedFileUtility
- Returns file processing object, initialized only once.
- getLanguageService() : LanguageService
- getNextFilePart() : array<string|int, mixed>|string|null
- Extracts the next content part of the T3D file
- 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
- getReferenceDefaultValue() : int|float|string
- Get the default value for a reference field.
- getStorageRepository() : StorageRepository
- Returns storage repository object, initialized only once.
- getSysFileMetaDataFromDatabase() : array<string|int, mixed>|null
- Selects sys_file_metadata database record.
- initializeImport() : void
- Initialize all settings for the import
- isEquivalentStorage() : bool
- Determines whether the passed storage object and the storage record (sys_file_storage) can be considered equivalent during the import.
- 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).
- loadInit() : void
- Setting up the object based on the recently loaded ->dat array
- processSoftReferences() : void
- Processing of soft references
- processSoftReferencesSaveFile() : string
- Process a soft reference file
- processSoftReferencesSaveFileCreateRelFile() : string|null
- Create file in directory and return the new (unique) filename
- processSoftReferencesSubstTokens() : string
- Substitution of soft reference tokens
- remapRelationsOfField() : array<string|int, mixed>
- Maps the original record UIDs of the relations to the actual UIDs of the imported records and returns relations as strings of type [table]_[uid] - or file:[uid] or [public url] for field of type "group" and internal_type "file_reference". These strings have the regular DataHandler input group/select type format which means they will automatically be processed into a list of UIDs or MM relations.
- removeSysFileReferenceRecordsWithRelationToMissingFile() : void
- Removes all sys_file_reference records from the import data array that are pointing to sys_file records which are missing in the import data to prevent exceptions on checking the related file started by the DataHandler.
- 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
- Checks if the input path relative to the public web path can be found in the file mounts of the backend user.
- setFlexFormRelations() : void
- After all database relations have been set in the end of the import (see setRelations()) then it is time to correct all relations inside of FlexForm fields. The reason for doing this after is that the setting of relations may affect (quite often!) which data structure is used for the FlexForm field!
- setRelations() : void
- At the end of the import process all file and database relations should be set properly.
- 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
- writeFileVerify() : bool
- Writes a file from the import memory having $fileID to file name $fileName which must be an absolute path inside public web path
- writePages() : void
- Writing page tree / pages to database: If the operation is an update operation, the root of the page tree inside will be moved to $this->pid unless it is the same as the root page from the import.
- writePagesOrder() : void
- Organize all updated pages in page tree so they are related like in the import file.
- writeRecords() : void
- Write all database records except pages (written in writePages())
- writeRecordsOrder() : void
- Organize all updated records so they are related like in the import file.
- writeSysFileRecords() : void
- Imports the sys_file records and the binary files data from internal data array.
- writeSysFileStorageRecords() : void
- Imports the sys_file_storage records from memory data.
Constants
IMPORT_MODE_AS_NEW
public
mixed
IMPORT_MODE_AS_NEW
= 'as_new'
IMPORT_MODE_EXCLUDE
public
mixed
IMPORT_MODE_EXCLUDE
= 'exclude'
IMPORT_MODE_FORCE_UID
public
mixed
IMPORT_MODE_FORCE_UID
= 'force_uid'
IMPORT_MODE_IGNORE_PID
public
mixed
IMPORT_MODE_IGNORE_PID
= 'ignore_pid'
IMPORT_MODE_RESPECT_PID
public
mixed
IMPORT_MODE_RESPECT_PID
= 'respect_pid'
SOFTREF_IMPORT_MODE_EDITABLE
public
mixed
SOFTREF_IMPORT_MODE_EDITABLE
= 'editable'
SOFTREF_IMPORT_MODE_EXCLUDE
public
mixed
SOFTREF_IMPORT_MODE_EXCLUDE
= 'exclude'
Properties
$cacheGetRecordPath
Cache for record paths
protected
array<string|int, mixed>
$cacheGetRecordPath
= []
$dat
Internal import/export memory
protected
array<string|int, mixed>
$dat
= []
$decompressionAvailable
protected
bool
$decompressionAvailable
= false
$defaultImportExportFolder
protected
Folder|null
$defaultImportExportFolder
= null
$defaultStorage
Currently registered default storage object
protected
ResourceStorage|null
$defaultStorage
= null
$diffUtility
protected
DiffUtility
$diffUtility
$doesImport
Set by importData() when an import is started.
protected
bool
$doesImport
= false
$enableLogging
Disable logging when importing
protected
bool
$enableLogging
= 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
= []
$fileadminFolderName
Name of the "fileadmin" folder where files for export/import should be located
protected
string
$fileadminFolderName
= ''
$fileIdMap
Mapping between the fileID from import memory and the final filenames they are written to.
protected
array<string|int, mixed>
$fileIdMap
= []
$fileProcObj
File processing object
protected
ExtendedFileUtility
$fileProcObj
$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
$iconFactory
protected
IconFactory
$iconFactory
$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
$importNewId
Keys are [tablename]:[new NEWxxx ids (or when updating it is uids)] while values are arrays with table/uid of the original record it is based on.
protected
array<string|int, mixed>
$importNewId
= []
With the array keys the new ids can be looked up inside DataHandler
$importNewIdPids
Page id map for page tree (import)
protected
array<string|int, mixed>
$importNewIdPids
= []
$isFilesSavedOutsideImportFile
protected
bool
$isFilesSavedOutsideImportFile
= false
$lang
protected
LanguageService
$lang
$mode
Whether "import" or "export" mode of object.
protected
string
$mode
= 'import'
$permsClause
A WHERE clause for selection records from the pages table based on read-permissions of the current backend user.
protected
string
$permsClause
$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
= []
$storageRepository
protected
StorageRepository
$storageRepository
$storages
Array of currently registered storage objects
protected
array<string|int, ResourceStorage>
$storages
= []
$storagesAvailableForImport
Array of currently registered storage objects available for importing files to
protected
array<string|int, ResourceStorage>
$storagesAvailableForImport
= []
$suggestedInsertUids
Used to register the forced UID values for imported records that we want to create with the same UIDs as in the import file. Admin-only feature.
protected
array<string|int, mixed>
$suggestedInsertUids
= []
$temporaryFolderName
protected
string|null
$temporaryFolderName
= null
$update
Updates all records that has same UID instead of creating new!
protected
bool
$update
= false
Methods
__construct()
The constructor
public
__construct() : mixed
addFiles()
Add file relations of a record to the preview.
public
addFiles(array<string|int, mixed> $relations, array<string|int, mixed> &$lines, int $indent[, string $tokenID = '' ]) : void
Public access for testing purpose only.
Parameters
- $relations : array<string|int, mixed>
-
Array of file IDs
- $lines : array<string|int, mixed>
-
Output lines array
- $indent : int
-
Indentation level
- $tokenID : string = ''
-
Token ID if this is a soft reference (in which case it only makes sense with a single element in the $relations array!)
Tags
checkImportPrerequisites()
Checks all requirements that must be met before import.
public
checkImportPrerequisites() : void
Tags
getDat()
public
getDat() : array<string|int, mixed>
Return values
array<string|int, mixed>getErrorLog()
public
getErrorLog() : array<string|int, mixed>
Return values
array<string|int, mixed>getExcludeMap()
public
getExcludeMap() : array<string|int, mixed>
Return values
array<string|int, mixed>getExtensionDependencies()
public
getExtensionDependencies() : array<string|int, mixed>
Return values
array<string|int, mixed>getFileadminFolderName()
public
getFileadminFolderName() : string
Return values
stringgetImportMapId()
public
getImportMapId() : array<string|int, mixed>
Return values
array<string|int, mixed>getImportMode()
public
getImportMode() : array<string|int, mixed>
Return values
array<string|int, mixed>getMetaData()
public
getMetaData() : array<string|int, mixed>
Return values
array<string|int, mixed>getMode()
public
getMode() : string
Return values
stringgetOrCreateDefaultImportExportFolder()
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|nullgetOrCreateTemporaryFolderName()
public
getOrCreateTemporaryFolderName() : string
Return values
stringgetPid()
public
getPid() : int
Return values
intgetRelStaticTables()
public
getRelStaticTables() : array<string|int, mixed>
Return values
array<string|int, mixed>getSoftrefCfg()
public
getSoftrefCfg() : array<string|int, mixed>
Return values
array<string|int, mixed>getSoftrefInputValues()
public
getSoftrefInputValues() : array<string|int, mixed>
Return values
array<string|int, mixed>getSupportedFileExtensions()
public
getSupportedFileExtensions() : array<string|int, mixed>
Return values
array<string|int, mixed>hasErrors()
public
hasErrors() : bool
Return values
boolimportData()
Imports the memory data into the TYPO3 database.
public
importData() : void
Tags
isDecompressionAvailable()
public
isDecompressionAvailable() : bool
Return values
boolisEnableLogging()
public
isEnableLogging() : bool
Return values
boolisExcludeDisabledRecords()
public
isExcludeDisabledRecords() : bool
Return values
boolisForceAllUids()
public
isForceAllUids() : bool
Return values
boolisGlobalIgnorePid()
public
isGlobalIgnorePid() : bool
Return values
boolisShowDiff()
public
isShowDiff() : bool
Return values
boolisShowStaticRelations()
public
isShowStaticRelations() : bool
Return values
boolisUpdate()
public
isUpdate() : bool
Return values
boolloadFile()
Loads the TYPO3 import file $fileName into memory.
public
loadFile(string $fileName[, bool $all = false ]) : void
Parameters
- $fileName : string
-
File path, has to be within the TYPO3's base folder
- $all : bool = false
-
If set, all information is loaded (header, records and files). Otherwise the default is to read only the header information
Tags
processSoftReferencesFlexFormCallBack()
Callback function to traverse the FlexForm structure and remap its soft reference relations.
public
processSoftReferencesFlexFormCallBack(array<string|int, mixed> $pParams, array<string|int, mixed> $dsConf, string $dataValue, string $dataValue_ext1, string $path) : array<string|int, mixed>
Parameters
- $pParams : array<string|int, mixed>
-
Set of parameters in numeric array: table, uid, field, soft references
- $dsConf : array<string|int, mixed>
-
TCA config for field (from Data Structure of course)
- $dataValue : string
-
Field value (from FlexForm XML)
- $dataValue_ext1 : string
-
Not used
- $path : string
-
Path of where the data structure where the element is found
Tags
Return values
array<string|int, mixed> —Array where the "value" key carries the value.
remapRelationsOfFlexFormCallBack()
Callback function to remap relations in FlexForm data
public
remapRelationsOfFlexFormCallBack(array<string|int, mixed> $pParams, array<string|int, mixed> $dsConf, string $dataValue, string $dataValue_ext1, string $path) : array<string|int, mixed>
Parameters
- $pParams : array<string|int, mixed>
-
Set of parameters passed through by calling method setFlexFormRelations()
- $dsConf : array<string|int, mixed>
-
TCA config for field (from Data Structure of course)
- $dataValue : string
-
Field value (from FlexForm XML)
- $dataValue_ext1 : string
-
Not used
- $path : string
-
Path of where the data structure of the element is found
Tags
Return values
array<string|int, mixed> —Array where the "value" key carries the mapped relation string.
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
setEnableLogging()
public
setEnableLogging(bool $enableLogging) : void
Parameters
- $enableLogging : bool
setErrorLog()
public
setErrorLog(array<string|int, mixed> $errorLog) : void
Parameters
- $errorLog : array<string|int, mixed>
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
setImportMapId()
public
setImportMapId(array<string|int, mixed> $importMapId) : void
Parameters
- $importMapId : array<string|int, mixed>
setImportMode()
public
setImportMode(array<string|int, mixed> $importMode) : void
Parameters
- $importMode : array<string|int, mixed>
setMode()
public
setMode(string $mode) : void
Parameters
- $mode : string
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
writeFilesToTemporaryFolder()
Writes the files from the import array to the temporary folder and returns the actual filenames.
public
writeFilesToTemporaryFolder(array<string|int, mixed> $files) : array<string|int, mixed>
Parameters
- $files : array<string|int, mixed>
-
Files of file information with three keys: "filename" = filename without path, "ID_absFile" = absolute filepath to the file (including the filename), "ID" = md5 hash of "ID_absFile
Return values
array<string|int, mixed> —Absolute file paths of the temporary files.
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
Tags
addSingle()
Adds a single record to the $importData array. Also copies files to the temporary folder.
protected
addSingle(array<string|int, mixed> &$importData, string $table, int $uid, int|string $pid) : void
However all file and database references and flexform fields are set to blank for now! That is processed with setRelations() later.
Parameters
- $importData : array<string|int, mixed>
-
Data to be modified or inserted in the database during import
- $table : string
-
Table name
- $uid : int
-
Record UID
- $pid : int|string
-
Page id or NEW-id, e.g. "NEW5fb3c2641281c885267727"
Tags
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
Tags
addToMapId()
Store the mapping between the import file record UIDs and the final record UIDs in the database after import.
protected
addToMapId(array<string|int, mixed> $importData, array<string|int, mixed> $substNEWwithIDs) : void
Parameters
- $importData : array<string|int, mixed>
-
Data to be modified or inserted in the database during import
- $substNEWwithIDs : array<string|int, mixed>
-
A map between the "NEW..." string IDs and the eventual record UID in database
Tags
callHook()
Call Hook
protected
callHook(string $name, array<string|int, mixed> $params) : void
Parameters
- $name : string
-
Name of the hook
- $params : array<string|int, mixed>
-
Array with params
checkDokType()
Verifies that a table is allowed on a certain doktype of a page.
protected
checkDokType(string $table, int $dokType) : bool
Parameters
- $table : string
-
Table name to check
- $dokType : int
-
Page doktype
Return values
bool —TRUE if OK
checkOrCreateDir()
Returns TRUE if directory exists and if it doesn't it will create directory and return TRUE if that succeeded.
protected
checkOrCreateDir(string $dirPrefix) : bool
Parameters
- $dirPrefix : string
-
Directory to create. Having a trailing slash. Must be in fileadmin/. Relative to public web path
Return values
bool —TRUE, if directory exists (was created)
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
createDataHandler()
Returns a new DataHandler object
protected
createDataHandler() : DataHandler
Return values
DataHandler —DataHandler object
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
stringdoRespectPid()
Checks if the position of an updated record is configured to be corrected.
protected
doRespectPid(string $table, int $uid) : bool
This can be disabled globally and changed individually for elements.
Parameters
- $table : string
-
Table name
- $uid : int
-
Record UID
Return values
bool —TRUE if the position of the record should be updated to match the one in the import structure
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])
fetchStorages()
Fetch all available file storages and index by storage UID
protected
fetchStorages() : void
Note: It also creates a default storage record if the database table sys_file_storage is empty, e.g. during tests.
fixUidLocalInSysFileReferenceRecords()
Normally the importer works like the following: Step 1: import the records with cleared field values of relation fields (see addSingle()) Step 2: update the records with the right relation ids (see setRelations())
protected
fixUidLocalInSysFileReferenceRecords(int $oldFileUid, int $newFileUid) : void
In step 2 the saving fields of type "relation to sys_file_reference" checks the related sys_file_reference record (created in step 1) with the FileExtensionFilter for matching file extensions of the related file. To make this work correct, the uid_local of sys_file_reference records has to be not empty AND has to relate to the correct (imported) sys_file record uid!
This is fixed here.
Parameters
- $oldFileUid : int
- $newFileUid : int
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)
getBackendUser()
protected
getBackendUser() : BackendUserAuthentication
Return values
BackendUserAuthenticationgetDiffUtility()
Returns string comparing object, initialized only once.
protected
getDiffUtility() : DiffUtility
Return values
DiffUtility —String comparing object
getFileProcObj()
Returns file processing object, initialized only once.
protected
getFileProcObj() : ExtendedFileUtility
Return values
ExtendedFileUtility —File processor object
getLanguageService()
protected
getLanguageService() : LanguageService
Return values
LanguageServicegetNextFilePart()
Extracts the next content part of the T3D file
protected
getNextFilePart(resource $fd[, bool $unserialize = false ][, string $name = '' ]) : array<string|int, mixed>|string|null
Parameters
- $fd : resource
-
Import file pointer
- $unserialize : bool = false
-
If set, the returned content is deserialized into an array, otherwise you get the raw string
- $name : string = ''
-
For error messages this indicates the section of the problem.
Tags
Return values
array<string|int, mixed>|string|null —Data array if unserializing or data string if not unserializing or NULL in case of an error
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>|nullgetRecordFromDatabase()
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
getReferenceDefaultValue()
Get the default value for a reference field.
protected
getReferenceDefaultValue(array<string|int, mixed> $configuration) : int|float|string
Parameters
- $configuration : array<string|int, mixed>
-
The TCA configuration of the accordant field
Return values
int|float|stringgetStorageRepository()
Returns storage repository object, initialized only once.
protected
getStorageRepository() : StorageRepository
Return values
StorageRepository —Storage repository object
getSysFileMetaDataFromDatabase()
Selects sys_file_metadata database record.
protected
getSysFileMetaDataFromDatabase(int $pid, int $file, int $sysLanguageUid) : array<string|int, mixed>|null
Parameters
- $pid : int
- $file : int
- $sysLanguageUid : int
Return values
array<string|int, mixed>|nullinitializeImport()
Initialize all settings for the import
protected
initializeImport() : void
isEquivalentStorage()
Determines whether the passed storage object and the storage record (sys_file_storage) can be considered equivalent during the import.
protected
isEquivalentStorage(ResourceStorage &$storageObject, array<string|int, mixed> &$storageRecord) : bool
Parameters
- $storageObject : ResourceStorage
-
The storage object which should get compared
- $storageRecord : array<string|int, mixed>
-
The storage record which should get compared
Return values
bool —Returns TRUE if both storage representations can be considered equal
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
loadInit()
Setting up the object based on the recently loaded ->dat array
protected
loadInit() : void
processSoftReferences()
Processing of soft references
protected
processSoftReferences() : void
processSoftReferencesSaveFile()
Process a soft reference file
protected
processSoftReferencesSaveFile(string $relFileName, array<string|int, mixed> $softref, string $table, string $uid) : string
Parameters
- $relFileName : string
-
Old Relative filename
- $softref : array<string|int, mixed>
-
Soft reference
- $table : string
-
Table for which the processing occurs
- $uid : string
-
UID of record from table
Return values
string —New relative filename (value to insert instead of the softref token)
processSoftReferencesSaveFileCreateRelFile()
Create file in directory and return the new (unique) filename
protected
processSoftReferencesSaveFileCreateRelFile(string $origDirPrefix, string $fileName, string $fileID, string $table, string $uid) : string|null
Parameters
- $origDirPrefix : string
-
Directory prefix, relative, with trailing slash
- $fileName : string
-
Filename (without path)
- $fileID : string
-
File ID from import memory
- $table : string
-
Table for which the processing occurs
- $uid : string
-
UID of record from table
Return values
string|null —New relative filename, if any
processSoftReferencesSubstTokens()
Substitution of soft reference tokens
protected
processSoftReferencesSubstTokens(string $tokenizedContent, array<string|int, mixed> $softrefs, string $table, string $uid) : string
Parameters
- $tokenizedContent : string
-
Content of field with soft reference tokens in.
- $softrefs : array<string|int, mixed>
-
Soft references
- $table : string
-
Table of record for which the processing occurs
- $uid : string
-
UID of record from table
Return values
string —The input content with tokens substituted according to entries in $softrefs
remapRelationsOfField()
Maps the original record UIDs of the relations to the actual UIDs of the imported records and returns relations as strings of type [table]_[uid] - or file:[uid] or [public url] for field of type "group" and internal_type "file_reference". These strings have the regular DataHandler input group/select type format which means they will automatically be processed into a list of UIDs or MM relations.
protected
remapRelationsOfField(array<string|int, mixed> &$fieldRelations, array<string|int, mixed> $fieldConfig) : array<string|int, mixed>
Parameters
- $fieldRelations : array<string|int, mixed>
-
Relations with original record UIDs
- $fieldConfig : array<string|int, mixed>
-
TCA configuration of the record field the relations belong to
Return values
array<string|int, mixed> —Array of relation strings with actual record UIDs
removeSysFileReferenceRecordsWithRelationToMissingFile()
Removes all sys_file_reference records from the import data array that are pointing to sys_file records which are missing in the import data to prevent exceptions on checking the related file started by the DataHandler.
protected
removeSysFileReferenceRecordsWithRelationToMissingFile() : void
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
stringrenderRecordExcludeCheckbox()
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
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
Return values
string —If a path is available, it will be returned, otherwise NULL.
setFlexFormRelations()
After all database relations have been set in the end of the import (see setRelations()) then it is time to correct all relations inside of FlexForm fields. The reason for doing this after is that the setting of relations may affect (quite often!) which data structure is used for the FlexForm field!
protected
setFlexFormRelations() : void
Tags
setRelations()
At the end of the import process all file and database relations should be set properly.
protected
setRelations() : void
This means that the relations to imported records are all recreated so that the imported records are correctly related again. Relations in flexform fields are processed in setFlexFormRelations() after this function.
Tags
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
writeFileVerify()
Writes a file from the import memory having $fileID to file name $fileName which must be an absolute path inside public web path
protected
writeFileVerify(string $fileName, string $fileID[, bool $bypassMountCheck = false ]) : bool
Parameters
- $fileName : string
-
Absolute filename inside public web path to write to
- $fileID : string
-
File ID from import memory
- $bypassMountCheck : bool = false
-
Bypasses the checking against file mounts - only for RTE files!
Return values
bool —Returns TRUE if it went well. Notice that the content of the file is read again, and md5 from import memory is validated.
writePages()
Writing page tree / pages to database: If the operation is an update operation, the root of the page tree inside will be moved to $this->pid unless it is the same as the root page from the import.
protected
writePages() : void
Tags
writePagesOrder()
Organize all updated pages in page tree so they are related like in the import file.
protected
writePagesOrder() : void
Only used for updates.
Tags
writeRecords()
Write all database records except pages (written in writePages())
protected
writeRecords() : void
Tags
writeRecordsOrder()
Organize all updated records so they are related like in the import file.
protected
writeRecordsOrder() : void
Only used for updates.
Tags
writeSysFileRecords()
Imports the sys_file records and the binary files data from internal data array.
protected
writeSysFileRecords() : void
writeSysFileStorageRecords()
Imports the sys_file_storage records from memory data.
protected
writeSysFileStorageRecords() : void