AddJavaScriptModulesEvent¶
JavaScript events in custom User Settings Configuration options should no longer be placed as inline JavaScript. Instead, use a dedicated JavaScript module to handle custom events.
Example¶
A listener using mentioned PSR-14 event could look like the following.
Register listener
typo3conf/my-extension/Configuration/Services.yaml
services: MyVendor\MyExtension\EventListener\CustomUserSettingsListener: tags: - name: event.listener identifier: 'myExtension/CustomUserSettingsListener' event: TYPO3\CMS\SetupEvent\AddJavaScriptModulesEvent
Implement Listener to load JavaScript module
TYPO3/CMS/MyExtension/CustomUserSettingsModule
namespace MyVendor\MyExtension\EventListener; use TYPO3\CMS\Setup\Event\AddJavaScriptModulesEvent; final class CustomUserSettingsListener { // name of JavaScript module to be loaded private const MODULE_NAME = 'TYPO3/CMS/MyExtension/CustomUserSettingsModule'; public function __invoke(AddJavaScriptModulesEvent $event): void { $javaScriptModuleName = 'TYPO3/CMS/MyExtension/CustomUserSettings'; if (in_array(self::MODULE_NAME, $event->getModules(), true)) { return; } $event->addModule(self::MODULE_NAME); } }
API¶
- class TYPO3\CMS\Setup\Event\AddJavaScriptModulesEvent¶
Collects additional JavaScript modules to be loaded in SetupModuleController.
- addJavaScriptModule(string $specifier)¶
- Parameters
$specifier (
string
) -- Bare module identifier like @my/package/filename.js
- addModule(string $moduleName)¶
Deprecated: will be removed in TYPO3 v13.0. Use addJavaScriptModule() instead, available since TYPO3 v12.0.
- Parameters
$moduleName (
string
) -- the moduleName
- getJavaScriptModules()¶
- Return type
array
- getModules()¶
- Return type
array