Quellcode durchsuchen

optimizer: bypass SiteFinder construction

Olivier Massot vor 4 Jahren
Ursprung
Commit
04c19573d5

+ 20 - 0
ot_core/Classes/Website/OtWebsiteRepository.php

@@ -94,6 +94,26 @@ class OtWebsiteRepository
         return $website;
     }
 
+    /**
+     * Get the OtWebsite by its config identifier
+     *
+     * @throws NoSuchWebsiteException
+     */
+    public function getWebsiteByConfigIdentifier(string $identifier): array
+    {
+        $queryBuilder = $this->connectionPool->getQueryBuilderForTable('ot_websites');
+        $website = $queryBuilder
+            ->select('*')
+            ->from('ot_websites')
+            ->where($queryBuilder->expr()->eq('config_identifier', $queryBuilder->expr()->literal($identifier)))
+            ->execute()
+            ->fetch();
+        if (!isset($website['uid'])) {
+            throw new NoSuchWebsiteException('No website found for page ' . $pageUid);
+        }
+        return $website;
+    }
+
     /**
      * Get the root page uid of the given OtWebsite
      *

+ 1 - 5
ot_optimizer/Classes/XClass/Routing/SiteMatcher.php → ot_optimizer/Classes/Routing/SiteMatcher.php

@@ -1,5 +1,5 @@
 <?php
-namespace Opentalent\OtOptimizer\XClass\Routing;
+namespace Opentalent\OtOptimizer\Routing;
 
 use Opentalent\OtCore\Website\OtWebsiteRepository;
 use Psr\Http\Message\ServerRequestInterface;
@@ -24,10 +24,6 @@ class SiteMatcher extends \TYPO3\CMS\Core\Routing\SiteMatcher
      */
     public function matchRequest(ServerRequestInterface $request): \TYPO3\CMS\Core\Routing\RouteResultInterface
     {
-        if ($_COOKIE['optimize'] != 1 && $request->getQueryParams()['optimize'] != 1) {
-            return parent::matchRequest($request);
-        }
-
         $devMode = $_SERVER['TYPO3_CONTEXT'] == "Development";
 
         $otWebsiteRepository = GeneralUtility::makeInstance(ObjectManager::class)->get(OtWebsiteRepository::class);

+ 1 - 1
ot_optimizer/Classes/XClass/Routing/OtPageRouter.php → ot_optimizer/Classes/XClass/Core/Routing/OtPageRouter.php

@@ -1,5 +1,5 @@
 <?php
-namespace Opentalent\OtOptimizer\XClass\Routing;
+namespace Opentalent\OtOptimizer\XClass\Core\Routing;
 
 use Doctrine\DBAL\Connection;
 use TYPO3\CMS\Core\Context\Context;

+ 4 - 4
ot_optimizer/ext_localconf.php

@@ -1,10 +1,10 @@
 <?php
 defined('TYPO3_MODE') || die();
 
-$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][TYPO3\CMS\Core\Routing\SiteMatcher::class] = [
-    'className' => Opentalent\OtOptimizer\XClass\Routing\SiteMatcher::class
+$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][TYPO3\CMS\Core\Routing\PageRouter::class] = [
+    'className' => Opentalent\OtOptimizer\XClass\Core\Routing\OtPageRouter::class
 ];
 
-$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][TYPO3\CMS\Core\Routing\PageRouter::class] = [
-    'className' => Opentalent\OtOptimizer\XClass\Routing\OtPageRouter::class
+$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects'][TYPO3\CMS\Frontend\Middleware\SiteResolver::class] = [
+    'className' => Opentalent\OtOptimizer\XClass\Frontend\Middleware\SiteResolver::class
 ];