Events¶
Several events are triggered during the external import process in order to provide entry points for custom actions, improving the flexibility of the whole tool. Some events are not triggered when running in preview mode.
All events may throw the special exception \Cobweb\ExternalImport\Exception\CriticalFailureException.
This will cause their "parent" step to abort. More details in the chapter about
critical exceptions. Any other exception
will just be logged (depending on your logging configuration).
For usage, see the core documentation about PSR-14 events.
Process connector parameters¶
Class: \Cobweb\ExternalImport\Event\ProcessConnectorParametersEvent
This allows for dynamic manipulation of the parameters array before it is passed to the connector. The event has the following API:
- getParameters
 Returns the connector parameters.
- setParameters
 Sets the (modified) connector parameters.
- getExternalConfiguration
 Instance of
\Cobweb\ExternalImport\Domain\Model\Configurationwith the current import configuration.
Note
This event is also triggered when displaying the configuration in the BE module. This way the user can see how the processed parameters look like.
Substructure Preprocess¶
Class: \Cobweb\ExternalImport\Event\SubstructurePreprocessEvent
This event is triggered whenever a data structure is going to be handled by the
substructureFields
property. It is fired just before the directives defined in the substructureFields
property are applied and makes it possible to change the substructure.
The event has the following API:
- getSubstructureConfiguration
 Returns the corresponding
substructureFieldsconfiguration.- getColumn
 Returns the name of the column being handled.
- getDataType
 (since version 6.2.0) Returns the type of data being handled ("array" or "xml").
- getStructure
 Returns the structure being handled.
- setStructure
 Sets the (modified) structure. (since version 6.2.0) This must be an array for array-type data or a
\DomNodeListfor XML-type data.- getImporter
 Current instance of
\Cobweb\ExternalImport\Importer.
Important
Since version 6.2.0, this event is fired for both array-type and XML-type data
(previously, only for array-type data). To know which type of data is being handled,
a new getDataType() method is available. The type of structure that must be returned
after modfication (by calling setStructure() must be either an array or a \DomNodeList,
as opposed to just an array in older versions.
Update Record Preprocess¶
Class: \Cobweb\ExternalImport\Event\UpdateRecordPreprocessEvent
This event is triggered just before a record is registered for update in the database. It is triggered for each record individually. The event has the following API:
- getUid
 Returns the primary of the record (since we are talking about an update operation, the record exists in the database and thus has a valid primary key).
- getRecord
 Returns the record being handled.
- setRecord
 Sets the (modified) record.
- getImporter
 Current instance of
\Cobweb\ExternalImport\Importer.
Note
This event listener receives records only from the main table, not from any child table.
Insert Record Preprocess¶
Class: \Cobweb\ExternalImport\Event\InsertRecordPreprocessEvent
Similar to the "Update Record Preprocess" event, but for the insert operation.
Note
This event listener receives records only from the main table, not from any child table.
Delete Record Preprocess¶
Class: \Cobweb\ExternalImport\Event\DeleteRecordsPreprocessEvent
This event is triggered just before any record is deleted. It can manipulate the list of primary keys of records that will eventually be deleted.
Note that even if this event throws the \Cobweb\ExternalImport\Exception\CriticalFailureException,
the data to update or insert will already have been saved.
The event has the following API:
- getRecords
 Returns the list of records to be deleted (primary keys).
Note
This list of contains only records from the main table, not from any child table.
- setRecords
 Sets the (modified) list of records.
- getImporter
 Current instance of
\Cobweb\ExternalImport\Importer.
Datamap Postprocess¶
Class: \Cobweb\ExternalImport\Event\DatamapPostprocessEvent
This event is triggered after all records have been updated or inserted using the TYPO3 Core Engine. It can be used for any follow-up operation. The event has the following API:
- getData
 Returns the list of records keyed to their primary keys (including the new primary keys for the inserted records). Each record contains an additional field called
tx_externalimport:statuswith a value of either "insert" or "update" depending on which operation was performed on the record.- getImporter
 Current instance of
\Cobweb\ExternalImport\Importer.
Note that even if this event throws the \Cobweb\ExternalImport\Exception\CriticalFailureException,
the data to update or insert will already have been saved.
Note
This event is not triggered in preview mode.
Cmdmap Postprocess¶
Class: \Cobweb\ExternalImport\Event\CmdmapPostprocessEvent
This event is triggered after all records have been deleted using the TYPO3 Core Engine. The event has the following API:
- getData
 Returns the list of primary keys of the deleted records.
- getImporter
 Current instance of
\Cobweb\ExternalImport\Importer.
Note that even if this event throws the \Cobweb\ExternalImport\Exception\CriticalFailureException,
the records will already have been deleted.
Note
This event is not triggered in preview mode.