diff --git a/Classes/ContentObject/TypoScriptRenderingContentObject.php b/Classes/ContentObject/TypoScriptRenderingContentObject.php index 424eba0..b22fcec 100644 --- a/Classes/ContentObject/TypoScriptRenderingContentObject.php +++ b/Classes/ContentObject/TypoScriptRenderingContentObject.php @@ -40,7 +40,6 @@ class TypoScriptRenderingContentObject extends AbstractContentObject */ public function __construct(ContentObjectRenderer $cObj, RequestBuilder $requestBuilder = null, array $renderer = null) { - parent::__construct($cObj); $this->requestBuilder = $requestBuilder ?: new RequestBuilder(); $this->renderer = $renderer ?: $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['typoscript_rendering']['renderClasses']; } diff --git a/Classes/Middleware/TypoScriptRenderingMiddleware.php b/Classes/Middleware/TypoScriptRenderingMiddleware.php index 1ffa738..0214227 100644 --- a/Classes/Middleware/TypoScriptRenderingMiddleware.php +++ b/Classes/Middleware/TypoScriptRenderingMiddleware.php @@ -40,10 +40,9 @@ public function process(ServerRequestInterface $request, RequestHandlerInterface $frontendController = $GLOBALS['TSFE']; $requestedContentType = $frontendController->config['config']['contentType'] ?? self::defaultContentType; if (!$frontendController->isGeneratePage() || !isset($request->getQueryParams()[self::argumentNamespace])) { - return $this->amendContentType($handler->handle($request), $requestedContentType); + return $handler->handle($request);# $this->amendContentType(, $requestedContentType); } $this->ensureRequiredEnvironment(); - $frontendController->config['config']['debug'] = 0; $frontendController->config['config']['disableAllHeaderCode'] = 1; $frontendController->config['config']['disableCharsetHeader'] = 0; diff --git a/Classes/Renderer/RecordRenderer.php b/Classes/Renderer/RecordRenderer.php index 13f7a51..90b75b8 100644 --- a/Classes/Renderer/RecordRenderer.php +++ b/Classes/Renderer/RecordRenderer.php @@ -85,7 +85,7 @@ protected function resolveRenderingConfiguration(Request $request, RenderingCont if ($table === 'pages') { // Allow rendering of a root page which has pid === 0 and would be denied otherwise - $rootLine = GeneralUtility::makeInstance(RootlineUtility::class, $id)->get(); + $rootLine = GeneralUtility::makeInstance(RootlineUtility::class, (int)$id)->get(); // $rootLine[0] is the root page. Check if the page we're going to render is a root page. // We explicitly ignore the case where the to be rendered id is in another root line (multi domain setup) // as this would require an additional record lookup. The use case for this is very limited anyway diff --git a/Classes/Uri/TyposcriptRenderingUri.php b/Classes/Uri/TyposcriptRenderingUri.php index 9db1def..6f8b34d 100644 --- a/Classes/Uri/TyposcriptRenderingUri.php +++ b/Classes/Uri/TyposcriptRenderingUri.php @@ -18,6 +18,7 @@ use Helhum\TyposcriptRendering\Configuration\RecordRenderingConfigurationBuilder; use Helhum\TyposcriptRendering\Renderer\RenderingContext; use TYPO3\CMS\Core\Http\Uri; +use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Core\Utility\MathUtility; use TYPO3\CMS\Fluid\Core\Widget\WidgetRequest; @@ -49,8 +50,7 @@ public function withWidgetContext(ViewHelperContext $viewHelperContext): self private function parseViewHelperContext(ViewHelperContext $viewHelperContext): void { $arguments = $viewHelperContext->getArguments(); - $controllerContext = $viewHelperContext->getControllerContext(); - $request = $controllerContext->getRequest(); + $request = $viewHelperContext->getRequest(); $pluginName = $arguments['pluginName'] ?? null; $extensionName = $arguments['extensionName'] ?? null; @@ -81,7 +81,7 @@ private function parseViewHelperContext(ViewHelperContext $viewHelperContext): v } $additionalParams['tx_typoscriptrendering']['context'] = json_encode($renderingConfiguration); - $uriBuilder = $controllerContext->getUriBuilder(); + $uriBuilder = GeneralUtility::makeInstance(\TYPO3\CMS\Extbase\Mvc\Web\Routing\UriBuilder::class); $uriBuilder->reset(); if (is_callable([$uriBuilder, 'setUseCacheHash'])) { $uriBuilder->setUseCacheHash(true); @@ -93,7 +93,6 @@ private function parseViewHelperContext(ViewHelperContext $viewHelperContext): v ->setArguments($additionalParams) ->setCreateAbsoluteUri($arguments['absolute'] ?? false) ->setAddQueryString($arguments['addQueryString'] ?? false) - ->setAddQueryStringMethod('GET') ->setArgumentsToBeExcludedFromQueryString($arguments['argumentsToBeExcludedFromQueryString'] ?? []); if (MathUtility::canBeInterpretedAsInteger($arguments['pageUid'])) { $uriBuilder->setTargetPageUid((int)$arguments['pageUid']); @@ -115,7 +114,6 @@ private function parseWidgetContext(ViewHelperContext $viewHelperContext): void { $arguments = $viewHelperContext->getArguments(); $controllerContext = $viewHelperContext->getControllerContext(); - /** @var $request WidgetRequest $request */ $request = $controllerContext->getRequest(); if (!$request instanceof WidgetRequest) { throw new \RuntimeException('Called from wrong context', 1589401907); @@ -202,7 +200,7 @@ private function buildConfigurationForPath(string $renderingPath, string $contex return $configurationBuilder->configurationForPath($renderingPath, $contextRecordId); } - protected function parseUri($uri, $removeControllerArgument = false) + protected function parseUri($uri, $removeControllerArgument = false): void { if ($removeControllerArgument) { $uri = str_replace('&tx__%5Bcontroller%5D=Standard', '', $uri); diff --git a/Classes/Uri/ViewHelperContext.php b/Classes/Uri/ViewHelperContext.php index aec0a90..41930ac 100644 --- a/Classes/Uri/ViewHelperContext.php +++ b/Classes/Uri/ViewHelperContext.php @@ -1,5 +1,6 @@ configurationManager = $configurationManager; } - public function getControllerContext(): ControllerContext + + public function getRequest() { if ($this->renderingContext instanceof \TYPO3\CMS\Fluid\Core\Rendering\RenderingContext) { - return $this->renderingContext->getControllerContext(); + return $this->renderingContext->getRequest(); } - - // Let PHP deal with the error, we don't operate in other contexts anyway - return null; } public function getArguments(): array @@ -62,7 +61,7 @@ public function getArguments(): array public function getContentObject(): ContentObjectRenderer { - $configurationManager = $this->configurationManager ?? GeneralUtility::makeInstance(ObjectManager::class)->get(ConfigurationManager::class); + $configurationManager = $this->configurationManager ?? GeneralUtility::makeInstance(ConfigurationManager::class); $contentObject = $configurationManager->getContentObject(); return $contentObject ?? GeneralUtility::makeInstance(ContentObjectRenderer::class); diff --git a/Configuration/Services.yaml b/Configuration/Services.yaml new file mode 100644 index 0000000..aba38f7 --- /dev/null +++ b/Configuration/Services.yaml @@ -0,0 +1,13 @@ +services: + _defaults: + autowire: true + autoconfigure: true + public: false + + Helhum\TyposcriptRendering\: + resource: '../Classes/*' + + Helhum\TyposcriptRendering\ContentObject\TypoScriptRenderingContentObject: + tags: + - name: frontend.contentobject + identifier: 'TYPOSCRIPT_RENDERING' diff --git a/Migrations/Code/LegacyClassesForIde.php b/Migrations/Code/LegacyClassesForIde.php index d6fd657..9f306ef 100644 --- a/Migrations/Code/LegacyClassesForIde.php +++ b/Migrations/Code/LegacyClassesForIde.php @@ -1,7 +1,4 @@ =7.2", - "typo3/cms-core": "^9.5.31 || ^10.4.2 || ^11.5.5" + "typo3/cms-core": "^12" }, "require-dev": { "nimut/testing-framework": "^6.0", diff --git a/ext_emconf.php b/ext_emconf.php index efc555b..1219791 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -10,11 +10,11 @@ 'uploadfolder' => '0', 'createDirs' => '', 'clearCacheOnLoad' => 0, - 'version' => '2.4.0', + 'version' => '2.5.0', 'constraints' => [ 'depends' => [ 'php' => '7.2.0-8.999.999', - 'typo3' => '9.5.31-11.5.99', + 'typo3' => '12.4.0-12.4.99', ], 'conflicts' => [ ], diff --git a/ext_localconf.php b/ext_localconf.php index 6df40ec..b64af3f 100644 --- a/ext_localconf.php +++ b/ext_localconf.php @@ -1,5 +1,4 @@