Attention

TYPO3 v9 has reached its end-of-life September 30th, 2021 and is not maintained by the community anymore. Looking for a stable version? Use the version switch on the top left.

You can order Extended Long Term Support (ELTS) here: TYPO3 ELTS.

Signals and Slots

FAL comes with a series of signals that offer the opportunity to hook into FAL processes at a variety of points.

They are listed below with some explanation, in particular when they are sent (if the name is not explicit enough) and what parameters the corresponding slot will receive. They are grouped by emitting class.

Most signals exist in pairs, one being sent before a given operation, the other one after.

Note

Unless mentioned otherwise, mentions of class "File" below actually refer to the \TYPO3\CMS\Core\Resource\FileInterface interface.

"Folder" objects actually refer to the \TYPO3\CMS\Core\Resource\Folder class.

\TYPO3\CMS\Core\Resource\ResourceStorage

All signals are identified by constants of the \TYPO3\CMS\Core\Resource\ResourceStorageInterface interface.

SIGNAL_SanitizeFileName

The sanitize file name operation aims at removing characters from file names which are not allowed by the underlying Driver. The slot receives the file name and the target folder.

SIGNAL_PreFileAdd

Receives the target file name, the target folder (as a Folder instance) and the local file path.

SIGNAL_PostFileAdd

Receives the File instance corresponding to the newly stored file and the target folder (as a Folder instance).

SIGNAL_PostFileCreate

Receives the identifier of the newly created file and the target folder (as a Folder instance).

SIGNAL_PreFileCopy

Receives a File instance for the file to be copied and the target folder (as a Folder instance).

SIGNAL_PostFileCopy

Receives a File instance for the file that was copied (i.e. the original file) and the target folder (as a Folder instance).

SIGNAL_PreFileMove

Receives a File instance for the file to be moved and the target folder (as a Folder instance).

SIGNAL_PostFileMove

Receives a File instance for the file that was moved, the target folder and the original folder the file was in (both as Folder instances).

SIGNAL_PreFileDelete

Receives a File instance for the file to be deleted.

SIGNAL_PostFileDelete

Receives a File instance for the file that was deleted.

SIGNAL_PreFileRename

Receives a File instance for the file to be renamed and the sanitized new name.

SIGNAL_PostFileRename

Receives a File instance for the file that was renamed and the sanitized new name.

SIGNAL_PreFileReplace

Receives a File instance for the file to be replaced and the path to the local file that will replace it.

SIGNAL_PostFileReplace

Receives a File instance for the file that was replaced and the path to the local file that has replaced it.

SIGNAL_PostFileSetContents

Receives a \TYPO3\CMS\Core\Resource\AbstractFile instance for the file whose content was changed and the content itself (as a string).

SIGNAL_PreFolderAdd

Receives the name of the new folder and a reference to the parent folder, if any (as a Folder instance).

SIGNAL_PostFolderAdd

Receives the newly created folder (as a Folder instance).

SIGNAL_PreFolderCopy

Receives references to the folder to copy and the parent target folder (both as \TYPO3\CMS\Core\Resource\FolderInterface instances) and the sanitized name for the copy.

SIGNAL_PostFolderCopy

Receives references to the original folder and the parent target folder (both as \TYPO3\CMS\Core\Resource\FolderInterface instances) and the identifier of the newly copied folder.

SIGNAL_PreFolderMove

Receives references to the folder to move and the parent target folder (both as Folder instances) and the sanitized target name.

SIGNAL_PostFolderMove

Receives references to the folder to move and the parent target folder (both as Folder instances), the identifier of the moved folder and a reference to the original parent folder (as a Folder instance).

SIGNAL_PreFolderDelete

Receives a reference to the folder to delete (as a Folder instance).

SIGNAL_PostFolderDelete

Receives a reference to the deleted folder (as a Folder instance).

SIGNAL_PreFolderRename

Receives a reference to the folder to be renamed (as a Folder instance) and the sanitized new name.

SIGNAL_PostFolderRename

Receives a reference to the renamed folder (as a Folder instance) and the new identifier of the renamed folder.

SIGNAL_PreGeneratePublicUrl

This signal makes it possible to influence the construction of a resource's public URL. If the slot defines the URL, it is kept as is and the rest of the URL generation process is ignored.

It receives a reference to the instance for which the URL should be generated (as a \TYPO3\CMS\Core\Resource\ResourceInterface instance), a boolean flag indicating whether the URL should be relative to the current script or absolute and a reference to the public URL (which is null at this point, but can be then modified by the slot).

\TYPO3\CMS\Core\Resource\ResourceFactory

The signal is identified by a constant of the \TYPO3\CMS\Core\Resource\ResourceFactoryInterface interface.

SIGNAL_PostProcessStorage

This signal is emitted by method \TYPO3\CMS\Core\Resource\ResourceFactory::getStorageObject() after a Storage object has been fetched. The slot receives a reference to the Storage.

\TYPO3\CMS\Core\Resource\Index\FileIndexRepository

recordCreated

Receives an array containing the information collected about the file whose index (i.e. "sys_file" table entry) was just created.

recordUpdated

Receives an array containing the information collected about the file whose index (i.e. "sys_file" table entry) was just updated.

recordDeleted

Receives the uid of the file (i.e. "sys_file" table entry) which was deleted.

recordMarkedAsMissing

Receives the uid of the file (i.e. "sys_file" table entry) which was marked as missing.

\TYPO3\CMS\Core\Resource\Index\MetaDataRepository

recordPostRetrieval

This signal is emitted after metadata has been retrieved for a given file. The slot receives the metadata as an \ArrayObject instance.

recordCreated

Receives an array containing the metadata collected about the file just after it has been inserted into the "sys_file_metadata" table.

recordUpdated

This signal is emitted after metadata for a given file has been updated. The slot receives the metadata as an array containing all metadata fields (and not just the updated ones).

recordDeleted

Receives the uid of the file whose metadata has just been deleted.

\TYPO3\CMS\Core\Resource\Service\FileProcessingService

All signals are identified by constants of the \TYPO3\CMS\Core\Resource\Service\FileProcessingService class.

SIGNAL_PreFileProcess

This signal is emitted before a file is processed. The slot receives a reference to the processed file and to the original file (both as File instances), a string defining the type of task being executed and an array containing the configuration for that task.

SIGNAL_PostFileProcess

This signal is emitted after a file has been processed. The slot receives a reference to the processed file and to the original file (both as File instances), a string defining the type of task being executed and an array containing the configuration for that task.

See the section about Services for more information about this class.