|
|
@@ -0,0 +1,47 @@
|
|
|
+<?php
|
|
|
+
|
|
|
+
|
|
|
+namespace Opentalent\OtOptimizer\XClass\Frontend\Middleware;
|
|
|
+
|
|
|
+
|
|
|
+use Opentalent\OtCore\Website\OtWebsiteRepository;
|
|
|
+use Psr\Http\Message\ResponseInterface;
|
|
|
+use Psr\Http\Message\ServerRequestInterface;
|
|
|
+use Psr\Http\Server\RequestHandlerInterface;
|
|
|
+use TYPO3\CMS\Core\Utility\GeneralUtility;
|
|
|
+use TYPO3\CMS\Extbase\Object\ObjectManager;
|
|
|
+
|
|
|
+class OtPageResolver extends \TYPO3\CMS\Frontend\Middleware\PageResolver
|
|
|
+{
|
|
|
+ private bool $shallFallback;
|
|
|
+
|
|
|
+ public function __construct($controller = null)
|
|
|
+ {
|
|
|
+ $this->shallFallback = $_COOKIE['optimize'] != 1;
|
|
|
+
|
|
|
+ parent::__construct($controller);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * Resolve the page ID
|
|
|
+ *
|
|
|
+ * @param ServerRequestInterface $request
|
|
|
+ * @param RequestHandlerInterface $handler
|
|
|
+ * @return ResponseInterface
|
|
|
+ */
|
|
|
+ public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
|
|
|
+ {
|
|
|
+ if ($this->shallFallback) {
|
|
|
+ return parent::process($request, $handler);
|
|
|
+ }
|
|
|
+
|
|
|
+ $otWebsiteRepository = GeneralUtility::makeInstance(ObjectManager::class)->get(OtWebsiteRepository::class);
|
|
|
+ $devMode = $_SERVER['TYPO3_CONTEXT'] == "Development";
|
|
|
+
|
|
|
+ $params = $request->getQueryParams();
|
|
|
+ $params['id'] = $otWebsiteRepository->matchUriToPage($request->getUri(), $devMode);
|
|
|
+ $request = $request->withQueryParams($params);
|
|
|
+
|
|
|
+ return parent::process($request, $handler);
|
|
|
+ }
|
|
|
+}
|