* @author Timo Hund */ abstract class AbstractUriViewHelper extends AbstractSolrFrontendViewHelper { use CompileWithRenderStatic; /** * @var SearchUriBuilder */ protected static $searchUriBuilder; /** * @param SearchUriBuilder $searchUriBuilder */ public function injectSearchUriBuilder(SearchUriBuilder $searchUriBuilder) { self::$searchUriBuilder = $searchUriBuilder; } /** * @param RenderingContextInterface|null $renderingContext * @return SearchUriBuilder|object */ protected static function getSearchUriBuilder(RenderingContextInterface $renderingContext = null) { if (!isset(self::$searchUriBuilder)) { $objectManager = GeneralUtility::makeInstance(ObjectManager::class); self::$searchUriBuilder = $objectManager->get(SearchUriBuilder::class); } if ($renderingContext && method_exists($renderingContext, 'getControllerContext')) { self::$searchUriBuilder->injectUriBuilder($renderingContext->getControllerContext()->getUriBuilder()); } return self::$searchUriBuilder; } /** * @param RenderingContextInterface $renderingContext * @return mixed */ protected static function getUsedSearchRequestFromRenderingContext(RenderingContextInterface $renderingContext) { $resultSet = static::getUsedSearchResultSetFromRenderingContext($renderingContext); if (!$resultSet instanceof SearchResultSet) { throw new \InvalidArgumentException("The variable resultSet need to be defined in the scope of " . static::class); } return $resultSet->getUsedSearchRequest(); } }