Form Editor
This chapter is the developer reference for the TYPO3 backend form editor. It covers the JavaScript extension points and the data model used by the editor's TypeScript modules.
Architecture overview
The form editor consists of four cooperating TypeScript modules, each responsible for one UI component:
| Module (import path) | Component | Responsibility |
|---|---|---|
@typo3/ | — | Central view model; wires DOM events and publishes/subscribes to all cross-component events. |
@typo3/ | Stage | Renders the abstract and preview views of the current form page. |
@typo3/ | Inspector | Renders the property editors for the selected form element. |
@typo3/ | Structure tree | Wraps the TYPO3 backend tree web component and bridges its events to the publish/subscribe bus. |
@typo3/ | — | Wires all publish/subscribe events to view-model actions.
Loaded automatically; replace via
dynamic only when you need to
completely swap the event-wiring logic. |
All modules communicate exclusively via a publish/subscribe bus
(
Publisher). Direct module-to-module calls are avoided
so that extension code can hook into any point without modifying core
files.
Registering a custom JavaScript module
Custom modules must export a
bootstrap function. The form editor
calls this function once all built-in modules have loaded, passing the
central
Form application object as the sole argument.
-
Create the JavaScript module
EXT:my_extension/Resources/Public/JavaScript/backend/form-editor/view-model.js -
Register the module in the importmap
EXT:my_extension/Configuration/JavaScriptModules.php -
Tell the form editor to load the module
EXT:my_extension/Configuration/Form/MyFormSet/config.yaml