OtPageResolver.php 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. <?php
  2. namespace Opentalent\OtOptimizer\XClass\Frontend\Middleware;
  3. use Opentalent\OtCore\Website\OtWebsiteRepository;
  4. use Psr\Http\Message\ResponseInterface;
  5. use Psr\Http\Message\ServerRequestInterface;
  6. use Psr\Http\Server\RequestHandlerInterface;
  7. use TYPO3\CMS\Core\Utility\GeneralUtility;
  8. use TYPO3\CMS\Extbase\Object\ObjectManager;
  9. class OtPageResolver extends \TYPO3\CMS\Frontend\Middleware\PageResolver
  10. {
  11. private bool $shallFallback;
  12. public function __construct($controller = null)
  13. {
  14. $this->shallFallback = $_COOKIE['optimize'] != 1;
  15. parent::__construct($controller);
  16. }
  17. /**
  18. * Resolve the page ID
  19. *
  20. * @param ServerRequestInterface $request
  21. * @param RequestHandlerInterface $handler
  22. * @return ResponseInterface
  23. */
  24. public function process(ServerRequestInterface $request, RequestHandlerInterface $handler): ResponseInterface
  25. {
  26. if ($this->shallFallback) {
  27. return parent::process($request, $handler);
  28. }
  29. $otWebsiteRepository = GeneralUtility::makeInstance(ObjectManager::class)->get(OtWebsiteRepository::class);
  30. $devMode = $_SERVER['TYPO3_CONTEXT'] == "Development";
  31. $params = $request->getQueryParams();
  32. $params['id'] = $otWebsiteRepository->matchUriToPage($request->getUri(), $devMode);
  33. $request = $request->withQueryParams($params);
  34. return parent::process($request, $handler);
  35. }
  36. }