Bug #103174
Updated by Daniel Siepmann 9 months ago
The event provides access to the `$resultArray` and allows to set a new version of that variable. But the triggering code does not use the modified version. That array holds a list of javaScriptModules to load. This info is not respected. This worked prior the event when one used a UserFunction in order to add custom controls, as the resultArray was provided and could be handled as reference. It seems I could fix this via: <pre><code class="diff"> diff --git a/typo3/sysext/backend/Classes/Form/Container/FilesControlContainer.php b/typo3/sysext/backend/Classes/Form/Container/FilesControlContainer.php index c231c8d076..250e1b7e68 100644 --- a/typo3/sysext/backend/Classes/Form/Container/FilesControlContainer.php +++ b/typo3/sysext/backend/Classes/Form/Container/FilesControlContainer.php @@ -271,14 +271,15 @@ class FilesControlContainer extends AbstractContainer } } - $controls = $this->eventDispatcher->dispatch( + $event = GeneralUtility::makeInstance(EventDispatcherInterface::class)->dispatch( new CustomFileControlsEvent($resultArray, $table, $field, $row, $config, $formFieldIdentifier, $formFieldName) - )->getControls(); + ); + $resultArray = $event->getResultArray(); - if ($controls !== []) { + if ($event->getControls() !== []) { $view->assign('customControls', [ 'id' => $formFieldIdentifier . '_customControls', - 'controls' => implode("\n", $controls), + 'controls' => implode("\n", $event->getControls()), ]); } </code></pre> But then I end up with <pre> Uncaught (in promise) Error: Unable to resolve specifier '@e2/e2-core/FilePathBasedBrowser/SearchForm.js' imported from http://localhost:8080/typo3/record/edit?token=a91f1f57ee42b3 </pre>