zwischenstand

This commit is contained in:
Sven Wappler
2021-04-29 18:33:05 +02:00
parent 2c9e27b3b7
commit 0ee2fae261
264 changed files with 263 additions and 21253 deletions

View File

@@ -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;
}
}