/** * Reindex an index document * * @param \Tollwerk\TwLucenesearch\Domain\Model\Document $document Document * @return \boolean Success */ protected function _reindex(\Tollwerk\TwLucenesearch\Domain\Model\Document $document) { // Prepare the reference parameters $reference = $document->getReferenceParameters(); if (array_key_exists('id', $reference)) { $pageUid = $reference['id']; unset($reference['id']); } else { $pageUid = $document->getPageUid(); } if (array_key_exists('type', $reference)) { $pageType = $reference['type']; unset($reference['type']); } else { $pageType = 0; } $reference['index_force_reindex'] = 1; // Simulate a frontend environment \Tollwerk\TwLucenesearch\Utility\FrontendSimulator::simulateFrontendEnvironment($pageUid); // Create the frontend URL $uri = $this->uriBuilder->reset()->setTargetPageUid($pageUid)->setTargetPageType($pageType)->setNoCache(true)->setUseCacheHash(false)->setLinkAccessRestrictedPages(true)->setArguments($reference)->setCreateAbsoluteUri(true)->setAddQueryString(false)->setArgumentsToBeExcludedFromQueryString(array())->buildFrontendUri(); // Fetch (and thus re-index) the URL $success = !!strlen($this->_getUrl($uri)); // Reset the frontend environment \Tollwerk\TwLucenesearch\Utility\FrontendSimulator::resetFrontendEnvironment(); return $success; }
/** * Renders a preview link to a particular page * * @param \array $reference Reference parameters * @see \TYPO3\CMS\Fluid\ViewHelpers\Link\PageViewHelper::render() */ public function render(array $reference) { if (array_key_exists('id', $reference)) { $pageUid = $reference['id']; unset($reference['id']); } else { $pageUid = 0; } if (array_key_exists('type', $reference)) { $pageType = $reference['type']; unset($reference['type']); } else { $pageType = 0; } $reference['index_content_only'] = 1; if (TYPO3_MODE === 'BE') { \Tollwerk\TwLucenesearch\Utility\FrontendSimulator::simulateFrontendEnvironment($pageUid); } $uriBuilder = $this->controllerContext->getUriBuilder(); $uri = $uriBuilder->reset()->setTargetPageUid($pageUid)->setTargetPageType($pageType)->setNoCache(true)->setUseCacheHash(false)->setLinkAccessRestrictedPages(true)->setArguments($reference)->setCreateAbsoluteUri(true)->setAddQueryString(false)->setArgumentsToBeExcludedFromQueryString(array())->buildFrontendUri(); if (strlen($uri)) { $this->tag->addAttribute('href', $uri); $this->tag->setContent($this->renderChildren()); $result = $this->tag->render(); } else { $result = $this->renderChildren(); } if (TYPO3_MODE === 'BE') { \Tollwerk\TwLucenesearch\Utility\FrontendSimulator::resetFrontendEnvironment(); } return $result; }