zwischenstand
This commit is contained in:
@@ -29,6 +29,7 @@ use WapplerSystems\Meilisearch\Access\Rootline;
|
||||
use WapplerSystems\Meilisearch\Access\RootlineElement;
|
||||
use WapplerSystems\Meilisearch\Domain\Index\PageIndexer\Helper\UriBuilder\AbstractUriStrategy;
|
||||
use WapplerSystems\Meilisearch\Domain\Index\PageIndexer\Helper\UriStrategyFactory;
|
||||
use WapplerSystems\Meilisearch\Domain\Search\MeilisearchDocument\Builder;
|
||||
use WapplerSystems\Meilisearch\System\Logging\MeilisearchLogManager;
|
||||
use TYPO3\CMS\Core\Utility\GeneralUtility;
|
||||
|
||||
@@ -58,13 +59,19 @@ class PageIndexer extends Indexer
|
||||
return false;
|
||||
}
|
||||
|
||||
//$meilisearchConnection = $this->getMeilisearchConnectionByItem($item);
|
||||
$this->meilisearch = $this->getMeilisearchConnectionByItem($item);
|
||||
|
||||
$site = $item->getSite();
|
||||
$languageUids = $site->getAvailableLanguageIds();
|
||||
$languages = $site->getSite()->getLanguages();
|
||||
|
||||
foreach ($languageUids as $systemLanguageUid) {
|
||||
$contentAccessGroups = $this->getAccessGroupsFromContent($item, $systemLanguageUid);
|
||||
foreach ($languages as $language) {
|
||||
|
||||
$this->indexPage($item, $language->getLanguageId());
|
||||
|
||||
// TODO: Versions for usergroups
|
||||
continue;
|
||||
|
||||
$contentAccessGroups = $this->getAccessGroupsFromContent($item, $language->getLanguageId());
|
||||
|
||||
if (empty($contentAccessGroups)) {
|
||||
// might be an empty page w/no content elements or some TYPO3 error / bug
|
||||
@@ -73,7 +80,7 @@ class PageIndexer extends Indexer
|
||||
}
|
||||
|
||||
foreach ($contentAccessGroups as $userGroup) {
|
||||
$this->indexPage($item, $systemLanguageUid, $userGroup);
|
||||
$this->indexPage($item, $language->getLanguageId(), $userGroup);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -191,46 +198,6 @@ class PageIndexer extends Indexer
|
||||
return $accessGroupsCache[$accessGroupsCacheEntryId];
|
||||
}
|
||||
|
||||
// Utility methods
|
||||
|
||||
/**
|
||||
* Builds a base page indexer request with configured headers and other
|
||||
* parameters.
|
||||
*
|
||||
* @return PageIndexerRequest Base page indexer request
|
||||
*/
|
||||
protected function buildBasePageIndexerRequest()
|
||||
{
|
||||
$request = $this->getPageIndexerRequest();
|
||||
$request->setParameter('loggingEnabled', $this->loggingEnabled);
|
||||
|
||||
if (!empty($this->options['authorization.'])) {
|
||||
$request->setAuthorizationCredentials(
|
||||
$this->options['authorization.']['username'],
|
||||
$this->options['authorization.']['password']
|
||||
);
|
||||
}
|
||||
|
||||
if (!empty($this->options['frontendDataHelper.']['headers.'])) {
|
||||
foreach ($this->options['frontendDataHelper.']['headers.'] as $headerValue) {
|
||||
$request->addHeader($headerValue);
|
||||
}
|
||||
}
|
||||
|
||||
if (!empty($this->options['frontendDataHelper.']['requestTimeout'])) {
|
||||
$request->setTimeout((float)$this->options['frontendDataHelper.']['requestTimeout']);
|
||||
}
|
||||
|
||||
return $request;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return PageIndexerRequest
|
||||
*/
|
||||
protected function getPageIndexerRequest()
|
||||
{
|
||||
return GeneralUtility::makeInstance(PageIndexerRequest::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines a page ID's URL.
|
||||
@@ -248,9 +215,7 @@ class PageIndexer extends Indexer
|
||||
$pageId = $item->getRecordUid();
|
||||
$strategy = $this->getUriStrategy($pageId);
|
||||
$mountPointParameter = $this->getMountPageDataUrlParameter($item);
|
||||
$dataUrl = $strategy->getPageIndexingUriFromPageItemAndLanguageId($item, $language, $mountPointParameter, $this->options);
|
||||
|
||||
return $dataUrl;
|
||||
return $strategy->getPageIndexingUriFromPageItemAndLanguageId($item, $language, $mountPointParameter, $this->options);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -294,16 +259,16 @@ class PageIndexer extends Indexer
|
||||
*/
|
||||
protected function indexPage(Item $item, $language = 0, $userGroup = 0)
|
||||
{
|
||||
DebugUtility::debug('dededede');
|
||||
$accessRootline = $this->getAccessRootline($item, $language, $userGroup);
|
||||
$request = $this->buildBasePageIndexerRequest();
|
||||
$request->setIndexQueueItem($item);
|
||||
$request->addAction('indexPage');
|
||||
$request->setParameter('accessRootline', (string)$accessRootline);
|
||||
|
||||
$indexRequestUrl = $this->getDataUrl($item, $language);
|
||||
$response = $request->send($indexRequestUrl);
|
||||
$indexActionResult = $response->getActionResult('indexPage');
|
||||
|
||||
//$this->meilisearch->getService()->getClient()->index($item->getType())->addDocuments();
|
||||
|
||||
$result = false;
|
||||
|
||||
DebugUtility::debug('PageIndexer');
|
||||
exit();
|
||||
|
||||
|
||||
if ($this->loggingEnabled) {
|
||||
$logSeverity = MeilisearchLogManager::INFO;
|
||||
@@ -404,4 +369,21 @@ class PageIndexer extends Indexer
|
||||
return Rootline::getAccessRootlineByPageId($pageId, $mountPointParameter);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Builds the Meilisearch document for the current page.
|
||||
*
|
||||
* @return array A document representing the page
|
||||
*/
|
||||
protected function getPageDocument()
|
||||
{
|
||||
/** @var Builder $documentBuilder */
|
||||
$documentBuilder = GeneralUtility::makeInstance(Builder::class);
|
||||
$document = $documentBuilder->fromPage($this->page, $this->pageUrl, $this->pageAccessRootline, (string)$this->mountPointParameter);
|
||||
|
||||
self::$pageMeilisearchDocumentId = $document['id'];
|
||||
|
||||
return $document;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user