* All rights reserved * * This script is part of the TYPO3 project. The TYPO3 project is * free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * The GNU General Public License can be found at * http://www.gnu.org/copyleft/gpl.html. * A copy is found in the textfile GPL.txt and important notices to the license * from the author is found in LICENSE.txt distributed with these scripts. * * * This script is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * This copyright notice MUST APPEAR in all copies of the script! ***************************************************************/ use WapplerSystems\Meilisearch\Domain\Index\PageIndexer\Helper\UriBuilder\AbstractUriStrategy; use WapplerSystems\Meilisearch\Domain\Index\PageIndexer\Helper\UriBuilder\TYPO3SiteStrategy; use WapplerSystems\Meilisearch\System\Util\SiteUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; /** * This class is responsible to retrieve an "UriStrategy" the can build uri's for the site where the * passed page belongs to. * * This can be: * * A TYPO3 site managed with site management * * A TYPO3 site without site management where the url is build by EXT:meilisearch with L and id param and information from the domain * record or meilisearch specific configuration. */ class UriStrategyFactory { /** * @param integer $pageId * @oaram array $overrideConfiguration * @return AbstractUriStrategy * @throws \Exception */ public function getForPageId(int $pageId): AbstractUriStrategy { if (!SiteUtility::getIsSiteManagedSite($pageId)) { throw new \Exception('Site of page with uid ' . $pageId . ' is not a TYPO3 managed site'); } return GeneralUtility::makeInstance(TYPO3SiteStrategy::class); } }