diff --git a/Classes/Integration/HookSubscribers/EditDocumentController.php b/Classes/Integration/HookSubscribers/EditDocumentController.php index 176a368da..8fc5a1370 100644 --- a/Classes/Integration/HookSubscribers/EditDocumentController.php +++ b/Classes/Integration/HookSubscribers/EditDocumentController.php @@ -16,6 +16,10 @@ public function requireColumnPositionJavaScript() : void { /** @var PageRenderer $pageRenderer */ $pageRenderer = GeneralUtility::makeInstance(PageRenderer::class); - $pageRenderer->loadRequireJsModule('TYPO3/CMS/Flux/FluxColPosAssignment'); + if (method_exists($pageRenderer, 'loadJavaScriptModule')) { + $pageRenderer->loadJavaScriptModule('@fluidtypo3/flux/FluxColPosAssignment.js'); + } else { + $pageRenderer->loadRequireJsModule('TYPO3/CMS/Flux/FluxColPosAssignment'); + } } } diff --git a/Classes/Integration/PreviewRenderer.php b/Classes/Integration/PreviewRenderer.php index bf38986a4..819561db4 100644 --- a/Classes/Integration/PreviewRenderer.php +++ b/Classes/Integration/PreviewRenderer.php @@ -56,7 +56,11 @@ protected function attachAssets(): void { if (!static::$assetsIncluded) { $this->pageRenderer->addCssFile('EXT:flux/Resources/Public/css/flux.css'); - $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Flux/FluxCollapse'); + if (method_exists($this->pageRenderer, 'loadJavaScriptModule')) { + $this->pageRenderer->loadJavaScriptModule('@fluidtypo3/flux/FluxCollapse.js'); + } else { + $this->pageRenderer->loadRequireJsModule('TYPO3/CMS/Flux/FluxCollapse'); + } static::$assetsIncluded = true; } diff --git a/Configuration/JavaScriptModules.php b/Configuration/JavaScriptModules.php new file mode 100644 index 000000000..56073fb4f --- /dev/null +++ b/Configuration/JavaScriptModules.php @@ -0,0 +1,8 @@ + ['core', 'backend'], + 'imports' => [ + '@fluidtypo3/flux/' => 'EXT:flux/Resources/Public/JavaScript/', + ] +]; diff --git a/Tests/Unit/Integration/PreviewRendererTest.php b/Tests/Unit/Integration/PreviewRendererTest.php index 54e93d515..790897341 100644 --- a/Tests/Unit/Integration/PreviewRendererTest.php +++ b/Tests/Unit/Integration/PreviewRendererTest.php @@ -13,16 +13,24 @@ use FluidTYPO3\Flux\Provider\ProviderResolver; use FluidTYPO3\Flux\Tests\Unit\AbstractTestCase; use TYPO3\CMS\Core\Page\PageRenderer; +use TYPO3\CMS\Core\Utility\VersionNumberUtility; class PreviewRendererTest extends AbstractTestCase { private PageRenderer $pageRenderer; private ProviderResolver $providerResolver; + private string $registerMethodName; protected function setUp(): void { + if (version_compare(VersionNumberUtility::getCurrentTypo3Version(), '13.4', '>=')) { + $this->registerMethodName = 'loadJavaScriptModule'; + } else { + $this->registerMethodName = 'loadRequireJsModule'; + } + $this->pageRenderer = $this->getMockBuilder(PageRenderer::class) - ->onlyMethods(['loadRequireJsModule']) + ->onlyMethods([$this->registerMethodName]) ->disableOriginalConstructor() ->getMock(); $this->providerResolver = $this->getMockBuilder(ProviderResolver::class) @@ -56,7 +64,7 @@ public function testPreProcess(): void public function testAttachAssets(): void { - $this->pageRenderer->expects($this->atLeastOnce())->method('loadRequireJsModule'); + $this->pageRenderer->expects($this->atLeastOnce())->method($this->registerMethodName); $subject = new PreviewRenderer($this->pageRenderer, $this->providerResolver); $this->callInaccessibleMethod($subject, 'attachAssets'); }