From 9d09ea1ec135ee8327d67e944733d68af8c35b58 Mon Sep 17 00:00:00 2001 From: Markus Friedrich Date: Thu, 8 Sep 2022 14:44:44 +0200 Subject: [PATCH 01/21] !!![BUGFIX:BP:11.6] Queue check considers indexing configuration As there may be several indexing configurations per type the queue check has to consider the indexing configuration. The missing check is added by this commit. Ports: #3764 Resolves: #3763 --- Classes/Domain/Index/Queue/QueueItemRepository.php | 8 ++++++-- Classes/IndexQueue/Queue.php | 7 ++++--- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/Classes/Domain/Index/Queue/QueueItemRepository.php b/Classes/Domain/Index/Queue/QueueItemRepository.php index bdf7dea692..44e92e0310 100644 --- a/Classes/Domain/Index/Queue/QueueItemRepository.php +++ b/Classes/Domain/Index/Queue/QueueItemRepository.php @@ -397,16 +397,20 @@ public function containsItem(string $itemType, int $itemUid): bool * @param string $itemType The item's type, usually a table name. * @param int $itemUid The item's uid * @param int $rootPageId + * @param string $indexingConfiguration * @return bool TRUE if the item is found in the queue, FALSE otherwise * * @throws DBALDriverException * @throws DBALException|\Doctrine\DBAL\DBALException */ - public function containsItemWithRootPageId(string $itemType, int $itemUid, int $rootPageId): bool + public function containsItemWithRootPageId(string $itemType, int $itemUid, int $rootPageId, string $indexingConfiguration): bool { $queryBuilder = $this->getQueryBuilderForContainsMethods($itemType, $itemUid); return (bool)$queryBuilder - ->andWhere($queryBuilder->expr()->eq('root', $rootPageId)) + ->andWhere( + $queryBuilder->expr()->eq('root', $rootPageId), + $queryBuilder->expr()->eq('indexing_configuration', $queryBuilder->createNamedParameter($indexingConfiguration)) + ) ->execute() ->fetchOne(); } diff --git a/Classes/IndexQueue/Queue.php b/Classes/IndexQueue/Queue.php index 7bafdb4823..a030d023a2 100644 --- a/Classes/IndexQueue/Queue.php +++ b/Classes/IndexQueue/Queue.php @@ -220,7 +220,7 @@ protected function updateOrAddItemForAllRelatedRootPages(string $itemType, $item continue; } $indexingPriority = $solrConfiguration->getIndexQueueIndexingPriorityByConfigurationName($indexingConfiguration); - $itemInQueueForRootPage = $this->containsItemWithRootPageId($itemType, $itemUid, $rootPageId); + $itemInQueueForRootPage = $this->containsItemWithRootPageId($itemType, $itemUid, $rootPageId, $indexingConfiguration); if ($itemInQueueForRootPage) { // update changed time if that item is in the queue already $changedTime = ($forcedChangeTime > 0) ? $forcedChangeTime : $this->getItemChangedTime($itemType, $itemUid); @@ -482,13 +482,14 @@ public function containsItem(string $itemType, $itemUid): bool * @param int|string $itemUid The item's uid, usually an integer uid, could be a * different value for non-database-record types. * @param int $rootPageId + * @param string $indexingConfiguration * @return bool TRUE if the item is found in the queue, FALSE otherwise * @throws DBALDriverException * @throws DBALException|\Doctrine\DBAL\DBALException */ - public function containsItemWithRootPageId(string $itemType, $itemUid, int $rootPageId): bool + public function containsItemWithRootPageId(string $itemType, $itemUid, int $rootPageId, string $indexingConfiguration): bool { - return $this->queueItemRepository->containsItemWithRootPageId($itemType, (int)$itemUid, $rootPageId); + return $this->queueItemRepository->containsItemWithRootPageId($itemType, (int)$itemUid, $rootPageId, $indexingConfiguration); } /** From 65e1ef22897375fef100a8af1846a2e51773b4f2 Mon Sep 17 00:00:00 2001 From: Markus Friedrich Date: Wed, 31 Aug 2022 14:25:41 +0200 Subject: [PATCH 02/21] !!![TASK:BP:11.6] Introduce queue and queue item interfaces As an initial steps to allow custom index queue types interfaces for queue and queue items are introduced. Additionally custom queue classes can be configured via: plugin.tx_solr.index.queue..indexQueue This is a breaking change for all instances that implement own queues and queue items! Ports: #3764 Resolves: #3763 --- .../Search/AbstractModuleController.php | 5 +- .../Search/IndexQueueModuleController.php | 19 +- Classes/Domain/Index/IndexService.php | 7 +- .../Queue/GarbageRemover/AbstractStrategy.php | 9 +- .../Queue/QueueInitializationService.php | 29 ++- .../Index/Queue/QueueItemRepository.php | 13 +- Classes/IndexQueue/Item.php | 71 +++--- Classes/IndexQueue/ItemInterface.php | 117 +++++++++ .../MountPointAwareItemInterface.php | 81 ++++++ Classes/IndexQueue/Queue.php | 158 +++++++----- ...eueInitializationServiceAwareInterface.php | 36 +++ Classes/IndexQueue/QueueInterface.php | 235 ++++++++++++++++++ .../Configuration/TypoScriptConfiguration.php | 15 ++ Classes/Task/ReIndexTask.php | 8 +- .../Configuration/Reference/TxSolrIndex.rst | 10 + Tests/Integration/IndexQueue/QueueTest.php | 12 +- .../Queue/QueueInitializerServiceTest.php | 6 +- .../TypoScriptConfigurationTest.php | 51 +++- 18 files changed, 751 insertions(+), 131 deletions(-) create mode 100644 Classes/IndexQueue/ItemInterface.php create mode 100644 Classes/IndexQueue/MountPointAwareItemInterface.php create mode 100644 Classes/IndexQueue/QueueInitializationServiceAwareInterface.php create mode 100644 Classes/IndexQueue/QueueInterface.php diff --git a/Classes/Controller/Backend/Search/AbstractModuleController.php b/Classes/Controller/Backend/Search/AbstractModuleController.php index 3cad029d56..b46de7d4e5 100644 --- a/Classes/Controller/Backend/Search/AbstractModuleController.php +++ b/Classes/Controller/Backend/Search/AbstractModuleController.php @@ -19,6 +19,7 @@ use ApacheSolrForTypo3\Solr\Domain\Site\Site; use ApacheSolrForTypo3\Solr\Domain\Site\SiteRepository; use ApacheSolrForTypo3\Solr\IndexQueue\Queue; +use ApacheSolrForTypo3\Solr\IndexQueue\QueueInterface; use ApacheSolrForTypo3\Solr\System\Mvc\Backend\Service\ModuleDataStorageService; use ApacheSolrForTypo3\Solr\System\Solr\SolrConnection as SolrCoreConnection; use Doctrine\DBAL\Driver\Exception as DBALDriverException; @@ -91,9 +92,9 @@ abstract class AbstractModuleController extends ActionController protected ModuleDataStorageService $moduleDataStorageService; /** - * @var Queue + * @var QueueInterface */ - protected Queue $indexQueue; + protected QueueInterface $indexQueue; /** * @var SiteFinder diff --git a/Classes/Controller/Backend/Search/IndexQueueModuleController.php b/Classes/Controller/Backend/Search/IndexQueueModuleController.php index aa994daecd..9a48bcc156 100644 --- a/Classes/Controller/Backend/Search/IndexQueueModuleController.php +++ b/Classes/Controller/Backend/Search/IndexQueueModuleController.php @@ -17,7 +17,10 @@ use ApacheSolrForTypo3\Solr\Backend\IndexingConfigurationSelectorField; use ApacheSolrForTypo3\Solr\Domain\Index\IndexService; +use ApacheSolrForTypo3\Solr\Domain\Index\Queue\QueueInitializationService; use ApacheSolrForTypo3\Solr\IndexQueue\Queue; +use ApacheSolrForTypo3\Solr\IndexQueue\QueueInterface; +use ApacheSolrForTypo3\Solr\IndexQueue\QueueInitializationServiceAwareInterface; use Psr\Http\Message\ResponseInterface; use TYPO3\CMS\Backend\Form\Exception as BackendFormException; use TYPO3\CMS\Core\Http\RedirectResponse; @@ -34,9 +37,9 @@ class IndexQueueModuleController extends AbstractModuleController { /** - * @var Queue + * @var QueueInterface */ - protected Queue $indexQueue; + protected QueueInterface $indexQueue; /** * Initializes the controller before invoking an action method. @@ -48,9 +51,9 @@ protected function initializeAction() } /** - * @param Queue $indexQueue + * @param QueueInterface $indexQueue */ - public function setIndexQueue(Queue $indexQueue) + public function setIndexQueue(QueueInterface $indexQueue) { $this->indexQueue = $indexQueue; } @@ -121,7 +124,13 @@ public function initializeIndexQueueAction(): ResponseInterface if ((!empty($indexingConfigurationsToInitialize)) && (is_array($indexingConfigurationsToInitialize))) { // initialize selected indexing configuration try { - $initializedIndexingConfigurations = $this->indexQueue->getInitializationService()->initializeBySiteAndIndexConfigurations($this->selectedSite, $indexingConfigurationsToInitialize); + if ($this->indexQueue instanceof QueueInitializationServiceAwareInterface) { + $initializationService = $this->indexQueue->getQueueInitializationService(); + } else { + $initializationService = GeneralUtility::makeInstance(QueueInitializationService::class); + } + + $initializedIndexingConfigurations = $initializationService->initializeBySiteAndIndexConfigurations($this->selectedSite, $indexingConfigurationsToInitialize); } catch (\Throwable $e) { $this->addFlashMessage( sprintf( diff --git a/Classes/Domain/Index/IndexService.php b/Classes/Domain/Index/IndexService.php index dca8b87b54..0cb2d45854 100644 --- a/Classes/Domain/Index/IndexService.php +++ b/Classes/Domain/Index/IndexService.php @@ -20,6 +20,7 @@ use ApacheSolrForTypo3\Solr\IndexQueue\Indexer; use ApacheSolrForTypo3\Solr\IndexQueue\Item; use ApacheSolrForTypo3\Solr\IndexQueue\Queue; +use ApacheSolrForTypo3\Solr\IndexQueue\QueueInterface; use ApacheSolrForTypo3\Solr\System\Configuration\TypoScriptConfiguration; use ApacheSolrForTypo3\Solr\System\Logging\SolrLogManager; use ApacheSolrForTypo3\Solr\Task\IndexQueueWorkerTask; @@ -48,9 +49,9 @@ class IndexService protected ?IndexQueueWorkerTask $contextTask = null; /** - * @var Queue + * @var QueueInterface */ - protected Queue $indexQueue; + protected QueueInterface $indexQueue; /** * @var Dispatcher @@ -71,7 +72,7 @@ class IndexService */ public function __construct( Site $site, - Queue $queue = null, + QueueInterface $queue = null, Dispatcher $dispatcher = null, SolrLogManager $solrLogManager = null ) { diff --git a/Classes/Domain/Index/Queue/GarbageRemover/AbstractStrategy.php b/Classes/Domain/Index/Queue/GarbageRemover/AbstractStrategy.php index 6fdeaf8293..293529ef13 100644 --- a/Classes/Domain/Index/Queue/GarbageRemover/AbstractStrategy.php +++ b/Classes/Domain/Index/Queue/GarbageRemover/AbstractStrategy.php @@ -18,6 +18,7 @@ use ApacheSolrForTypo3\Solr\ConnectionManager; use ApacheSolrForTypo3\Solr\GarbageCollectorPostProcessor; use ApacheSolrForTypo3\Solr\IndexQueue\Queue; +use ApacheSolrForTypo3\Solr\IndexQueue\QueueInterface; use ApacheSolrForTypo3\Solr\System\Logging\SolrLogManager; use ApacheSolrForTypo3\Solr\System\Solr\SolrConnection; use InvalidArgumentException; @@ -30,9 +31,9 @@ abstract class AbstractStrategy { /** - * @var Queue + * @var QueueInterface */ - protected Queue $queue; + protected QueueInterface $queue; /** * @var ConnectionManager @@ -41,11 +42,11 @@ abstract class AbstractStrategy /** * AbstractStrategy constructor. - * @param Queue|null $queue + * @param QueueInterface|null $queue * @param ConnectionManager|null $connectionManager */ public function __construct( - Queue $queue = null, + QueueInterface $queue = null, ConnectionManager $connectionManager = null ) { $this->queue = $queue ?? GeneralUtility::makeInstance(Queue::class); diff --git a/Classes/Domain/Index/Queue/QueueInitializationService.php b/Classes/Domain/Index/Queue/QueueInitializationService.php index 459c381276..52c7bc1cc3 100644 --- a/Classes/Domain/Index/Queue/QueueInitializationService.php +++ b/Classes/Domain/Index/Queue/QueueInitializationService.php @@ -20,12 +20,13 @@ use ApacheSolrForTypo3\Solr\Domain\Site\Site; use ApacheSolrForTypo3\Solr\IndexQueue\InitializationPostProcessor; use ApacheSolrForTypo3\Solr\IndexQueue\Initializer\AbstractInitializer; -use ApacheSolrForTypo3\Solr\IndexQueue\Queue; +use ApacheSolrForTypo3\Solr\IndexQueue\QueueInterface; use Doctrine\DBAL\ConnectionException; use Doctrine\DBAL\Exception as DBALException; use Throwable; use TYPO3\CMS\Core\Utility\GeneralUtility; use UnexpectedValueException; +use ApacheSolrForTypo3\Solr\IndexQueue\QueueInitializationServiceAwareInterface; /** * The queue initialization service is responsible to run the initialization of the index queue for a combination of sites @@ -36,17 +37,14 @@ */ class QueueInitializationService { - /** - * @var Queue - */ - protected Queue $queue; + protected bool $clearQueueOnInitialization = true; /** - * QueueInitializationService constructor. + * @param bool $clearQueueOnInitialization */ - public function __construct(Queue $queue) + public function setClearQueueOnInitialization(bool $clearQueueOnInitialization): void { - $this->queue = $queue; + $this->clearQueueOnInitialization = $clearQueueOnInitialization; } /** @@ -138,10 +136,21 @@ public function initializeBySiteAndIndexConfigurations(Site $site, array $indexi */ protected function applyInitialization(Site $site, string $indexingConfigurationName): bool { + $solrConfiguration = $site->getSolrConfiguration(); + + /** @var QueueInterface $queue */ + $queue = GeneralUtility::makeInstance( + $solrConfiguration->getIndexQueueClassByConfigurationName($indexingConfigurationName) + ); + if ($queue instanceof QueueInitializationServiceAwareInterface) { + $queue->setQueueInitializationService($this); + } + // clear queue - $this->queue->deleteItemsBySite($site, $indexingConfigurationName); + if ($this->clearQueueOnInitialization) { + $queue->deleteItemsBySite($site, $indexingConfigurationName); + } - $solrConfiguration = $site->getSolrConfiguration(); $type = $solrConfiguration->getIndexQueueTypeOrFallbackToConfigurationName($indexingConfigurationName); $initializerClass = $solrConfiguration->getIndexQueueInitializerClassByConfigurationName($indexingConfigurationName); $indexConfiguration = $solrConfiguration->getIndexQueueConfigurationByName($indexingConfigurationName); diff --git a/Classes/Domain/Index/Queue/QueueItemRepository.php b/Classes/Domain/Index/Queue/QueueItemRepository.php index 44e92e0310..7391c1fe4d 100644 --- a/Classes/Domain/Index/Queue/QueueItemRepository.php +++ b/Classes/Domain/Index/Queue/QueueItemRepository.php @@ -19,6 +19,7 @@ use ApacheSolrForTypo3\Solr\Domain\Site\Site; use ApacheSolrForTypo3\Solr\IndexQueue\Item; +use ApacheSolrForTypo3\Solr\IndexQueue\ItemInterface; use ApacheSolrForTypo3\Solr\System\Logging\SolrLogManager; use ApacheSolrForTypo3\Solr\System\Records\AbstractRepository; use Doctrine\DBAL\ConnectionException; @@ -145,12 +146,12 @@ public function flushErrorsBySite(Site $site): int /** * Flushes the error for a single item. * - * @param Item $item + * @param ItemInterface $item * @return int affected rows * * @throws DBALException|\Doctrine\DBAL\DBALException */ - public function flushErrorByItem(Item $item): int + public function flushErrorByItem(ItemInterface $item): int { $queryBuilder = $this->getQueryBuilder(); return (int)$this->getPreparedFlushErrorQuery($queryBuilder) @@ -974,12 +975,12 @@ public function markItemAsFailed($item, string $errorMessage = ''): int /** * Sets the timestamp of when an item last has been indexed. * - * @param Item $item + * @param ItemInterface $item * @return int affected rows * * @throws DBALException|\Doctrine\DBAL\DBALException */ - public function updateIndexTimeByItem(Item $item): int + public function updateIndexTimeByItem(ItemInterface $item): int { $queryBuilder = $this->getQueryBuilder(); return (int)$queryBuilder @@ -992,13 +993,13 @@ public function updateIndexTimeByItem(Item $item): int /** * Sets the change timestamp of an item. * - * @param Item $item + * @param ItemInterface $item * @param int $changedTime * @return int affected rows * * @throws DBALException|\Doctrine\DBAL\DBALException */ - public function updateChangedTimeByItem(Item $item, int $changedTime = 0): int + public function updateChangedTimeByItem(ItemInterface $item, int $changedTime = 0): int { $queryBuilder = $this->getQueryBuilder(); return (int)$queryBuilder diff --git a/Classes/IndexQueue/Item.php b/Classes/IndexQueue/Item.php index 76420642f9..436786a8e4 100644 --- a/Classes/IndexQueue/Item.php +++ b/Classes/IndexQueue/Item.php @@ -35,14 +35,8 @@ * * @author Ingo Renner */ -class Item +class Item implements ItemInterface, MountPointAwareItemInterface { - const STATE_BLOCKED = -1; - - const STATE_PENDING = 0; - - const STATE_INDEXED = 1; - /** * The item's uid in the index queue (tx_solr_indexqueue_item.uid) * @@ -115,6 +109,13 @@ class Item */ protected ?int $recordUid = null; + /** + * The indexing priority + * + * @var int + */ + protected int $indexingPriority = 0; + /** * The record itself * @@ -169,6 +170,7 @@ public function __construct( $this->indexingConfigurationName = $itemMetaData['indexing_configuration'] ?? ''; $this->hasIndexingProperties = (boolean)($itemMetaData['has_indexing_properties'] ?? false); + $this->indexingPriority = (int)($itemMetaData['indexing_priority'] ?? 0); if (!empty($fullRecord)) { $this->record = $fullRecord; @@ -181,7 +183,7 @@ public function __construct( /** * Getter for Index Queue UID * - * @return int + * @return int|null */ public function getIndexQueueUid(): ?int { @@ -201,7 +203,7 @@ public function getRootPageUid(): ?int /** * Returns mount point identifier * - * @return string + * @return string|null */ public function getMountPointIdentifier(): ?string { @@ -233,6 +235,8 @@ public function getHasErrors(): bool } /** + * Items state: pending, indexed, blocked + * * @return int */ public function getState(): int @@ -263,17 +267,17 @@ public function getSite(): ?Site /** * Returns the type/tablename of the queue record. * - * @return mixed|string + * @return string|null */ - public function getType() + public function getType(): ?string { return $this->type; } /** - * @param $type + * @param string $type */ - public function setType($type) + public function setType(string $type): void { $this->type = $type; } @@ -281,9 +285,9 @@ public function setType($type) /** * Returns the name of the index configuration that was used to create this record. * - * @return mixed|string + * @return string */ - public function getIndexingConfigurationName() + public function getIndexingConfigurationName(): string { return $this->indexingConfigurationName; } @@ -291,7 +295,7 @@ public function getIndexingConfigurationName() /** * @param string $indexingConfigurationName */ - public function setIndexingConfigurationName(string $indexingConfigurationName) + public function setIndexingConfigurationName(string $indexingConfigurationName): void { $this->indexingConfigurationName = $indexingConfigurationName; } @@ -299,9 +303,9 @@ public function setIndexingConfigurationName(string $indexingConfigurationName) /** * Returns the timestamp when this queue item was changed. * - * @return int|mixed + * @return int|null */ - public function getChanged() + public function getChanged(): ?int { return $this->changed; } @@ -309,9 +313,9 @@ public function getChanged() /** * Returns the timestamp when this queue item was indexed. * - * @return int|mixed + * @return int|null */ - public function getIndexed() + public function getIndexed(): ?int { return $this->indexed; } @@ -321,7 +325,7 @@ public function getIndexed() * * @param int $changed */ - public function setChanged(int $changed) + public function setChanged(int $changed): void { $this->changed = $changed; } @@ -329,13 +333,14 @@ public function setChanged(int $changed) /** * Returns the uid of related record (item_uid). * - * @return mixed + * @return int The uid of the item record, usually an integer uid, could be a + * different value for non-database-record types. */ public function getRecordUid() { $this->getRecord(); - return $this->record['uid']; + return (int)$this->record['uid']; } /** @@ -365,7 +370,7 @@ public function getRecord(): array * * @param array $record */ - public function setRecord(array $record) + public function setRecord(array $record): void { $this->record = $record; } @@ -386,7 +391,7 @@ public function getRecordPageId(): int * Stores the indexing properties. * @throws DBALException|\Doctrine\DBAL\DBALException */ - public function storeIndexingProperties() + public function storeIndexingProperties(): void { $this->indexQueueIndexingPropertyRepository->removeByRootPidAndIndexQueueUid((int)($this->rootPageUid), (int)($this->indexQueueUid)); @@ -408,7 +413,7 @@ public function hasIndexingProperties(): bool /** * Writes all indexing properties. */ - protected function writeIndexingProperties() + protected function writeIndexingProperties(): void { $properties = []; foreach ($this->indexingProperties as $propertyKey => $propertyValue) { @@ -444,7 +449,7 @@ public function hasIndexingProperty(string $key): bool * @throws DBALDriverException * @throws DBALException */ - public function loadIndexingProperties() + public function loadIndexingProperties(): void { if ($this->indexingPropertiesLoaded) { return; @@ -471,7 +476,7 @@ public function loadIndexingProperties() * @throws DBALDriverException * @throws DBALException */ - public function setIndexingProperty(string $key, $value) + public function setIndexingProperty(string $key, $value): void { // make sure to not interfere with existing indexing properties $this->loadIndexingProperties(); @@ -540,4 +545,14 @@ public function getIndexingPropertyKeys(): array return array_keys($this->indexingProperties); } + + /** + * Returns the index priority. + * + * @return int + */ + public function getIndexPriority(): int + { + return $this->indexingPriority; + } } diff --git a/Classes/IndexQueue/ItemInterface.php b/Classes/IndexQueue/ItemInterface.php new file mode 100644 index 0000000000..3bb37a249a --- /dev/null +++ b/Classes/IndexQueue/ItemInterface.php @@ -0,0 +1,117 @@ + */ -class Queue +class Queue implements QueueInterface, QueueInitializationServiceAwareInterface { /** * @var RootPageResolver @@ -81,26 +81,26 @@ class Queue /** * Queue constructor. - * @param RootPageResolver|null $rootPageResolver - * @param ConfigurationAwareRecordService|null $recordService - * @param QueueItemRepository|null $queueItemRepository - * @param QueueStatisticsRepository|null $queueStatisticsRepository - * @param QueueInitializationService|null $queueInitializationService + * + * @param ?RootPageResolver|null $rootPageResolver + * @param ?ConfigurationAwareRecordService|null $recordService + * @param ?QueueItemRepository|null $queueItemRepository + * @param ?QueueStatisticsRepository|null $queueStatisticsRepository + * @param ?FrontendEnvironment|null $frontendEnvironment */ public function __construct( - RootPageResolver $rootPageResolver = null, - ConfigurationAwareRecordService $recordService = null, - QueueItemRepository $queueItemRepository = null, - QueueStatisticsRepository $queueStatisticsRepository = null, - QueueInitializationService $queueInitializationService = null, - FrontendEnvironment $frontendEnvironment = null + ?RootPageResolver $rootPageResolver = null, + ?ConfigurationAwareRecordService $recordService = null, + ?QueueItemRepository $queueItemRepository = null, + ?QueueStatisticsRepository $queueStatisticsRepository = null, + ?FrontendEnvironment $frontendEnvironment = null ) { $this->logger = GeneralUtility::makeInstance(SolrLogManager::class, __CLASS__); + $this->rootPageResolver = $rootPageResolver ?? GeneralUtility::makeInstance(RootPageResolver::class); $this->recordService = $recordService ?? GeneralUtility::makeInstance(ConfigurationAwareRecordService::class); $this->queueItemRepository = $queueItemRepository ?? GeneralUtility::makeInstance(QueueItemRepository::class); $this->queueStatisticsRepository = $queueStatisticsRepository ?? GeneralUtility::makeInstance(QueueStatisticsRepository::class); - $this->queueInitializationService = $queueInitializationService ?? GeneralUtility::makeInstance(QueueInitializationService::class, $this); $this->frontendEnvironment = $frontendEnvironment ?? GeneralUtility::makeInstance(FrontendEnvironment::class); } @@ -150,14 +150,47 @@ public function getLastIndexedItemId(int $rootPageId): int return $lastIndexedItemId; } + /** + * @param QueueInitializationService $queueInitializationService + */ + public function setQueueInitializationService(QueueInitializationService $queueInitializationService): void + { + $this->queueInitializationService = $queueInitializationService; + } + /** * @return QueueInitializationService */ - public function getInitializationService(): QueueInitializationService + public function getQueueInitializationService(): QueueInitializationService { + if (!isset($this->queueInitializationService)) { + trigger_error( + 'queueInitializationService is no longer initalized automatically, till EXT:solr supports DI' + . ' the QueueInitializationService has to be set manually, fallback will be removed in v13.', + E_USER_DEPRECATED + ); + $this->queueInitializationService = GeneralUtility::makeInstance(QueueInitializationService::class); + } + return $this->queueInitializationService; } + /** + * @return QueueInitializationService + * @deprecated Queue->getInitializationService is deprecated and will be removed in v12. + * Use Queue->getQueueInitializationService instead or create a fresh instance. + */ + public function getInitializationService(): QueueInitializationService + { + trigger_error( + 'Queue->getInitializationService is deprecated and will be removed in v13.' + . ' Use Queue->getQueueInitializationService instead or create a fresh instance.', + E_USER_DEPRECATED + ); + + return $this->getQueueInitializationService(); + } + /** * Marks an item as needing (re)indexing. * @@ -169,12 +202,13 @@ public function getInitializationService(): QueueInitializationService * @param string $itemType The item's type, usually a table name. * @param int|string $itemUid The item's uid, usually an integer uid, could be a different value for non-database-record types. * @param int $forcedChangeTime The change time for the item if set, otherwise value from getItemChangedTime() is used. + * @param array|null $validLanguageUids List of valid language uids, others will be ignored. Depends on your queue implementation, may be irrelevant * @return int Number of updated/created items * @throws DBALDriverException * @throws DBALException|\Doctrine\DBAL\DBALException * @throws Throwable */ - public function updateItem(string $itemType, $itemUid, int $forcedChangeTime = 0): int + public function updateItem(string $itemType, $itemUid, int $forcedChangeTime = 0, ?array $validLanguageUids = null): int { $updateCount = $this->updateOrAddItemForAllRelatedRootPages($itemType, $itemUid, $forcedChangeTime); return $this->postProcessIndexQueueUpdateItem($itemType, $itemUid, $updateCount, $forcedChangeTime); @@ -195,7 +229,7 @@ protected function updateOrAddItemForAllRelatedRootPages(string $itemType, $item { $updateCount = 0; try { - $rootPageIds = $this->rootPageResolver->getResponsibleRootPageIds($itemType, $itemUid); + $rootPageIds = $this->rootPageResolver->getResponsibleRootPageIds($itemType, (int)$itemUid); } catch (InvalidArgumentException $e) { $this->deleteItem($itemType, $itemUid); return 0; @@ -215,7 +249,7 @@ protected function updateOrAddItemForAllRelatedRootPages(string $itemType, $item } $solrConfiguration = $site->getSolrConfiguration(); - $indexingConfiguration = $this->recordService->getIndexingConfigurationName($itemType, $itemUid, $solrConfiguration); + $indexingConfiguration = $this->recordService->getIndexingConfigurationName($itemType, (int)$itemUid, $solrConfiguration); if ($indexingConfiguration === null) { continue; } @@ -223,8 +257,8 @@ protected function updateOrAddItemForAllRelatedRootPages(string $itemType, $item $itemInQueueForRootPage = $this->containsItemWithRootPageId($itemType, $itemUid, $rootPageId, $indexingConfiguration); if ($itemInQueueForRootPage) { // update changed time if that item is in the queue already - $changedTime = ($forcedChangeTime > 0) ? $forcedChangeTime : $this->getItemChangedTime($itemType, $itemUid); - $updatedRows = $this->queueItemRepository->updateExistingItemByItemTypeAndItemUidAndRootPageId($itemType, $itemUid, $rootPageId, $changedTime, $indexingConfiguration, $indexingPriority); + $changedTime = ($forcedChangeTime > 0) ? $forcedChangeTime : $this->getItemChangedTime($itemType, (int)$itemUid); + $updatedRows = $this->queueItemRepository->updateExistingItemByItemTypeAndItemUidAndRootPageId($itemType, (int)$itemUid, $rootPageId, $changedTime, $indexingConfiguration, $indexingPriority); } else { // add the item since it's not in the queue yet $updatedRows = $this->addNewItem($itemType, $itemUid, $indexingConfiguration, $rootPageId, $indexingPriority); @@ -257,7 +291,7 @@ protected function postProcessIndexQueueUpdateItem( foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['postProcessIndexQueueUpdateItem'] as $classReference) { $updateHandler = $this->getHookImplementation($classReference); - $updateCount = $updateHandler->postProcessIndexQueueUpdateItem($itemType, $itemUid, $updateCount, $forcedChangeTime); + $updateCount = $updateHandler->postProcessIndexQueueUpdateItem($itemType, (int)$itemUid, $updateCount, $forcedChangeTime); } return $updateCount; @@ -288,10 +322,10 @@ public function getErrorsBySite(Site $site): array /** * Resets all the errors for all index queue items. * - * @return mixed + * @return int affected rows * @throws DBALException|\Doctrine\DBAL\DBALException */ - public function resetAllErrors() + public function resetAllErrors(): int { return $this->queueItemRepository->flushAllErrors(); } @@ -300,10 +334,10 @@ public function resetAllErrors() * Resets the errors in the index queue for a specific site * * @param Site $site - * @return mixed + * @return int affected rows * @throws DBALException|\Doctrine\DBAL\DBALException */ - public function resetErrorsBySite(Site $site) + public function resetErrorsBySite(Site $site): int { return $this->queueItemRepository->flushErrorsBySite($site); } @@ -311,11 +345,11 @@ public function resetErrorsBySite(Site $site) /** * Resets the error in the index queue for a specific item * - * @param Item $item - * @return mixed + * @param ItemInterface $item + * @return int affected rows * @throws DBALException|\Doctrine\DBAL\DBALException */ - public function resetErrorByItem(Item $item) + public function resetErrorByItem(ItemInterface $item): int { return $this->queueItemRepository->flushErrorByItem($item); } @@ -326,8 +360,7 @@ public function resetErrorByItem(Item $item) * Not meant for public use. * * @param string $itemType The item's type, usually a table name. - * @param int|string $itemUid The item's uid, usually an integer uid, could be a - * different value for non-database-record types. + * @param int|string $itemUid The item's uid, usually an integer uid, could be a different value for non-database-record types. * @param string $indexingConfiguration The item's indexing configuration to use. * Optional, overwrites existing / determined configuration. * @param int $rootPageId @@ -348,31 +381,30 @@ private function addNewItem( $additionalRecordFields = ', doktype, uid'; } - $record = $this->getRecordCached($itemType, $itemUid, $additionalRecordFields); + $record = $this->getRecordCached($itemType, (int)$itemUid, $additionalRecordFields); if (empty($record) || ($itemType === 'pages' && !$this->frontendEnvironment->isAllowedPageType($record, $indexingConfiguration))) { return 0; } - $changedTime = $this->getItemChangedTime($itemType, $itemUid); + $changedTime = $this->getItemChangedTime($itemType, (int)$itemUid); - return $this->queueItemRepository->add($itemType, $itemUid, $rootPageId, $changedTime, $indexingConfiguration, $indexingPriority); + return $this->queueItemRepository->add($itemType, (int)$itemUid, $rootPageId, $changedTime, $indexingConfiguration, $indexingPriority); } /** * Get record to be added in addNewItem * * @param string $itemType The item's type, usually a table name. - * @param int|string $itemUid The item's uid, usually an integer uid, could be a - * different value for non-database-record types. + * @param int $itemUid The item's uid * @param string $additionalRecordFields for sql-query * * @return array|null */ - protected function getRecordCached(string $itemType, $itemUid, string $additionalRecordFields): ?array + protected function getRecordCached(string $itemType, int $itemUid, string $additionalRecordFields): ?array { $cache = GeneralUtility::makeInstance(TwoLevelCache::class, 'runtime'); - $cacheId = md5('Queue' . ':' . 'getRecordCached' . ':' . $itemType . ':' . $itemUid . ':' . 'pid' . $additionalRecordFields); + $cacheId = md5('Queue' . ':' . 'getRecordCached' . ':' . $itemType . ':' . (string)$itemUid . ':' . 'pid' . $additionalRecordFields); $record = $cache->get($cacheId); if (empty($record)) { @@ -393,13 +425,12 @@ protected function getRecordCached(string $itemType, $itemUid, string $additiona * of an item. * * @param string $itemType The item's table name. - * @param int|string $itemUid The item's uid, usually an integer uid, could be a - * different value for non-database-record types. + * @param int $itemUid The item's uid * @return int Timestamp of the item's changed time or future start time * @throws DBALDriverException * @throws DBALException|\Doctrine\DBAL\DBALException */ - protected function getItemChangedTime(string $itemType, $itemUid): int + protected function getItemChangedTime(string $itemType, int $itemUid): int { $itemTypeHasStartTimeColumn = false; $changedTimeColumns = $GLOBALS['TCA'][$itemType]['ctrl']['tstamp']; @@ -430,7 +461,7 @@ protected function getItemChangedTime(string $itemType, $itemUid): int $pageChangedTime = $this->getPageItemChangedTime($record); } - $localizationsChangedTime = $this->queueItemRepository->getLocalizableItemChangedTime($itemType, (int)$itemUid); + $localizationsChangedTime = $this->queueItemRepository->getLocalizableItemChangedTime($itemType, $itemUid); // if start time exists and start time is higher than last changed timestamp // then set changed to the future start time to make the item @@ -465,7 +496,7 @@ protected function getPageItemChangedTime(array $page): int * * @param string $itemType The item's type, usually a table name. * @param int|string $itemUid The item's uid, usually an integer uid, could be a - * different value for non-database-record types. + * different value for non-database-record types. * @return bool TRUE if the item is found in the queue, FALSE otherwise * @throws DBALDriverException * @throws DBALException|\Doctrine\DBAL\DBALException @@ -480,7 +511,7 @@ public function containsItem(string $itemType, $itemUid): bool * * @param string $itemType The item's type, usually a table name. * @param int|string $itemUid The item's uid, usually an integer uid, could be a - * different value for non-database-record types. + * different value for non-database-record types. * @param int $rootPageId * @param string $indexingConfiguration * @return bool TRUE if the item is found in the queue, FALSE otherwise @@ -498,9 +529,9 @@ public function containsItemWithRootPageId(string $itemType, $itemUid, int $root * * @param string $itemType The item's type, usually a table name. * @param int|string $itemUid The item's uid, usually an integer uid, could be a - * different value for non-database-record types. + * different value for non-database-record types. * @return bool TRUE if the item is found in the queue and marked as - * indexed, FALSE otherwise + * indexed, FALSE otherwise * @throws DBALDriverException * @throws DBALException|\Doctrine\DBAL\DBALException */ @@ -513,12 +544,12 @@ public function containsIndexedItem(string $itemType, $itemUid): bool * Removes an item from the Index Queue. * * @param string $itemType The type of the item to remove, usually a table name. - * @param int|string $itemUid The uid of the item to remove + * @param int|string $itemUid The item's uid, usually an integer uid, could be a different value for non-database-record types. * @throws ConnectionException * @throws DBALException * @throws Throwable */ - public function deleteItem(string $itemType, $itemUid) + public function deleteItem(string $itemType, $itemUid): void { $this->queueItemRepository->deleteItem($itemType, (int)$itemUid); } @@ -531,7 +562,7 @@ public function deleteItem(string $itemType, $itemUid) * @throws DBALException * @throws Throwable */ - public function deleteItemsByType(string $itemType) + public function deleteItemsByType(string $itemType): void { $this->queueItemRepository->deleteItemsByType($itemType); } @@ -547,7 +578,7 @@ public function deleteItemsByType(string $itemType) * @throws \Doctrine\DBAL\DBALException * @throws Throwable */ - public function deleteItemsBySite(Site $site, string $indexingConfigurationName = '') + public function deleteItemsBySite(Site $site, string $indexingConfigurationName = ''): void { $this->queueItemRepository->deleteItemsBySite($site, $indexingConfigurationName); } @@ -555,7 +586,7 @@ public function deleteItemsBySite(Site $site, string $indexingConfigurationName /** * Removes all items from the Index Queue. */ - public function deleteAllItems() + public function deleteAllItems(): void { $this->queueItemRepository->deleteAllItems(); } @@ -563,21 +594,21 @@ public function deleteAllItems() /** * Gets a single Index Queue item by its uid. * - * @param int $itemId Index Queue item uid + * @param int|string $itemId item uid * @return Item|null The request Index Queue item or NULL if no item with $itemId was found * @throws DBALDriverException * @throws DBALException|\Doctrine\DBAL\DBALException */ - public function getItem(int $itemId): ?Item + public function getItem($itemId): ?Item { - return $this->queueItemRepository->findItemByUid($itemId); + return $this->queueItemRepository->findItemByUid((int)$itemId); } /** * Gets Index Queue items by type and uid. * * @param string $itemType item type, usually the table name - * @param int|string $itemUid item uid + * @param int|string $itemUid The item's uid, usually an integer uid, could be a different value for non-database-record types. * @return Item[] An array of items matching $itemType and $itemUid * @throws ConnectionException * @throws DBALDriverException @@ -655,35 +686,38 @@ public function getItemsToIndex(Site $site, int $limit = 50): array * Marks an item as failed and causes the indexer to skip the item in the * next run. * - * @param int|Item $item Either the item's Index Queue uid or the complete item + * @param int|ItemInterface $item Either the item's Index Queue uid or the complete item * @param string $errorMessage Error message + * @return int affected rows * @throws DBALException|\Doctrine\DBAL\DBALException */ - public function markItemAsFailed($item, string $errorMessage = '') + public function markItemAsFailed($item, string $errorMessage = ''): int { - $this->queueItemRepository->markItemAsFailed($item, $errorMessage); + return $this->queueItemRepository->markItemAsFailed($item, $errorMessage); } /** * Sets the timestamp of when an item last has been indexed. * - * @param Item $item + * @param ItemInterface $item + * @return int affected rows * @throws DBALException|\Doctrine\DBAL\DBALException */ - public function updateIndexTimeByItem(Item $item) + public function updateIndexTimeByItem(ItemInterface $item): int { - $this->queueItemRepository->updateIndexTimeByItem($item); + return $this->queueItemRepository->updateIndexTimeByItem($item); } /** * Sets the change timestamp of an item. * - * @param Item $item + * @param ItemInterface $item * @param int $forcedChangeTime The change time for the item + * @return int affected rows * @throws DBALException|\Doctrine\DBAL\DBALException */ - public function setForcedChangeTimeByItem(Item $item, int $forcedChangeTime = 0) + public function setForcedChangeTimeByItem(ItemInterface $item, int $forcedChangeTime = 0): int { - $this->queueItemRepository->updateChangedTimeByItem($item, $forcedChangeTime); + return $this->queueItemRepository->updateChangedTimeByItem($item, $forcedChangeTime); } } diff --git a/Classes/IndexQueue/QueueInitializationServiceAwareInterface.php b/Classes/IndexQueue/QueueInitializationServiceAwareInterface.php new file mode 100644 index 0000000000..9b850e82c0 --- /dev/null +++ b/Classes/IndexQueue/QueueInitializationServiceAwareInterface.php @@ -0,0 +1,36 @@ +getValueByPathOrDefaultValue($path, $defaultIfEmpty); } + /** + * This method is used to retrieve the className of a queue initializer for a certain indexing configuration + * + * plugin.tx_solr.index.queue..indexQueue + * + * @param string $configurationName + * @return string + */ + public function getIndexQueueClassByConfigurationName(string $configurationName): string + { + $path = 'plugin.tx_solr.index.queue.' . $configurationName . '.indexQueue'; + return (string)$this->getValueByPathOrDefaultValue($path, Queue::class); + } + /** * Returns the _LOCAL_LANG configuration from the TypoScript. * diff --git a/Classes/Task/ReIndexTask.php b/Classes/Task/ReIndexTask.php index 51c739edd4..fcec5e944b 100644 --- a/Classes/Task/ReIndexTask.php +++ b/Classes/Task/ReIndexTask.php @@ -18,7 +18,7 @@ namespace ApacheSolrForTypo3\Solr\Task; use ApacheSolrForTypo3\Solr\ConnectionManager; -use ApacheSolrForTypo3\Solr\IndexQueue\Queue; +use ApacheSolrForTypo3\Solr\Domain\Index\Queue\QueueInitializationService; use Doctrine\DBAL\ConnectionException as DBALConnectionException; use Doctrine\DBAL\Driver\Exception as DBALDriverException; use Doctrine\DBAL\Exception as DBALException; @@ -59,9 +59,9 @@ public function execute() $cleanUpResult = $this->cleanUpIndex(); // initialize for re-indexing - /* @var Queue $indexQueue */ - $indexQueue = GeneralUtility::makeInstance(Queue::class); - $indexQueueInitializationResults = $indexQueue->getInitializationService() + /* @var QueueInitializationService $indexQueueInitializationService */ + $indexQueueInitializationService = GeneralUtility::makeInstance(QueueInitializationService::class); + $indexQueueInitializationResults = $indexQueueInitializationService ->initializeBySiteAndIndexConfigurations($this->getSite(), $this->indexingConfigurationsToReIndex); return $cleanUpResult && !in_array(false, $indexQueueInitializationResults); diff --git a/Documentation/Configuration/Reference/TxSolrIndex.rst b/Documentation/Configuration/Reference/TxSolrIndex.rst index 41edb3324e..d1a55e385c 100644 --- a/Documentation/Configuration/Reference/TxSolrIndex.rst +++ b/Documentation/Configuration/Reference/TxSolrIndex.rst @@ -231,6 +231,16 @@ Defines the type to index, which is usally the database table. Sometimes you may +queue.[indexConfig].indexQueue +------------------------------ + +:Type: String +:TS Path: plugin.tx_solr.index.queue.[indexConfig].indexQueue +:Since: 11.6 +:Default: + +Class name of custom index queue implementation, falls back to the default index queue (ApacheSolrForTypo3\Solr\IndexQueue\Queue). + queue.[indexConfig].initialization ---------------------------------- diff --git a/Tests/Integration/IndexQueue/QueueTest.php b/Tests/Integration/IndexQueue/QueueTest.php index 6a895e0ca4..7c659c52de 100644 --- a/Tests/Integration/IndexQueue/QueueTest.php +++ b/Tests/Integration/IndexQueue/QueueTest.php @@ -15,6 +15,7 @@ namespace ApacheSolrForTypo3\Solr\Tests\Integration\IndexQueue; +use ApacheSolrForTypo3\Solr\Domain\Index\Queue\QueueInitializationService; use ApacheSolrForTypo3\Solr\Domain\Site\Site; use ApacheSolrForTypo3\Solr\Domain\Site\SiteRepository; use ApacheSolrForTypo3\Solr\IndexQueue\Queue; @@ -43,6 +44,7 @@ protected function setUp(): void parent::setUp(); $this->writeDefaultSolrTestSiteConfiguration(); $this->indexQueue = GeneralUtility::makeInstance(Queue::class); + $this->indexQueue->setQueueInitializationService(GeneralUtility::makeInstance(QueueInitializationService::class)); $this->siteRepository = GeneralUtility::makeInstance(SiteRepository::class); } @@ -78,7 +80,7 @@ public function preFilledQueueContainsRootPageAfterInitialize() // after initialize the prefilled queue item should be lost and the root page should be added again $site = $this->siteRepository->getFirstAvailableSite(); - $this->indexQueue->getInitializationService()->initializeBySiteAndIndexConfiguration($site, 'pages'); + $this->indexQueue->getQueueInitializationService()->initializeBySiteAndIndexConfiguration($site, 'pages'); $this->assertItemsInQueue(1); self::assertTrue($this->indexQueue->containsItem('pages', 1)); @@ -155,10 +157,10 @@ public function mountPagesAreOnlyAddedOnceAfterInitialize() $this->assertEmptyQueue(); $site = $this->siteRepository->getFirstAvailableSite(); - $this->indexQueue->getInitializationService()->initializeBySiteAndIndexConfiguration($site, 'pages'); + $this->indexQueue->getQueueInitializationService()->initializeBySiteAndIndexConfiguration($site, 'pages'); $this->assertItemsInQueue(4); - $this->indexQueue->getInitializationService()->initializeBySiteAndIndexConfiguration($site, 'pages'); + $this->indexQueue->getQueueInitializationService()->initializeBySiteAndIndexConfiguration($site, 'pages'); $this->assertItemsInQueue(4); } @@ -191,7 +193,7 @@ public function canAddCustomPageTypeToTheQueue() }' ); $site = $this->siteRepository->getFirstAvailableSite(); - $this->indexQueue->getInitializationService()->initializeBySiteAndIndexConfiguration($site, 'custom_page_type'); + $this->indexQueue->getQueueInitializationService()->initializeBySiteAndIndexConfiguration($site, 'custom_page_type'); $this->assertItemsInQueue(1); @@ -247,7 +249,7 @@ public function canInitializeMultipleSites() if (is_array($availableSites)) { foreach ($availableSites as $site) { if ($site instanceof Site) { - $this->indexQueue->getInitializationService()->initializeBySiteAndIndexConfiguration($site); + $this->indexQueue->getQueueInitializationService()->initializeBySiteAndIndexConfiguration($site); } } } diff --git a/Tests/Unit/Domain/Index/Queue/QueueInitializerServiceTest.php b/Tests/Unit/Domain/Index/Queue/QueueInitializerServiceTest.php index 2fed50e2cf..99b63eb544 100644 --- a/Tests/Unit/Domain/Index/Queue/QueueInitializerServiceTest.php +++ b/Tests/Unit/Domain/Index/Queue/QueueInitializerServiceTest.php @@ -21,6 +21,7 @@ use ApacheSolrForTypo3\Solr\System\Configuration\TypoScriptConfiguration; use ApacheSolrForTypo3\Solr\Tests\Unit\UnitTest; use PHPUnit\Framework\MockObject\MockObject; +use TYPO3\CMS\Core\Utility\GeneralUtility; /** * @author Timo Hund @@ -33,8 +34,11 @@ class QueueInitializerServiceTest extends UnitTest public function allIndexConfigurationsAreUsedWhenWildcardIsPassed() { $queueMock = $this->getDumbMock(Queue::class); + GeneralUtility::addInstance(Queue::class, $queueMock); + GeneralUtility::addInstance(Queue::class, $queueMock); + /* @var QueueInitializationService|MockObject $service */ - $service = $this->getMockBuilder(QueueInitializationService::class)->onlyMethods(['executeInitializer'])->setConstructorArgs([$queueMock])->getMock(); + $service = $this->getMockBuilder(QueueInitializationService::class)->onlyMethods(['executeInitializer'])->getMock(); $fakeTs = [ 'plugin.' => [ diff --git a/Tests/Unit/System/Configuration/TypoScriptConfigurationTest.php b/Tests/Unit/System/Configuration/TypoScriptConfigurationTest.php index 6b083891b9..58c5869907 100644 --- a/Tests/Unit/System/Configuration/TypoScriptConfigurationTest.php +++ b/Tests/Unit/System/Configuration/TypoScriptConfigurationTest.php @@ -15,6 +15,8 @@ namespace ApacheSolrForTypo3\Solr\Tests\Unit\System\Configuration; +use ApacheSolrForTypo3\Solr\IndexQueue\Initializer\Record; +use ApacheSolrForTypo3\Solr\IndexQueue\Queue; use ApacheSolrForTypo3\Solr\System\Configuration\TypoScriptConfiguration; use ApacheSolrForTypo3\Solr\Tests\Unit\UnitTest; @@ -320,7 +322,6 @@ public function canGetIndexQueueConfigurationNamesByTableName() 'custom_one.' => [ 'type' => 'tx_model_bar', ], - 'custom_two' => 1, 'custom_two.' => [ 'type' => 'tx_model_news', @@ -333,6 +334,54 @@ public function canGetIndexQueueConfigurationNamesByTableName() self::assertEquals(['tx_model_news', 'custom_two'], $configuration->getIndexQueueConfigurationNamesByTableName('tx_model_news')); } + /** + * @test + */ + public function canGetIndexQueueInitializerClassByConfigurationName() + { + $fakeConfigurationArray['plugin.']['tx_solr.'] = [ + 'index.' => [ + 'queue.' => [ + 'tx_model_news' => 1, + 'tx_model_news.' => [ + ], + 'custom_one' => 1, + 'custom_one.' => [ + 'initialization' => 'CustomInitializer', + ], + ], + ], + ]; + + $configuration = new TypoScriptConfiguration($fakeConfigurationArray); + self::assertEquals(Record::class, $configuration->getIndexQueueInitializerClassByConfigurationName('tx_model_news')); + self::assertEquals('CustomInitializer', $configuration->getIndexQueueInitializerClassByConfigurationName('custom_one')); + } + + /** + * @test + */ + public function canGetIndexQueueClassByConfigurationName() + { + $fakeConfigurationArray['plugin.']['tx_solr.'] = [ + 'index.' => [ + 'queue.' => [ + 'tx_model_news' => 1, + 'tx_model_news.' => [ + ], + 'custom_one' => 1, + 'custom_one.' => [ + 'indexQueue' => 'CustomQueue', + ], + ], + ], + ]; + + $configuration = new TypoScriptConfiguration($fakeConfigurationArray); + self::assertEquals(Queue::class, $configuration->getIndexQueueClassByConfigurationName('tx_model_news')); + self::assertEquals('CustomQueue', $configuration->getIndexQueueClassByConfigurationName('custom_one')); + } + /** * @test */ From 1bb43811b833da33c6afd71daf4ceea34dc008fe Mon Sep 17 00:00:00 2001 From: Markus Friedrich Date: Fri, 2 Sep 2022 13:14:46 +0200 Subject: [PATCH 03/21] [TASK:BP:11.6] Consider queue initialization status Queue initialization status returned by the QueueInitializationService isn't considered in the backend module and a success message is always shown. This commit adds a check for the returned status and displays an error message similiar to the message that is shown if an exceptions occured. Ports: #3764 Resolves: #3763 --- .../Search/AbstractModuleController.php | 2 +- .../Search/IndexQueueModuleController.php | 137 +++++++++++++----- .../Statistic/QueueStatisticsRepository.php | 21 ++- 3 files changed, 117 insertions(+), 43 deletions(-) diff --git a/Classes/Controller/Backend/Search/AbstractModuleController.php b/Classes/Controller/Backend/Search/AbstractModuleController.php index b46de7d4e5..b6221809a6 100644 --- a/Classes/Controller/Backend/Search/AbstractModuleController.php +++ b/Classes/Controller/Backend/Search/AbstractModuleController.php @@ -62,7 +62,7 @@ abstract class AbstractModuleController extends ActionController protected int $requestedPageUID; /** - * @var ?Site + * @var Site|null */ protected ?Site $selectedSite = null; diff --git a/Classes/Controller/Backend/Search/IndexQueueModuleController.php b/Classes/Controller/Backend/Search/IndexQueueModuleController.php index 9a48bcc156..4bb248d7ae 100644 --- a/Classes/Controller/Backend/Search/IndexQueueModuleController.php +++ b/Classes/Controller/Backend/Search/IndexQueueModuleController.php @@ -20,7 +20,6 @@ use ApacheSolrForTypo3\Solr\Domain\Index\Queue\QueueInitializationService; use ApacheSolrForTypo3\Solr\IndexQueue\Queue; use ApacheSolrForTypo3\Solr\IndexQueue\QueueInterface; -use ApacheSolrForTypo3\Solr\IndexQueue\QueueInitializationServiceAwareInterface; use Psr\Http\Message\ResponseInterface; use TYPO3\CMS\Backend\Form\Exception as BackendFormException; use TYPO3\CMS\Core\Http\RedirectResponse; @@ -32,25 +31,43 @@ /** * Index Queue Module * + * @todo: Support all index queues in actions beside "initializeIndexQueueAction" and + * "resetLogErrorsAction" + * * @author Ingo Renner */ class IndexQueueModuleController extends AbstractModuleController { /** + * The default Solr Queue + * @var QueueInterface */ protected QueueInterface $indexQueue; + /** + * Enabled Solr index queues + * + * @var QueueInterface[] + */ + protected array $enabledIndexQueues; + /** * Initializes the controller before invoking an action method. */ protected function initializeAction() { parent::initializeAction(); - $this->indexQueue = GeneralUtility::makeInstance(Queue::class); + + $this->enabledIndexQueues = $this->getIndexQueues(); + if (!empty($this->enabledIndexQueues)) { + $this->indexQueue = $this->enabledIndexQueues[Queue::class] ?? reset($this->enabledIndexQueues); + } } /** + * Sets the default queue to use + * * @param QueueInterface $indexQueue */ public function setIndexQueue(QueueInterface $indexQueue) @@ -88,6 +105,11 @@ protected function canQueueSelectedSite(): bool if ($this->selectedSite === null || empty($this->solrConnectionManager->getConnectionsBySite($this->selectedSite))) { return false; } + + if (!isset($this->indexQueue)) { + return false; + } + $enabledIndexQueueConfigurationNames = $this->selectedSite->getSolrConfiguration()->getEnabledIndexQueueConfigurationNames(); if (empty($enabledIndexQueueConfigurationNames)) { return false; @@ -122,24 +144,63 @@ public function initializeIndexQueueAction(): ResponseInterface $indexingConfigurationsToInitialize = GeneralUtility::_POST('tx_solr-index-queue-initialization'); if ((!empty($indexingConfigurationsToInitialize)) && (is_array($indexingConfigurationsToInitialize))) { - // initialize selected indexing configuration - try { - if ($this->indexQueue instanceof QueueInitializationServiceAwareInterface) { - $initializationService = $this->indexQueue->getQueueInitializationService(); - } else { - $initializationService = GeneralUtility::makeInstance(QueueInitializationService::class); + /** @var QueueInitializationService $initializationService */ + $initializationService = GeneralUtility::makeInstance(QueueInitializationService::class); + foreach ($indexingConfigurationsToInitialize as $configurationToInitialize) { + $indexQueueClass = $this->selectedSite->getSolrConfiguration()->getIndexQueueClassByConfigurationName($configurationToInitialize); + $indexQueue = $this->enabledIndexQueues[$indexQueueClass]; + + try { + $status = $initializationService->initializeBySiteAndIndexConfigurations($this->selectedSite, [$configurationToInitialize]); + $initializedIndexingConfiguration = [ + 'status' => $status[$configurationToInitialize], + 'statistic' => 0, + ]; + if ($status[$configurationToInitialize] === true) { + $initializedIndexingConfiguration['totalCount'] = $indexQueue->getStatisticsBySite($this->selectedSite, $configurationToInitialize)->getTotalCount(); + } + $initializedIndexingConfigurations[$configurationToInitialize] = $initializedIndexingConfiguration; + } catch (\Throwable $e) { + $this->addFlashMessage( + sprintf( + LocalizationUtility::translate( + 'solr.backend.index_queue_module.flashmessage.initialize_failure', + 'Solr' + ), + $e->getMessage(), + $e->getCode() + ), + LocalizationUtility::translate( + 'solr.backend.index_queue_module.flashmessage.initialize_failure.title', + 'Solr' + ), + FlashMessage::ERROR + ); } + } + } else { + $messageLabel = 'solr.backend.index_queue_module.flashmessage.initialize.no_selection'; + $titleLabel = 'solr.backend.index_queue_module.flashmessage.not_initialized.title'; + $this->addFlashMessage( + LocalizationUtility::translate($messageLabel, 'Solr'), + LocalizationUtility::translate($titleLabel, 'Solr'), + FlashMessage::WARNING + ); + } - $initializedIndexingConfigurations = $initializationService->initializeBySiteAndIndexConfigurations($this->selectedSite, $indexingConfigurationsToInitialize); - } catch (\Throwable $e) { + $messagesForConfigurations = []; + foreach ($initializedIndexingConfigurations as $indexingConfigurationName => $initializationData) { + if ($initializationData['status'] === true) { + $messagesForConfigurations[] = $indexingConfigurationName . ' (' . $initializationData['totalCount'] . ' records)'; + } else { $this->addFlashMessage( sprintf( LocalizationUtility::translate( 'solr.backend.index_queue_module.flashmessage.initialize_failure', 'Solr' ), - $e->getMessage(), - $e->getCode() + $indexingConfigurationName, + 1662117020 ), LocalizationUtility::translate( 'solr.backend.index_queue_module.flashmessage.initialize_failure.title', @@ -148,22 +209,9 @@ public function initializeIndexQueueAction(): ResponseInterface FlashMessage::ERROR ); } - } else { - $messageLabel = 'solr.backend.index_queue_module.flashmessage.initialize.no_selection'; - $titleLabel = 'solr.backend.index_queue_module.flashmessage.not_initialized.title'; - $this->addFlashMessage( - LocalizationUtility::translate($messageLabel, 'Solr'), - LocalizationUtility::translate($titleLabel, 'Solr'), - FlashMessage::WARNING - ); - } - $messagesForConfigurations = []; - foreach (array_keys($initializedIndexingConfigurations) as $indexingConfigurationName) { - $itemCount = $this->indexQueue->getStatisticsBySite($this->selectedSite, $indexingConfigurationName)->getTotalCount(); - $messagesForConfigurations[] = $indexingConfigurationName . ' (' . $itemCount . ' records)'; } - if (!empty($initializedIndexingConfigurations)) { + if (!empty($messagesForConfigurations)) { $messageLabel = 'solr.backend.index_queue_module.flashmessage.initialize.success'; $titleLabel = 'solr.backend.index_queue_module.flashmessage.initialize.title'; $this->addFlashMessage( @@ -183,17 +231,19 @@ public function initializeIndexQueueAction(): ResponseInterface */ public function resetLogErrorsAction(): ResponseInterface { - $resetResult = $this->indexQueue->resetAllErrors(); + foreach ($this->enabledIndexQueues as $queue) { + $resetResult = $queue->resetAllErrors(); + + $label = 'solr.backend.index_queue_module.flashmessage.success.reset_errors'; + $severity = FlashMessage::OK; + if (!$resetResult) { + $label = 'solr.backend.index_queue_module.flashmessage.error.reset_errors'; + $severity = FlashMessage::ERROR; + } - $label = 'solr.backend.index_queue_module.flashmessage.success.reset_errors'; - $severity = FlashMessage::OK; - if (!$resetResult) { - $label = 'solr.backend.index_queue_module.flashmessage.error.reset_errors'; - $severity = FlashMessage::ERROR; + $this->addIndexQueueFlashMessage($label, $severity); } - $this->addIndexQueueFlashMessage($label, $severity); - return new RedirectResponse($this->uriBuilder->uriFor('index'), 303); } @@ -278,4 +328,23 @@ protected function addIndexQueueFlashMessage(string $label, int $severity) { $this->addFlashMessage(LocalizationUtility::translate($label, 'Solr'), LocalizationUtility::translate('solr.backend.index_queue_module.flashmessage.title', 'Solr'), $severity); } + + /** + * Get index queues + * + * @return QueueInterface[] + */ + protected function getIndexQueues(): array + { + $queues = []; + $configuration = $this->selectedSite->getSolrConfiguration(); + foreach ($configuration->getEnabledIndexQueueConfigurationNames() as $indexingConfiguration) { + $indexQueueClass = $configuration->getIndexQueueClassByConfigurationName($indexingConfiguration); + if (!isset($queues[$indexQueueClass])) { + $queues[$indexQueueClass] = GeneralUtility::makeInstance($indexQueueClass); + } + } + + return $queues; + } } diff --git a/Classes/Domain/Index/Queue/Statistic/QueueStatisticsRepository.php b/Classes/Domain/Index/Queue/Statistic/QueueStatisticsRepository.php index 3ff4f5a4f2..112c761320 100644 --- a/Classes/Domain/Index/Queue/Statistic/QueueStatisticsRepository.php +++ b/Classes/Domain/Index/Queue/Statistic/QueueStatisticsRepository.php @@ -29,10 +29,12 @@ */ class QueueStatisticsRepository extends AbstractRepository { - /** - * @var string - */ protected string $table = 'tx_solr_indexqueue_item'; + protected string $columnIndexed = 'indexed'; + protected string $columnIndexingConfiguration = 'indexing_configuration'; + protected string $columnChanged = 'changed'; + protected string $columnErrors = 'errors'; + protected string $columnRootpage = 'root'; /** * Extracts the number of pending, indexed and erroneous items from the @@ -53,23 +55,26 @@ public function findOneByRootPidAndOptionalIndexingConfigurationName( $queryBuilder = $this->getQueryBuilder(); $queryBuilder ->add('select', vsprintf('(%s < %s) AS %s', [ - $queryBuilder->quoteIdentifier('indexed'), - $queryBuilder->quoteIdentifier('changed'), + $queryBuilder->quoteIdentifier($this->columnIndexed), + $queryBuilder->quoteIdentifier($this->columnChanged), $queryBuilder->quoteIdentifier('pending'), ]), true) ->add('select', vsprintf('(%s) AS %s', [ - $queryBuilder->expr()->notLike('errors', $queryBuilder->createNamedParameter('')), + $queryBuilder->expr()->notLike($this->columnErrors, $queryBuilder->createNamedParameter('')), $queryBuilder->quoteIdentifier('failed'), ]), true) ->add('select', $queryBuilder->expr()->count('*', 'count'), true) ->from($this->table) ->where( - $queryBuilder->expr()->eq('root', $queryBuilder->createNamedParameter($rootPid, PDO::PARAM_INT)) + $queryBuilder->expr()->eq($this->columnRootpage, $queryBuilder->createNamedParameter($rootPid, PDO::PARAM_INT)) )->groupBy('pending', 'failed'); if (!empty($indexingConfigurationName)) { $queryBuilder->andWhere( - $queryBuilder->expr()->eq('indexing_configuration', $queryBuilder->createNamedParameter($indexingConfigurationName)) + $queryBuilder->expr()->eq( + $this->columnIndexingConfiguration, + $queryBuilder->createNamedParameter($indexingConfigurationName) + ) ); } From 9da6bf79a3a509903e51ed240cc68051a414ee98 Mon Sep 17 00:00:00 2001 From: Markus Friedrich Date: Thu, 8 Sep 2022 09:48:08 +0200 Subject: [PATCH 04/21] !!![TASK:BP:11.6] Introduce specific EXT:solr exceptions Existing exceptions are now based on the recently introduced generic EXT:solr exception. Additionally based on the new generic EXT:solr exception a further exception is introduced, allowing more targeted handling of exceptions: InvalidIndexQueueInitizalizationPostProcessorException This is a breaking change as the base excepion changed and the new exception is no longer based on \UnexpectedValueException. Ports: #3764 Resolves: #3763 --- .../Access/RootlineElementFormatException.php | 4 ++- Classes/ConnectionManager.php | 2 +- Classes/ContentObject/Classification.php | 2 +- .../Search/AbstractModuleController.php | 2 +- .../Queue/GarbageRemover/AbstractStrategy.php | 2 +- .../Queue/QueueInitializationService.php | 10 ++++--- .../RecordMonitor/Helper/RootPageResolver.php | 2 +- .../Queue/UpdateHandler/DataUpdateHandler.php | 2 +- .../AbstractBaseEventListener.php | 2 +- .../LastSearches/LastSearchesRepository.php | 2 +- .../Query/ParameterBuilder/Operator.php | 2 +- .../Search/ResultSet/Facets/FacetRegistry.php | 2 +- .../Facets/InvalidFacetPackageException.php | 4 ++- .../Facets/InvalidFacetParserException.php | 4 ++- .../Facets/InvalidQueryBuilderException.php | 4 ++- .../Facets/InvalidUrlDecoderException.php | 2 +- .../NumericRange/NumericRangeUrlDecoder.php | 2 +- .../ResultSet/Facets/RequirementsService.php | 4 ++- .../Result/Parser/ResultParserRegistry.php | 2 +- .../ResultSet/Result/SearchResultBuilder.php | 2 +- .../Search/ResultSet/Sorting/Sorting.php | 2 +- .../ResultSet/Sorting/SortingHelper.php | 2 +- ...dSiteConfigurationCombinationException.php | 2 +- .../InvalidSiteRootPageException.php | 24 +++++++++++++++++ Classes/Domain/Site/SiteRepository.php | 2 +- Classes/Domain/Variants/IdBuilder.php | 2 +- ...eInitizalizationPostProcessorException.php | 27 +++++++++++++++++++ .../Exception/InvalidArgumentException.php | 27 +++++++++++++++++++ .../Exception/Exception.php | 4 ++- .../Exception/IllegalStateException.php | 4 ++- .../Exception/IndexingException.php | 4 ++- Classes/IndexQueue/Indexer.php | 2 +- Classes/IndexQueue/Item.php | 2 +- Classes/IndexQueue/NoPidException.php | 4 ++- Classes/IndexQueue/Queue.php | 2 +- Classes/LanguageFileUnavailableException.php | 2 +- Classes/NoSolrConnectionFoundException.php | 2 -- Classes/PingFailedException.php | 2 -- Classes/Query/Modifier/Faceting.php | 2 +- Classes/Search/SearchComponentManager.php | 2 +- .../Configuration/TypoScriptConfiguration.php | 4 +-- .../WebRootAllReadyDefinedException.php | 4 ++- .../System/Object/AbstractClassRegistry.php | 2 +- Classes/System/Records/AbstractRepository.php | 2 +- .../System/Records/Pages/PagesRepository.php | 2 +- Classes/System/Solr/Parser/StopWordParser.php | 2 +- .../System/Solr/Service/SolrAdminService.php | 2 +- Classes/System/Url/UrlHelper.php | 2 +- Classes/Task/AbstractSolrTask.php | 2 +- Classes/Task/EventQueueWorkerTask.php | 2 +- Classes/Utility/ManagedResourcesUtility.php | 2 +- ...AbstractSolrFrontendTagBasedViewHelper.php | 2 +- .../AbstractSolrFrontendViewHelper.php | 2 +- .../IfHasAccessToModuleViewHelper.php | 2 +- .../ViewHelpers/Uri/AbstractUriViewHelper.php | 2 +- .../Uri/Facet/AbstractValueViewHelper.php | 13 ++++----- .../Uri/Facet/AddFacetItemViewHelper.php | 3 ++- .../Uri/Facet/RemoveAllFacetsViewHelper.php | 3 ++- .../Uri/Facet/RemoveFacetItemViewHelper.php | 3 ++- .../Uri/Facet/RemoveFacetViewHelper.php | 3 ++- .../Uri/Facet/SetFacetItemViewHelper.php | 3 ++- .../Domain/Site/SiteRepositoryTest.php | 2 +- Tests/Integration/Domain/Site/SiteTest.php | 2 +- Tests/Integration/IndexQueue/IndexerTest.php | 5 ++-- Tests/Integration/IntegrationTest.php | 2 +- .../Helper/RootPageResolverTest.php | 2 +- .../ResultSet/Facets/FacetRegistryTest.php | 2 +- .../NumericRangeUrlDecoderTest.php | 2 +- .../Facets/RequirementsServiceTest.php | 3 ++- .../ResultSet/Sorting/SortingHelperTest.php | 3 ++- .../Search/ResultSet/Sorting/SortingTest.php | 3 ++- Tests/Unit/IndexQueue/IndexerTest.php | 2 +- 72 files changed, 188 insertions(+), 80 deletions(-) create mode 100644 Classes/Domain/Site/Exception/InvalidSiteRootPageException.php create mode 100644 Classes/Exception/Index/Queue/InvalidIndexQueueInitizalizationPostProcessorException.php create mode 100644 Classes/Exception/InvalidArgumentException.php diff --git a/Classes/Access/RootlineElementFormatException.php b/Classes/Access/RootlineElementFormatException.php index 5bf6f69174..3a0ce0e23b 100644 --- a/Classes/Access/RootlineElementFormatException.php +++ b/Classes/Access/RootlineElementFormatException.php @@ -15,11 +15,13 @@ namespace ApacheSolrForTypo3\Solr\Access; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; + /** * Signals a wrong format for the access definition of a page or the content. * * @author Ingo Renner */ -class RootlineElementFormatException extends \InvalidArgumentException +class RootlineElementFormatException extends InvalidArgumentException { } diff --git a/Classes/ConnectionManager.php b/Classes/ConnectionManager.php index 34f14dd051..c59f87769b 100644 --- a/Classes/ConnectionManager.php +++ b/Classes/ConnectionManager.php @@ -19,13 +19,13 @@ use ApacheSolrForTypo3\Solr\Domain\Site\Site; use ApacheSolrForTypo3\Solr\Domain\Site\SiteRepository; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\System\Records\Pages\PagesRepository as PagesRepositoryAtExtSolr; use ApacheSolrForTypo3\Solr\System\Records\SystemLanguage\SystemLanguageRepository; use ApacheSolrForTypo3\Solr\System\Solr\Node; use ApacheSolrForTypo3\Solr\System\Solr\SolrConnection; use ApacheSolrForTypo3\Solr\System\Util\SiteUtility; use Doctrine\DBAL\Driver\Exception as DBALDriverException; -use InvalidArgumentException; use function json_encode; use Throwable; use TYPO3\CMS\Core\SingletonInterface; diff --git a/Classes/ContentObject/Classification.php b/Classes/ContentObject/Classification.php index 0e26b154ad..8750b90f5e 100644 --- a/Classes/ContentObject/Classification.php +++ b/Classes/ContentObject/Classification.php @@ -17,7 +17,7 @@ use ApacheSolrForTypo3\Solr\Domain\Index\Classification\Classification as ClassificationItem; use ApacheSolrForTypo3\Solr\Domain\Index\Classification\ClassificationService; -use InvalidArgumentException; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Frontend\ContentObject\AbstractContentObject; diff --git a/Classes/Controller/Backend/Search/AbstractModuleController.php b/Classes/Controller/Backend/Search/AbstractModuleController.php index b6221809a6..89d3e28309 100644 --- a/Classes/Controller/Backend/Search/AbstractModuleController.php +++ b/Classes/Controller/Backend/Search/AbstractModuleController.php @@ -18,12 +18,12 @@ use ApacheSolrForTypo3\Solr\ConnectionManager; use ApacheSolrForTypo3\Solr\Domain\Site\Site; use ApacheSolrForTypo3\Solr\Domain\Site\SiteRepository; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\IndexQueue\Queue; use ApacheSolrForTypo3\Solr\IndexQueue\QueueInterface; use ApacheSolrForTypo3\Solr\System\Mvc\Backend\Service\ModuleDataStorageService; use ApacheSolrForTypo3\Solr\System\Solr\SolrConnection as SolrCoreConnection; use Doctrine\DBAL\Driver\Exception as DBALDriverException; -use InvalidArgumentException; use Psr\Http\Message\ResponseInterface; use Throwable; use TYPO3\CMS\Backend\Template\Components\Menu\Menu; diff --git a/Classes/Domain/Index/Queue/GarbageRemover/AbstractStrategy.php b/Classes/Domain/Index/Queue/GarbageRemover/AbstractStrategy.php index 293529ef13..a460d2bbd8 100644 --- a/Classes/Domain/Index/Queue/GarbageRemover/AbstractStrategy.php +++ b/Classes/Domain/Index/Queue/GarbageRemover/AbstractStrategy.php @@ -16,12 +16,12 @@ namespace ApacheSolrForTypo3\Solr\Domain\Index\Queue\GarbageRemover; use ApacheSolrForTypo3\Solr\ConnectionManager; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\GarbageCollectorPostProcessor; use ApacheSolrForTypo3\Solr\IndexQueue\Queue; use ApacheSolrForTypo3\Solr\IndexQueue\QueueInterface; use ApacheSolrForTypo3\Solr\System\Logging\SolrLogManager; use ApacheSolrForTypo3\Solr\System\Solr\SolrConnection; -use InvalidArgumentException; use TYPO3\CMS\Core\Utility\GeneralUtility; /** diff --git a/Classes/Domain/Index/Queue/QueueInitializationService.php b/Classes/Domain/Index/Queue/QueueInitializationService.php index 52c7bc1cc3..afe3a8347a 100644 --- a/Classes/Domain/Index/Queue/QueueInitializationService.php +++ b/Classes/Domain/Index/Queue/QueueInitializationService.php @@ -18,15 +18,15 @@ namespace ApacheSolrForTypo3\Solr\Domain\Index\Queue; use ApacheSolrForTypo3\Solr\Domain\Site\Site; +use ApacheSolrForTypo3\Solr\Exception\Index\Queue\InvalidIndexQueueInitizalizationPostProcessorException; use ApacheSolrForTypo3\Solr\IndexQueue\InitializationPostProcessor; use ApacheSolrForTypo3\Solr\IndexQueue\Initializer\AbstractInitializer; +use ApacheSolrForTypo3\Solr\IndexQueue\QueueInitializationServiceAwareInterface; use ApacheSolrForTypo3\Solr\IndexQueue\QueueInterface; use Doctrine\DBAL\ConnectionException; use Doctrine\DBAL\Exception as DBALException; use Throwable; use TYPO3\CMS\Core\Utility\GeneralUtility; -use UnexpectedValueException; -use ApacheSolrForTypo3\Solr\IndexQueue\QueueInitializationServiceAwareInterface; /** * The queue initialization service is responsible to run the initialization of the index queue for a combination of sites @@ -96,6 +96,7 @@ public function initializeBySitesAndConfigurations(array $sites, array $indexing * @throws ConnectionException * @throws Throwable * @throws DBALException + * @throws InvalidIndexQueueInitizalizationPostProcessorException */ public function initializeBySiteAndIndexConfigurations(Site $site, array $indexingConfigurationNames): array { @@ -116,7 +117,10 @@ public function initializeBySiteAndIndexConfigurations(Site $site, array $indexi if ($indexQueueInitializationPostProcessor instanceof InitializationPostProcessor) { $indexQueueInitializationPostProcessor->postProcessIndexQueueInitialization($site, $indexingConfigurationNames, $initializationStatus); } else { - throw new UnexpectedValueException(get_class($indexQueueInitializationPostProcessor) . ' must implement interface ' . InitializationPostProcessor::class, 1345815561); + throw new InvalidIndexQueueInitizalizationPostProcessorException( + get_class($indexQueueInitializationPostProcessor) . ' must implement interface ' . InitializationPostProcessor::class, + 1345815561 + ); } } diff --git a/Classes/Domain/Index/Queue/RecordMonitor/Helper/RootPageResolver.php b/Classes/Domain/Index/Queue/RecordMonitor/Helper/RootPageResolver.php index f89ef3e65a..9f6f1a75ef 100644 --- a/Classes/Domain/Index/Queue/RecordMonitor/Helper/RootPageResolver.php +++ b/Classes/Domain/Index/Queue/RecordMonitor/Helper/RootPageResolver.php @@ -19,11 +19,11 @@ use ApacheSolrForTypo3\Solr\Domain\Site\Site; use ApacheSolrForTypo3\Solr\Domain\Site\SiteRepository; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\System\Cache\TwoLevelCache; use ApacheSolrForTypo3\Solr\System\Configuration\ExtensionConfiguration; use ApacheSolrForTypo3\Solr\System\Page\Rootline; use Doctrine\DBAL\Driver\Exception as DBALDriverException; -use InvalidArgumentException; use RuntimeException; use Throwable; use TYPO3\CMS\Backend\Utility\BackendUtility; diff --git a/Classes/Domain/Index/Queue/UpdateHandler/DataUpdateHandler.php b/Classes/Domain/Index/Queue/UpdateHandler/DataUpdateHandler.php index 92def0e31f..8db8dabd2f 100644 --- a/Classes/Domain/Index/Queue/UpdateHandler/DataUpdateHandler.php +++ b/Classes/Domain/Index/Queue/UpdateHandler/DataUpdateHandler.php @@ -22,6 +22,7 @@ use ApacheSolrForTypo3\Solr\Domain\Index\Queue\RecordMonitor\Helper\RootPageResolver; use ApacheSolrForTypo3\Solr\Domain\Site\SiteInterface; use ApacheSolrForTypo3\Solr\Domain\Site\SiteRepository; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\FrontendEnvironment; use ApacheSolrForTypo3\Solr\IndexQueue\Queue; use ApacheSolrForTypo3\Solr\System\Configuration\TypoScriptConfiguration; @@ -31,7 +32,6 @@ use ApacheSolrForTypo3\Solr\Util; use Doctrine\DBAL\Driver\Exception as DBALDriverException; use Doctrine\DBAL\Exception as DBALException; -use InvalidArgumentException; use Throwable; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Context\Exception\AspectNotFoundException; diff --git a/Classes/Domain/Index/Queue/UpdateHandler/EventListener/AbstractBaseEventListener.php b/Classes/Domain/Index/Queue/UpdateHandler/EventListener/AbstractBaseEventListener.php index a0abef917c..a042b8caff 100644 --- a/Classes/Domain/Index/Queue/UpdateHandler/EventListener/AbstractBaseEventListener.php +++ b/Classes/Domain/Index/Queue/UpdateHandler/EventListener/AbstractBaseEventListener.php @@ -21,8 +21,8 @@ use ApacheSolrForTypo3\Solr\Domain\Index\Queue\UpdateHandler\EventListener\Events\ProcessingFinishedEventInterface; use ApacheSolrForTypo3\Solr\Domain\Index\Queue\UpdateHandler\Events\DataUpdateEventInterface; use ApacheSolrForTypo3\Solr\Domain\Index\Queue\UpdateHandler\GarbageHandler; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\System\Configuration\ExtensionConfiguration; -use InvalidArgumentException; use Psr\EventDispatcher\EventDispatcherInterface; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/Domain/Search/LastSearches/LastSearchesRepository.php b/Classes/Domain/Search/LastSearches/LastSearchesRepository.php index d6c07e8d33..dd494b2a18 100644 --- a/Classes/Domain/Search/LastSearches/LastSearchesRepository.php +++ b/Classes/Domain/Search/LastSearches/LastSearchesRepository.php @@ -15,10 +15,10 @@ namespace ApacheSolrForTypo3\Solr\Domain\Search\LastSearches; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\System\Records\AbstractRepository; use Doctrine\DBAL\Driver\Exception as DBALDriverException; use Doctrine\DBAL\Exception as DBALException; -use InvalidArgumentException; use function json_encode; class LastSearchesRepository extends AbstractRepository diff --git a/Classes/Domain/Search/Query/ParameterBuilder/Operator.php b/Classes/Domain/Search/Query/ParameterBuilder/Operator.php index e05f84d1a7..50b18b71cb 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/Operator.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/Operator.php @@ -15,7 +15,7 @@ namespace ApacheSolrForTypo3\Solr\Domain\Search\Query\ParameterBuilder; -use InvalidArgumentException; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; /** * The Operator ParameterProvider is responsible to build the solr query parameters diff --git a/Classes/Domain/Search/ResultSet/Facets/FacetRegistry.php b/Classes/Domain/Search/ResultSet/Facets/FacetRegistry.php index f755e4264a..e1e5e7bbbb 100644 --- a/Classes/Domain/Search/ResultSet/Facets/FacetRegistry.php +++ b/Classes/Domain/Search/ResultSet/Facets/FacetRegistry.php @@ -22,8 +22,8 @@ use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\OptionBased\QueryGroup\QueryGroupPackage; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\RangeBased\DateRange\DateRangePackage; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\RangeBased\NumericRange\NumericRangePackage; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\System\Object\AbstractClassRegistry; -use InvalidArgumentException; /** * Class FacetRegistry diff --git a/Classes/Domain/Search/ResultSet/Facets/InvalidFacetPackageException.php b/Classes/Domain/Search/ResultSet/Facets/InvalidFacetPackageException.php index 0c3b804088..fa5269346e 100644 --- a/Classes/Domain/Search/ResultSet/Facets/InvalidFacetPackageException.php +++ b/Classes/Domain/Search/ResultSet/Facets/InvalidFacetPackageException.php @@ -15,6 +15,8 @@ namespace ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets; -class InvalidFacetPackageException extends \Exception +use ApacheSolrForTypo3\Solr\Exception; + +class InvalidFacetPackageException extends Exception { } diff --git a/Classes/Domain/Search/ResultSet/Facets/InvalidFacetParserException.php b/Classes/Domain/Search/ResultSet/Facets/InvalidFacetParserException.php index b0509491c0..623eff19bc 100644 --- a/Classes/Domain/Search/ResultSet/Facets/InvalidFacetParserException.php +++ b/Classes/Domain/Search/ResultSet/Facets/InvalidFacetParserException.php @@ -15,6 +15,8 @@ namespace ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets; -class InvalidFacetParserException extends \Exception +use ApacheSolrForTypo3\Solr\Exception; + +class InvalidFacetParserException extends Exception { } diff --git a/Classes/Domain/Search/ResultSet/Facets/InvalidQueryBuilderException.php b/Classes/Domain/Search/ResultSet/Facets/InvalidQueryBuilderException.php index 4022e23fa1..242c37263b 100644 --- a/Classes/Domain/Search/ResultSet/Facets/InvalidQueryBuilderException.php +++ b/Classes/Domain/Search/ResultSet/Facets/InvalidQueryBuilderException.php @@ -15,6 +15,8 @@ namespace ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets; -class InvalidQueryBuilderException extends \Exception +use ApacheSolrForTypo3\Solr\Exception; + +class InvalidQueryBuilderException extends Exception { } diff --git a/Classes/Domain/Search/ResultSet/Facets/InvalidUrlDecoderException.php b/Classes/Domain/Search/ResultSet/Facets/InvalidUrlDecoderException.php index 58d27d7a00..0c8992f20a 100644 --- a/Classes/Domain/Search/ResultSet/Facets/InvalidUrlDecoderException.php +++ b/Classes/Domain/Search/ResultSet/Facets/InvalidUrlDecoderException.php @@ -17,7 +17,7 @@ namespace ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets; -use Exception; +use ApacheSolrForTypo3\Solr\Exception; class InvalidUrlDecoderException extends Exception { diff --git a/Classes/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRangeUrlDecoder.php b/Classes/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRangeUrlDecoder.php index 79706bcfb1..95381e1153 100644 --- a/Classes/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRangeUrlDecoder.php +++ b/Classes/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRangeUrlDecoder.php @@ -18,7 +18,7 @@ namespace ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\RangeBased\NumericRange; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\FacetUrlDecoderInterface; -use InvalidArgumentException; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; /** * Parser to build Solr range queries from tx_solr[filter] diff --git a/Classes/Domain/Search/ResultSet/Facets/RequirementsService.php b/Classes/Domain/Search/ResultSet/Facets/RequirementsService.php index fad625e941..24cb7abb47 100644 --- a/Classes/Domain/Search/ResultSet/Facets/RequirementsService.php +++ b/Classes/Domain/Search/ResultSet/Facets/RequirementsService.php @@ -15,6 +15,7 @@ namespace ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use TYPO3\CMS\Core\Utility\GeneralUtility; /** @@ -83,12 +84,13 @@ protected function getRequirementMet(AbstractFacet $facet, $requirement = []) * * @param string $facetNameToCheckRequirementsOn * @return AbstractFacetItem[] + * @throws InvalidArgumentException */ protected function getSelectedItemValues(AbstractFacet $facet, $facetNameToCheckRequirementsOn) { $facetToCheckRequirements = $facet->getResultSet()->getFacets()->getByName($facetNameToCheckRequirementsOn)->getByPosition(0); if (!$facetToCheckRequirements instanceof AbstractFacet) { - throw new \InvalidArgumentException('Requirement for unexisting facet configured'); + throw new InvalidArgumentException('Requirement for unexisting facet configured'); } if (!$facetToCheckRequirements->getIsUsed()) { diff --git a/Classes/Domain/Search/ResultSet/Result/Parser/ResultParserRegistry.php b/Classes/Domain/Search/ResultSet/Result/Parser/ResultParserRegistry.php index 3109abf8c5..0c21251fd7 100644 --- a/Classes/Domain/Search/ResultSet/Result/Parser/ResultParserRegistry.php +++ b/Classes/Domain/Search/ResultSet/Result/Parser/ResultParserRegistry.php @@ -18,7 +18,7 @@ namespace ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Result\Parser; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\SearchResultSet; -use InvalidArgumentException; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use TYPO3\CMS\Core\SingletonInterface; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/Domain/Search/ResultSet/Result/SearchResultBuilder.php b/Classes/Domain/Search/ResultSet/Result/SearchResultBuilder.php index 5c35c4ada5..d6ecb59c5f 100644 --- a/Classes/Domain/Search/ResultSet/Result/SearchResultBuilder.php +++ b/Classes/Domain/Search/ResultSet/Result/SearchResultBuilder.php @@ -17,8 +17,8 @@ namespace ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Result; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\System\Solr\Document\Document; -use InvalidArgumentException; use TYPO3\CMS\Core\Utility\GeneralUtility; /** diff --git a/Classes/Domain/Search/ResultSet/Sorting/Sorting.php b/Classes/Domain/Search/ResultSet/Sorting/Sorting.php index 27e750f0d8..1304b1ba0c 100644 --- a/Classes/Domain/Search/ResultSet/Sorting/Sorting.php +++ b/Classes/Domain/Search/ResultSet/Sorting/Sorting.php @@ -18,7 +18,7 @@ namespace ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Sorting; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\SearchResultSet; -use InvalidArgumentException; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; /** * Class Sorting diff --git a/Classes/Domain/Search/ResultSet/Sorting/SortingHelper.php b/Classes/Domain/Search/ResultSet/Sorting/SortingHelper.php index 64935d3e3c..86d8ecb8f3 100644 --- a/Classes/Domain/Search/ResultSet/Sorting/SortingHelper.php +++ b/Classes/Domain/Search/ResultSet/Sorting/SortingHelper.php @@ -17,7 +17,7 @@ namespace ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Sorting; -use InvalidArgumentException; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use TYPO3\CMS\Core\Utility\GeneralUtility; /** diff --git a/Classes/Domain/Site/Exception/InvalidSiteConfigurationCombinationException.php b/Classes/Domain/Site/Exception/InvalidSiteConfigurationCombinationException.php index 3b43b5217e..cf95df0dc1 100644 --- a/Classes/Domain/Site/Exception/InvalidSiteConfigurationCombinationException.php +++ b/Classes/Domain/Site/Exception/InvalidSiteConfigurationCombinationException.php @@ -17,7 +17,7 @@ namespace ApacheSolrForTypo3\Solr\Domain\Site\Exception; -use Exception; +use ApacheSolrForTypo3\Solr\Exception; class InvalidSiteConfigurationCombinationException extends Exception { diff --git a/Classes/Domain/Site/Exception/InvalidSiteRootPageException.php b/Classes/Domain/Site/Exception/InvalidSiteRootPageException.php new file mode 100644 index 0000000000..143cd468b3 --- /dev/null +++ b/Classes/Domain/Site/Exception/InvalidSiteRootPageException.php @@ -0,0 +1,24 @@ + */ -class NoPidException extends \Exception +class NoPidException extends Exception { } diff --git a/Classes/IndexQueue/Queue.php b/Classes/IndexQueue/Queue.php index e261202bea..765f943f04 100644 --- a/Classes/IndexQueue/Queue.php +++ b/Classes/IndexQueue/Queue.php @@ -25,13 +25,13 @@ use ApacheSolrForTypo3\Solr\Domain\Index\Queue\Statistic\QueueStatisticsRepository; use ApacheSolrForTypo3\Solr\Domain\Site\Site; use ApacheSolrForTypo3\Solr\Domain\Site\SiteRepository; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\FrontendEnvironment; use ApacheSolrForTypo3\Solr\System\Cache\TwoLevelCache; use ApacheSolrForTypo3\Solr\System\Logging\SolrLogManager; use Doctrine\DBAL\ConnectionException; use Doctrine\DBAL\Driver\Exception as DBALDriverException; use Doctrine\DBAL\Exception as DBALException; -use InvalidArgumentException; use Throwable; use TYPO3\CMS\Backend\Utility\BackendUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/LanguageFileUnavailableException.php b/Classes/LanguageFileUnavailableException.php index 18a5ce59d0..96a8800497 100644 --- a/Classes/LanguageFileUnavailableException.php +++ b/Classes/LanguageFileUnavailableException.php @@ -20,6 +20,6 @@ * * @author Ingo Renner */ -class LanguageFileUnavailableException extends \Exception +class LanguageFileUnavailableException extends Exception { } diff --git a/Classes/NoSolrConnectionFoundException.php b/Classes/NoSolrConnectionFoundException.php index cc71030a0d..73879b22eb 100644 --- a/Classes/NoSolrConnectionFoundException.php +++ b/Classes/NoSolrConnectionFoundException.php @@ -17,8 +17,6 @@ namespace ApacheSolrForTypo3\Solr; -use Exception; - /** * Exception that is thrown when no Solr connection could be found. * diff --git a/Classes/PingFailedException.php b/Classes/PingFailedException.php index 8576b798ea..6e38070944 100644 --- a/Classes/PingFailedException.php +++ b/Classes/PingFailedException.php @@ -17,8 +17,6 @@ namespace ApacheSolrForTypo3\Solr; -use Exception; - /** * Exception that is thrown when a ping fails * diff --git a/Classes/Query/Modifier/Faceting.php b/Classes/Query/Modifier/Faceting.php index b80415f5a9..e412417477 100644 --- a/Classes/Query/Modifier/Faceting.php +++ b/Classes/Query/Modifier/Faceting.php @@ -27,8 +27,8 @@ use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\UrlFacetContainer; use ApacheSolrForTypo3\Solr\Domain\Search\SearchRequest; use ApacheSolrForTypo3\Solr\Domain\Search\SearchRequestAware; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\System\Configuration\TypoScriptConfiguration; -use InvalidArgumentException; use TYPO3\CMS\Core\Log\LogManager; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/Search/SearchComponentManager.php b/Classes/Search/SearchComponentManager.php index bc97357949..4de4aa7912 100644 --- a/Classes/Search/SearchComponentManager.php +++ b/Classes/Search/SearchComponentManager.php @@ -17,7 +17,7 @@ namespace ApacheSolrForTypo3\Solr\Search; -use InvalidArgumentException; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use RuntimeException; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/System/Configuration/TypoScriptConfiguration.php b/Classes/System/Configuration/TypoScriptConfiguration.php index 90244fda94..26877017c8 100644 --- a/Classes/System/Configuration/TypoScriptConfiguration.php +++ b/Classes/System/Configuration/TypoScriptConfiguration.php @@ -15,12 +15,12 @@ namespace ApacheSolrForTypo3\Solr\System\Configuration; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\IndexQueue\Indexer; -use ApacheSolrForTypo3\Solr\IndexQueue\Queue; use ApacheSolrForTypo3\Solr\IndexQueue\Initializer\Record; +use ApacheSolrForTypo3\Solr\IndexQueue\Queue; use ApacheSolrForTypo3\Solr\System\ContentObject\ContentObjectService; use ApacheSolrForTypo3\Solr\System\Util\ArrayAccessor; -use InvalidArgumentException; use TYPO3\CMS\Core\Utility\ArrayUtility; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/System/Environment/WebRootAllReadyDefinedException.php b/Classes/System/Environment/WebRootAllReadyDefinedException.php index 727c532f1e..1788c5ee02 100644 --- a/Classes/System/Environment/WebRootAllReadyDefinedException.php +++ b/Classes/System/Environment/WebRootAllReadyDefinedException.php @@ -15,11 +15,13 @@ namespace ApacheSolrForTypo3\Solr\System\Environment; +use ApacheSolrForTypo3\Solr\Exception; + /** * Exception that is thrown when a language file is needed, but not available. * * @author Timo Hund */ -class WebRootAllReadyDefinedException extends \Exception +class WebRootAllReadyDefinedException extends Exception { } diff --git a/Classes/System/Object/AbstractClassRegistry.php b/Classes/System/Object/AbstractClassRegistry.php index da6e1a8778..0da477d498 100644 --- a/Classes/System/Object/AbstractClassRegistry.php +++ b/Classes/System/Object/AbstractClassRegistry.php @@ -17,7 +17,7 @@ namespace ApacheSolrForTypo3\Solr\System\Object; -use InvalidArgumentException; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use stdClass; use TYPO3\CMS\Core\SingletonInterface; use TYPO3\CMS\Extbase\Object\ObjectManagerInterface; diff --git a/Classes/System/Records/AbstractRepository.php b/Classes/System/Records/AbstractRepository.php index 5d0440c306..5cbc437545 100644 --- a/Classes/System/Records/AbstractRepository.php +++ b/Classes/System/Records/AbstractRepository.php @@ -17,9 +17,9 @@ namespace ApacheSolrForTypo3\Solr\System\Records; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use Doctrine\DBAL\Driver\Exception as DBALDriverException; use Doctrine\DBAL\Exception as DBALException; -use InvalidArgumentException; use RuntimeException; use TYPO3\CMS\Core\Database\Connection; use TYPO3\CMS\Core\Database\ConnectionPool; diff --git a/Classes/System/Records/Pages/PagesRepository.php b/Classes/System/Records/Pages/PagesRepository.php index 80e6d081cb..30fc61af66 100644 --- a/Classes/System/Records/Pages/PagesRepository.php +++ b/Classes/System/Records/Pages/PagesRepository.php @@ -17,11 +17,11 @@ namespace ApacheSolrForTypo3\Solr\System\Records\Pages; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\System\Cache\TwoLevelCache; use ApacheSolrForTypo3\Solr\System\Records\AbstractRepository; use Doctrine\DBAL\Driver\Exception as DBALDriverException; use Doctrine\DBAL\Exception as DBALException; -use InvalidArgumentException; use PDO; use Throwable; use TYPO3\CMS\Backend\Utility\BackendUtility; diff --git a/Classes/System/Solr/Parser/StopWordParser.php b/Classes/System/Solr/Parser/StopWordParser.php index 836dcb92e5..b6f379f7a2 100644 --- a/Classes/System/Solr/Parser/StopWordParser.php +++ b/Classes/System/Solr/Parser/StopWordParser.php @@ -15,7 +15,7 @@ namespace ApacheSolrForTypo3\Solr\System\Solr\Parser; -use InvalidArgumentException; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; /** * Class to parse the stopwords from a solr response. diff --git a/Classes/System/Solr/Service/SolrAdminService.php b/Classes/System/Solr/Service/SolrAdminService.php index 8a2c4dd466..aff776bab3 100644 --- a/Classes/System/Solr/Service/SolrAdminService.php +++ b/Classes/System/Solr/Service/SolrAdminService.php @@ -17,6 +17,7 @@ namespace ApacheSolrForTypo3\Solr\System\Solr\Service; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\System\Configuration\TypoScriptConfiguration; use ApacheSolrForTypo3\Solr\System\Logging\SolrLogManager; use ApacheSolrForTypo3\Solr\System\Solr\Parser\SchemaParser; @@ -24,7 +25,6 @@ use ApacheSolrForTypo3\Solr\System\Solr\Parser\SynonymParser; use ApacheSolrForTypo3\Solr\System\Solr\ResponseAdapter; use ApacheSolrForTypo3\Solr\System\Solr\Schema\Schema; -use InvalidArgumentException; use function simplexml_load_string; use Solarium\Client; use stdClass; diff --git a/Classes/System/Url/UrlHelper.php b/Classes/System/Url/UrlHelper.php index 1c090ea397..e89a9051f9 100644 --- a/Classes/System/Url/UrlHelper.php +++ b/Classes/System/Url/UrlHelper.php @@ -15,7 +15,7 @@ namespace ApacheSolrForTypo3\Solr\System\Url; -use InvalidArgumentException; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use TYPO3\CMS\Core\Http\Uri; /** diff --git a/Classes/Task/AbstractSolrTask.php b/Classes/Task/AbstractSolrTask.php index 1a62446129..0d5477574b 100644 --- a/Classes/Task/AbstractSolrTask.php +++ b/Classes/Task/AbstractSolrTask.php @@ -19,9 +19,9 @@ use ApacheSolrForTypo3\Solr\Domain\Site\Site; use ApacheSolrForTypo3\Solr\Domain\Site\SiteRepository; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\System\Logging\SolrLogManager; use Doctrine\DBAL\Driver\Exception as DBALDriverException; -use InvalidArgumentException; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Scheduler\Task\AbstractTask; diff --git a/Classes/Task/EventQueueWorkerTask.php b/Classes/Task/EventQueueWorkerTask.php index aa135dd81b..655d5befb2 100644 --- a/Classes/Task/EventQueueWorkerTask.php +++ b/Classes/Task/EventQueueWorkerTask.php @@ -19,11 +19,11 @@ use ApacheSolrForTypo3\Solr\Domain\Index\Queue\UpdateHandler\EventListener\Events\DelayedProcessingFinishedEvent; use ApacheSolrForTypo3\Solr\Domain\Index\Queue\UpdateHandler\Events\DataUpdateEventInterface; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\System\Logging\SolrLogManager; use ApacheSolrForTypo3\Solr\System\Records\Queue\EventQueueItemRepository; use Doctrine\DBAL\Driver\Exception as DBALDriverException; use Doctrine\DBAL\Exception as DBALException; -use InvalidArgumentException; use Psr\EventDispatcher\EventDispatcherInterface; use Throwable; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/Utility/ManagedResourcesUtility.php b/Classes/Utility/ManagedResourcesUtility.php index f83abf03df..132ed771bd 100644 --- a/Classes/Utility/ManagedResourcesUtility.php +++ b/Classes/Utility/ManagedResourcesUtility.php @@ -17,7 +17,7 @@ namespace ApacheSolrForTypo3\Solr\Utility; -use InvalidArgumentException; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use TYPO3\CMS\Core\Http\Stream; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/ViewHelpers/AbstractSolrFrontendTagBasedViewHelper.php b/Classes/ViewHelpers/AbstractSolrFrontendTagBasedViewHelper.php index 0d84f74192..d7f35f2274 100644 --- a/Classes/ViewHelpers/AbstractSolrFrontendTagBasedViewHelper.php +++ b/Classes/ViewHelpers/AbstractSolrFrontendTagBasedViewHelper.php @@ -18,9 +18,9 @@ namespace ApacheSolrForTypo3\Solr\ViewHelpers; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\SearchResultSet; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\Mvc\Controller\SolrControllerContext; use ApacheSolrForTypo3\Solr\System\Configuration\TypoScriptConfiguration; -use InvalidArgumentException; use TYPO3\CMS\Extbase\Mvc\Controller\ControllerContext; /** diff --git a/Classes/ViewHelpers/AbstractSolrFrontendViewHelper.php b/Classes/ViewHelpers/AbstractSolrFrontendViewHelper.php index 9876a10a53..6178102e35 100644 --- a/Classes/ViewHelpers/AbstractSolrFrontendViewHelper.php +++ b/Classes/ViewHelpers/AbstractSolrFrontendViewHelper.php @@ -19,9 +19,9 @@ use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Grouping\GroupItem; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\SearchResultSet; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\Mvc\Controller\SolrControllerContext; use ApacheSolrForTypo3\Solr\System\Configuration\TypoScriptConfiguration; -use InvalidArgumentException; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; /** diff --git a/Classes/ViewHelpers/Backend/Security/IfHasAccessToModuleViewHelper.php b/Classes/ViewHelpers/Backend/Security/IfHasAccessToModuleViewHelper.php index 3ec80a9d01..d9f3e957b2 100644 --- a/Classes/ViewHelpers/Backend/Security/IfHasAccessToModuleViewHelper.php +++ b/Classes/ViewHelpers/Backend/Security/IfHasAccessToModuleViewHelper.php @@ -17,7 +17,7 @@ namespace ApacheSolrForTypo3\Solr\ViewHelpers\Backend\Security; -use InvalidArgumentException; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use RuntimeException; use TYPO3\CMS\Core\Authentication\BackendUserAuthentication; use TYPO3\CMS\Core\Utility\GeneralUtility; diff --git a/Classes/ViewHelpers/Uri/AbstractUriViewHelper.php b/Classes/ViewHelpers/Uri/AbstractUriViewHelper.php index c26b36c135..4dfe374bdc 100644 --- a/Classes/ViewHelpers/Uri/AbstractUriViewHelper.php +++ b/Classes/ViewHelpers/Uri/AbstractUriViewHelper.php @@ -20,8 +20,8 @@ use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\SearchResultSet; use ApacheSolrForTypo3\Solr\Domain\Search\SearchRequest; use ApacheSolrForTypo3\Solr\Domain\Search\Uri\SearchUriBuilder; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\ViewHelpers\AbstractSolrFrontendViewHelper; -use InvalidArgumentException; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\Object\Exception as ExtbaseObjectException; use TYPO3\CMS\Extbase\Object\ObjectManager; diff --git a/Classes/ViewHelpers/Uri/Facet/AbstractValueViewHelper.php b/Classes/ViewHelpers/Uri/Facet/AbstractValueViewHelper.php index 218334c51c..9d3269d037 100644 --- a/Classes/ViewHelpers/Uri/Facet/AbstractValueViewHelper.php +++ b/Classes/ViewHelpers/Uri/Facet/AbstractValueViewHelper.php @@ -18,6 +18,7 @@ use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\AbstractFacet; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\AbstractFacetItem; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\SearchResultSet; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\ViewHelpers\Uri\AbstractUriViewHelper; /** @@ -44,7 +45,7 @@ public function initializeArguments() /** * @param $arguments * @return string - * @throws \InvalidArgumentException + * @throws InvalidArgumentException */ protected static function getValueFromArguments($arguments) { @@ -55,7 +56,7 @@ protected static function getValueFromArguments($arguments) } elseif (isset($arguments['facetItemValue'])) { $facetValue = $arguments['facetItemValue']; } else { - throw new \InvalidArgumentException('No facetItem was passed, please pass either facetItem or facetItemValue'); + throw new InvalidArgumentException('No facetItem was passed, please pass either facetItem or facetItemValue'); } return $facetValue; @@ -64,7 +65,7 @@ protected static function getValueFromArguments($arguments) /** * @param $arguments * @return string - * @throws \InvalidArgumentException + * @throws InvalidArgumentException */ protected static function getNameFromArguments($arguments) { @@ -75,7 +76,7 @@ protected static function getNameFromArguments($arguments) } elseif (isset($arguments['facetName'])) { $facetName = $arguments['facetName']; } else { - throw new \InvalidArgumentException('No facet was passed, please pass either facet or facetName'); + throw new InvalidArgumentException('No facet was passed, please pass either facet or facetName'); } return $facetName; @@ -84,7 +85,7 @@ protected static function getNameFromArguments($arguments) /** * @param $arguments * @return string - * @throws \InvalidArgumentException + * @throws InvalidArgumentException */ protected static function getResultSetFromArguments($arguments) { @@ -95,7 +96,7 @@ protected static function getResultSetFromArguments($arguments) } elseif (isset($arguments['facetName'])) { $resultSet = $arguments['resultSet']; } else { - throw new \InvalidArgumentException('No facet was passed, please pass either facet or resultSet'); + throw new InvalidArgumentException('No facet was passed, please pass either facet or resultSet'); } return $resultSet; diff --git a/Classes/ViewHelpers/Uri/Facet/AddFacetItemViewHelper.php b/Classes/ViewHelpers/Uri/Facet/AddFacetItemViewHelper.php index d53276ea19..e0b47a9341 100644 --- a/Classes/ViewHelpers/Uri/Facet/AddFacetItemViewHelper.php +++ b/Classes/ViewHelpers/Uri/Facet/AddFacetItemViewHelper.php @@ -16,6 +16,7 @@ namespace ApacheSolrForTypo3\Solr\ViewHelpers\Uri\Facet; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\SearchResultSet; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; /** @@ -31,7 +32,7 @@ class AddFacetItemViewHelper extends AbstractValueViewHelper * @param \Closure $renderChildrenClosure * @param RenderingContextInterface $renderingContext * @return string - * @throws \InvalidArgumentException + * @throws InvalidArgumentException */ public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) { diff --git a/Classes/ViewHelpers/Uri/Facet/RemoveAllFacetsViewHelper.php b/Classes/ViewHelpers/Uri/Facet/RemoveAllFacetsViewHelper.php index a6aeac858e..f18dc066ba 100644 --- a/Classes/ViewHelpers/Uri/Facet/RemoveAllFacetsViewHelper.php +++ b/Classes/ViewHelpers/Uri/Facet/RemoveAllFacetsViewHelper.php @@ -15,6 +15,7 @@ namespace ApacheSolrForTypo3\Solr\ViewHelpers\Uri\Facet; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\ViewHelpers\Uri\AbstractUriViewHelper; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; @@ -31,7 +32,7 @@ class RemoveAllFacetsViewHelper extends AbstractUriViewHelper * @param \Closure $renderChildrenClosure * @param RenderingContextInterface $renderingContext * @return string - * @throws \InvalidArgumentException + * @throws InvalidArgumentException */ public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) { diff --git a/Classes/ViewHelpers/Uri/Facet/RemoveFacetItemViewHelper.php b/Classes/ViewHelpers/Uri/Facet/RemoveFacetItemViewHelper.php index 345e623eb5..5de0367d56 100644 --- a/Classes/ViewHelpers/Uri/Facet/RemoveFacetItemViewHelper.php +++ b/Classes/ViewHelpers/Uri/Facet/RemoveFacetItemViewHelper.php @@ -16,6 +16,7 @@ namespace ApacheSolrForTypo3\Solr\ViewHelpers\Uri\Facet; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\SearchResultSet; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; /** @@ -31,7 +32,7 @@ class RemoveFacetItemViewHelper extends AbstractValueViewHelper * @param \Closure $renderChildrenClosure * @param RenderingContextInterface $renderingContext * @return string - * @throws \InvalidArgumentException + * @throws InvalidArgumentException */ public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) { diff --git a/Classes/ViewHelpers/Uri/Facet/RemoveFacetViewHelper.php b/Classes/ViewHelpers/Uri/Facet/RemoveFacetViewHelper.php index bd2d14678c..2093738236 100644 --- a/Classes/ViewHelpers/Uri/Facet/RemoveFacetViewHelper.php +++ b/Classes/ViewHelpers/Uri/Facet/RemoveFacetViewHelper.php @@ -16,6 +16,7 @@ namespace ApacheSolrForTypo3\Solr\ViewHelpers\Uri\Facet; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\AbstractFacet; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\ViewHelpers\Uri\AbstractUriViewHelper; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; @@ -41,7 +42,7 @@ public function initializeArguments() * @param \Closure $renderChildrenClosure * @param RenderingContextInterface $renderingContext * @return string - * @throws \InvalidArgumentException + * @throws InvalidArgumentException */ public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) { diff --git a/Classes/ViewHelpers/Uri/Facet/SetFacetItemViewHelper.php b/Classes/ViewHelpers/Uri/Facet/SetFacetItemViewHelper.php index 8cad9f2604..116f594151 100644 --- a/Classes/ViewHelpers/Uri/Facet/SetFacetItemViewHelper.php +++ b/Classes/ViewHelpers/Uri/Facet/SetFacetItemViewHelper.php @@ -16,6 +16,7 @@ namespace ApacheSolrForTypo3\Solr\ViewHelpers\Uri\Facet; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\SearchResultSet; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use TYPO3Fluid\Fluid\Core\Rendering\RenderingContextInterface; /** @@ -31,7 +32,7 @@ class SetFacetItemViewHelper extends AbstractValueViewHelper * @param \Closure $renderChildrenClosure * @param RenderingContextInterface $renderingContext * @return string - * @throws \InvalidArgumentException + * @throws InvalidArgumentException */ public static function renderStatic(array $arguments, \Closure $renderChildrenClosure, RenderingContextInterface $renderingContext) { diff --git a/Tests/Integration/Domain/Site/SiteRepositoryTest.php b/Tests/Integration/Domain/Site/SiteRepositoryTest.php index c92ebf59af..c7f7ad18f0 100644 --- a/Tests/Integration/Domain/Site/SiteRepositoryTest.php +++ b/Tests/Integration/Domain/Site/SiteRepositoryTest.php @@ -17,10 +17,10 @@ use ApacheSolrForTypo3\Solr\Domain\Site\Site; use ApacheSolrForTypo3\Solr\Domain\Site\SiteRepository; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\Tests\Integration\IntegrationTest; use Doctrine\DBAL\DBALException; use Exception; -use InvalidArgumentException; use TYPO3\CMS\Core\Cache\Exception\NoSuchCacheException; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\TestingFramework\Core\Exception as TestingFrameworkCoreException; diff --git a/Tests/Integration/Domain/Site/SiteTest.php b/Tests/Integration/Domain/Site/SiteTest.php index 51df7ae976..8c0300eefa 100644 --- a/Tests/Integration/Domain/Site/SiteTest.php +++ b/Tests/Integration/Domain/Site/SiteTest.php @@ -17,8 +17,8 @@ use ApacheSolrForTypo3\Solr\Domain\Site\Site; use ApacheSolrForTypo3\Solr\Domain\Site\SiteRepository; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\Tests\Integration\IntegrationTest; -use InvalidArgumentException; use TYPO3\CMS\Core\Utility\GeneralUtility; /** diff --git a/Tests/Integration/IndexQueue/IndexerTest.php b/Tests/Integration/IndexQueue/IndexerTest.php index e73dfcdd49..c07c668ccf 100644 --- a/Tests/Integration/IndexQueue/IndexerTest.php +++ b/Tests/Integration/IndexQueue/IndexerTest.php @@ -15,6 +15,7 @@ namespace ApacheSolrForTypo3\Solr\Tests\Integration\IndexQueue; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\IndexQueue\AdditionalIndexQueueItemIndexer; use ApacheSolrForTypo3\Solr\IndexQueue\Indexer; use ApacheSolrForTypo3\Solr\IndexQueue\Item; @@ -471,7 +472,7 @@ public function canUseConfigurationFromTemplateInRootLine() */ public function canGetAdditionalDocumentsInterfaceOnly() { - $this->expectException(\InvalidArgumentException::class); + $this->expectException(InvalidArgumentException::class); $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['IndexQueueIndexer']['indexItemAddDocuments'][] = AdditionalIndexQueueItemIndexer::class; $document = new Document(); $metaData = ['item_type' => 'pages']; @@ -499,7 +500,7 @@ public function canGetAdditionalDocumentsNotImplementingInterface() */ public function canGetAdditionalDocumentsNonExistingClass() { - $this->expectException(\InvalidArgumentException::class); + $this->expectException(InvalidArgumentException::class); $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['IndexQueueIndexer']['indexItemAddDocuments'][] = 'NonExistingClass'; $document = new Document(); $metaData = ['item_type' => 'pages']; diff --git a/Tests/Integration/IntegrationTest.php b/Tests/Integration/IntegrationTest.php index 80e2dcbe88..d35009eab1 100644 --- a/Tests/Integration/IntegrationTest.php +++ b/Tests/Integration/IntegrationTest.php @@ -16,6 +16,7 @@ namespace ApacheSolrForTypo3\Solr\Tests\Integration; use ApacheSolrForTypo3\Solr\Access\Rootline; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\IndexQueue\Item; use ApacheSolrForTypo3\Solr\Tests\Unit\Helper\FakeObjectManager; use ApacheSolrForTypo3\Solr\Typo3PageIndexer; @@ -24,7 +25,6 @@ use Doctrine\DBAL\Exception as DoctrineDBALException; use Doctrine\DBAL\Schema\SchemaException; use function getenv; -use InvalidArgumentException; use ReflectionClass; use ReflectionException; use ReflectionObject; diff --git a/Tests/Unit/Domain/Index/Queue/RecordMonitor/Helper/RootPageResolverTest.php b/Tests/Unit/Domain/Index/Queue/RecordMonitor/Helper/RootPageResolverTest.php index ae50fdba63..3ee11e2e0d 100644 --- a/Tests/Unit/Domain/Index/Queue/RecordMonitor/Helper/RootPageResolverTest.php +++ b/Tests/Unit/Domain/Index/Queue/RecordMonitor/Helper/RootPageResolverTest.php @@ -17,9 +17,9 @@ use ApacheSolrForTypo3\Solr\Domain\Index\Queue\RecordMonitor\Helper\ConfigurationAwareRecordService; use ApacheSolrForTypo3\Solr\Domain\Index\Queue\RecordMonitor\Helper\RootPageResolver; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\System\Cache\TwoLevelCache; use ApacheSolrForTypo3\Solr\Tests\Unit\UnitTest; -use InvalidArgumentException; use PHPUnit\Framework\MockObject\MockObject; /** diff --git a/Tests/Unit/Domain/Search/ResultSet/Facets/FacetRegistryTest.php b/Tests/Unit/Domain/Search/ResultSet/Facets/FacetRegistryTest.php index 12a04ea32d..c94e614ad4 100644 --- a/Tests/Unit/Domain/Search/ResultSet/Facets/FacetRegistryTest.php +++ b/Tests/Unit/Domain/Search/ResultSet/Facets/FacetRegistryTest.php @@ -17,9 +17,9 @@ use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\FacetRegistry; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\OptionBased\Options\OptionsPackage; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\Tests\Unit\Domain\Search\ResultSet\Facets\TestPackage\TestPackage; use ApacheSolrForTypo3\Solr\Tests\Unit\UnitTest; -use InvalidArgumentException; use PHPUnit\Framework\MockObject\MockObject; use TYPO3\CMS\Extbase\Object\ObjectManager; use TYPO3\CMS\Extbase\Object\ObjectManagerInterface; diff --git a/Tests/Unit/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRangeUrlDecoderTest.php b/Tests/Unit/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRangeUrlDecoderTest.php index 977042111b..5eca1eda1e 100644 --- a/Tests/Unit/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRangeUrlDecoderTest.php +++ b/Tests/Unit/Domain/Search/ResultSet/Facets/RangeBased/NumericRange/NumericRangeUrlDecoderTest.php @@ -16,8 +16,8 @@ namespace ApacheSolrForTypo3\Solr\Tests\Unit\Domain\Search\ResultSet\Facets\RangeBased\NumericRange; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\RangeBased\NumericRange\NumericRangeUrlDecoder; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\Tests\Unit\UnitTest; -use InvalidArgumentException; use TYPO3\CMS\Core\Utility\GeneralUtility; /** diff --git a/Tests/Unit/Domain/Search/ResultSet/Facets/RequirementsServiceTest.php b/Tests/Unit/Domain/Search/ResultSet/Facets/RequirementsServiceTest.php index a623fcfd63..6f194f0a80 100644 --- a/Tests/Unit/Domain/Search/ResultSet/Facets/RequirementsServiceTest.php +++ b/Tests/Unit/Domain/Search/ResultSet/Facets/RequirementsServiceTest.php @@ -19,6 +19,7 @@ use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\OptionBased\Options\OptionsFacet; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\RequirementsService; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\SearchResultSet; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\Tests\Unit\UnitTest; use TYPO3\CMS\Core\Utility\GeneralUtility; use TYPO3\CMS\Extbase\Object\ObjectManager; @@ -236,7 +237,7 @@ public function getAllRequirementsMetIsReturnsFalseIfRequiredFacetValueIsNotSele */ public function exceptionIsThrownForRequirementWithNotExistingFacet() { - $this->expectException(\InvalidArgumentException::class); + $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('Requirement for unexisting facet configured'); $resultSet = new SearchResultSet(); diff --git a/Tests/Unit/Domain/Search/ResultSet/Sorting/SortingHelperTest.php b/Tests/Unit/Domain/Search/ResultSet/Sorting/SortingHelperTest.php index 42b837ef68..a56c885380 100644 --- a/Tests/Unit/Domain/Search/ResultSet/Sorting/SortingHelperTest.php +++ b/Tests/Unit/Domain/Search/ResultSet/Sorting/SortingHelperTest.php @@ -16,6 +16,7 @@ namespace ApacheSolrForTypo3\Solr\Tests\Unit\Domain\Search\ResultSet\Sorting; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Sorting\SortingHelper; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\Tests\Unit\UnitTest; /** @@ -49,7 +50,7 @@ public function canGetSortFieldFromUrlParameter() */ public function canThrowExceptionForUnconfiguredSorting() { - $this->expectException(\InvalidArgumentException::class); + $this->expectException(InvalidArgumentException::class); $this->expectExceptionMessage('No sorting configuration found for option name unconfigured'); $sorting = new SortingHelper([]); $sorting->getSortFieldFromUrlParameter('unconfigured asc'); diff --git a/Tests/Unit/Domain/Search/ResultSet/Sorting/SortingTest.php b/Tests/Unit/Domain/Search/ResultSet/Sorting/SortingTest.php index 114cb65e56..f72af4b321 100644 --- a/Tests/Unit/Domain/Search/ResultSet/Sorting/SortingTest.php +++ b/Tests/Unit/Domain/Search/ResultSet/Sorting/SortingTest.php @@ -17,6 +17,7 @@ use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\SearchResultSet; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Sorting\Sorting; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\Tests\Unit\UnitTest; /** @@ -55,7 +56,7 @@ protected function setUp(): void */ public function canNotCreateWhenInvalidDirectionIsPassed() { - $this->expectException(\InvalidArgumentException::class); + $this->expectException(InvalidArgumentException::class); new Sorting($this->resultSetMock, 'Color', 'color_s', 'invalid direction', 'the color', false, false); } diff --git a/Tests/Unit/IndexQueue/IndexerTest.php b/Tests/Unit/IndexQueue/IndexerTest.php index 4e4146e4ef..b30a33529e 100644 --- a/Tests/Unit/IndexQueue/IndexerTest.php +++ b/Tests/Unit/IndexQueue/IndexerTest.php @@ -17,6 +17,7 @@ use ApacheSolrForTypo3\Solr\ConnectionManager; use ApacheSolrForTypo3\Solr\Domain\Search\ApacheSolrDocument\Builder; +use ApacheSolrForTypo3\Solr\Exception\InvalidArgumentException; use ApacheSolrForTypo3\Solr\FrontendEnvironment; use ApacheSolrForTypo3\Solr\IndexQueue\AdditionalIndexQueueItemIndexer; use ApacheSolrForTypo3\Solr\IndexQueue\Exception\IndexingException; @@ -30,7 +31,6 @@ use ApacheSolrForTypo3\Solr\System\Solr\Service\SolrWriteService; use ApacheSolrForTypo3\Solr\System\Solr\SolrConnection; use ApacheSolrForTypo3\Solr\Tests\Unit\UnitTest; -use InvalidArgumentException; use PHPUnit\Framework\MockObject\MockBuilder; use Prophecy\PhpUnit\ProphecyTrait; use Prophecy\Prophecy\ObjectProphecy; From d7cea116c3121df9eb585900eba7bf58af7eea1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20K=C3=A4hm?= Date: Thu, 26 Oct 2023 18:15:13 +0200 Subject: [PATCH 05/21] [TASK] Prepare release-11.6.x for TYPO3 11.5 LTS Relates: #3781 --- .github/workflows/ci-matrix.json | 2 +- .github/workflows/ci.yml | 4 +- Documentation/Appendix/VersionMatrix.rst | 5 +- Documentation/Releases/Archive/Index.rst | 1 + .../{ => Archive}/solr-release-11-5.rst | 24 ++++---- Documentation/Releases/Index.rst | 2 +- Documentation/Releases/solr-release-11-6.rst | 61 +++++++++++++++++++ Documentation/Settings.cfg | 4 +- README.md | 6 +- composer.json | 8 ++- ext_emconf.php | 4 +- 11 files changed, 93 insertions(+), 28 deletions(-) rename Documentation/Releases/{ => Archive}/solr-release-11-5.rst (98%) create mode 100644 Documentation/Releases/solr-release-11-6.rst diff --git a/.github/workflows/ci-matrix.json b/.github/workflows/ci-matrix.json index 8be0cbd1d3..e4bacd7fe8 100644 --- a/.github/workflows/ci-matrix.json +++ b/.github/workflows/ci-matrix.json @@ -1,5 +1,5 @@ { - "release-11.5.x": { + "release-11.6.x": { "PHP": [ "7.4", "8.0", "8.1" ], "TYPO3": [ "11", "11.5.x-dev" ] } diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9441da9e4d..2c4679e9ee 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -2,11 +2,11 @@ name: build on: push: - branches: [ main, release-11.5.x, release-11.1.x, release-11.0.x ] + branches: [ main, release-11.6.x ] tags: - "**" pull_request: - branches: [ main, release-11.5.x, release-11.1.x, release-11.0.x ] + branches: [ main, release-11.6.x ] env: CI_BUILD_DIRECTORY: '/home/runner/work/ext-solr/ext-solr/.Build' diff --git a/Documentation/Appendix/VersionMatrix.rst b/Documentation/Appendix/VersionMatrix.rst index a2fea82342..e345c6eb7e 100644 --- a/Documentation/Appendix/VersionMatrix.rst +++ b/Documentation/Appendix/VersionMatrix.rst @@ -8,12 +8,11 @@ Appendix - Version Matrix You are on docs for EXT:solr |release| version, please refer to `Version Matrix on main release `_ to see all versions. -.. tip:: See also EXT:solr v11.6 for TYPO3 11.5 LTS. -Requirements for EXT:solr* 11.5 stack +Requirements for EXT:solr* 11.6 stack ------------------------------------- ========= ========== ========== =========== =============== ================== ============================= =============== =============== ================= @@ -21,7 +20,7 @@ Requirements for EXT:solr* 11.5 stack ------------------------------- ---------------------------------------------- --------------------------------------------- --------------------------------- TYPO3 EXT: solr EXT:tika EXT:solrfal EXT:solrconsole EXT:solrdebugtools EXT:solrfluidgrouping EXT:solrmlt Apache Solr Configset ========= ========== ========== =========== =============== ================== ============================= =============== =============== ================= -11.5 11.5 11.0 11.0 11.0 11.0 11.0 11.0 (Ø) 8.11.3¹ ext_solr_11_5_0 +11.5 11.6 11.0 11.0 11.0 11.0 11.0 11.0 (Ø) 8.11.3¹ ext_solr_11_6_0 ========= ========== ========== =========== =============== ================== ============================= =============== =============== ================= | ¹ - recommended Apache Solr version, check version matrix in composer.json (composer info:solr-versions) for full list diff --git a/Documentation/Releases/Archive/Index.rst b/Documentation/Releases/Archive/Index.rst index 8d1bc6c297..5234f12919 100644 --- a/Documentation/Releases/Archive/Index.rst +++ b/Documentation/Releases/Archive/Index.rst @@ -13,6 +13,7 @@ Archive :titlesonly: :glob: + solr-release-11-5.rst solr-release-11-1.rst solr-release-10-0.rst solr-release-9-0.rst diff --git a/Documentation/Releases/solr-release-11-5.rst b/Documentation/Releases/Archive/solr-release-11-5.rst similarity index 98% rename from Documentation/Releases/solr-release-11-5.rst rename to Documentation/Releases/Archive/solr-release-11-5.rst index 8ee00f0c78..0f74c2a36e 100644 --- a/Documentation/Releases/solr-release-11-5.rst +++ b/Documentation/Releases/Archive/solr-release-11-5.rst @@ -133,7 +133,7 @@ Release 11.5.1 We are happy to publish EXT:solr 11.5.1 maintenance release New in this release -------------------- +~~~~~~~~~~~~~~~~~~~ - [BUGFIX] Do not include removed strptime() by @dkd-kaehm in `#3335 `__ - [BUGFIX:BP:11.5] Do not handle page updates on new page with uid 0 by @rr-it in `#3344 `__ @@ -173,10 +173,10 @@ The focus of this release has been on TYPO3 11 LTS compatibility. This version is installable with TYPO3 11 LTS on v11.5.14+ only and contains some breaking changes, see details below. New in this release -------------------- +~~~~~~~~~~~~~~~~~~~ Support of TYPO3 11 LTS -~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^ With EXT:solr 11.5 we provide the support of TYPO3 11 LTS. @@ -184,7 +184,7 @@ Please note that we require at least TYPO3 11.5.14, as this version contains som Bootstrap 5.1 -~~~~~~~~~~~~~ +^^^^^^^^^^^^^ The default templates provided by EXT:solr were adapted for Bootstrap 5.1. @@ -192,7 +192,7 @@ The templates are also prepared to display some icons with Bootstrap Icons, but Custom field processors -~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^ fieldProcessingInstructions can be used for processing values during indexing, e.g. timestampToIsoDate or uppercase. Now you can register and use your own field processors via: $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['fieldProcessor']['yourFieldProcessor'] = ACustomFieldProcessor::class; @@ -200,7 +200,7 @@ $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['fieldProcessor']['yourFieldProce Custom processors have to implement interface ApacheSolrForTypo3\Solr\FieldProcessor\FieldProcessor. N-Gram Filter for strings -~~~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^^^ Provides a new field type and dynamic fields for strings with enabled Edge-N-Gram filter. @@ -210,7 +210,7 @@ Now the following fields can be used: - \*_stringEdgeNgramM Improve and Fix TSFE Initialization -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ The initialization of TSFE within indexing and Backends modules contexts is refactored. @@ -228,7 +228,7 @@ Note: Since TYPO3 11 LTS does not allow to instantiate TSFE for sys folders and the initialization of TSFE will be done for first and closest page(not spacer or folder) within the site rootline. Get "free content mode" working -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ In previous releases of EXT:solr the language handling for "free-content-mode" inconsistent. The behavior of "free-content-mode" related records varied in RecordMonitor, Initializing and Indexing contexts, @@ -238,22 +238,22 @@ This change brings the RecordMonitor, Initializing and Indexing contexts for "fr into the same line, so the "free-content-mode" records are processed the same way. Make pageRangeFirst and pageRangeLast accessible in fluid -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ With these two additional getters it is possible to access the variables in fluid templates. See: `#3254 `_ Add custom field processors -~~~~~~~~~~~~~~~~~~~~~~~~~~~ +^^^^^^^^^^^^^^^^^^^^^^^^^^^ Custom field processors can be registered with .. code-block:: php - $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['fieldProcessor']['yourFieldProcessor'] = ACustomFieldProcessor::class; + $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['solr']['fieldProcessor']['yourFieldProcessor'] = ACustomFieldProcessor::class; And many more -~~~~~~~~~~~~~ +^^^^^^^^^^^^^ Please see the list of changes below or `the full changelog: `_. diff --git a/Documentation/Releases/Index.rst b/Documentation/Releases/Index.rst index 897767686e..414e6e6a03 100644 --- a/Documentation/Releases/Index.rst +++ b/Documentation/Releases/Index.rst @@ -13,7 +13,7 @@ Releases :titlesonly: :glob: - solr-release-11-5 + solr-release-11-6 solr-release-11-2 solr-release-11-0 Archive/Index diff --git a/Documentation/Releases/solr-release-11-6.rst b/Documentation/Releases/solr-release-11-6.rst new file mode 100644 index 0000000000..a7f872b23f --- /dev/null +++ b/Documentation/Releases/solr-release-11-6.rst @@ -0,0 +1,61 @@ +.. include:: /Includes.rst.txt +.. index:: Releases +.. _releases-11-6: + +============== +Release 11.6.0 +============== + +We are happy to release EXT:solr 11.6.0. +The focus of this release has been on Apache Solr upgrade to v 9.3.0. + +**Important**: This version is installable with TYPO3 11 LTS on v11.5.14+ only and contains some breaking changes, see details below. + +New in this release +------------------- + +And many more +~~~~~~~~~~~~~ + +Please see the list of changes below or `the full changelog: `_. + +The list of all changes: +~~~~~~~~~~~~~~~~~~~~~~~~ + + +Contributors +============ + +Like always this release would not have been possible without the help from our +awesome community. Here are the contributors to this release. + +(patches, comments, bug reports, reviews, ... in alphabetical order) + +* Christoph Lehmann +* Markus Friedrich +* Rafael Kähm + +Also a big thank you to our partners who have already concluded one of our new development participation packages such as Apache Solr EB for TYPO3 11 LTS (Feature), Apache Solr EB for TYPO3 10 LTS (Maintenance) +or Apache Solr EB for TYPO3 9 ELTS (Extended): + +TBD + +How to Get Involved +=================== + +There are many ways to get involved with Apache Solr for TYPO3: + +* Submit bug reports and feature requests on [GitHub](https://github.com/TYPO3-Solr/ext-solr) +* Ask or help or answer questions in our [Slack channel](https://typo3.slack.com/messages/ext-solr/) +* Provide patches through Pull Request or review and comment on existing [Pull Requests](https://github.com/TYPO3-Solr/ext-solr/pulls) +* Go to [www.typo3-solr.com](http://www.typo3-solr.com) or call [dkd](http://www.dkd.de) to sponsor the ongoing development of Apache Solr for TYPO3 + +Support us by becoming an EB partner: + +https://shop.dkd.de/Produkte/Apache-Solr-fuer-TYPO3/ + +or call: + ++49 (0)69 - 2475218 0 + + diff --git a/Documentation/Settings.cfg b/Documentation/Settings.cfg index ae44ee29bc..2f0bf1922d 100644 --- a/Documentation/Settings.cfg +++ b/Documentation/Settings.cfg @@ -4,8 +4,8 @@ [general] project = Apache Solr for TYPO3 -version = 11.5 -release = 11.5.6 +version = 11.6 +release = 11.6.0 copyright = since 2009 by dkd & contributors [html_theme_options] diff --git a/README.md b/README.md index 6c61560653..c306283e54 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,8 @@ [![TYPO3 11](https://img.shields.io/badge/TYPO3-11-orange.svg?style=flat-square)](https://get.typo3.org/version/11) [![Total Downloads](http://poser.pugx.org/apache-solr-for-typo3/solr/downloads)](https://packagist.org/packages/apache-solr-for-typo3/solr) [![Monthly Downloads](https://poser.pugx.org/apache-solr-for-typo3/solr/d/monthly)](https://packagist.org/packages/apache-solr-for-typo3/solr) -[![Build Status](https://github.com/TYPO3-Solr/ext-solr/actions/workflows/ci.yml/badge.svg?branch=release-11.5.x)](https://github.com/TYPO3-Solr/ext-solr/actions?query=branch:release-11.5.x) -[![Code Coverage](https://scrutinizer-ci.com/g/TYPO3-Solr/ext-solr/badges/coverage.png?b=release-11.5.x)](https://scrutinizer-ci.com/g/TYPO3-Solr/ext-solr/?branch=release-11.5.x) +[![Build Status](https://github.com/TYPO3-Solr/ext-solr/actions/workflows/ci.yml/badge.svg?branch=release-11.6.x)](https://github.com/TYPO3-Solr/ext-solr/actions?query=branch:release-11.6.x) +[![Code Coverage](https://scrutinizer-ci.com/g/TYPO3-Solr/ext-solr/badges/coverage.png?b=release-11.6.x)](https://scrutinizer-ci.com/g/TYPO3-Solr/ext-solr/?branch=release-11.6.x) # Apache Solr for TYPO3 CMS @@ -27,7 +27,7 @@ Further details including a comparison chart are provided at the program homepag | | URL | |------------------|-----------------------------------------------------------------| | **Repository:** | https://github.com/TYPO3-Solr/ext-solr | -| **Read online:** | https://docs.typo3.org/p/apache-solr-for-typo3/solr/11.5/en-us/ | +| **Read online:** | https://docs.typo3.org/p/apache-solr-for-typo3/solr/11.6/en-us/ | | **TER:** | https://extensions.typo3.org/extension/solr | | **Homepage:** | https://www.typo3-solr.com/ | diff --git a/composer.json b/composer.json index af72fb4789..9de25fc28e 100644 --- a/composer.json +++ b/composer.json @@ -131,7 +131,7 @@ }, "extra": { "branch-alias": { - "dev-release-11.5.x": "11.5.x-dev" + "dev-release-11.6.x": "11.6.x-dev" }, "typo3/cms": { "extension-key": "solr", @@ -151,9 +151,13 @@ "8.11.2", "8.11.1" ], - "configset": "ext_solr_11_5_0" + "configset": "ext_solr_11_6_0" }, "ext-solrfal": { + }, + "stack-for-ci": { + "sclable/xml-lint": "*", + "scrutinizer/ocular": "*" } } } diff --git a/ext_emconf.php b/ext_emconf.php index 9683b08f41..1733b26195 100644 --- a/ext_emconf.php +++ b/ext_emconf.php @@ -3,8 +3,8 @@ $EM_CONF[$_EXTKEY] = [ 'title' => 'Apache Solr for TYPO3 - Enterprise Search', 'description' => 'Apache Solr for TYPO3 is the enterprise search server you were looking for with special features such as Faceted Search or Synonym Support and incredibly fast response times of results within milliseconds.', - 'version' => '11.5.6', - 'state' => 'stable', + 'version' => '11.6.0', + 'state' => 'beta', 'category' => 'plugin', 'author' => 'Ingo Renner, Timo Hund, Markus Friedrich', 'author_email' => 'ingo@typo3.org', From e9d46c70e24e181e0f70d9e8266f51f64aa1bce5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20K=C3=A4hm?= Date: Thu, 26 Oct 2023 19:11:32 +0200 Subject: [PATCH 06/21] [TASK] sync the CI stuff from main branch into 11.6.x Relates: #3781 --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- .github/ISSUE_TEMPLATE/feature_request.md | 23 ++++++ .github/workflows/ci.yml | 67 ++++++----------- ...> GET_LOCAL_PACKAGE_VERSION_CONSTRAINT.sh} | 0 Build/Test/IntegrationTests.xml | 1 + Build/Test/IntegrationTestsBootstrap.php | 6 +- Build/Test/UnitTests.xml | 1 + Build/Test/bootstrap.sh | 75 +++++-------------- Build/Test/cibuild.sh | 72 ++++++++---------- Build/Test/phpstan-constants.php | 5 ++ Build/Test/phpstan.neon | 20 +++++ Docker/Ci/environment.yml | 1 - composer.json | 45 +++++++---- 13 files changed, 158 insertions(+), 160 deletions(-) create mode 100644 .github/ISSUE_TEMPLATE/feature_request.md rename Build/Helpers/{GET_LACAL_PACKAGE_VERSION_CONSTRAINT.sh => GET_LOCAL_PACKAGE_VERSION_CONSTRAINT.sh} (100%) create mode 100644 Build/Test/phpstan-constants.php create mode 100644 Build/Test/phpstan.neon diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 5495110980..09a2fc7713 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -26,7 +26,7 @@ If applicable, add screenshots to help explain your problem. **Used versions (please complete the following information):** - TYPO3 Version: [e.g. 11.5.36] - Browser: [e.g. chrome, safari] - - EXT:solr Version: [e.g. 11.5.6] + - EXT:solr Version: [e.g. 11.6.0] - Used Apache Solr Version: [e.g. 8.11.3] - PHP Version: [e.g. 8.2.0] - MySQL Version: [e.g. 8.0.0] diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000000..8e5d8c2232 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,23 @@ +--- +name: Feature request +about: Suggest an idea for this project +title: "[FEATURE] Please describe your feature wish here" +labels: '' +assignees: '' + +--- + +**Is your feature request related to a problem? Please describe.** +A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] + +**Describe the solution you'd like** +A clear and concise description of what you want to happen. + +**Describe alternatives you've considered** +A clear and concise description of any alternative solutions or features you've considered. + +**Additional context** +Add any other context or screenshots about the feature request here. + +**Target versions** +Please add the EXT:solr target versions here. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2c4679e9ee..1edb058a51 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,18 +23,21 @@ jobs: outputs: matrix: ${{ steps.collect_build_matrix.outputs.matrix }} steps: - # Workaround for issue with actions/checkout@v2 wrong PR commit checkout: See https://github.com/actions/checkout/issues/299#issuecomment-677674415 + # Workaround for issue with actions/checkout "wrong PR commit checkout": + # See: + # ** https://github.com/actions/checkout/issues/299#issuecomment-677674415 + # ** https://github.com/actions/checkout/issues/1359#issuecomment-1631503791 - name: Checkout current state of Pull Request if: github.event_name == 'pull_request' - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: ${{ github.event.pull_request.head.sha }} - name: Checkout current state of Branch if: github.event_name == 'push' - uses: actions/checkout@v2 - # End: Workaround for issue with actions/checkout@v2 wrong PR commit checkout + uses: actions/checkout@v3 + # End: Workaround for issue with actions/checkout... - name: "Resolve target branch of pull request." if: github.event_name == 'pull_request' @@ -69,10 +72,10 @@ jobs: echo "matrix=$(echo $matrix)" >> $GITHUB_OUTPUT - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Build Docker image - uses: docker/build-push-action@v2 + uses: docker/build-push-action@v4 with: context: . file: ./Docker/SolrServer/Dockerfile @@ -88,7 +91,7 @@ jobs: ./Build/Test/cibuild_docker.sh - name: Upload artifact - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v3 with: name: solrci-image path: /tmp/solrci-image.tar @@ -104,40 +107,39 @@ jobs: TYPO3_DATABASE_HOST: '127.0.0.1' TYPO3_DATABASE_USERNAME: 'root' TYPO3_DATABASE_PASSWORD: 'root' - PHP_CS_FIXER_VERSION: '^3.2.1' TYPO3_VERSION: ${{ matrix.TYPO3 }} name: TYPO3 ${{ matrix.TYPO3 }} on PHP ${{ matrix.PHP }} steps: - # Workaround for issue with actions/checkout@v2 wrong PR commit checkout: See https://github.com/actions/checkout/issues/299#issuecomment-677674415 + # Workaround for issue with actions/checkout "wrong PR commit checkout". See: ci_bootstrapping job - name: Checkout current state of Pull Request if: github.event_name == 'pull_request' - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 2 ref: ${{ github.event.pull_request.head.sha }} - name: Checkout current state of Branch if: github.event_name == 'push' - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: fetch-depth: 2 - # End: Workaround for issue with actions/checkout@v2 wrong PR commit checkout + # End: Workaround for issue with actions/checkout... - name: Mount RAMFS run: | mkdir -p ${{ env.CI_BUILD_DIRECTORY }} - sudo mount -t tmpfs -o size=3G none ${{ env.CI_BUILD_DIRECTORY }} + sudo mount -t tmpfs -o size=1G none ${{ env.CI_BUILD_DIRECTORY }} sudo mkdir -p ${{ env.CI_BUILD_DIRECTORY }}/data-{solr,mysql} \ && sudo chown $USER ${{ env.CI_BUILD_DIRECTORY }}/data-mysql \ && sudo chown 8983:8983 ${{ env.CI_BUILD_DIRECTORY }}/data-solr - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v1 + uses: docker/setup-buildx-action@v2 - name: Download solrci-image from "ci_bootstrapping" job - uses: actions/download-artifact@v2 + uses: actions/download-artifact@v3 with: name: solrci-image path: /tmp @@ -160,36 +162,9 @@ jobs: with: php-version: ${{ matrix.PHP }} coverage: pcov - tools: composer:2.1.14 - - - name: Resolve CI build cache key - # CI_CACHE_VERSION is used and can be increased to be able to invalidate caches. - # For example if some composer dependencies added or removed in composer.json or - # in Build/Test/bootstrap.sh - run: | - export CURRENT_TYPO3_VERSION_REFERNCE=$(./Build/Helpers/TYPO3_SOURCE_REFERENCE.sh "$TYPO3_VERSION" --short) - export CURRENT_SOLARIUM_VERSION=$(cat composer.json | jq --raw-output '.require."solarium/solarium"') - export CI_CACHE_VERSION="2023.01.20@00:00" - export CI_BUILD_CACHE_KEY=${{ runner.os }}-PHP:${{ matrix.PHP }}-TYPO3:$TYPO3_VERSION@$CURRENT_TYPO3_VERSION_REFERNCE-SOLARIUM:$CURRENT_SOLARIUM_VERSION-"CI_CACHE_VERSION:"$CI_CACHE_VERSION - echo "COMPOSER_GLOBAL_REQUEREMENTS=$(composer config home)" >> $GITHUB_ENV - echo "CI_BUILD_CACHE_KEY=$CI_BUILD_CACHE_KEY" >> $GITHUB_ENV - echo "The key for actions/cache@v2 is \"$CI_BUILD_CACHE_KEY\"" - - - name: Restore ci build caches - id: restore_ci_build_caches - uses: actions/cache@v2 - with: - path: | - ${{ env.CI_BUILD_DIRECTORY }}/Web - ${{ env.CI_BUILD_DIRECTORY }}/bin - ${{ env.CI_BUILD_DIRECTORY }}/vendor - ${{ env.COMPOSER_GLOBAL_REQUEREMENTS }} - composer.json - composer.lock - key: ${{ env.CI_BUILD_CACHE_KEY }} + tools: composer:2.5.5 - name: CI-Bootstrap - if: steps.restore_ci_build_caches.outputs.cache-hit != 'true' run: | ./Build/Test/bootstrap.sh --skip-solr-install echo "Current Size of EXT:Solr build Artefacts before run: " \ @@ -204,8 +179,8 @@ jobs: - name: Upload code coverage to Scrutinizer run: | - .Build/bin/ocular code-coverage:upload --format=php-clover coverage.unit.clover - .Build/bin/ocular code-coverage:upload --format=php-clover coverage.integration.clover + ocular code-coverage:upload --format=php-clover coverage.unit.clover + ocular code-coverage:upload --format=php-clover coverage.integration.clover - name: Clean up run: | @@ -225,7 +200,7 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v2 + uses: actions/checkout@v3 with: ref: ${{ github.event.pull_request.head.sha }} - diff --git a/Build/Helpers/GET_LACAL_PACKAGE_VERSION_CONSTRAINT.sh b/Build/Helpers/GET_LOCAL_PACKAGE_VERSION_CONSTRAINT.sh similarity index 100% rename from Build/Helpers/GET_LACAL_PACKAGE_VERSION_CONSTRAINT.sh rename to Build/Helpers/GET_LOCAL_PACKAGE_VERSION_CONSTRAINT.sh diff --git a/Build/Test/IntegrationTests.xml b/Build/Test/IntegrationTests.xml index 55d51013f0..4f81a8e17d 100644 --- a/Build/Test/IntegrationTests.xml +++ b/Build/Test/IntegrationTests.xml @@ -1,6 +1,7 @@ defineOriginalRootPath(); $testbase->createDirectory(ORIGINAL_ROOT . 'typo3temp/var/tests'); $testbase->createDirectory(ORIGINAL_ROOT . 'typo3temp/var/transient'); diff --git a/Build/Test/UnitTests.xml b/Build/Test/UnitTests.xml index d5e24cf3bc..79f343afcf 100644 --- a/Build/Test/UnitTests.xml +++ b/Build/Test/UnitTests.xml @@ -1,6 +1,7 @@ /dev/null 2>&1 then echo "Couldn't find wget." exit 1 fi -COMPOSER_NO_INTERACTION=1 - -# Setup TYPO3 environment variables -export TYPO3_PATH_PACKAGES="${EXTENSION_ROOTPATH}.Build/vendor/" -export TYPO3_PATH_WEB="${EXTENSION_ROOTPATH}.Build/Web/" +# Use latest TYPO3 LTS stable version, if version number is compatible with get.typo3.org API +if [[ $TYPO3_VERSION =~ ^[0-9]+$ ]] ; then + TYPO3_VERSION=$("${BASH_SOURCE%/*}/../Helpers/TYPO3_GET_LATEST_VERSION.sh" "$TYPO3_VERSION") +fi -echo "Installing test environment" -echo "Using extension path $EXTENSION_ROOTPATH" -echo "Using package path $TYPO3_PATH_PACKAGES" -echo "Using web path $TYPO3_PATH_WEB" +echo "Using TYPO3 Version: $TYPO3_VERSION" +echo "Using database host: $TYPO3_DATABASE_HOST" +echo "Using database dbname: $TYPO3_DATABASE_NAME" +echo "Using database user: $TYPO3_DATABASE_USERNAME" +echo "Using database password: $TYPO3_DATABASE_PASSWORD" -# Install TYPO3 sources -if [[ $TYPO3_VERSION = *"master"* ]]; then - composer config minimum-stability dev -fi +COMPOSER_NO_INTERACTION=1 -if ! composer require --dev --update-with-dependencies --prefer-source \ - typo3/cms-core:"$TYPO3_VERSION" \ - typo3/cms-backend:"$TYPO3_VERSION" \ - typo3/cms-recordlist:"$TYPO3_VERSION" \ - typo3/cms-fluid:"$TYPO3_VERSION" \ - typo3/cms-fluid-styled-content:"$TYPO3_VERSION" \ - typo3/cms-frontend:"$TYPO3_VERSION" \ - typo3/cms-extbase:"$TYPO3_VERSION" \ - typo3/cms-reports:"$TYPO3_VERSION" \ - typo3/cms-scheduler:"$TYPO3_VERSION" \ - typo3/cms-tstemplate:"$TYPO3_VERSION" \ - typo3/cms-install:"$TYPO3_VERSION" +echo "Installing test environment" +if ! composer tests:setup then echo "The test environment could not be installed by composer as expected. Please fix this issue." exit 1 fi -mkdir -p $TYPO3_PATH_WEB/uploads $TYPO3_PATH_WEB/typo3temp +echo "Install third party tools globally:" +export PATH=$PATH:$(composer config --global home)/vendor/bin +if ! composer tests:setup:global-require +then + "The test environment could not be installed by composer as expected. Please fix this issue." + exit 1 +fi diff --git a/Build/Test/cibuild.sh b/Build/Test/cibuild.sh index 2f12bb4a73..17a40e61ee 100755 --- a/Build/Test/cibuild.sh +++ b/Build/Test/cibuild.sh @@ -1,13 +1,6 @@ #!/usr/bin/env bash -TYPO3_PATH_WEB="$(pwd)/.Build/Web/" -export TYPO3_PATH_WEB -TYPO3_PATH_PACKAGES="$(pwd)/.Build/vendor/" -export TYPO3_PATH_PACKAGES - -TYPO3_BIN_DIR="$(pwd)/.Build/bin/" -export TYPO3_BIN_DIR -export PATH="$TYPO3_BIN_DIR:$PATH" +EXIT_CODE=0 COMPOSERS_BIN_DIR="$(composer config home)/vendor/bin" # Add COMPOSERS_BIN_DIR to $PATH, if not present @@ -25,54 +18,48 @@ echo "Run PHP Lint" if ! find . -name \*.php ! -path "./.Build/*" 2>/dev/null | parallel --gnu php -d display_errors=stderr -l {} > /dev/null then echo "There are syntax errors, please check and fix them." - exit 1 + EXIT_CODE=1 else echo "No syntax errors! Great job!" fi -echo "Check compliance against TYPO3 Coding Standards" -if ! .Build/bin/php-cs-fixer --version > /dev/null 2>&1 + +echo "TYPO3 Coding Standards compliance: See https://github.com/TYPO3/coding-standards" +if ! composer t3:standards:fix -- --diff --verbose --dry-run && rm .php-cs-fixer.cache then - echo "TYPO3 https://github.com/TYPO3/coding-standards is not set properly." - echo "Please fix that asap to avoid unwanted changes in the future." - exit 1 + echo "Some files are not compliant to TYPO3 Coding Standards" + echo "Please fix the files listed above." + echo "Tip for auto fix: " + echo " TYPO3_VERSION=\"${TYPO3_VERSION}\" composer tests:setup && composer t3:standards:fix" + EXIT_CODE=3 else - echo "TYPO3 Coding Standards compliance: See https://github.com/TYPO3/coding-standards" - if ! composer t3:standards:fix -- --diff --verbose --dry-run && rm .php-cs-fixer.cache - then - echo "Some files are not compliant to TYPO3 Coding Standards" - echo "Please fix the files listed above." - echo "Tip for auto fix: " - echo " composer tests:setup && composer t3:standards:fix" - exit 1 - else - echo "The code is TYPO3 Coding Standards compliant! Great job!" - fi + echo "The code is TYPO3 Coding Standards compliant! Great job!" fi echo -e "\n\n" echo "Run XML Lint" -if ! xmllint --version > /dev/null 2>&1; then - echo "XML Lint not found, skipping XML linting." -else - echo -e "\n\n" - echo "Check syntax of XML files" - if ! composer lint:xlf - then - echo "Some XML files are not valid" - echo "Please fix the files listed above" - exit 1 - fi +if ! composer tests:lint-xml +then + EXIT_CODE=4 fi +echo -e "\n\n" +echo "Run PHPStan analysis" +if ! composer tests:phpstan +then + # disable fail temporary + #EXIT_CODE=7 + echo "Error during running the PHPStan analysis, please check and fix them." + echo "Tip for working on them: " + echo " TYPO3_VERSION=\"${TYPO3_VERSION}\" composer tests:setup && composer tests:phpstan" +fi echo -e "\n\n" echo "Run unit tests" -UNIT_BOOTSTRAP="Build/Test/UnitTestsBootstrap.php" -if ! .Build/bin/phpunit --colors -c Build/Test/UnitTests.xml --bootstrap=$UNIT_BOOTSTRAP --coverage-clover=coverage.unit.clover +if ! composer tests:unit -- --coverage-clover=coverage.unit.clover then echo "Error during running the unit tests please check and fix them" - exit 1 + EXIT_CODE=5 fi # @@ -109,9 +96,10 @@ fi echo -e "\n\n" echo "Run integration tests" -INTEGRATION_BOOTSTRAP="Build/Test/IntegrationTestsBootstrap.php" -if ! .Build/bin/phpunit --colors -c Build/Test/IntegrationTests.xml --bootstrap=$INTEGRATION_BOOTSTRAP --coverage-clover=coverage.integration.clover +if ! composer tests:integration -- --coverage-clover=coverage.integration.clover then echo "Error during running the integration tests please check and fix them" - exit 1 + EXIT_CODE=6 fi + +exit $EXIT_CODE diff --git a/Build/Test/phpstan-constants.php b/Build/Test/phpstan-constants.php new file mode 100644 index 0000000000..1df075f0fc --- /dev/null +++ b/Build/Test/phpstan-constants.php @@ -0,0 +1,5 @@ +&2 echo \"Can not proceed, because env var TYPO3_VERSION is not set\"; exit 1; else echo \"Setup test environment for TYPO3 ${TYPO3_VERSION}\"; fi", "if echo $TYPO3_VERSION | grep -q \"dev\"; then $COMPOSER_BINARY config minimum-stability dev; fi" ], + "tests:setup:global-require": [ + "echo \"Install global composer dependencies.\"", + "@composer global require sclable/xml-lint", + "@composer global require scrutinizer/ocular" + ], "tests:setup": [ + "# @todo: Abort if composer.json has not staged/commited changes on composer.json, to avoid losing necessery changes.", "@tests:env", - "@composer req --prefer-source --update-with-all-dependencies typo3/cms-core:${TYPO3_VERSION}", + "@composer req --update-with-all-dependencies typo3/cms-core:${TYPO3_VERSION}", "@tests:restore-git" ], "tests:unit": [ - "phpunit --colors --config=Build/Test/UnitTests.xml --bootstrap=Build/Test/UnitTestsBootstrap.php" + "phpunit --config=Build/Test/UnitTests.xml" ], "tests:integration": [ - "phpunit --colors --config=Build/Test/IntegrationTests.xml --bootstrap=.Build/Web/typo3conf/ext/solr/Build/Test/IntegrationTestsBootstrap.php" + "Composer\\Config::disableProcessTimeout", + "phpunit --config=Build/Test/IntegrationTests.xml" + ], + "tests:phpstan": [ + "phpstan analyze -c Build/Test/phpstan.neon" ], "t3:standards:fix": [ "php-cs-fixer fix" ], - "lint:xlf": [ - "xmllint Resources/Private/Language/ -p '*.xlf'" + "tests:lint-xml": [ + "echo \"Run XML Lint\"", + "if ! $($COMPOSER_BINARY config home)/vendor/bin/xmllint Resources/Private/Language/ --pattern='*.xlf' --exclude=.Build/*; then echo \"Some XML files are not valid\" && echo \"Please fix the files listed above\" && export EXIT_CODE=4; else echo \"No syntax errors! Great job!\"; fi" ] }, "extra": { @@ -135,7 +155,6 @@ }, "typo3/cms": { "extension-key": "solr", - "cms-package-dir": "{$vendor-dir}/typo3/cms", "web-dir": ".Build/Web" }, "TYPO3-Solr": { From 176c6f262f814a5c1668a499506a557b784d2231 Mon Sep 17 00:00:00 2001 From: Markus Friedrich Date: Wed, 13 Mar 2024 12:35:24 +0100 Subject: [PATCH 07/21] [TASK] Activate PHPStan Activates PHPStan in level 2 and performs required adaptions for this level. --- Build/Test/cibuild.sh | 2 +- Build/Test/phpstan.neon | 4 ++-- Classes/Controller/Backend/PageModuleSummary.php | 1 - .../Backend/Search/CoreOptimizationModuleController.php | 2 +- .../RecordMonitor/Helper/ConfigurationAwareRecordService.php | 2 +- Classes/Domain/Search/ResultSet/Facets/SortingExpression.php | 2 +- Classes/Domain/Search/SearchRequest.php | 2 +- Classes/Domain/Search/SearchRequestBuilder.php | 2 +- Classes/Domain/Search/Suggest/SuggestService.php | 2 +- Classes/Domain/Site/SiteRepository.php | 2 +- Classes/IndexQueue/PageIndexerRequest.php | 2 +- Classes/System/Util/ArrayAccessor.php | 2 +- .../Domain/Index/Fixtures/fake_extension2_bar_tca.php | 2 +- .../Index/Fixtures/fake_extension2_directrelated_tca.php | 2 +- .../Domain/Index/Fixtures/fake_extension2_mmrelated_tca.php | 2 +- Tests/Integration/Fixtures/fake_extension_tca.php | 2 +- Tests/Integration/GarbageCollectorTest.php | 1 + .../IndexQueue/Fixtures/fake_extension2_bar_tca.php | 2 +- .../Fixtures/fake_extension2_directrelated_tca.php | 2 +- .../IndexQueue/Fixtures/fake_extension2_mmrelated_tca.php | 2 +- Tests/Integration/IndexQueue/Fixtures/fake_extension_tca.php | 2 +- Tests/Integration/IndexQueue/IndexerTest.php | 2 +- Tests/Integration/Task/IndexQueueDependencyFaker.php | 1 - Tests/Unit/ConnectionManagerTest.php | 2 +- .../Index/Queue/UpdateHandler/DataUpdateHandlerTest.php | 2 +- .../Events/AbstractProcessingFinishedEventTest.php | 2 ++ .../UpdateHandler/Events/AbstractDataUpdateEventTest.php | 3 +++ .../UpdateHandler/Events/ContentElementDeletedEventTest.php | 4 ++-- .../Index/Queue/UpdateHandler/Events/PageMovedEventTest.php | 4 ++-- .../Domain/Search/ResultSet/Facets/TestPackage/TestFacet.php | 5 ++--- .../Search/ResultSet/Facets/TestPackage/TestParser.php | 2 +- .../Search/Statistics/StatisticsWriterProcessorTest.php | 3 +-- Tests/Unit/IndexQueue/AbstractIndexerTest.php | 4 ++-- 33 files changed, 39 insertions(+), 37 deletions(-) diff --git a/Build/Test/cibuild.sh b/Build/Test/cibuild.sh index 17a40e61ee..a46055b6ca 100755 --- a/Build/Test/cibuild.sh +++ b/Build/Test/cibuild.sh @@ -48,7 +48,7 @@ echo "Run PHPStan analysis" if ! composer tests:phpstan then # disable fail temporary - #EXIT_CODE=7 + EXIT_CODE=7 echo "Error during running the PHPStan analysis, please check and fix them." echo "Tip for working on them: " echo " TYPO3_VERSION=\"${TYPO3_VERSION}\" composer tests:setup && composer tests:phpstan" diff --git a/Build/Test/phpstan.neon b/Build/Test/phpstan.neon index 6b45122a15..148f793877 100644 --- a/Build/Test/phpstan.neon +++ b/Build/Test/phpstan.neon @@ -2,7 +2,7 @@ includes: - %rootDir%/../phpstan-phpunit/extension.neon parameters: - level: 0 + level: 1 treatPhpDocTypesAsCertain: false bootstrapFiles: @@ -17,4 +17,4 @@ parameters: - %currentWorkingDirectory%/Tests ignoreErrors: - - '#^Variable \$_EXTKEY might not be defined\.#' + - '#Constructor of class .*\\Sorting has an unused parameter \$resultSet.#' \ No newline at end of file diff --git a/Classes/Controller/Backend/PageModuleSummary.php b/Classes/Controller/Backend/PageModuleSummary.php index 573979d219..55cd7718d2 100644 --- a/Classes/Controller/Backend/PageModuleSummary.php +++ b/Classes/Controller/Backend/PageModuleSummary.php @@ -117,7 +117,6 @@ protected function addSettingFromFlexForm($settingName, $flexFormField) /** * @param string $settingName * @param array $values - * @return bool */ protected function addSettingFromFlexFormArray($settingName, $values) { diff --git a/Classes/Controller/Backend/Search/CoreOptimizationModuleController.php b/Classes/Controller/Backend/Search/CoreOptimizationModuleController.php index ba873065cf..d0d4d5e0f9 100644 --- a/Classes/Controller/Backend/Search/CoreOptimizationModuleController.php +++ b/Classes/Controller/Backend/Search/CoreOptimizationModuleController.php @@ -169,7 +169,7 @@ public function importSynonymListAction( $coreAdmin = $this->selectedSolrCoreConnection->getAdminService(); foreach ($fileLines as $baseWord => $synonyms) { - if (!isset($baseWord) || empty($synonyms)) { + if (empty($synonyms)) { continue; } $this->deleteExistingSynonym($overrideExisting, $deleteSynonymsBefore, $baseWord); diff --git a/Classes/Domain/Index/Queue/RecordMonitor/Helper/ConfigurationAwareRecordService.php b/Classes/Domain/Index/Queue/RecordMonitor/Helper/ConfigurationAwareRecordService.php index f44462c6cd..f7a60133fc 100644 --- a/Classes/Domain/Index/Queue/RecordMonitor/Helper/ConfigurationAwareRecordService.php +++ b/Classes/Domain/Index/Queue/RecordMonitor/Helper/ConfigurationAwareRecordService.php @@ -147,7 +147,7 @@ protected function getRecordForIndexConfigurationIsValid( $row = (array)BackendUtility::getRecord($recordTable, $recordUid, '*', $recordWhereClause); $cache->set($cacheId, $row); - return $row ?? []; + return $row; } /** diff --git a/Classes/Domain/Search/ResultSet/Facets/SortingExpression.php b/Classes/Domain/Search/ResultSet/Facets/SortingExpression.php index 91a18666cf..ac0908df74 100644 --- a/Classes/Domain/Search/ResultSet/Facets/SortingExpression.php +++ b/Classes/Domain/Search/ResultSet/Facets/SortingExpression.php @@ -55,7 +55,7 @@ public function getForJsonFacet(string $sorting, string $direction): string { $isMetricSorting = strpos($sorting, 'metrics_') === 0; $expression = $isMetricSorting ? $sorting : $this->getForFacet($sorting); - $direction = strtolower($direction ?? ''); + $direction = strtolower($direction); if (!empty($direction) && in_array($direction, ['asc', 'desc'])) { $expression .= ' ' . $direction; } diff --git a/Classes/Domain/Search/SearchRequest.php b/Classes/Domain/Search/SearchRequest.php index a1731f52d7..e3c05ce070 100644 --- a/Classes/Domain/Search/SearchRequest.php +++ b/Classes/Domain/Search/SearchRequest.php @@ -137,7 +137,7 @@ public function __construct( if (!is_null($typoScriptConfiguration)) { $additionalPersistentArgumentsNames = $typoScriptConfiguration->getSearchAdditionalPersistentArgumentNames(); - foreach ($additionalPersistentArgumentsNames ?? [] as $additionalPersistentArgumentsName) { + foreach ($additionalPersistentArgumentsNames as $additionalPersistentArgumentsName) { $this->persistentArgumentsPaths[] = $this->argumentNameSpace . ':' . $additionalPersistentArgumentsName; } $this->persistentArgumentsPaths = array_unique($this->persistentArgumentsPaths); diff --git a/Classes/Domain/Search/SearchRequestBuilder.php b/Classes/Domain/Search/SearchRequestBuilder.php index 22b95417ff..bd891993cd 100644 --- a/Classes/Domain/Search/SearchRequestBuilder.php +++ b/Classes/Domain/Search/SearchRequestBuilder.php @@ -76,7 +76,7 @@ protected function applyPassedResultsPerPage(SearchRequest $searchRequest): Sear $requestedPerPage = $searchRequest->getResultsPerPage(); $perPageSwitchOptions = $this->typoScriptConfiguration->getSearchResultsPerPageSwitchOptionsAsArray(); - if (isset($requestedPerPage) && in_array($requestedPerPage, $perPageSwitchOptions)) { + if (in_array($requestedPerPage, $perPageSwitchOptions)) { $this->session->setPerPage($requestedPerPage); $searchRequest->setPage(0); } diff --git a/Classes/Domain/Search/Suggest/SuggestService.php b/Classes/Domain/Search/Suggest/SuggestService.php index 30852bc229..39f82e92e7 100644 --- a/Classes/Domain/Search/Suggest/SuggestService.php +++ b/Classes/Domain/Search/Suggest/SuggestService.php @@ -188,7 +188,7 @@ protected function getSolrSuggestions(SuggestQuery $suggestQuery): array $facetSuggestions = isset($suggestConfig['suggestField']) ? $results->facet_counts->facet_fields->{$suggestConfig['suggestField']} ?? [] : []; $facetSuggestions = ParsingUtil::getMapArrayFromFlatArray($facetSuggestions); - return $facetSuggestions ?? []; + return $facetSuggestions; } /** diff --git a/Classes/Domain/Site/SiteRepository.php b/Classes/Domain/Site/SiteRepository.php index 4699b34891..b56e826f7f 100644 --- a/Classes/Domain/Site/SiteRepository.php +++ b/Classes/Domain/Site/SiteRepository.php @@ -170,7 +170,7 @@ public function getAvailableSites(bool $stopOnInvalidSite = false): array $sites = $this->getAvailableTYPO3ManagedSites($stopOnInvalidSite); $this->runtimeCache->set($cacheId, $sites); - return $sites ?? []; + return $sites; } /** diff --git a/Classes/IndexQueue/PageIndexerRequest.php b/Classes/IndexQueue/PageIndexerRequest.php index 2da8389ae4..821d630155 100644 --- a/Classes/IndexQueue/PageIndexerRequest.php +++ b/Classes/IndexQueue/PageIndexerRequest.php @@ -428,7 +428,7 @@ protected function getUrl(string $url, array $headers, float $timeout): Response ), [ 'HTTP headers' => $response->getHeaders(), - 'options' => $options, + 'options' => $options ?? [], ] ); } diff --git a/Classes/System/Util/ArrayAccessor.php b/Classes/System/Util/ArrayAccessor.php index 212ea72466..0ad25448a1 100644 --- a/Classes/System/Util/ArrayAccessor.php +++ b/Classes/System/Util/ArrayAccessor.php @@ -225,7 +225,7 @@ protected function resetDeepElementWithLoop(array $pathArray) if (empty($currentElement)) { unset($currentElement); } - } else { + } elseif (isset($currentElement[$pathSegment])) { $currentElement = &$currentElement[$pathSegment]; } } diff --git a/Tests/Integration/Domain/Index/Fixtures/fake_extension2_bar_tca.php b/Tests/Integration/Domain/Index/Fixtures/fake_extension2_bar_tca.php index 072e932193..5ab048f015 100644 --- a/Tests/Integration/Domain/Index/Fixtures/fake_extension2_bar_tca.php +++ b/Tests/Integration/Domain/Index/Fixtures/fake_extension2_bar_tca.php @@ -2,7 +2,7 @@ return [ 'ctrl' => [ - 'title' => $ll . 'tx_fakeextension_domain_model_bar', + 'title' => 'tx_fakeextension_domain_model_bar', 'descriptionColumn' => 'tag', 'label' => 'title', 'hideAtCopy' => true, diff --git a/Tests/Integration/Domain/Index/Fixtures/fake_extension2_directrelated_tca.php b/Tests/Integration/Domain/Index/Fixtures/fake_extension2_directrelated_tca.php index caae111a0e..16b202169d 100644 --- a/Tests/Integration/Domain/Index/Fixtures/fake_extension2_directrelated_tca.php +++ b/Tests/Integration/Domain/Index/Fixtures/fake_extension2_directrelated_tca.php @@ -2,7 +2,7 @@ return [ 'ctrl' => [ - 'title' => $ll . 'tx_fakeextension_domain_model_directrelated', + 'title' => 'tx_fakeextension_domain_model_directrelated', 'descriptionColumn' => 'category', 'label' => 'category', 'hideAtCopy' => true, diff --git a/Tests/Integration/Domain/Index/Fixtures/fake_extension2_mmrelated_tca.php b/Tests/Integration/Domain/Index/Fixtures/fake_extension2_mmrelated_tca.php index 3353a6f165..b1b4f9c0da 100644 --- a/Tests/Integration/Domain/Index/Fixtures/fake_extension2_mmrelated_tca.php +++ b/Tests/Integration/Domain/Index/Fixtures/fake_extension2_mmrelated_tca.php @@ -2,7 +2,7 @@ return [ 'ctrl' => [ - 'title' => $ll . 'tx_fakeextension_domain_model_mmrelated', + 'title' => 'tx_fakeextension_domain_model_mmrelated', 'descriptionColumn' => 'tag', 'label' => 'tag', 'hideAtCopy' => true, diff --git a/Tests/Integration/Fixtures/fake_extension_tca.php b/Tests/Integration/Fixtures/fake_extension_tca.php index 908839be4c..a16b69e1e4 100644 --- a/Tests/Integration/Fixtures/fake_extension_tca.php +++ b/Tests/Integration/Fixtures/fake_extension_tca.php @@ -2,7 +2,7 @@ return [ 'ctrl' => [ - 'title' => $ll . 'tx_fakeextension_domain_model_foo', + 'title' => 'tx_fakeextension_domain_model_foo', 'descriptionColumn' => 'tag', 'label' => 'title', 'hideAtCopy' => true, diff --git a/Tests/Integration/GarbageCollectorTest.php b/Tests/Integration/GarbageCollectorTest.php index 0b015c4d23..493f239692 100644 --- a/Tests/Integration/GarbageCollectorTest.php +++ b/Tests/Integration/GarbageCollectorTest.php @@ -979,6 +979,7 @@ protected function addToQueueAndIndexRecord($table, $uid): bool self::assertEquals(1, $updatedItems); // run the indexer + $result = false; $items = $this->indexQueue->getItems($table, $uid); foreach ($items as $item) { $result = $this->indexer->index($item); diff --git a/Tests/Integration/IndexQueue/Fixtures/fake_extension2_bar_tca.php b/Tests/Integration/IndexQueue/Fixtures/fake_extension2_bar_tca.php index cf131e263c..34b52fd357 100644 --- a/Tests/Integration/IndexQueue/Fixtures/fake_extension2_bar_tca.php +++ b/Tests/Integration/IndexQueue/Fixtures/fake_extension2_bar_tca.php @@ -2,7 +2,7 @@ return [ 'ctrl' => [ - 'title' => $ll . 'tx_fakeextension_domain_model_bar', + 'title' => 'tx_fakeextension_domain_model_bar', 'descriptionColumn' => 'tag', 'label' => 'title', 'hideAtCopy' => true, diff --git a/Tests/Integration/IndexQueue/Fixtures/fake_extension2_directrelated_tca.php b/Tests/Integration/IndexQueue/Fixtures/fake_extension2_directrelated_tca.php index 7fccb73891..dd016e55f9 100644 --- a/Tests/Integration/IndexQueue/Fixtures/fake_extension2_directrelated_tca.php +++ b/Tests/Integration/IndexQueue/Fixtures/fake_extension2_directrelated_tca.php @@ -2,7 +2,7 @@ return [ 'ctrl' => [ - 'title' => $ll . 'tx_fakeextension_domain_model_directrelated', + 'title' => 'tx_fakeextension_domain_model_directrelated', 'descriptionColumn' => 'category', 'label' => 'category_label', 'hideAtCopy' => true, diff --git a/Tests/Integration/IndexQueue/Fixtures/fake_extension2_mmrelated_tca.php b/Tests/Integration/IndexQueue/Fixtures/fake_extension2_mmrelated_tca.php index 3353a6f165..b1b4f9c0da 100644 --- a/Tests/Integration/IndexQueue/Fixtures/fake_extension2_mmrelated_tca.php +++ b/Tests/Integration/IndexQueue/Fixtures/fake_extension2_mmrelated_tca.php @@ -2,7 +2,7 @@ return [ 'ctrl' => [ - 'title' => $ll . 'tx_fakeextension_domain_model_mmrelated', + 'title' => 'tx_fakeextension_domain_model_mmrelated', 'descriptionColumn' => 'tag', 'label' => 'tag', 'hideAtCopy' => true, diff --git a/Tests/Integration/IndexQueue/Fixtures/fake_extension_tca.php b/Tests/Integration/IndexQueue/Fixtures/fake_extension_tca.php index 908839be4c..a16b69e1e4 100644 --- a/Tests/Integration/IndexQueue/Fixtures/fake_extension_tca.php +++ b/Tests/Integration/IndexQueue/Fixtures/fake_extension_tca.php @@ -2,7 +2,7 @@ return [ 'ctrl' => [ - 'title' => $ll . 'tx_fakeextension_domain_model_foo', + 'title' => 'tx_fakeextension_domain_model_foo', 'descriptionColumn' => 'tag', 'label' => 'title', 'hideAtCopy' => true, diff --git a/Tests/Integration/IndexQueue/IndexerTest.php b/Tests/Integration/IndexQueue/IndexerTest.php index c07c668ccf..879ee82ad3 100644 --- a/Tests/Integration/IndexQueue/IndexerTest.php +++ b/Tests/Integration/IndexQueue/IndexerTest.php @@ -272,7 +272,7 @@ public function canIndexMultipleMMRelatedItems() // @extensionScannerIgnoreLine $tags = $decodedSolrContent->response->docs[0]->tags_stringM; - self::assertSame(['the tag', 'another tag'], $tags, $solrContent, 'Did not find MM related tags'); + self::assertSame(['the tag', 'another tag'], $tags, 'Did not find MM related tags'); self::assertStringContainsString('"numFound":1', $solrContent, 'Could not index document into solr'); self::assertStringContainsString('"title":"testnews"', $solrContent, 'Could not index document into solr'); diff --git a/Tests/Integration/Task/IndexQueueDependencyFaker.php b/Tests/Integration/Task/IndexQueueDependencyFaker.php index 7e3a4cae70..c3f8e590d9 100644 --- a/Tests/Integration/Task/IndexQueueDependencyFaker.php +++ b/Tests/Integration/Task/IndexQueueDependencyFaker.php @@ -37,7 +37,6 @@ public static function getRequestId() * @param string $url * @param bool $flags * @param resource $context - * @return string */ public static function getHttpContent($url, $flags, $context) { diff --git a/Tests/Unit/ConnectionManagerTest.php b/Tests/Unit/ConnectionManagerTest.php index b5cecc745b..175f997edc 100644 --- a/Tests/Unit/ConnectionManagerTest.php +++ b/Tests/Unit/ConnectionManagerTest.php @@ -85,7 +85,7 @@ protected function setUp(): void $GLOBALS['TSFE'] = $TSFE; /** @var $GLOBALS ['TSFE']->tmpl \TYPO3\CMS\Core\TypoScript\TemplateService */ - $GLOBALS['TSFE']->tmpl = $this->getDumbMock(TemplateService::class, ['linkData']); + $GLOBALS['TSFE']->tmpl = $this->getDumbMock(TemplateService::class); $GLOBALS['TSFE']->tmpl->getFileName_backPath = Environment::getPublicPath() . '/'; $GLOBALS['TSFE']->tmpl->setup['config.']['typolinkEnableLinksAcrossDomains'] = 0; $GLOBALS['TSFE']->tmpl->setup['plugin.']['tx_solr.']['solr.']['host'] = 'localhost'; diff --git a/Tests/Unit/Domain/Index/Queue/UpdateHandler/DataUpdateHandlerTest.php b/Tests/Unit/Domain/Index/Queue/UpdateHandler/DataUpdateHandlerTest.php index 0c19b33e19..e65c6267a1 100644 --- a/Tests/Unit/Domain/Index/Queue/UpdateHandler/DataUpdateHandlerTest.php +++ b/Tests/Unit/Domain/Index/Queue/UpdateHandler/DataUpdateHandlerTest.php @@ -59,7 +59,7 @@ class DataUpdateHandlerTest extends AbstractUpdateHandlerTest /** * @var SolrLogManager|MockObject */ - protected $solrLogManagerMock; + protected $loggerMock; protected function setUp(): void { diff --git a/Tests/Unit/Domain/Index/Queue/UpdateHandler/EventListener/Events/AbstractProcessingFinishedEventTest.php b/Tests/Unit/Domain/Index/Queue/UpdateHandler/EventListener/Events/AbstractProcessingFinishedEventTest.php index a8e64db6e5..9310f6e043 100644 --- a/Tests/Unit/Domain/Index/Queue/UpdateHandler/EventListener/Events/AbstractProcessingFinishedEventTest.php +++ b/Tests/Unit/Domain/Index/Queue/UpdateHandler/EventListener/Events/AbstractProcessingFinishedEventTest.php @@ -26,6 +26,8 @@ */ abstract class AbstractProcessingFinishedEventTest extends UnitTest { + protected const EVENT_CLASS = 'stdClass'; + /** * @test */ diff --git a/Tests/Unit/Domain/Index/Queue/UpdateHandler/Events/AbstractDataUpdateEventTest.php b/Tests/Unit/Domain/Index/Queue/UpdateHandler/Events/AbstractDataUpdateEventTest.php index 0df37e6d29..fa595b8008 100644 --- a/Tests/Unit/Domain/Index/Queue/UpdateHandler/Events/AbstractDataUpdateEventTest.php +++ b/Tests/Unit/Domain/Index/Queue/UpdateHandler/Events/AbstractDataUpdateEventTest.php @@ -27,6 +27,9 @@ */ abstract class AbstractDataUpdateEventTest extends UnitTest { + protected const EVENT_CLASS = AbstractDataUpdateEvent::class; + protected const EVENT_TEST_TABLE = 'tx_foo_bar'; + /** * @return AbstractDataUpdateEventTest * diff --git a/Tests/Unit/Domain/Index/Queue/UpdateHandler/Events/ContentElementDeletedEventTest.php b/Tests/Unit/Domain/Index/Queue/UpdateHandler/Events/ContentElementDeletedEventTest.php index f3fc4776ec..149105f8ff 100644 --- a/Tests/Unit/Domain/Index/Queue/UpdateHandler/Events/ContentElementDeletedEventTest.php +++ b/Tests/Unit/Domain/Index/Queue/UpdateHandler/Events/ContentElementDeletedEventTest.php @@ -32,7 +32,7 @@ class ContentElementDeletedEventTest extends AbstractDataUpdateEventTest */ public function canInitAndReturnFields(): void { - $event = new ContentElementDeletedEvent(123, static::EVENT_TEST_TABLE, ['hidden' => 1]); + $event = new ContentElementDeletedEvent(123); self::assertEmpty($event->getFields()); } @@ -41,7 +41,7 @@ public function canInitAndReturnFields(): void */ public function canForceTable(): void { - $event = new ContentElementDeletedEvent(123, 'tx_foo_bar'); + $event = new ContentElementDeletedEvent(123); self::assertEquals('tt_content', $event->getTable()); } diff --git a/Tests/Unit/Domain/Index/Queue/UpdateHandler/Events/PageMovedEventTest.php b/Tests/Unit/Domain/Index/Queue/UpdateHandler/Events/PageMovedEventTest.php index 2745a24447..de7aab1eef 100644 --- a/Tests/Unit/Domain/Index/Queue/UpdateHandler/Events/PageMovedEventTest.php +++ b/Tests/Unit/Domain/Index/Queue/UpdateHandler/Events/PageMovedEventTest.php @@ -32,7 +32,7 @@ class PageMovedEventTest extends AbstractDataUpdateEventTest */ public function canInitAndReturnFields(): void { - $event = new PageMovedEvent(123, static::EVENT_TEST_TABLE, ['hidden' => 1]); + $event = new PageMovedEvent(123); self::assertEmpty($event->getFields()); } @@ -41,7 +41,7 @@ public function canInitAndReturnFields(): void */ public function canForceTable(): void { - $event = new PageMovedEvent(123, 'tx_foo_bar'); + $event = new PageMovedEvent(123); self::assertEquals('pages', $event->getTable()); } diff --git a/Tests/Unit/Domain/Search/ResultSet/Facets/TestPackage/TestFacet.php b/Tests/Unit/Domain/Search/ResultSet/Facets/TestPackage/TestFacet.php index 966786bd0f..8870ae6822 100644 --- a/Tests/Unit/Domain/Search/ResultSet/Facets/TestPackage/TestFacet.php +++ b/Tests/Unit/Domain/Search/ResultSet/Facets/TestPackage/TestFacet.php @@ -4,16 +4,15 @@ use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\AbstractFacet; use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\AbstractFacetItemCollection; +use ApacheSolrForTypo3\Solr\Domain\Search\ResultSet\Facets\OptionBased\Hierarchy\NodeCollection; class TestFacet extends AbstractFacet { /** * The implementation of this method should return a "flatten" collection of all items. - * - * @return AbstractFacetItemCollection */ public function getAllFacetItems(): AbstractFacetItemCollection { - // TODO: Implement getAllFacetItems() method. + return new NodeCollection(); } } diff --git a/Tests/Unit/Domain/Search/ResultSet/Facets/TestPackage/TestParser.php b/Tests/Unit/Domain/Search/ResultSet/Facets/TestPackage/TestParser.php index fdd93f5369..b36adfc036 100644 --- a/Tests/Unit/Domain/Search/ResultSet/Facets/TestPackage/TestParser.php +++ b/Tests/Unit/Domain/Search/ResultSet/Facets/TestPackage/TestParser.php @@ -14,7 +14,7 @@ class TestParser extends AbstractFacetParser * @param array $facetConfiguration * @return AbstractFacet|null */ - public function parse(SearchResultSet $resultSet, string $facetName, array $facetConfiguration) + public function parse(SearchResultSet $resultSet, string $facetName, array $facetConfiguration): ?AbstractFacet { return new TestFacet($resultSet, $facetName, 'testField'); } diff --git a/Tests/Unit/Domain/Search/Statistics/StatisticsWriterProcessorTest.php b/Tests/Unit/Domain/Search/Statistics/StatisticsWriterProcessorTest.php index ed90dad164..ca76d73ed1 100644 --- a/Tests/Unit/Domain/Search/Statistics/StatisticsWriterProcessorTest.php +++ b/Tests/Unit/Domain/Search/Statistics/StatisticsWriterProcessorTest.php @@ -105,8 +105,7 @@ public function canWriteExpectedStatisticsData() $resultSetMock->expects(self::once())->method('getUsedQuery')->willReturn($this->queryMock); $resultSetMock->expects(self::once())->method('getUsedSearchRequest')->willReturn($this->searchRequestMock); - $self = $this; - $this->statisticsRepositoryMock->expects(self::any())->method('saveStatisticsRecord')->willReturnCallback(function ($statisticData) use ($self) { + $this->statisticsRepositoryMock->expects(self::any())->method('saveStatisticsRecord')->willReturnCallback(function ($statisticData) { $this->assertSame('my search', $statisticData['keywords'], 'Unexpected keywords given'); $this->assertSame('192.168.2.22', $statisticData['ip'], 'Unexpected ip given'); $this->assertSame(4711, $statisticData['root_pid'], 'Unexpected root pid given'); diff --git a/Tests/Unit/IndexQueue/AbstractIndexerTest.php b/Tests/Unit/IndexQueue/AbstractIndexerTest.php index ea60ae2e54..84a50a419a 100644 --- a/Tests/Unit/IndexQueue/AbstractIndexerTest.php +++ b/Tests/Unit/IndexQueue/AbstractIndexerTest.php @@ -92,8 +92,8 @@ public function isSerializedValueCanHandleCustomValidSerializedValueDetector() self::assertTrue(AbstractIndexer::isSerializedValue($indexingConfiguration, 'topic_stringM'), 'Every value should be treated as serialized by custom detector'); self::assertTrue(AbstractIndexer::isSerializedValue($indexingConfiguration, 'csv_stringM'), 'Every value should be treated as serialized by custom detector'); self::assertTrue(AbstractIndexer::isSerializedValue($indexingConfiguration, 'categories_stringM'), 'Every value should be treated as serialized by custom detector'); - self::assertTrue(AbstractIndexer::isSerializedValue($indexingConfiguration, 'category_stringM', 'Every value should be treated as serialized by custom detector')); - self::assertTrue(AbstractIndexer::isSerializedValue($indexingConfiguration, 'notConfigured_stringM', 'Every value should be treated as serialized by custom detector')); + self::assertTrue(AbstractIndexer::isSerializedValue($indexingConfiguration, 'category_stringM'), 'Every value should be treated as serialized by custom detector'); + self::assertTrue(AbstractIndexer::isSerializedValue($indexingConfiguration, 'notConfigured_stringM'), 'Every value should be treated as serialized by custom detector'); } /** From af4c5b39577ca7c0aa12ff2e470c201420e72c57 Mon Sep 17 00:00:00 2001 From: Markus Friedrich Date: Wed, 13 Mar 2024 15:27:24 +0100 Subject: [PATCH 08/21] Revert "[TASK] Add content stream check" This reverts commit 71e6ebcb7facc7b4e1eb7c015af0807adf4aec9b. --- Classes/Report/SolrStatus.php | 23 +---- .../System/Solr/Service/SolrAdminService.php | 21 ---- .../Templates/Backend/Reports/SolrStatus.html | 97 ++++++++----------- 3 files changed, 42 insertions(+), 99 deletions(-) diff --git a/Classes/Report/SolrStatus.php b/Classes/Report/SolrStatus.php index 594dc14df0..3ebfd139e4 100644 --- a/Classes/Report/SolrStatus.php +++ b/Classes/Report/SolrStatus.php @@ -113,12 +113,9 @@ protected function getConnectionStatus(array $solrConnection): Status $pingTime = $this->checkPingTime($solrAdmin); $configName = $this->checkSolrConfigName($solrAdmin); $schemaName = $this->checkSolrSchemaName($solrAdmin); - if (version_compare($solrVersion, '8.11.3', '>=')) { - $streamBodySetting = $this->checkStreamBodySetting($solrAdmin); - } if ($this->responseStatus !== Status::OK) { - $header = 'Failed contacting the Solr server or invalid settings found.'; + $header = 'Failed contacting the Solr server.'; } $variables = [ @@ -130,7 +127,6 @@ protected function getConnectionStatus(array $solrConnection): Status 'configName' => $configName, 'schemaName' => $schemaName, 'accessFilter' => $accessFilter, - 'streamBodySetting' => $streamBodySetting ?? null, ]; $report = $this->getRenderedReport('SolrStatus.html', $variables); @@ -234,23 +230,6 @@ protected function checkSolrSchemaName(SolrAdminService $solrAdminService): stri return $solrSchemaMessage; } - protected function checkStreamBodySetting(SolrAdminService $solrAdminService): string - { - $systemProperties = $solrAdminService->getSystemProperties(); - if ($systemProperties === null) { - $this->responseStatus = Status::ERROR; - return 'Error determining system properties'; - } - - $streamSetting = (bool)($systemProperties['solr.enableStreamBody'] ?? false); - if (!$streamSetting) { - $this->responseStatus = Status::ERROR; - return 'Content Streams not enabled'; - } - - return 'true'; - } - /** * Formats the Apache Solr server version number. By default, this is going * to be the simple major.minor.patch-level version. Custom Builds provide diff --git a/Classes/System/Solr/Service/SolrAdminService.php b/Classes/System/Solr/Service/SolrAdminService.php index aff776bab3..ec0d15663e 100644 --- a/Classes/System/Solr/Service/SolrAdminService.php +++ b/Classes/System/Solr/Service/SolrAdminService.php @@ -39,7 +39,6 @@ class SolrAdminService extends AbstractSolrService const LUKE_SERVLET = 'admin/luke'; const SYSTEM_SERVLET = 'admin/system'; const CORES_SERVLET = '../admin/cores'; - const PROPERTY_SERVLET = '../admin/info/properties'; const FILE_SERVLET = 'admin/file'; const SCHEMA_SERVLET = 'schema'; const SYNONYMS_SERVLET = 'schema/analysis/synonyms/'; @@ -130,26 +129,6 @@ public function system(): ResponseAdapter return $this->_sendRawGet($this->_constructUrl(self::SYSTEM_SERVLET, ['wt' => 'json'])); } - /** - * Gets system properties - * - * @return array|null - */ - public function getSystemProperties(): ?array - { - $url = $this->_constructUrl(self::PROPERTY_SERVLET, ['wt' => 'json']); - $propertyInformation = $this->_sendRawGet($url); - - $parsedPropertyInformation = $propertyInformation->getParsedData(); - if ($parsedPropertyInformation === null - || !property_exists($parsedPropertyInformation, 'system.properties') - ) { - return null; - } - - return (array)$parsedPropertyInformation->{'system.properties'}; - } - /** * Gets information about the plugins installed in Solr * diff --git a/Resources/Private/Templates/Backend/Reports/SolrStatus.html b/Resources/Private/Templates/Backend/Reports/SolrStatus.html index 274a07245a..1656bd948d 100644 --- a/Resources/Private/Templates/Backend/Reports/SolrStatus.html +++ b/Resources/Private/Templates/Backend/Reports/SolrStatus.html @@ -1,62 +1,47 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + +
{header}
Site{connection.label}
Scheme{solr.primaryEndpoint.scheme}
Host{solr.primaryEndpoint.host}
Path{solr.corePath}
Port{solr.primaryEndpoint.port}
{header}
Site{connection.label}
Scheme{solr.primaryEndpoint.scheme}
Host{solr.primaryEndpoint.host}
Path{solr.corePath}
Port{solr.primaryEndpoint.port}
Username {connection.solrUsername}
Apache Solr{solrVersion}
solrconfig.xml{configName}
schema.xml{schemaName}
Access Filter Plugin{accessFilter}
Content Streams
(SOLR_ENABLE_REMOTE_STREAMING)
- {streamBodySetting} -
Apache Solr{solrVersion}
solrconfig.xml{configName}
schema.xml{schemaName}
Access Filter Plugin{accessFilter}
- - From a7561130a6621b12b726003bbe592242879c794b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20K=C3=A4hm?= Date: Fri, 2 Jun 2023 14:23:32 +0200 Subject: [PATCH 09/21] [TASK] Use Apache Solr 9.2 for EXT:solr 11.6 Updates to Apache Solr 9.2, this includes the required configuration updates. luceneMatchVersion is sill set to 8.5.0 to prevent changes in search behaviour. To avoid security issues described in CVE-2022-39135 the SQL module is not enabled, you have to enabled the module manually if required. Note: With Apache Solr 9 the following components are no longer available and you have to adapt the configuration if needed. No longer available components are: 1) Data Import Handler (DIH) DIH is an independent project now; it is no longer a part of Solr 2) VelocityResponseWriter VelocityResponseWriter is an independent project now; it is no longer a part of Solr. This encompasses all previously included /browse and wt=velocity examples. This update is considered as breaking, as a new Solr server and configset is required, but though not recommended you can still use your old configset and Solr 8.5 if an update is not possible. Ports: #3673 --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- .../AccessFilterPluginInstalledStatus.php | 2 +- Classes/Report/SchemaStatus.php | 2 +- Classes/Report/SolrConfigStatus.php | 2 +- Docker/SolrServer/Dockerfile | 10 +- Documentation/Appendix/VersionMatrix.rst | 9 +- Documentation/GettingStarted/Solr.rst | 20 +- Resources/Private/Install/.htaccess | 2 - Resources/Private/Install/install-solr.sh | 227 ------------------ .../_schema_analysis_stopwords_core_ar.json | 0 .../_schema_analysis_stopwords_core_bg.json | 0 .../_schema_analysis_stopwords_core_ca.json | 0 .../_schema_analysis_stopwords_core_cs.json | 0 .../_schema_analysis_stopwords_core_da.json | 0 .../_schema_analysis_stopwords_core_de.json | 0 .../_schema_analysis_stopwords_core_el.json | 0 .../_schema_analysis_stopwords_core_en.json | 0 .../_schema_analysis_stopwords_core_es.json | 0 .../_schema_analysis_stopwords_core_eu.json | 0 .../_schema_analysis_stopwords_core_fa.json | 0 .../_schema_analysis_stopwords_core_fi.json | 0 .../_schema_analysis_stopwords_core_fr.json | 0 ...chema_analysis_stopwords_core_generic.json | 0 .../_schema_analysis_stopwords_core_gl.json | 0 .../_schema_analysis_stopwords_core_hi.json | 0 .../_schema_analysis_stopwords_core_hu.json | 0 .../_schema_analysis_stopwords_core_hy.json | 0 .../_schema_analysis_stopwords_core_id.json | 0 .../_schema_analysis_stopwords_core_ie.json | 0 .../_schema_analysis_stopwords_core_it.json | 0 .../_schema_analysis_stopwords_core_ja.json | 0 .../_schema_analysis_stopwords_core_km.json | 0 .../_schema_analysis_stopwords_core_ko.json | 0 .../_schema_analysis_stopwords_core_lo.json | 0 .../_schema_analysis_stopwords_core_lv.json | 0 .../_schema_analysis_stopwords_core_my.json | 0 .../_schema_analysis_stopwords_core_nl.json | 0 .../_schema_analysis_stopwords_core_no.json | 0 .../_schema_analysis_stopwords_core_pl.json | 0 .../_schema_analysis_stopwords_core_pt.json | 0 .../_schema_analysis_stopwords_core_ptbr.json | 0 .../_schema_analysis_stopwords_core_ro.json | 0 .../_schema_analysis_stopwords_core_rs.json | 0 .../_schema_analysis_stopwords_core_ru.json | 0 .../_schema_analysis_stopwords_core_sv.json | 0 .../_schema_analysis_stopwords_core_th.json | 0 .../_schema_analysis_stopwords_core_tr.json | 0 .../_schema_analysis_stopwords_core_uk.json | 0 .../_schema_analysis_stopwords_core_zh.json | 0 .../_schema_analysis_synonyms_core_ar.json | 0 .../_schema_analysis_synonyms_core_bg.json | 0 .../_schema_analysis_synonyms_core_ca.json | 0 .../_schema_analysis_synonyms_core_cs.json | 0 .../_schema_analysis_synonyms_core_da.json | 0 .../_schema_analysis_synonyms_core_de.json | 0 .../_schema_analysis_synonyms_core_el.json | 0 .../_schema_analysis_synonyms_core_en.json | 0 .../_schema_analysis_synonyms_core_es.json | 0 .../_schema_analysis_synonyms_core_eu.json | 0 .../_schema_analysis_synonyms_core_fa.json | 0 .../_schema_analysis_synonyms_core_fi.json | 0 .../_schema_analysis_synonyms_core_fr.json | 0 ...schema_analysis_synonyms_core_generic.json | 0 .../_schema_analysis_synonyms_core_gl.json | 0 .../_schema_analysis_synonyms_core_hi.json | 0 .../_schema_analysis_synonyms_core_hu.json | 0 .../_schema_analysis_synonyms_core_hy.json | 0 .../_schema_analysis_synonyms_core_id.json | 0 .../_schema_analysis_synonyms_core_ie.json | 0 .../_schema_analysis_synonyms_core_it.json | 0 .../_schema_analysis_synonyms_core_ja.json | 0 .../_schema_analysis_synonyms_core_km.json | 0 .../_schema_analysis_synonyms_core_ko.json | 0 .../_schema_analysis_synonyms_core_lo.json | 0 .../_schema_analysis_synonyms_core_lv.json | 0 .../_schema_analysis_synonyms_core_my.json | 0 .../_schema_analysis_synonyms_core_nl.json | 0 .../_schema_analysis_synonyms_core_no.json | 0 .../_schema_analysis_synonyms_core_pl.json | 0 .../_schema_analysis_synonyms_core_pt.json | 0 .../_schema_analysis_synonyms_core_ptbr.json | 0 .../_schema_analysis_synonyms_core_ro.json | 0 .../_schema_analysis_synonyms_core_rs.json | 0 .../_schema_analysis_synonyms_core_ru.json | 0 .../_schema_analysis_synonyms_core_sv.json | 0 .../_schema_analysis_synonyms_core_th.json | 0 .../_schema_analysis_synonyms_core_tr.json | 0 .../_schema_analysis_synonyms_core_uk.json | 0 .../_schema_analysis_synonyms_core_zh.json | 0 .../conf/admin-extra.html | 0 .../conf/arabic/protwords.txt | 0 .../conf/arabic/schema.xml | 2 +- .../conf/armenian/protwords.txt | 0 .../conf/armenian/schema.xml | 2 +- .../conf/basque/protwords.txt | 0 .../conf/basque/schema.xml | 2 +- .../conf/brazilian_portuguese/protwords.txt | 0 .../conf/brazilian_portuguese/schema.xml | 2 +- .../conf/bulgarian/protwords.txt | 0 .../conf/bulgarian/schema.xml | 2 +- .../conf/burmese/protwords.txt | 0 .../conf/burmese/readme.txt | 0 .../conf/burmese/schema.xml | 2 +- .../conf/catalan/protwords.txt | 0 .../conf/catalan/schema.xml | 2 +- .../conf/chinese/protwords.txt | 0 .../conf/chinese/schema.xml | 2 +- .../conf/currency.xml | 0 .../conf/czech/protwords.txt | 0 .../conf/czech/schema.xml | 2 +- .../conf/danish/danish-common-nouns.txt | 0 .../conf/danish/protwords.txt | 0 .../conf/danish/schema.xml | 2 +- .../conf/dutch/protwords.txt | 0 .../conf/dutch/schema.xml | 2 +- .../conf/elevate.xml | 0 .../conf/english/protwords.txt | 0 .../conf/english/schema.xml | 2 +- .../conf/finnish/protwords.txt | 0 .../conf/finnish/schema.xml | 2 +- .../conf/french/protwords.txt | 0 .../conf/french/schema.xml | 2 +- .../conf/galician/protwords.txt | 0 .../conf/galician/schema.xml | 2 +- .../conf/general_schema_fields.xml | 0 .../conf/general_schema_types.xml | 0 .../conf/generic/protwords.txt | 0 .../conf/generic/schema.xml | 2 +- .../conf/german/german-common-nouns.txt | 0 .../conf/german/protwords.txt | 0 .../conf/german/schema.xml | 2 +- .../conf/greek/protwords.txt | 0 .../conf/greek/schema.xml | 2 +- .../conf/hindi/protwords.txt | 0 .../conf/hindi/schema.xml | 2 +- .../conf/hungarian/protwords.txt | 0 .../conf/hungarian/schema.xml | 2 +- .../conf/indonesian/protwords.txt | 0 .../conf/indonesian/schema.xml | 2 +- .../conf/irish/protwords.txt | 0 .../conf/irish/schema.xml | 2 +- .../conf/italian/protwords.txt | 0 .../conf/italian/schema.xml | 2 +- .../conf/japanese/protwords.txt | 0 .../conf/japanese/schema.xml | 2 +- .../conf/khmer/protwords.txt | 0 .../conf/khmer/readme.txt | 0 .../conf/khmer/schema.xml | 2 +- .../conf/korean/protwords.txt | 0 .../conf/korean/schema.xml | 2 +- .../conf/lao/protwords.txt | 0 .../conf/lao/readme.txt | 0 .../conf/lao/schema.xml | 2 +- .../conf/latvia/protwords.txt | 0 .../conf/latvia/schema.xml | 2 +- .../conf/norwegian/protwords.txt | 0 .../conf/norwegian/schema.xml | 2 +- .../conf/persian/protwords.txt | 0 .../conf/persian/schema.xml | 2 +- .../conf/polish/protwords.txt | 0 .../conf/polish/schema.xml | 2 +- .../conf/portuguese/protwords.txt | 0 .../conf/portuguese/schema.xml | 2 +- .../conf/romanian/protwords.txt | 0 .../conf/romanian/schema.xml | 2 +- .../conf/russian/protwords.txt | 0 .../conf/russian/schema.xml | 2 +- .../conf/serbian/protwords.txt | 0 .../conf/serbian/schema.xml | 2 +- .../conf/solrconfig.xml | 52 ++-- .../conf/spanish/protwords.txt | 0 .../conf/spanish/schema.xml | 2 +- .../conf/swedish/protwords.txt | 0 .../conf/swedish/schema.xml | 2 +- .../conf/thai/protwords.txt | 0 .../conf/thai/schema.xml | 2 +- .../conf/turkish/protwords.txt | 0 .../conf/turkish/schema.xml | 2 +- .../conf/ukrainian/protwords.txt | 0 .../conf/ukrainian/schema.xml | 2 +- .../conf/velocity/VM_global_library.vm | 0 .../conf/velocity/browse.vm | 0 .../conf/velocity/doc.vm | 0 .../conf/velocity/facet_fields.vm | 0 .../conf/velocity/facets.vm | 0 .../conf/velocity/footer.vm | 0 .../conf/velocity/head.vm | 0 .../conf/velocity/header.vm | 0 .../conf/velocity/hit.vm | 0 .../conf/velocity/hitGrouped.vm | 0 .../conf/velocity/jquery.autocomplete.css | 0 .../conf/velocity/jquery.autocomplete.js | 0 .../conf/velocity/layout.vm | 0 .../conf/velocity/main.css | 0 .../conf/velocity/query.vm | 0 .../conf/velocity/suggest.vm | 0 .../typo3lib/solr-typo3-plugin-6.0.0.jar} | Bin 253903 -> 172191 bytes .../Private/Solr/cores/arabic/core.properties | 2 +- .../Solr/cores/armenian/core.properties | 2 +- .../Private/Solr/cores/basque/core.properties | 2 +- .../brazilian_portuguese/core.properties | 2 +- .../Solr/cores/bulgarian/core.properties | 2 +- .../Solr/cores/burmese/core.properties | 2 +- .../Solr/cores/catalan/core.properties | 2 +- .../Solr/cores/chinese/core.properties | 2 +- .../Private/Solr/cores/czech/core.properties | 2 +- .../Private/Solr/cores/danish/core.properties | 2 +- .../Private/Solr/cores/dutch/core.properties | 2 +- .../Solr/cores/english/core.properties | 2 +- .../Solr/cores/finnish/core.properties | 2 +- .../Private/Solr/cores/french/core.properties | 2 +- .../Solr/cores/galician/core.properties | 2 +- .../Solr/cores/generic/core.properties | 2 +- .../Private/Solr/cores/german/core.properties | 2 +- .../Private/Solr/cores/greek/core.properties | 2 +- .../Private/Solr/cores/hindi/core.properties | 2 +- .../Solr/cores/hungarian/core.properties | 2 +- .../Solr/cores/indonesian/core.properties | 2 +- .../Private/Solr/cores/irish/core.properties | 2 +- .../Solr/cores/italian/core.properties | 2 +- .../Solr/cores/japanese/core.properties | 2 +- .../Private/Solr/cores/khmer/core.properties | 2 +- .../Private/Solr/cores/korean/core.properties | 2 +- .../Private/Solr/cores/lao/core.properties | 2 +- .../Private/Solr/cores/latvia/core.properties | 2 +- .../Solr/cores/norwegian/core.properties | 2 +- .../Solr/cores/persian/core.properties | 2 +- .../Private/Solr/cores/polish/core.properties | 2 +- .../Solr/cores/portuguese/core.properties | 2 +- .../Solr/cores/romanian/core.properties | 2 +- .../Solr/cores/russian/core.properties | 2 +- .../Solr/cores/serbian/core.properties | 2 +- .../Solr/cores/spanish/core.properties | 2 +- .../Solr/cores/swedish/core.properties | 2 +- .../Private/Solr/cores/thai/core.properties | 2 +- .../Solr/cores/turkish/core.properties | 2 +- .../Solr/cores/ukrainian/core.properties | 2 +- Resources/Private/Solr/solr.xml | 4 +- composer.json | 4 +- 239 files changed, 111 insertions(+), 385 deletions(-) delete mode 100644 Resources/Private/Install/.htaccess delete mode 100755 Resources/Private/Install/install-solr.sh rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_ar.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_bg.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_ca.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_cs.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_da.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_de.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_el.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_en.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_es.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_eu.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_fa.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_fi.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_fr.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_generic.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_gl.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_hi.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_hu.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_hy.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_id.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_ie.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_it.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_ja.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_km.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_ko.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_lo.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_lv.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_my.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_nl.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_no.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_pl.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_pt.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_ptbr.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_ro.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_rs.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_ru.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_sv.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_th.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_tr.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_uk.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_stopwords_core_zh.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_ar.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_bg.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_ca.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_cs.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_da.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_de.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_el.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_en.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_es.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_eu.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_fa.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_fi.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_fr.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_generic.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_gl.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_hi.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_hu.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_hy.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_id.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_ie.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_it.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_ja.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_km.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_ko.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_lo.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_lv.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_my.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_nl.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_no.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_pl.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_pt.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_ptbr.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_ro.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_rs.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_ru.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_sv.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_th.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_tr.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_uk.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/_schema_analysis_synonyms_core_zh.json (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/admin-extra.html (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/arabic/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/arabic/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/armenian/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/armenian/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/basque/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/basque/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/brazilian_portuguese/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/brazilian_portuguese/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/bulgarian/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/bulgarian/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/burmese/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/burmese/readme.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/burmese/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/catalan/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/catalan/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/chinese/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/chinese/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/currency.xml (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/czech/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/czech/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/danish/danish-common-nouns.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/danish/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/danish/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/dutch/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/dutch/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/elevate.xml (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/english/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/english/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/finnish/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/finnish/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/french/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/french/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/galician/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/galician/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/general_schema_fields.xml (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/general_schema_types.xml (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/generic/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/generic/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/german/german-common-nouns.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/german/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/german/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/greek/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/greek/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/hindi/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/hindi/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/hungarian/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/hungarian/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/indonesian/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/indonesian/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/irish/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/irish/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/italian/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/italian/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/japanese/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/japanese/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/khmer/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/khmer/readme.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/khmer/schema.xml (98%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/korean/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/korean/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/lao/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/lao/readme.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/lao/schema.xml (98%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/latvia/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/latvia/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/norwegian/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/norwegian/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/persian/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/persian/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/polish/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/polish/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/portuguese/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/portuguese/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/romanian/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/romanian/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/russian/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/russian/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/serbian/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/serbian/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/solrconfig.xml (89%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/spanish/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/spanish/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/swedish/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/swedish/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/thai/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/thai/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/turkish/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/turkish/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/ukrainian/protwords.txt (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/ukrainian/schema.xml (99%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/VM_global_library.vm (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/browse.vm (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/doc.vm (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/facet_fields.vm (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/facets.vm (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/footer.vm (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/head.vm (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/header.vm (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/hit.vm (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/hitGrouped.vm (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/jquery.autocomplete.css (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/jquery.autocomplete.js (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/layout.vm (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/main.css (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/query.vm (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0 => ext_solr_11_6_0}/conf/velocity/suggest.vm (100%) rename Resources/Private/Solr/configsets/{ext_solr_11_5_0/typo3lib/solr-typo3-plugin-5.0.0.jar => ext_solr_11_6_0/typo3lib/solr-typo3-plugin-6.0.0.jar} (55%) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 09a2fc7713..b09f5c8260 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -27,7 +27,7 @@ If applicable, add screenshots to help explain your problem. - TYPO3 Version: [e.g. 11.5.36] - Browser: [e.g. chrome, safari] - EXT:solr Version: [e.g. 11.6.0] - - Used Apache Solr Version: [e.g. 8.11.3] + - Used Apache Solr Version: [e.g. 9.2.1] - PHP Version: [e.g. 8.2.0] - MySQL Version: [e.g. 8.0.0] diff --git a/Classes/Report/AccessFilterPluginInstalledStatus.php b/Classes/Report/AccessFilterPluginInstalledStatus.php index e9331eebae..5beeca5512 100644 --- a/Classes/Report/AccessFilterPluginInstalledStatus.php +++ b/Classes/Report/AccessFilterPluginInstalledStatus.php @@ -39,7 +39,7 @@ class AccessFilterPluginInstalledStatus extends AbstractSolrStatus * * @var string */ - const RECOMMENDED_PLUGIN_VERSION = '3.0.0'; + const RECOMMENDED_PLUGIN_VERSION = '6.0.0'; /** * The plugin's Java class name. diff --git a/Classes/Report/SchemaStatus.php b/Classes/Report/SchemaStatus.php index 1f141af9e1..359f87c6fc 100644 --- a/Classes/Report/SchemaStatus.php +++ b/Classes/Report/SchemaStatus.php @@ -43,7 +43,7 @@ class SchemaStatus extends AbstractSolrStatus * * @var string */ - const RECOMMENDED_SCHEMA_VERSION = 'tx_solr-11-5-0--20211001'; + const RECOMMENDED_SCHEMA_VERSION = 'tx_solr-11-6-0--20240313'; /** * Compiles a collection of schema version checks against each configured diff --git a/Classes/Report/SolrConfigStatus.php b/Classes/Report/SolrConfigStatus.php index bf081a108a..fa752967ee 100644 --- a/Classes/Report/SolrConfigStatus.php +++ b/Classes/Report/SolrConfigStatus.php @@ -42,7 +42,7 @@ class SolrConfigStatus extends AbstractSolrStatus * * @var string */ - const RECOMMENDED_SOLRCONFIG_VERSION = 'tx_solr-11-5-0--20211001'; + const RECOMMENDED_SOLRCONFIG_VERSION = 'tx_solr-11-6-0--20240313'; /** * Compiles a collection of solrconfig version checks against each configured diff --git a/Docker/SolrServer/Dockerfile b/Docker/SolrServer/Dockerfile index cd93d002eb..2b993f5220 100644 --- a/Docker/SolrServer/Dockerfile +++ b/Docker/SolrServer/Dockerfile @@ -1,14 +1,10 @@ -FROM solr:8.11.3 +FROM solr:9.2.1 MAINTAINER dkd Internet Service GmbH ENV TERM linux USER root -RUN rm -fR /opt/solr/server/solr/* \ - && echo '# EXT:solr relevant changes: ' >> /etc/default/solr.in.sh \ - && echo 'SOLR_OPTS="$SOLR_OPTS -Dsolr.enableRemoteStreaming=true -Dsolr.enableStreamBody=true"' >> /etc/default/solr.in.sh \ - && echo '# END: EXT:solr' >> /etc/default/solr.in.sh - +RUN rm -fR /opt/solr/server/solr/* USER solr COPY --chown=solr:solr Resources/Private/Solr/ /var/solr/data -RUN mkdir -p /var/solr/data/data +RUN mkdir -p /var/solr/data/data \ No newline at end of file diff --git a/Documentation/Appendix/VersionMatrix.rst b/Documentation/Appendix/VersionMatrix.rst index e345c6eb7e..fb4f1fb7bf 100644 --- a/Documentation/Appendix/VersionMatrix.rst +++ b/Documentation/Appendix/VersionMatrix.rst @@ -20,12 +20,7 @@ Requirements for EXT:solr* 11.6 stack ------------------------------- ---------------------------------------------- --------------------------------------------- --------------------------------- TYPO3 EXT: solr EXT:tika EXT:solrfal EXT:solrconsole EXT:solrdebugtools EXT:solrfluidgrouping EXT:solrmlt Apache Solr Configset ========= ========== ========== =========== =============== ================== ============================= =============== =============== ================= -11.5 11.6 11.0 11.0 11.0 11.0 11.0 11.0 (Ø) 8.11.3¹ ext_solr_11_6_0 +11.5 11.6 11.0 11.0 11.0 11.0 11.0 11.0 (Ø) 9.2.1¹ ext_solr_11_6_0 ========= ========== ========== =========== =============== ================== ============================= =============== =============== ================= -| ¹ - recommended Apache Solr version, check version matrix in composer.json (composer info:solr-versions) for full list - -.. warning:: - Apache Solr 8.11.3 contains a breaking change, see security fix "SOLR-14853: Make enableRemoteStreaming option global; not configSet". EXT:solr relies on stream bodies - which aren't enabled by default since 8.11.3. EXT:solr 11.5.6 contains all required settings, but if you're updating and not using our Docker image, you have to - set `solr.enableRemoteStreaming=true` and `solr.enableStreamBody=true`. TYPO3 reports module will print a warning if you have to reconfigure. +| ¹ - recommended Apache Solr version, check version matrix in composer.json (`composer info:solr-versions`) for full list \ No newline at end of file diff --git a/Documentation/GettingStarted/Solr.rst b/Documentation/GettingStarted/Solr.rst index b6a43919a8..f395360bb9 100644 --- a/Documentation/GettingStarted/Solr.rst +++ b/Documentation/GettingStarted/Solr.rst @@ -148,28 +148,10 @@ The following example shows how you can run our configuration with the official sudo chown -R 8983:8983 ~/mysolr docker run -d -p 8983:8983 -v ~/mysolr:/var/solr/data solr:8.5 - -Shipped install script (Not recommended) ----------------------------------------- - -With the extension we ship and install script that can be used for a **development** context or as inspiration for own deployments. It creates a solr server with a core for all languages. -This script is located in "Resources/Private/Install" an it installs a configured solr server that is usable with EXT:solr. - -By default this script is not executable and you need to add the execute permissions to your user to run it. - -The example below shows how to install a solr server to /home/developer - -.. code-block:: bash - - chmod u+x ./Resources/Private/Install/install-solr.sh - ./Resources/Private/Install/install-solr.sh -d /home/developer - -After running the script you are able to open a solr server with over the loopback address. Which means, when you want to access it from outside, you need to create an ssh tunnel. - Other Setup ----------- -Beside the install script and Docker there are various possibilities to setup solr. All of these possibilities are not +Beside the Docker there are various possibilities to setup solr. All of these possibilities are not officially supported, but the simplify the setup i want to mention them shortly here and summarize the needed steps. Known Installers diff --git a/Resources/Private/Install/.htaccess b/Resources/Private/Install/.htaccess deleted file mode 100644 index ab5b2b967c..0000000000 --- a/Resources/Private/Install/.htaccess +++ /dev/null @@ -1,2 +0,0 @@ -Order deny,allow -deny from all \ No newline at end of file diff --git a/Resources/Private/Install/install-solr.sh b/Resources/Private/Install/install-solr.sh deleted file mode 100755 index 9554a24a9b..0000000000 --- a/Resources/Private/Install/install-solr.sh +++ /dev/null @@ -1,227 +0,0 @@ -#!/usr/bin/env bash - -SCRIPTPATH=$( cd $(dirname $0) ; pwd -P ) -EXTENSION_ROOTPATH="$SCRIPTPATH/../../../" - -SOLR_VERSION=8.11.1 -JAVA_VERSION=11 -SOLR_INSTALL_DIR="/opt/solr" -SOLR_HOST="127.0.0.1" -SOLR_PORT=8983 -TESTING=0 - -SOLR_CLOSER_URL="http://www.apache.org/dyn/closer.lua?filename=lucene/solr/$SOLR_VERSION/solr-$SOLR_VERSION.tgz&action=download" -SOLR_ARCHIVE_URL="https://archive.apache.org/dist/lucene/solr/$SOLR_VERSION/solr-$SOLR_VERSION.tgz" -SOLR_DIST_URL="https://www.apache.org/dist/lucene/solr/$SOLR_VERSION/solr-$SOLR_VERSION.tgz" - -# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- -# color echo http://www.faqs.org/docs/abs/HTML/colorizing.html - -black="\033[30m" -red="\033[31m" -green="\033[32m" -yellow="\033[33m" -blue="\033[34m" -magenta="\033[35m" -cyan="\033[36m" -white="\033[37m" - - -# Color-echo, Argument $1 = message, Argument $2 = color -cecho () -{ - local default_msg="No message passed." - - # Defaults to default message. - message=${1:-$default_msg} - - # Defaults to black, if not specified. - color=${2:-$black} - - echo -e "$color$message" - - # Reset text attributes to normal + without clearing screen. - tput sgr0 - - return -} - -# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- - -apachedownload () -{ - for url in $SOLR_CLOSER_URL $SOLR_ARCHIVE_URL $SOLR_DIST_URL; do - if [ -f "solr-$SOLR_VERSION.tgz" ] - then - break; - fi; - - echo "downloading $url"; - if wget -t 10 --max-redirect 5 --retry-connrefused -nv "$url" -O "solr-$SOLR_VERSION.tgz" - then - break; - else - rm -f "solr-$SOLR_VERSION.tgz"; - fi; - done; - - if [ ! -f "solr-$SOLR_VERSION.tgz" ]; then - cecho "Apache Solr binaries couldn't be downloaded. The installation can not proceed." $red - exit 1; - fi -} - -# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- - -while getopts :d:t FLAG; do -case $FLAG in - d) - SOLR_INSTALL_DIR=$OPTARG - ;; - t) - TESTING=1 - ;; - \?) #unrecognized option - show help - exit 2 - ;; -esac -done - -if [ $TESTING -eq "1" ]; then - INSTALL_MODE="CI Testing" - # during testing we use an own custom port - SOLR_PORT=8999 -else - INSTALL_MODE="Development" -fi - -cecho "####################################################################" $red -cecho "# This script should be used for development only! #" $red -cecho "# #" $red -cecho "# It contains no: #" $red -cecho "# - Security Updates #" $red -cecho "# - Init Scripts #" $red -cecho "# - Upgrade possibilities #" $red -cecho "# #" $red -cecho "####################################################################" $red - -cecho "Starting installation of Apache Solr with the following settings:" $green -cecho "Install Mode: ${INSTALL_MODE} " $green -cecho "Solr Version: ${SOLR_VERSION} " $green -cecho "Installation Path: ${SOLR_INSTALL_DIR} " $green -cecho "Port: ${SOLR_PORT} " $green - -# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- - -cecho "Checking requirements." $green - -PASSALLCHECKS=1 - -if [ ! -w "$(dirname $SOLR_INSTALL_DIR)" ] -then - cecho "ERROR parent directory: ($(dirname $SOLR_INSTALL_DIR)) of install path ($SOLR_INSTALL_DIR) is not writeable." $red - PASSALLCHECKS=0 -fi - -wget --version > /dev/null 2>&1 -CHECK=$? -if [ $CHECK -ne "0" ] -then - cecho "ERROR couldn't find wget." $red - PASSALLCHECKS=0 -fi - -java -version > /dev/null 2>&1 -CHECK=$? -if [ $CHECK -ne "0" ] -then - cecho "ERROR couldn't find Java (Oracle Java is recommended)." $red - PASSALLCHECKS=0 -fi - -JAVA_VERSION_INSTALLED=$(java -version 2>&1 | grep -Eom1 "[._0-9]{5,}") -JAVA_MAJOR_VERSION_INSTALLED=${JAVA_VERSION_INSTALLED%%\.*} - -# check if java uses the old version number like 1.7.0_11 -if [ -n "$JAVA_MAJOR_VERSION_INSTALLED" ] && [ $JAVA_MAJOR_VERSION_INSTALLED -eq 1 ] -then - # extract the main Java version from 1.7.0_11 => 7 - JAVA_MAJOR_VERSION_INSTALLED=${JAVA_VERSION_INSTALLED:2:1} -fi - - -# check if java version is equal or higher then required -if [ -n "$JAVA_VERSION_INSTALLED" ] && [ $JAVA_MAJOR_VERSION_INSTALLED -lt $JAVA_VERSION ] -then - cecho "You have installed Java version $JAVA_MAJOR_VERSION_INSTALLED. Please install Java $JAVA_VERSION or newer." $red - PASSALLCHECKS=0 -fi - -tar --version > /dev/null 2>&1 -CHECK=$? -if [ $CHECK -ne "0" ] -then - cecho "ERROR: couldn't find tar." $red - PASSALLCHECKS=0 -fi - - -if [ $PASSALLCHECKS -eq "0" ] -then - cecho "Please install all missing requirements or fix any other errors listed above and try again." $red - exit 1 -else - cecho "All requirements met, starting to install Solr." $green -fi - -# ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- ----- - -mkdir $SOLR_INSTALL_DIR -cd $SOLR_INSTALL_DIR - -cecho "Getting Apache Solr $SOLR_VERSION" $green - -# download to downloads folder to be able to cache the file there -if [ ! -f downloads/solr-$SOLR_VERSION.tgz ]; then - cecho "Starting download" $green - - mkdir -p downloads - cd downloads - apachedownload - cd .. -else - cecho "Restore from cache" $green -fi - -cecho "Extracting downloaded solr $SOLR_VERSION" $green -tar -C $SOLR_INSTALL_DIR --extract --file "$SOLR_INSTALL_DIR/downloads/solr-$SOLR_VERSION.tgz" --strip-components=1 - -cecho "Adjusting solr configuration" $green -sed -i -e "s/#SOLR_PORT=8983/SOLR_PORT=$SOLR_PORT/" "$SOLR_INSTALL_DIR/bin/solr.in.sh" -sed -i -e "s/#SOLR_HOST=\"192.168.1.1\"/SOLR_HOST=\"$SOLR_HOST\"/" "$SOLR_INSTALL_DIR/bin/solr.in.sh" -sed -i -e '/-Dsolr.clustering.enabled=true/ a SOLR_OPTS="$SOLR_OPTS -Dsun.net.inetaddr.ttl=60 -Dsun.net.inetaddr.negative.ttl=60 -Djetty.host=$SOLR_HOST"' "$SOLR_INSTALL_DIR/bin/solr.in.sh" - -cecho "Remove default configsets" $green -rm -fR ${SOLR_INSTALL_DIR}/server/solr/configsets - -cecho "Copy configsets" $green -cp -r ${EXTENSION_ROOTPATH}/Resources/Private/Solr/configsets ${SOLR_INSTALL_DIR}/server/solr - -cecho "Copy copy solr.xml" $green -cp ${EXTENSION_ROOTPATH}/Resources/Private/Solr/solr.xml ${SOLR_INSTALL_DIR}/server/solr/solr.xml - -cecho "Create default cores" $green -cp -r ${EXTENSION_ROOTPATH}/Resources/Private/Solr/cores ${SOLR_INSTALL_DIR}/server/solr - -cecho "Setting environment" $green -source $SOLR_INSTALL_DIR/bin/solr.in.sh - -cecho "Starting solr" $green -$SOLR_INSTALL_DIR/bin/solr start - -if [ $TESTING -eq "1" ]; then - cecho "Keeping download to cache it for next build" $green -else - cecho "Cleanup download" green - rm $SOLR_INSTALL_DIR/downloads/solr-$SOLR_VERSION.tgz -fi diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ar.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ar.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ar.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ar.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_bg.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_bg.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_bg.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_bg.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ca.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ca.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ca.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ca.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_cs.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_cs.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_cs.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_cs.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_da.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_da.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_da.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_da.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_de.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_de.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_de.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_de.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_el.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_el.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_el.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_el.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_en.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_en.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_en.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_en.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_es.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_es.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_es.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_es.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_eu.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_eu.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_eu.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_eu.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_fa.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_fa.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_fa.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_fa.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_fi.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_fi.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_fi.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_fi.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_fr.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_fr.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_fr.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_fr.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_generic.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_generic.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_generic.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_generic.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_gl.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_gl.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_gl.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_gl.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_hi.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_hi.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_hi.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_hi.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_hu.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_hu.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_hu.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_hu.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_hy.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_hy.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_hy.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_hy.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_id.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_id.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_id.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_id.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ie.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ie.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ie.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ie.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_it.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_it.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_it.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_it.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ja.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ja.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ja.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ja.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_km.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_km.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_km.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_km.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ko.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ko.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ko.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ko.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_lo.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_lo.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_lo.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_lo.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_lv.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_lv.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_lv.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_lv.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_my.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_my.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_my.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_my.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_nl.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_nl.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_nl.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_nl.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_no.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_no.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_no.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_no.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_pl.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_pl.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_pl.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_pl.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_pt.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_pt.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_pt.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_pt.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ptbr.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ptbr.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ptbr.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ptbr.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ro.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ro.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ro.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ro.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_rs.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_rs.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_rs.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_rs.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ru.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ru.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_ru.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_ru.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_sv.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_sv.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_sv.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_sv.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_th.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_th.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_th.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_th.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_tr.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_tr.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_tr.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_tr.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_uk.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_uk.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_uk.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_uk.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_zh.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_zh.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_stopwords_core_zh.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_stopwords_core_zh.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ar.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ar.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ar.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ar.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_bg.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_bg.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_bg.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_bg.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ca.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ca.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ca.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ca.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_cs.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_cs.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_cs.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_cs.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_da.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_da.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_da.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_da.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_de.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_de.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_de.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_de.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_el.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_el.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_el.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_el.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_en.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_en.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_en.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_en.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_es.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_es.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_es.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_es.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_eu.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_eu.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_eu.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_eu.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_fa.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_fa.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_fa.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_fa.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_fi.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_fi.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_fi.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_fi.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_fr.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_fr.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_fr.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_fr.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_generic.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_generic.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_generic.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_generic.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_gl.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_gl.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_gl.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_gl.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_hi.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_hi.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_hi.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_hi.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_hu.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_hu.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_hu.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_hu.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_hy.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_hy.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_hy.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_hy.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_id.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_id.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_id.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_id.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ie.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ie.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ie.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ie.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_it.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_it.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_it.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_it.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ja.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ja.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ja.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ja.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_km.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_km.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_km.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_km.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ko.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ko.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ko.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ko.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_lo.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_lo.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_lo.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_lo.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_lv.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_lv.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_lv.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_lv.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_my.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_my.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_my.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_my.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_nl.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_nl.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_nl.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_nl.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_no.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_no.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_no.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_no.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_pl.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_pl.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_pl.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_pl.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_pt.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_pt.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_pt.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_pt.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ptbr.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ptbr.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ptbr.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ptbr.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ro.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ro.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ro.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ro.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_rs.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_rs.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_rs.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_rs.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ru.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ru.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_ru.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_ru.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_sv.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_sv.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_sv.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_sv.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_th.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_th.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_th.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_th.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_tr.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_tr.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_tr.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_tr.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_uk.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_uk.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_uk.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_uk.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_zh.json b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_zh.json similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/_schema_analysis_synonyms_core_zh.json rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/_schema_analysis_synonyms_core_zh.json diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/admin-extra.html b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/admin-extra.html similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/admin-extra.html rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/admin-extra.html diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/arabic/protwords.txt b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/arabic/protwords.txt similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/arabic/protwords.txt rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/arabic/protwords.txt diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/arabic/schema.xml b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/arabic/schema.xml similarity index 99% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/arabic/schema.xml rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/arabic/schema.xml index 500f2a607c..14f59e52a1 100644 --- a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/arabic/schema.xml +++ b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/arabic/schema.xml @@ -10,7 +10,7 @@ status report - tx_solr_report_SchemaStatus - checking against this name property, that status check must be updated as well. --> - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + class="solr.NRTCachingDirectoryFactory"/> @@ -97,19 +89,19 @@ 1024 + autowarmCount="128"/> + autowarmCount="128"/> @@ -268,14 +260,6 @@ - - @@ -309,8 +293,8 @@ - explicit - true + explicit + true @@ -363,7 +347,6 @@ - - - + 5 diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/spanish/protwords.txt b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/spanish/protwords.txt similarity index 100% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/spanish/protwords.txt rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/spanish/protwords.txt diff --git a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/spanish/schema.xml b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/spanish/schema.xml similarity index 99% rename from Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/spanish/schema.xml rename to Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/spanish/schema.xml index de4b1f4246..c127918238 100644 --- a/Resources/Private/Solr/configsets/ext_solr_11_5_0/conf/spanish/schema.xml +++ b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/spanish/schema.xml @@ -10,7 +10,7 @@ status report - tx_solr_report_SchemaStatus - checking against this name property, that status check must be updated as well. --> - + - + - + - + - + From ba4e36c2b9050226a52f1a7b085c846df5ffca7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20K=C3=A4hm?= Date: Mon, 7 Aug 2023 21:06:53 +0200 Subject: [PATCH 13/21] !!![TASK] Upgrade to Apache Solr 9.3.0 Note this change requires on third party installations enabling stream feature via the ENV vars or system properties. Following variables are set in Docker images: * `SOLR_ENABLE_REMOTE_STREAMING=true` * `SOLR_ENABLE_STREAM_BODY=true` For more information see: * https://solr.apache.org/guide/solr/latest/upgrade-notes/major-changes-in-solr-9.html#security * https://issues.apache.org/jira/browse/SOLR-14853 Ports: #3748 --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- Docker/SolrServer/Dockerfile | 9 +++++++-- Documentation/Appendix/VersionMatrix.rst | 2 +- Documentation/Solr/ConfigurationStructures.rst | 9 +++++---- .../Solr/configsets/ext_solr_11_6_0/conf/solrconfig.xml | 5 ++--- composer.json | 2 +- 6 files changed, 17 insertions(+), 12 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index b09f5c8260..63ad2d8987 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -27,7 +27,7 @@ If applicable, add screenshots to help explain your problem. - TYPO3 Version: [e.g. 11.5.36] - Browser: [e.g. chrome, safari] - EXT:solr Version: [e.g. 11.6.0] - - Used Apache Solr Version: [e.g. 9.2.1] + - Used Apache Solr Version: [e.g. 9.3.0] - PHP Version: [e.g. 8.2.0] - MySQL Version: [e.g. 8.0.0] diff --git a/Docker/SolrServer/Dockerfile b/Docker/SolrServer/Dockerfile index 42fafc100a..367147e6dc 100644 --- a/Docker/SolrServer/Dockerfile +++ b/Docker/SolrServer/Dockerfile @@ -1,4 +1,4 @@ -FROM solr:9.2.1 +FROM solr:9.3.0 MAINTAINER dkd Internet Service GmbH ENV TERM linux @@ -11,7 +11,12 @@ RUN rm -fR /opt/solr/server/solr/* \ && groupmod --non-unique --gid "${SOLR_UNIX_GID}" solr \ && chown -R solr:solr /var/solr /opt/solr \ && apt update && apt upgrade -y && apt install sudo -y \ - && echo "solr ALL=NOPASSWD: /docker-entrypoint-initdb.d/as-sudo/*" > /etc/sudoers.d/solr + && echo "solr ALL=NOPASSWD: /docker-entrypoint-initdb.d/as-sudo/*" > /etc/sudoers.d/solr \ + && echo "# EXT:solr relevant changes: " >> /etc/default/solr.in.sh \ + && echo "SOLR_ENABLE_REMOTE_STREAMING=true" >> /etc/default/solr.in.sh \ + && echo "SOLR_ENABLE_STREAM_BODY=true" >> /etc/default/solr.in.sh \ + && echo "# END: EXT:solr" >> /etc/default/solr.in.sh \ + COPY Docker/SolrServer/docker-entrypoint-initdb.d/ /docker-entrypoint-initdb.d USER solr diff --git a/Documentation/Appendix/VersionMatrix.rst b/Documentation/Appendix/VersionMatrix.rst index fb4f1fb7bf..dd07061bb8 100644 --- a/Documentation/Appendix/VersionMatrix.rst +++ b/Documentation/Appendix/VersionMatrix.rst @@ -20,7 +20,7 @@ Requirements for EXT:solr* 11.6 stack ------------------------------- ---------------------------------------------- --------------------------------------------- --------------------------------- TYPO3 EXT: solr EXT:tika EXT:solrfal EXT:solrconsole EXT:solrdebugtools EXT:solrfluidgrouping EXT:solrmlt Apache Solr Configset ========= ========== ========== =========== =============== ================== ============================= =============== =============== ================= -11.5 11.6 11.0 11.0 11.0 11.0 11.0 11.0 (Ø) 9.2.1¹ ext_solr_11_6_0 +11.5 11.6 11.0 11.0 11.0 11.0 11.0 11.0 (Ø) 9.3.0¹ ext_solr_11_6_0 ========= ========== ========== =========== =============== ================== ============================= =============== =============== ================= | ¹ - recommended Apache Solr version, check version matrix in composer.json (`composer info:solr-versions`) for full list \ No newline at end of file diff --git a/Documentation/Solr/ConfigurationStructures.rst b/Documentation/Solr/ConfigurationStructures.rst index 0226bb5bd6..a530b24840 100644 --- a/Documentation/Solr/ConfigurationStructures.rst +++ b/Documentation/Solr/ConfigurationStructures.rst @@ -64,11 +64,12 @@ When you want to install solr on your system in another way the following steps * Install the solr server * Copy the configsets into the configset folder (by default $SOLR_HOME/server/solr/configsets) -* Make sure that the solr.xml file ($SOLR_HOME/server/solr/solr.xml) is in place an fits to your solr version +* Make sure that the solr.xml file ($SOLR_HOME/server/solr/solr.xml) is in place and fits to your Solr version +* Enable Content Streams. EXT:solr uses content streams and requires environment variables SOLR_ENABLE_REMOTE_STREAMING and SOLR_ENABLE_STREAM_BODY to be set, see section `Content Streams in the Reference Guide `__ -* Create an init script that start solr on boottime. -* Secure your solr port from outside. -* Make sure that solr is running with an own user. +* Create an init script that starts Solr on boottime. +* Secure your Solr port from outside. +* Make sure that Solr is running with an own user. * Backup your data folders *Hint:* Apache Solr ships an install script in newer version that might cover your requirements for production diff --git a/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/solrconfig.xml b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/solrconfig.xml index ca0745fb65..24a9f8bc6a 100644 --- a/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/solrconfig.xml +++ b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/solrconfig.xml @@ -1,6 +1,6 @@ - 9.2.0 + 9.3.0 ${solr.abortOnConfigurationError:true} @@ -132,8 +132,7 @@ - - + diff --git a/composer.json b/composer.json index 3fe09765a5..94babe97db 100644 --- a/composer.json +++ b/composer.json @@ -166,7 +166,7 @@ "ext-solrfluidgrouping": "^11.0", "ext-solrmlt": "^11.0", "Apache-Solr": [ - "9.2.1" + "9.3.0" ], "configset": "ext_solr_11_6_0" }, From 33236103ff6bb5280bca8733d834b8efacefbc20 Mon Sep 17 00:00:00 2001 From: Markus Friedrich Date: Mon, 25 Sep 2023 12:26:13 +0200 Subject: [PATCH 14/21] [BUGFIX] Fix result highlighting fragment size Since Apache Solr 9 the Unified Highlighter is used by default, causing the fragment size setting to be ignored in our setup. By configuring the Original Highlighter as default, this issue is fixed till we update our highlighting setup to use the recommended highlighter. Ports: #3802 --- .../Query/ParameterBuilder/Highlighting.php | 1 + .../ext_solr_11_6_0/conf/solrconfig.xml | 1 + Tests/Integration/SearchTest.php | 68 +++++++++++++++++++ 3 files changed, 70 insertions(+) diff --git a/Classes/Domain/Search/Query/ParameterBuilder/Highlighting.php b/Classes/Domain/Search/Query/ParameterBuilder/Highlighting.php index 41fce440bf..6f617fee12 100644 --- a/Classes/Domain/Search/Query/ParameterBuilder/Highlighting.php +++ b/Classes/Domain/Search/Query/ParameterBuilder/Highlighting.php @@ -189,6 +189,7 @@ public function build(AbstractQueryBuilder $parentBuilder): AbstractQueryBuilder $query->getHighlighting()->setUseFastVectorHighlighter(true); $query->getHighlighting()->setTagPrefix($this->getPrefix()); $query->getHighlighting()->setTagPostfix($this->getPostfix()); + $query->getHighlighting()->setMethod('fastVector'); } else { $query->getHighlighting()->setUseFastVectorHighlighter(false); $query->getHighlighting()->setTagPrefix(''); diff --git a/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/solrconfig.xml b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/solrconfig.xml index 24a9f8bc6a..6a93627f77 100644 --- a/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/solrconfig.xml +++ b/Resources/Private/Solr/configsets/ext_solr_11_6_0/conf/solrconfig.xml @@ -155,6 +155,7 @@ 3 true true + original content 200 diff --git a/Tests/Integration/SearchTest.php b/Tests/Integration/SearchTest.php index 8ed9219ddc..300d12c321 100644 --- a/Tests/Integration/SearchTest.php +++ b/Tests/Integration/SearchTest.php @@ -97,6 +97,74 @@ public function canSearchForADocument() self::assertStringContainsString('"title":"Hello Search Test"', $rawResponse, 'Could not index document into solr'); } + /** + * @test + */ + public function canHighlightTerms(): void + { + $this->fillIndexForPhraseSearchTests(); + $searchInstance = GeneralUtility::makeInstance(Search::class); + + // fragmentSize 50 => fastVector + $typoScriptConfiguration = new TypoScriptConfiguration([ + 'plugin.' => [ + 'tx_solr.' => [ + 'search.' => [ + 'query.' => ['queryFields' => 'content,title'], + 'results.' => [ + 'resultsHighlighting' => 1, + 'resultsHighlighting.' => [ + 'fragmentSize' => 50, + 'wrap' => '|', + ], + ], + ], + ], + ], + ]); + $queryBuilder = new QueryBuilder($typoScriptConfiguration); + $query = $queryBuilder->buildSearchQuery('enterprise'); + $parsedData = $searchInstance->search($query)->getParsedData(); + $highlighting = current((array)$parsedData->highlighting); + $highlightString = ($highlighting !== null ? $highlighting->title[0] : null); + + // fragmentSize 20 => fastVector + $typoScriptConfiguration->mergeSolrConfiguration([ + 'search.' => [ + 'results.' => [ + 'resultsHighlighting.' => [ + 'fragmentSize' => 20, + ], + ], + ], + ]); + $query = $queryBuilder->buildSearchQuery('enterprise'); + $parsedData = $searchInstance->search($query)->getParsedData(); + $highlighting2 = current((array)$parsedData->highlighting); + $highlightString2 = ($highlighting2 !== null ? $highlighting2->title[0] : null); + + // fragmentSize 10 => original + $typoScriptConfiguration->mergeSolrConfiguration([ + 'search.' => [ + 'results.' => [ + 'resultsHighlighting.' => [ + 'fragmentSize' => 10, + ], + ], + ], + ]); + $query = $queryBuilder->buildSearchQuery('enterprise'); + $parsedData = $searchInstance->search($query)->getParsedData(); + $highlighting3 = current((array)$parsedData->highlighting); + $highlightString3 = ($highlighting3 !== null ? $highlighting3->title[0] : null); + + self::assertStringContainsString('', $highlightString); + self::assertStringContainsString('', $highlightString2); + self::assertStringContainsString('', $highlightString3); + self::assertTrue((strlen($highlightString) > strlen($highlightString2))); + self::assertTrue((strlen($highlightString2) > strlen($highlightString3))); + } + /** * @test */ From 40766a78c759362ec8c1eaf7eaa5e891453b7bea Mon Sep 17 00:00:00 2001 From: Markus Friedrich Date: Wed, 13 Mar 2024 16:03:44 +0100 Subject: [PATCH 15/21] [TASK] Update to Solr 9.5 Updates the supported and recommended Solr version to Apache Solr 9.5.0. --- .github/ISSUE_TEMPLATE/bug_report.md | 2 +- Classes/Report/SiteHandlingStatus.php | 8 ++++---- Docker/SolrServer/Dockerfile | 2 +- Documentation/Appendix/VersionMatrix.rst | 5 +---- composer.json | 2 +- 5 files changed, 8 insertions(+), 11 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index 63ad2d8987..9afc9d7810 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -27,7 +27,7 @@ If applicable, add screenshots to help explain your problem. - TYPO3 Version: [e.g. 11.5.36] - Browser: [e.g. chrome, safari] - EXT:solr Version: [e.g. 11.6.0] - - Used Apache Solr Version: [e.g. 9.3.0] + - Used Apache Solr Version: [e.g. 9.5.0] - PHP Version: [e.g. 8.2.0] - MySQL Version: [e.g. 8.0.0] diff --git a/Classes/Report/SiteHandlingStatus.php b/Classes/Report/SiteHandlingStatus.php index d4c306f576..5565df9cb4 100644 --- a/Classes/Report/SiteHandlingStatus.php +++ b/Classes/Report/SiteHandlingStatus.php @@ -44,10 +44,10 @@ class SiteHandlingStatus extends AbstractSolrStatus */ const CSS_STATUS_NOTICE = 'notice', - CSS_STATUS_INFO = 'info', - CSS_STATUS_OK = 'success', - CSS_STATUS_WARNING = 'warning', - CSS_STATUS_ERROR = 'danger'; + CSS_STATUS_INFO = 'info', + CSS_STATUS_OK = 'success', + CSS_STATUS_WARNING = 'warning', + CSS_STATUS_ERROR = 'danger'; /** * Site Repository diff --git a/Docker/SolrServer/Dockerfile b/Docker/SolrServer/Dockerfile index 367147e6dc..96b1684a0f 100644 --- a/Docker/SolrServer/Dockerfile +++ b/Docker/SolrServer/Dockerfile @@ -1,4 +1,4 @@ -FROM solr:9.3.0 +FROM solr:9.5.0 MAINTAINER dkd Internet Service GmbH ENV TERM linux diff --git a/Documentation/Appendix/VersionMatrix.rst b/Documentation/Appendix/VersionMatrix.rst index dd07061bb8..8f4530d0c9 100644 --- a/Documentation/Appendix/VersionMatrix.rst +++ b/Documentation/Appendix/VersionMatrix.rst @@ -9,9 +9,6 @@ Appendix - Version Matrix You are on docs for EXT:solr |release| version, please refer to `Version Matrix on main release `_ to see all versions. - See also EXT:solr v11.6 for TYPO3 11.5 LTS. - - Requirements for EXT:solr* 11.6 stack ------------------------------------- @@ -20,7 +17,7 @@ Requirements for EXT:solr* 11.6 stack ------------------------------- ---------------------------------------------- --------------------------------------------- --------------------------------- TYPO3 EXT: solr EXT:tika EXT:solrfal EXT:solrconsole EXT:solrdebugtools EXT:solrfluidgrouping EXT:solrmlt Apache Solr Configset ========= ========== ========== =========== =============== ================== ============================= =============== =============== ================= -11.5 11.6 11.0 11.0 11.0 11.0 11.0 11.0 (Ø) 9.3.0¹ ext_solr_11_6_0 +11.5 11.6 11.0 11.0 11.0 11.0 11.0 11.0 (Ø) 9.5.0¹ ext_solr_11_6_0 ========= ========== ========== =========== =============== ================== ============================= =============== =============== ================= | ¹ - recommended Apache Solr version, check version matrix in composer.json (`composer info:solr-versions`) for full list \ No newline at end of file diff --git a/composer.json b/composer.json index 94babe97db..a2ca505a3d 100644 --- a/composer.json +++ b/composer.json @@ -166,7 +166,7 @@ "ext-solrfluidgrouping": "^11.0", "ext-solrmlt": "^11.0", "Apache-Solr": [ - "9.3.0" + "9.5.0" ], "configset": "ext_solr_11_6_0" }, From 3e4b738f1fe8c8c2e6827362ac6f99a14ef3e101 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20K=C3=A4hm?= Date: Wed, 12 Jun 2024 14:52:12 +0200 Subject: [PATCH 16/21] [TASK] Crowdin integration Relates: #3985 --- crowdin.yml | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 crowdin.yml diff --git a/crowdin.yml b/crowdin.yml new file mode 100644 index 0000000000..172f40c2b4 --- /dev/null +++ b/crowdin.yml @@ -0,0 +1,4 @@ +files: + - + source: /Resources/Private/Language/locallang*.xlf + translation: /Resources/Private/Language/%two_letters_code%.%original_file_name% From 87bcf42fd8cb31867603b8c036e060ff865d22d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20K=C3=A4hm?= Date: Wed, 3 Jul 2024 21:32:20 +0200 Subject: [PATCH 17/21] New Crowdin updates 2024.07.03 --- Resources/Private/Language/af.locallang.xlf | 23 + .../Private/Language/af.locallang_be.xlf | 17 + .../Language/af.locallang_csh_pages.xlf | 9 + .../Private/Language/af.locallang_mod.xlf | 11 + .../af.locallang_mod_coreoptimize.xlf | 11 + .../Language/af.locallang_mod_indexadmin.xlf | 11 + .../Language/af.locallang_mod_indexqueue.xlf | 11 + .../Language/af.locallang_mod_info.xlf | 11 + .../Private/Language/af.locallang_tca.xlf | 13 + Resources/Private/Language/ar.locallang.xlf | 23 + .../Private/Language/ar.locallang_be.xlf | 17 + .../Language/ar.locallang_csh_pages.xlf | 9 + .../Private/Language/ar.locallang_mod.xlf | 11 + .../ar.locallang_mod_coreoptimize.xlf | 11 + .../Language/ar.locallang_mod_indexadmin.xlf | 11 + .../Language/ar.locallang_mod_indexqueue.xlf | 11 + .../Language/ar.locallang_mod_info.xlf | 11 + .../Private/Language/ar.locallang_tca.xlf | 13 + Resources/Private/Language/ca.locallang.xlf | 23 + .../Private/Language/ca.locallang_be.xlf | 17 + .../Language/ca.locallang_csh_pages.xlf | 9 + .../Private/Language/ca.locallang_mod.xlf | 11 + .../ca.locallang_mod_coreoptimize.xlf | 11 + .../Language/ca.locallang_mod_indexadmin.xlf | 11 + .../Language/ca.locallang_mod_indexqueue.xlf | 11 + .../Language/ca.locallang_mod_info.xlf | 11 + .../Private/Language/ca.locallang_tca.xlf | 13 + Resources/Private/Language/cs.locallang.xlf | 481 +---------------- .../Private/Language/cs.locallang_be.xlf | 17 + .../Language/cs.locallang_csh_pages.xlf | 9 + .../Private/Language/cs.locallang_mod.xlf | 11 + .../cs.locallang_mod_coreoptimize.xlf | 11 + .../Language/cs.locallang_mod_indexadmin.xlf | 11 + .../Language/cs.locallang_mod_indexqueue.xlf | 11 + .../Language/cs.locallang_mod_info.xlf | 11 + .../Private/Language/cs.locallang_tca.xlf | 13 + Resources/Private/Language/da.locallang.xlf | 23 + .../Private/Language/da.locallang_be.xlf | 17 + .../Language/da.locallang_csh_pages.xlf | 9 + .../Private/Language/da.locallang_mod.xlf | 11 + .../da.locallang_mod_coreoptimize.xlf | 11 + .../Language/da.locallang_mod_indexadmin.xlf | 11 + .../Language/da.locallang_mod_indexqueue.xlf | 11 + .../Language/da.locallang_mod_info.xlf | 11 + .../Private/Language/da.locallang_tca.xlf | 13 + Resources/Private/Language/de.locallang.xlf | 297 ++++------- .../Private/Language/de.locallang_be.xlf | 17 + .../Language/de.locallang_csh_pages.xlf | 15 +- .../Private/Language/de.locallang_mod.xlf | 11 + .../de.locallang_mod_coreoptimize.xlf | 11 + .../Language/de.locallang_mod_indexadmin.xlf | 11 + .../Language/de.locallang_mod_indexqueue.xlf | 11 + .../Language/de.locallang_mod_info.xlf | 11 + .../Private/Language/de.locallang_tca.xlf | 21 +- Resources/Private/Language/el.locallang.xlf | 23 + .../Private/Language/el.locallang_be.xlf | 17 + .../Language/el.locallang_csh_pages.xlf | 9 + .../Private/Language/el.locallang_mod.xlf | 11 + .../el.locallang_mod_coreoptimize.xlf | 11 + .../Language/el.locallang_mod_indexadmin.xlf | 11 + .../Language/el.locallang_mod_indexqueue.xlf | 11 + .../Language/el.locallang_mod_info.xlf | 11 + .../Private/Language/el.locallang_tca.xlf | 13 + Resources/Private/Language/es.locallang.xlf | 481 +---------------- .../Private/Language/es.locallang_be.xlf | 17 + .../Language/es.locallang_csh_pages.xlf | 9 + .../Private/Language/es.locallang_mod.xlf | 11 + .../es.locallang_mod_coreoptimize.xlf | 11 + .../Language/es.locallang_mod_indexadmin.xlf | 11 + .../Language/es.locallang_mod_indexqueue.xlf | 11 + .../Language/es.locallang_mod_info.xlf | 11 + .../Private/Language/es.locallang_tca.xlf | 13 + Resources/Private/Language/fi.locallang.xlf | 23 + .../Private/Language/fi.locallang_be.xlf | 17 + .../Language/fi.locallang_csh_pages.xlf | 9 + .../Private/Language/fi.locallang_mod.xlf | 11 + .../fi.locallang_mod_coreoptimize.xlf | 11 + .../Language/fi.locallang_mod_indexadmin.xlf | 11 + .../Language/fi.locallang_mod_indexqueue.xlf | 11 + .../Language/fi.locallang_mod_info.xlf | 11 + .../Private/Language/fi.locallang_tca.xlf | 13 + Resources/Private/Language/fr.locallang.xlf | 488 +----------------- .../Private/Language/fr.locallang_be.xlf | 17 + .../Language/fr.locallang_csh_pages.xlf | 9 + .../Private/Language/fr.locallang_mod.xlf | 11 + .../fr.locallang_mod_coreoptimize.xlf | 11 + .../Language/fr.locallang_mod_indexadmin.xlf | 11 + .../Language/fr.locallang_mod_indexqueue.xlf | 11 + .../Language/fr.locallang_mod_info.xlf | 11 + .../Private/Language/fr.locallang_tca.xlf | 13 + Resources/Private/Language/he.locallang.xlf | 23 + .../Private/Language/he.locallang_be.xlf | 17 + .../Language/he.locallang_csh_pages.xlf | 9 + .../Private/Language/he.locallang_mod.xlf | 11 + .../he.locallang_mod_coreoptimize.xlf | 11 + .../Language/he.locallang_mod_indexadmin.xlf | 11 + .../Language/he.locallang_mod_indexqueue.xlf | 11 + .../Language/he.locallang_mod_info.xlf | 11 + .../Private/Language/he.locallang_tca.xlf | 13 + Resources/Private/Language/hu.locallang.xlf | 23 + .../Private/Language/hu.locallang_be.xlf | 17 + .../Language/hu.locallang_csh_pages.xlf | 9 + .../Private/Language/hu.locallang_mod.xlf | 11 + .../hu.locallang_mod_coreoptimize.xlf | 11 + .../Language/hu.locallang_mod_indexadmin.xlf | 11 + .../Language/hu.locallang_mod_indexqueue.xlf | 11 + .../Language/hu.locallang_mod_info.xlf | 11 + .../Private/Language/hu.locallang_tca.xlf | 13 + Resources/Private/Language/it.locallang.xlf | 181 +++---- .../Private/Language/it.locallang_be.xlf | 17 + .../Language/it.locallang_csh_pages.xlf | 9 + .../Private/Language/it.locallang_mod.xlf | 11 + .../it.locallang_mod_coreoptimize.xlf | 11 + .../Language/it.locallang_mod_indexadmin.xlf | 11 + .../Language/it.locallang_mod_indexqueue.xlf | 11 + .../Language/it.locallang_mod_info.xlf | 11 + .../Private/Language/it.locallang_tca.xlf | 13 + Resources/Private/Language/ja.locallang.xlf | 477 +---------------- .../Private/Language/ja.locallang_be.xlf | 17 + .../Language/ja.locallang_csh_pages.xlf | 9 + .../Private/Language/ja.locallang_mod.xlf | 11 + .../ja.locallang_mod_coreoptimize.xlf | 11 + .../Language/ja.locallang_mod_indexadmin.xlf | 11 + .../Language/ja.locallang_mod_indexqueue.xlf | 11 + .../Language/ja.locallang_mod_info.xlf | 11 + .../Private/Language/ja.locallang_tca.xlf | 13 + Resources/Private/Language/ko.locallang.xlf | 477 +---------------- .../Private/Language/ko.locallang_be.xlf | 17 + .../Language/ko.locallang_csh_pages.xlf | 9 + .../Private/Language/ko.locallang_mod.xlf | 11 + .../ko.locallang_mod_coreoptimize.xlf | 11 + .../Language/ko.locallang_mod_indexadmin.xlf | 11 + .../Language/ko.locallang_mod_indexqueue.xlf | 11 + .../Language/ko.locallang_mod_info.xlf | 11 + .../Private/Language/ko.locallang_tca.xlf | 13 + Resources/Private/Language/nb.locallang.xlf | 23 + .../Private/Language/nb.locallang_be.xlf | 17 + .../Language/nb.locallang_csh_pages.xlf | 9 + .../Private/Language/nb.locallang_mod.xlf | 11 + .../nb.locallang_mod_coreoptimize.xlf | 11 + .../Language/nb.locallang_mod_indexadmin.xlf | 11 + .../Language/nb.locallang_mod_indexqueue.xlf | 11 + .../Language/nb.locallang_mod_info.xlf | 11 + .../Private/Language/nb.locallang_tca.xlf | 13 + Resources/Private/Language/nl.locallang.xlf | 254 ++++----- .../Private/Language/nl.locallang_be.xlf | 17 + .../Language/nl.locallang_csh_pages.xlf | 9 + .../Private/Language/nl.locallang_mod.xlf | 11 + .../nl.locallang_mod_coreoptimize.xlf | 11 + .../Language/nl.locallang_mod_indexadmin.xlf | 11 + .../Language/nl.locallang_mod_indexqueue.xlf | 11 + .../Language/nl.locallang_mod_info.xlf | 11 + .../Private/Language/nl.locallang_tca.xlf | 13 + Resources/Private/Language/no.locallang.xlf | 23 + .../Private/Language/no.locallang_be.xlf | 17 + .../Language/no.locallang_csh_pages.xlf | 9 + .../Private/Language/no.locallang_mod.xlf | 11 + .../no.locallang_mod_coreoptimize.xlf | 11 + .../Language/no.locallang_mod_indexadmin.xlf | 11 + .../Language/no.locallang_mod_indexqueue.xlf | 11 + .../Language/no.locallang_mod_info.xlf | 11 + .../Private/Language/no.locallang_tca.xlf | 13 + Resources/Private/Language/pl.locallang.xlf | 180 +++---- .../Private/Language/pl.locallang_be.xlf | 17 + .../Language/pl.locallang_csh_pages.xlf | 9 + .../Private/Language/pl.locallang_mod.xlf | 11 + .../pl.locallang_mod_coreoptimize.xlf | 11 + .../Language/pl.locallang_mod_indexadmin.xlf | 11 + .../Language/pl.locallang_mod_indexqueue.xlf | 11 + .../Language/pl.locallang_mod_info.xlf | 11 + .../Private/Language/pl.locallang_tca.xlf | 13 + Resources/Private/Language/pt.locallang.xlf | 480 +---------------- .../Private/Language/pt.locallang_be.xlf | 17 + .../Language/pt.locallang_csh_pages.xlf | 9 + .../Private/Language/pt.locallang_mod.xlf | 11 + .../pt.locallang_mod_coreoptimize.xlf | 11 + .../Language/pt.locallang_mod_indexadmin.xlf | 11 + .../Language/pt.locallang_mod_indexqueue.xlf | 11 + .../Language/pt.locallang_mod_info.xlf | 11 + .../Private/Language/pt.locallang_tca.xlf | 13 + Resources/Private/Language/ro.locallang.xlf | 23 + .../Private/Language/ro.locallang_be.xlf | 17 + .../Language/ro.locallang_csh_pages.xlf | 9 + .../Private/Language/ro.locallang_mod.xlf | 11 + .../ro.locallang_mod_coreoptimize.xlf | 11 + .../Language/ro.locallang_mod_indexadmin.xlf | 11 + .../Language/ro.locallang_mod_indexqueue.xlf | 11 + .../Language/ro.locallang_mod_info.xlf | 11 + .../Private/Language/ro.locallang_tca.xlf | 13 + Resources/Private/Language/ru.locallang.xlf | 23 + .../Private/Language/ru.locallang_be.xlf | 17 + .../Language/ru.locallang_csh_pages.xlf | 9 + .../Private/Language/ru.locallang_mod.xlf | 11 + .../ru.locallang_mod_coreoptimize.xlf | 11 + .../Language/ru.locallang_mod_indexadmin.xlf | 11 + .../Language/ru.locallang_mod_indexqueue.xlf | 11 + .../Language/ru.locallang_mod_info.xlf | 11 + .../Private/Language/ru.locallang_tca.xlf | 13 + Resources/Private/Language/sr.locallang.xlf | 23 + .../Private/Language/sr.locallang_be.xlf | 17 + .../Language/sr.locallang_csh_pages.xlf | 9 + .../Private/Language/sr.locallang_mod.xlf | 11 + .../sr.locallang_mod_coreoptimize.xlf | 11 + .../Language/sr.locallang_mod_indexadmin.xlf | 11 + .../Language/sr.locallang_mod_indexqueue.xlf | 11 + .../Language/sr.locallang_mod_info.xlf | 11 + .../Private/Language/sr.locallang_tca.xlf | 13 + Resources/Private/Language/sv.locallang.xlf | 23 + .../Private/Language/sv.locallang_be.xlf | 17 + .../Language/sv.locallang_csh_pages.xlf | 9 + .../Private/Language/sv.locallang_mod.xlf | 11 + .../sv.locallang_mod_coreoptimize.xlf | 11 + .../Language/sv.locallang_mod_indexadmin.xlf | 11 + .../Language/sv.locallang_mod_indexqueue.xlf | 11 + .../Language/sv.locallang_mod_info.xlf | 11 + .../Private/Language/sv.locallang_tca.xlf | 13 + Resources/Private/Language/tr.locallang.xlf | 23 + .../Private/Language/tr.locallang_be.xlf | 17 + .../Language/tr.locallang_csh_pages.xlf | 9 + .../Private/Language/tr.locallang_mod.xlf | 11 + .../tr.locallang_mod_coreoptimize.xlf | 11 + .../Language/tr.locallang_mod_indexadmin.xlf | 11 + .../Language/tr.locallang_mod_indexqueue.xlf | 11 + .../Language/tr.locallang_mod_info.xlf | 11 + .../Private/Language/tr.locallang_tca.xlf | 13 + Resources/Private/Language/uk.locallang.xlf | 23 + .../Private/Language/uk.locallang_be.xlf | 17 + .../Language/uk.locallang_csh_pages.xlf | 9 + .../Private/Language/uk.locallang_mod.xlf | 11 + .../uk.locallang_mod_coreoptimize.xlf | 11 + .../Language/uk.locallang_mod_indexadmin.xlf | 11 + .../Language/uk.locallang_mod_indexqueue.xlf | 11 + .../Language/uk.locallang_mod_info.xlf | 11 + .../Private/Language/uk.locallang_tca.xlf | 13 + Resources/Private/Language/vi.locallang.xlf | 23 + .../Private/Language/vi.locallang_be.xlf | 17 + .../Language/vi.locallang_csh_pages.xlf | 9 + .../Private/Language/vi.locallang_mod.xlf | 11 + .../vi.locallang_mod_coreoptimize.xlf | 11 + .../Language/vi.locallang_mod_indexadmin.xlf | 11 + .../Language/vi.locallang_mod_indexqueue.xlf | 11 + .../Language/vi.locallang_mod_info.xlf | 11 + .../Private/Language/vi.locallang_tca.xlf | 13 + Resources/Private/Language/zh.locallang.xlf | 160 +----- .../Private/Language/zh.locallang_be.xlf | 17 + .../Language/zh.locallang_csh_pages.xlf | 9 + .../Private/Language/zh.locallang_mod.xlf | 11 + .../zh.locallang_mod_coreoptimize.xlf | 11 + .../Language/zh.locallang_mod_indexadmin.xlf | 11 + .../Language/zh.locallang_mod_indexqueue.xlf | 11 + .../Language/zh.locallang_mod_info.xlf | 11 + .../Private/Language/zh.locallang_tca.xlf | 13 + 252 files changed, 3515 insertions(+), 3478 deletions(-) create mode 100644 Resources/Private/Language/af.locallang.xlf create mode 100644 Resources/Private/Language/af.locallang_be.xlf create mode 100644 Resources/Private/Language/af.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/af.locallang_mod.xlf create mode 100644 Resources/Private/Language/af.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/af.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/af.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/af.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/af.locallang_tca.xlf create mode 100644 Resources/Private/Language/ar.locallang.xlf create mode 100644 Resources/Private/Language/ar.locallang_be.xlf create mode 100644 Resources/Private/Language/ar.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/ar.locallang_mod.xlf create mode 100644 Resources/Private/Language/ar.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/ar.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/ar.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/ar.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/ar.locallang_tca.xlf create mode 100644 Resources/Private/Language/ca.locallang.xlf create mode 100644 Resources/Private/Language/ca.locallang_be.xlf create mode 100644 Resources/Private/Language/ca.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/ca.locallang_mod.xlf create mode 100644 Resources/Private/Language/ca.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/ca.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/ca.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/ca.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/ca.locallang_tca.xlf create mode 100644 Resources/Private/Language/cs.locallang_be.xlf create mode 100644 Resources/Private/Language/cs.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/cs.locallang_mod.xlf create mode 100644 Resources/Private/Language/cs.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/cs.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/cs.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/cs.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/cs.locallang_tca.xlf create mode 100644 Resources/Private/Language/da.locallang.xlf create mode 100644 Resources/Private/Language/da.locallang_be.xlf create mode 100644 Resources/Private/Language/da.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/da.locallang_mod.xlf create mode 100644 Resources/Private/Language/da.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/da.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/da.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/da.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/da.locallang_tca.xlf create mode 100644 Resources/Private/Language/de.locallang_be.xlf create mode 100644 Resources/Private/Language/de.locallang_mod.xlf create mode 100644 Resources/Private/Language/de.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/de.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/de.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/de.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/el.locallang.xlf create mode 100644 Resources/Private/Language/el.locallang_be.xlf create mode 100644 Resources/Private/Language/el.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/el.locallang_mod.xlf create mode 100644 Resources/Private/Language/el.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/el.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/el.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/el.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/el.locallang_tca.xlf create mode 100644 Resources/Private/Language/es.locallang_be.xlf create mode 100644 Resources/Private/Language/es.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/es.locallang_mod.xlf create mode 100644 Resources/Private/Language/es.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/es.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/es.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/es.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/es.locallang_tca.xlf create mode 100644 Resources/Private/Language/fi.locallang.xlf create mode 100644 Resources/Private/Language/fi.locallang_be.xlf create mode 100644 Resources/Private/Language/fi.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/fi.locallang_mod.xlf create mode 100644 Resources/Private/Language/fi.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/fi.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/fi.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/fi.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/fi.locallang_tca.xlf create mode 100644 Resources/Private/Language/fr.locallang_be.xlf create mode 100644 Resources/Private/Language/fr.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/fr.locallang_mod.xlf create mode 100644 Resources/Private/Language/fr.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/fr.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/fr.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/fr.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/fr.locallang_tca.xlf create mode 100644 Resources/Private/Language/he.locallang.xlf create mode 100644 Resources/Private/Language/he.locallang_be.xlf create mode 100644 Resources/Private/Language/he.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/he.locallang_mod.xlf create mode 100644 Resources/Private/Language/he.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/he.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/he.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/he.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/he.locallang_tca.xlf create mode 100644 Resources/Private/Language/hu.locallang.xlf create mode 100644 Resources/Private/Language/hu.locallang_be.xlf create mode 100644 Resources/Private/Language/hu.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/hu.locallang_mod.xlf create mode 100644 Resources/Private/Language/hu.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/hu.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/hu.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/hu.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/hu.locallang_tca.xlf create mode 100644 Resources/Private/Language/it.locallang_be.xlf create mode 100644 Resources/Private/Language/it.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/it.locallang_mod.xlf create mode 100644 Resources/Private/Language/it.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/it.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/it.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/it.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/it.locallang_tca.xlf create mode 100644 Resources/Private/Language/ja.locallang_be.xlf create mode 100644 Resources/Private/Language/ja.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/ja.locallang_mod.xlf create mode 100644 Resources/Private/Language/ja.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/ja.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/ja.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/ja.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/ja.locallang_tca.xlf create mode 100644 Resources/Private/Language/ko.locallang_be.xlf create mode 100644 Resources/Private/Language/ko.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/ko.locallang_mod.xlf create mode 100644 Resources/Private/Language/ko.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/ko.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/ko.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/ko.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/ko.locallang_tca.xlf create mode 100644 Resources/Private/Language/nb.locallang.xlf create mode 100644 Resources/Private/Language/nb.locallang_be.xlf create mode 100644 Resources/Private/Language/nb.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/nb.locallang_mod.xlf create mode 100644 Resources/Private/Language/nb.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/nb.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/nb.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/nb.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/nb.locallang_tca.xlf create mode 100644 Resources/Private/Language/nl.locallang_be.xlf create mode 100644 Resources/Private/Language/nl.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/nl.locallang_mod.xlf create mode 100644 Resources/Private/Language/nl.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/nl.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/nl.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/nl.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/nl.locallang_tca.xlf create mode 100644 Resources/Private/Language/no.locallang.xlf create mode 100644 Resources/Private/Language/no.locallang_be.xlf create mode 100644 Resources/Private/Language/no.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/no.locallang_mod.xlf create mode 100644 Resources/Private/Language/no.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/no.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/no.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/no.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/no.locallang_tca.xlf create mode 100644 Resources/Private/Language/pl.locallang_be.xlf create mode 100644 Resources/Private/Language/pl.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/pl.locallang_mod.xlf create mode 100644 Resources/Private/Language/pl.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/pl.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/pl.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/pl.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/pl.locallang_tca.xlf create mode 100644 Resources/Private/Language/pt.locallang_be.xlf create mode 100644 Resources/Private/Language/pt.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/pt.locallang_mod.xlf create mode 100644 Resources/Private/Language/pt.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/pt.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/pt.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/pt.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/pt.locallang_tca.xlf create mode 100644 Resources/Private/Language/ro.locallang.xlf create mode 100644 Resources/Private/Language/ro.locallang_be.xlf create mode 100644 Resources/Private/Language/ro.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/ro.locallang_mod.xlf create mode 100644 Resources/Private/Language/ro.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/ro.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/ro.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/ro.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/ro.locallang_tca.xlf create mode 100644 Resources/Private/Language/ru.locallang.xlf create mode 100644 Resources/Private/Language/ru.locallang_be.xlf create mode 100644 Resources/Private/Language/ru.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/ru.locallang_mod.xlf create mode 100644 Resources/Private/Language/ru.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/ru.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/ru.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/ru.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/ru.locallang_tca.xlf create mode 100644 Resources/Private/Language/sr.locallang.xlf create mode 100644 Resources/Private/Language/sr.locallang_be.xlf create mode 100644 Resources/Private/Language/sr.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/sr.locallang_mod.xlf create mode 100644 Resources/Private/Language/sr.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/sr.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/sr.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/sr.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/sr.locallang_tca.xlf create mode 100644 Resources/Private/Language/sv.locallang.xlf create mode 100644 Resources/Private/Language/sv.locallang_be.xlf create mode 100644 Resources/Private/Language/sv.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/sv.locallang_mod.xlf create mode 100644 Resources/Private/Language/sv.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/sv.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/sv.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/sv.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/sv.locallang_tca.xlf create mode 100644 Resources/Private/Language/tr.locallang.xlf create mode 100644 Resources/Private/Language/tr.locallang_be.xlf create mode 100644 Resources/Private/Language/tr.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/tr.locallang_mod.xlf create mode 100644 Resources/Private/Language/tr.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/tr.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/tr.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/tr.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/tr.locallang_tca.xlf create mode 100644 Resources/Private/Language/uk.locallang.xlf create mode 100644 Resources/Private/Language/uk.locallang_be.xlf create mode 100644 Resources/Private/Language/uk.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/uk.locallang_mod.xlf create mode 100644 Resources/Private/Language/uk.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/uk.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/uk.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/uk.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/uk.locallang_tca.xlf create mode 100644 Resources/Private/Language/vi.locallang.xlf create mode 100644 Resources/Private/Language/vi.locallang_be.xlf create mode 100644 Resources/Private/Language/vi.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/vi.locallang_mod.xlf create mode 100644 Resources/Private/Language/vi.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/vi.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/vi.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/vi.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/vi.locallang_tca.xlf create mode 100644 Resources/Private/Language/zh.locallang_be.xlf create mode 100644 Resources/Private/Language/zh.locallang_csh_pages.xlf create mode 100644 Resources/Private/Language/zh.locallang_mod.xlf create mode 100644 Resources/Private/Language/zh.locallang_mod_coreoptimize.xlf create mode 100644 Resources/Private/Language/zh.locallang_mod_indexadmin.xlf create mode 100644 Resources/Private/Language/zh.locallang_mod_indexqueue.xlf create mode 100644 Resources/Private/Language/zh.locallang_mod_info.xlf create mode 100644 Resources/Private/Language/zh.locallang_tca.xlf diff --git a/Resources/Private/Language/af.locallang.xlf b/Resources/Private/Language/af.locallang.xlf new file mode 100644 index 0000000000..7a480100ee --- /dev/null +++ b/Resources/Private/Language/af.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/af.locallang_be.xlf b/Resources/Private/Language/af.locallang_be.xlf new file mode 100644 index 0000000000..d0a3681680 --- /dev/null +++ b/Resources/Private/Language/af.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/af.locallang_csh_pages.xlf b/Resources/Private/Language/af.locallang_csh_pages.xlf new file mode 100644 index 0000000000..ed05ac46e6 --- /dev/null +++ b/Resources/Private/Language/af.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/af.locallang_mod.xlf b/Resources/Private/Language/af.locallang_mod.xlf new file mode 100644 index 0000000000..234c0ffec4 --- /dev/null +++ b/Resources/Private/Language/af.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/af.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/af.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..234c0ffec4 --- /dev/null +++ b/Resources/Private/Language/af.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/af.locallang_mod_indexadmin.xlf b/Resources/Private/Language/af.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..234c0ffec4 --- /dev/null +++ b/Resources/Private/Language/af.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/af.locallang_mod_indexqueue.xlf b/Resources/Private/Language/af.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..234c0ffec4 --- /dev/null +++ b/Resources/Private/Language/af.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/af.locallang_mod_info.xlf b/Resources/Private/Language/af.locallang_mod_info.xlf new file mode 100644 index 0000000000..234c0ffec4 --- /dev/null +++ b/Resources/Private/Language/af.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/af.locallang_tca.xlf b/Resources/Private/Language/af.locallang_tca.xlf new file mode 100644 index 0000000000..8b0ccf5eb2 --- /dev/null +++ b/Resources/Private/Language/af.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/ar.locallang.xlf b/Resources/Private/Language/ar.locallang.xlf new file mode 100644 index 0000000000..aaafe9a991 --- /dev/null +++ b/Resources/Private/Language/ar.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/ar.locallang_be.xlf b/Resources/Private/Language/ar.locallang_be.xlf new file mode 100644 index 0000000000..9ddca30d1b --- /dev/null +++ b/Resources/Private/Language/ar.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/ar.locallang_csh_pages.xlf b/Resources/Private/Language/ar.locallang_csh_pages.xlf new file mode 100644 index 0000000000..7f0070ab7b --- /dev/null +++ b/Resources/Private/Language/ar.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/ar.locallang_mod.xlf b/Resources/Private/Language/ar.locallang_mod.xlf new file mode 100644 index 0000000000..8107b8a659 --- /dev/null +++ b/Resources/Private/Language/ar.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ar.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/ar.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..8107b8a659 --- /dev/null +++ b/Resources/Private/Language/ar.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ar.locallang_mod_indexadmin.xlf b/Resources/Private/Language/ar.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..8107b8a659 --- /dev/null +++ b/Resources/Private/Language/ar.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ar.locallang_mod_indexqueue.xlf b/Resources/Private/Language/ar.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..8107b8a659 --- /dev/null +++ b/Resources/Private/Language/ar.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ar.locallang_mod_info.xlf b/Resources/Private/Language/ar.locallang_mod_info.xlf new file mode 100644 index 0000000000..8107b8a659 --- /dev/null +++ b/Resources/Private/Language/ar.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ar.locallang_tca.xlf b/Resources/Private/Language/ar.locallang_tca.xlf new file mode 100644 index 0000000000..cef8f00c75 --- /dev/null +++ b/Resources/Private/Language/ar.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/ca.locallang.xlf b/Resources/Private/Language/ca.locallang.xlf new file mode 100644 index 0000000000..f3bc017aca --- /dev/null +++ b/Resources/Private/Language/ca.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/ca.locallang_be.xlf b/Resources/Private/Language/ca.locallang_be.xlf new file mode 100644 index 0000000000..f6b023e4db --- /dev/null +++ b/Resources/Private/Language/ca.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/ca.locallang_csh_pages.xlf b/Resources/Private/Language/ca.locallang_csh_pages.xlf new file mode 100644 index 0000000000..40d3898045 --- /dev/null +++ b/Resources/Private/Language/ca.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/ca.locallang_mod.xlf b/Resources/Private/Language/ca.locallang_mod.xlf new file mode 100644 index 0000000000..8aa632297e --- /dev/null +++ b/Resources/Private/Language/ca.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ca.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/ca.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..8aa632297e --- /dev/null +++ b/Resources/Private/Language/ca.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ca.locallang_mod_indexadmin.xlf b/Resources/Private/Language/ca.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..8aa632297e --- /dev/null +++ b/Resources/Private/Language/ca.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ca.locallang_mod_indexqueue.xlf b/Resources/Private/Language/ca.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..8aa632297e --- /dev/null +++ b/Resources/Private/Language/ca.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ca.locallang_mod_info.xlf b/Resources/Private/Language/ca.locallang_mod_info.xlf new file mode 100644 index 0000000000..8aa632297e --- /dev/null +++ b/Resources/Private/Language/ca.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ca.locallang_tca.xlf b/Resources/Private/Language/ca.locallang_tca.xlf new file mode 100644 index 0000000000..803da44b9d --- /dev/null +++ b/Resources/Private/Language/ca.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/cs.locallang.xlf b/Resources/Private/Language/cs.locallang.xlf index 2d81c1a5b4..6f172ecafd 100644 --- a/Resources/Private/Language/cs.locallang.xlf +++ b/Resources/Private/Language/cs.locallang.xlf @@ -1,462 +1,23 @@ - + - -
- LFEditor -
- - - - - The Index Administration Module is responsible for emptying the cores(deleting documents) on Solr Server and index queues in TYPO3 CMS. - Modul správy indexu je zodpovědný za vyprázdnění jader (mazání dokumentů) na Solr Server a indexové fronty v TYPO3 CMS. - - - - Index emptied for Site "%s" (%s). - Index pro stránku "%s" (%s) byl vyprázdněn. - - - - Index Queue emptied for Site "%s". - Fronta indexu pro stránku "%s" byla vyprázdněna. - - - - An error occurred while trying to delete documents from the index: %s - Při pokusu o odstranění dokumentů z indexu došlo k chybě: %s - - - - - - - Search Index Inspector - Inspektor vyhledávacího indexu - - - Search - Hledat - - - A search form and results list. - Vyhledávací formulář a seznam výsledků. - - - - - - Successfully switched to Site "%s". - Úspěšně přepnuto na stránku "%s". - - - - The previously selected Site "%s" does not exist or the indexing for that Site was disabled. Switched to "%s", which was the first available one. - Dříve vybraná stránka "%s" neexistuje nebo bylo indexování pro tuto stránku zakázáno. Přepnuto na „%s“ jako nejbližší dostupná stránka. - - - - Couldn't switch to the Site "%s". This site does not exist anymore or the indexing for that Site was disabled. Switched to the first available Site "%s". - Nelze přepnout na stránku "%s". Tato stránka již neexistuje nebo bylo indexování této stránky zakázáno. Přepnuto na nejbližší stránku "%s". - - - - - The previously selected core "%s" is not available in "%s" site, therefore switched to default core "%s". - Dříve vybrané jádro "%s" není dostupné na webu "%s", proto bylo přepnuto na výchozí jádro "%s". - - - - Successfully switched to core "%s". - Úspěšně přepnuto na jádro "%s". - - - - - - Apache Solr Search Administration - Administrace vyhledávání Apache Solr - - - Allows you to manage Apache Solr from TYPO3.
Access for 'admin' users only! - Umožňuje vám spravovat Apache Solr z TYPO3.
Přístup pouze pro uživatele „admin“!
-
- - Search - Hledat - - - - - Apache Solr Index - Index Apache Solr - - - View the number of documents and fields in your index - Zobrazení počtu dokumentů a polí v indexu - - - Apache Solr Statistics - Statistiky Apache Solr - - - Provides several Solr usage statistics - Poskytuje několik statistik využití Solr - - - - - Force Re-Indexing of a site - Vynutit opětovné indexování webu - - - Purges the Solr Index and initializes the Index Queue of a site. - Vyčistí index Solr a inicializuje frontu indexu webu. - - - Index Queue Worker - Pracovník indexové fronty - - - Processes the items in the Index Queue and sends them to Solr. - Zpracuje položky v indexové frontě a odešle je do Solr. - - - Number of documents to index - Počet dokumentů k indexování - - - Forced webroot (only needed when webroot is not PATH_site) - Vynucený webroot (potřebný pouze v případě, že webroot není PATH_site) - - - Solr Host - Solr Hostitel - - - Solr Port - Solr Port - - - Solr Path - Solr Cesta - - - Solr Server - Solr Server - - - Site - Stránka - - - - - Search is currently not available. - Vyhledávání momentálně není k dispozici. - - - We're sorry. The request you tried to make could not be processed. - Omlouváme se. Požadavek, který jste se pokusili podat, nelze zpracovat. - - - Search Term - Hledaný výraz - - - Did you mean - Máte na mysli - - - Search - Hledat - - - Sort by - Seřadit podle - - - Narrow Search - Upřesnit výběr - - - Search narrowed by - Výběr upřesněn podle - - - Show more - Zobrazit více - - - Show fewer - Zobrazit méně - - - Remove all filters - Odstraň všechny filtry - - - Filter - Filtr - - - Displaying results @resultsFrom to @resultsTo of @resultsTotal. - Ukaž výsledky @resultsFrom až @resultsTo z @resultsTotal. - - - Found @resultsTotal results in @resultsTime milliseconds. - Nalezeno @resultsTotal výsledků v @resultsTime milisekundách - - - Found 1 result in @resultsTime milliseconds. - Najdi jeden výsledek z @resultsTime v milisekundách. - - - Searched for "@searchWord". - Hledáno pro "@searchWord". - - - Nothing found for "@searchWord". - Nic nenalezeno pro "@searchWord". - - - Showing results for "@suggestedWord". - Zobrazeny výsledky pro "@suggestedWord". - - - Search instead for "@searchWord". - Místo toho hledej „@searchWord“. - - - Last searches - Poslední hledání - - - Frequent searches - Časté hledání - - - Relevance - Relevance - - - - File type - Typ souboru - - - Referenced at - Odkazováno na - - - Results per page: - Výsledek na stránku: - - - We're sorry, there were some errors: - Omlouváme se, došlo k několika chybám: - - - Please enter your search term in the box above. - Prosím, zadejte hledaný výraz do pole výše. - - - First - První - - - Previous - Předchozí - - - Next - Další - - - Last - Poslední - - - Top Results - Nejlepší výsledky - - - - The Index Queue manages content indexing. Content enters the Index Queue by initialization below or when new content is created based on configuration. Items in the Index Queue are indexed newest changes first until all items in the queue have been indexed. - Indexování obsahu spravuje Fronta indexů. Obsah vstupuje do indexové fronty inicializací níže nebo při vytvoření nového obsahu na základě konfigurace. Položky v indexové frontě jsou indexovány jako první nejnovější změny, dokud nebudou indexovány všechny položky ve frontě - - - Reset errors - Resetovat chyby - - - Indexing Errors - Chyba indexování - - - ID - ID - - - Item Type - Typ předmětu - - - Item UID - UID položky - - - Show error - Zobrazit chyby - - - An error occurred while indexing manual from the backend. - Při indexování manuálu z backendu došlo k chybě. - - - An error occurred while resetting the error log in the index queue. - Při resetování protokolu chyb ve frontě indexu došlo k chybě. - - - Single item was not requeued. - Jedna položka nebyla znovu zařazena do fronty. - - - No indexing configurations selected. - Nejsou vybrány žádné konfigurace indexování. - - - - Initialized indexing configurations: %s - Inicializované konfigurace indexování: %s - - - Index Queue initialized - Indexová fronta inicializována - - - Index Queue not initialized - Indexová fronta není inicializována - - - All errors have been reset. - Všechny chyby byly resetovány. - - - Indexing from the backend was successfully finished. - Indexování z backendu bylo úspěšně dokončeno. - - - Single item was successfully marked for reindexing. - Jedna položka byla úspěšně označena k reindexaci. - - - Index Queue - Indexová fronta - - - Manual Indexing - Manuální indexování - - - Initializing the Index Queue is the most complete way to force re-indexing, or to build the Index Queue for the first time. The Index Queue Worker scheduler task will then index the items listed in the Index Queue. - Inicializace indexové fronty je nejúplnější způsob, jak vynutit opětovné indexování nebo poprvé vytvořit indexovou frontu. Úloha plánovače Index Queue Worker pak indexuje položky uvedené v Index Queue. - - - Errors - Chyby - - - Indexing Progress - Průběh indexování - - - Indexed - Indexováno - - - Pending - Čekající - - - Index Queue Initialization - Inicializace indexové fronty - - - Index Queue Status - Stav indexové fronty - - - Clear Index Queue - Vymazat indexovou frontu - - - Go back - Zpět - - - No valid queue item passed to show the error information! - Nebyla předána žádná platná položka fronty k zobrazení informací o chybě! - - - Error details for queue item - Podrobnosti o chybě položky fronty - - - Index now - Indexuj nyní - - - - - Search: Frequent Searches - Hledat: Časté vyhledávání - - - Search: Form, Result, Additional Components - Hledat: Formulář, Výsledek, Další komponenty - - - Search: Form only - Hledat: Pouze formulář - - - - Phrase - Fráze - - - Number of Queries - Počet dotazů - - - Number of Results (Average) - Počet výsledků (průměr) - - - Percentage - Procenta - - - No records found. Did you enabled 'plugin.tx_solr.statistics = 1' in the typoscript configuration of your site? - Nenalezeny žádné záznamy. Povolili jste 'plugin.tx_solr.statistics = 1' v konfiguraci typoscriptu vašeho webu? - - - Top 5 Search Phrases - Top 5 vyhledaných frází - - - Top 5 Search Phrases Without Hits - Top 5 vyhledávacích frází bez hitů - - - Search Phrase Statistics - Statistika vyhledaných frází - - - -
+ +
+ LFEditor +
+ + + + + + + + + + + + + + + +
diff --git a/Resources/Private/Language/cs.locallang_be.xlf b/Resources/Private/Language/cs.locallang_be.xlf new file mode 100644 index 0000000000..94715bca57 --- /dev/null +++ b/Resources/Private/Language/cs.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/cs.locallang_csh_pages.xlf b/Resources/Private/Language/cs.locallang_csh_pages.xlf new file mode 100644 index 0000000000..304a50b4e9 --- /dev/null +++ b/Resources/Private/Language/cs.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/cs.locallang_mod.xlf b/Resources/Private/Language/cs.locallang_mod.xlf new file mode 100644 index 0000000000..a2bc177f9d --- /dev/null +++ b/Resources/Private/Language/cs.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/cs.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/cs.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..a2bc177f9d --- /dev/null +++ b/Resources/Private/Language/cs.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/cs.locallang_mod_indexadmin.xlf b/Resources/Private/Language/cs.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..a2bc177f9d --- /dev/null +++ b/Resources/Private/Language/cs.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/cs.locallang_mod_indexqueue.xlf b/Resources/Private/Language/cs.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..a2bc177f9d --- /dev/null +++ b/Resources/Private/Language/cs.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/cs.locallang_mod_info.xlf b/Resources/Private/Language/cs.locallang_mod_info.xlf new file mode 100644 index 0000000000..a2bc177f9d --- /dev/null +++ b/Resources/Private/Language/cs.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/cs.locallang_tca.xlf b/Resources/Private/Language/cs.locallang_tca.xlf new file mode 100644 index 0000000000..42b21e164d --- /dev/null +++ b/Resources/Private/Language/cs.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/da.locallang.xlf b/Resources/Private/Language/da.locallang.xlf new file mode 100644 index 0000000000..cc85075421 --- /dev/null +++ b/Resources/Private/Language/da.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/da.locallang_be.xlf b/Resources/Private/Language/da.locallang_be.xlf new file mode 100644 index 0000000000..9c0242392e --- /dev/null +++ b/Resources/Private/Language/da.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/da.locallang_csh_pages.xlf b/Resources/Private/Language/da.locallang_csh_pages.xlf new file mode 100644 index 0000000000..16a796ee1e --- /dev/null +++ b/Resources/Private/Language/da.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/da.locallang_mod.xlf b/Resources/Private/Language/da.locallang_mod.xlf new file mode 100644 index 0000000000..7f07189521 --- /dev/null +++ b/Resources/Private/Language/da.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/da.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/da.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..7f07189521 --- /dev/null +++ b/Resources/Private/Language/da.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/da.locallang_mod_indexadmin.xlf b/Resources/Private/Language/da.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..7f07189521 --- /dev/null +++ b/Resources/Private/Language/da.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/da.locallang_mod_indexqueue.xlf b/Resources/Private/Language/da.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..7f07189521 --- /dev/null +++ b/Resources/Private/Language/da.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/da.locallang_mod_info.xlf b/Resources/Private/Language/da.locallang_mod_info.xlf new file mode 100644 index 0000000000..7f07189521 --- /dev/null +++ b/Resources/Private/Language/da.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/da.locallang_tca.xlf b/Resources/Private/Language/da.locallang_tca.xlf new file mode 100644 index 0000000000..e000853d0a --- /dev/null +++ b/Resources/Private/Language/da.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/de.locallang.xlf b/Resources/Private/Language/de.locallang.xlf index ffe8cf690b..247ec13c87 100644 --- a/Resources/Private/Language/de.locallang.xlf +++ b/Resources/Private/Language/de.locallang.xlf @@ -1,235 +1,146 @@ - + - -
- - - - Optimize index of a site - Index der Seite optimieren - - - Optimizes the index of a site. - Optimiert den Index einer Seite. - - + +
+ LFEditor +
+ + + + + + + + + + + + Force Re-Indexing of a site - Re-Indexierung der Seite erzwingen - - + Re-Indexierung der Seite erzwingen + Purges the Solr Index and initializes the Index Queue of a site. - Leert den solr index und initialisiert die Index Queue einer Seite. - - - Index Queue Worker - Index Queue Worker - - + Leert den solr index und initialisiert die Index Queue einer Seite. + Processes the items in the Index Queue and sends them to Solr. - Verarbeitet einen Item in der Index Queue und sendet ihn an den Solr Server. - - + Verarbeitet einen Item in der Index Queue und sendet ihn an den Solr Server. + Number of documents to index - Anzahl der zu indexierenden Dokumente - - - Forced webroot (only needed when webroot is not PATH_site) - Forced webroot (Nur notwendig wenn webroot von PATH_site abweicht) - - + Anzahl der zu indexierenden Dokumente + Solr Host - Solr host - - - Solr Port - Solr Port - - + Solr host + Solr Path - Solr Pfad - - - Solr Server - Solr Server - - + Solr Pfad + Site - Webseite - - - - Optimieren - - - - Optimiert den Solr Index - - - - Commit Solr index - - - - Macht Änderungen am Solr Index sichtbar - - - - - + Webseite + + Search is currently not available. - Die Suche steht im Moment nicht zur Verfügung. - - + Die Suche steht im Moment nicht zur Verfügung. + We're sorry. The request you tried to make could not be processed. - Es tut uns leid. Ihre Suchanfrage konnte nicht verarbeitet werden. - - + Es tut uns leid. Ihre Suchanfrage konnte nicht verarbeitet werden. + Search Term - Suchbegriff - - + Suchbegriff + Did you mean - Meinten Sie - - + Meinten Sie + Search - Suchen - - + Suchen + Sort by - Sortieren nach - - + Sortieren nach + Narrow Search - Suchfilter - - + Suchfilter + Search narrowed by - Aktive Filter - - + Aktive Filter + Show more - Mehr zeigen - - + Mehr zeigen + Show fewer - Weniger zeigen - - + Weniger zeigen + Remove all filters - Alle Filter entfernen - - - Filter - Filtern - - + Alle Filter entfernen + + Filter + Filtern + Displaying results @resultsFrom to @resultsTo of @resultsTotal. - Zeige Ergebnisse @resultsFrom bis @resultsTo von @resultsTotal. - - + Zeige Ergebnisse @resultsFrom bis @resultsTo von @resultsTotal. + Found @resultsTotal results in @resultsTime milliseconds. - Es wurden @resultsTotal Ergebnisse in @resultsTime Millisekunden gefunden. - - + Es wurden @resultsTotal Ergebnisse in @resultsTime Millisekunden gefunden. + Found 1 result in @resultsTime milliseconds. - Es wurde 1 Ergebnis in @resultsTime Millisekunden gefunden. - - + Es wurde 1 Ergebnis in @resultsTime Millisekunden gefunden. + Searched for "@searchWord". - Gesucht nach "@searchWord". - - + Gesucht nach "@searchWord". + Nothing found for "@searchWord". - Nichts gefunden für "@searchWord". - - + Nichts gefunden für "@searchWord". + Showing results for "@suggestedWord". - Ergebnisse für "@suggestedWord". - - + Ergebnisse für "@suggestedWord". + Search instead for "@searchWord". - Stattdessen suchen nach "@searchWord". - - + Stattdessen suchen nach "@searchWord". + Last searches - Letzte Suchanfragen - - + Letzte Suchanfragen + Frequent searches - Häufige Suchanfragen - - + Häufige Suchanfragen + Relevance - Relevanz - - - + Relevanz + File type - Dateityp - - + Dateityp + Referenced at - Verlinkt bei - - + Verlinkt bei + Results per page: - Ergebnisse pro Seite: - - + Ergebnisse pro Seite: + We're sorry, there were some errors: - Es tut uns leid, es gab einige Fehler: - - + Es tut uns leid, es gab einige Fehler: + Please enter your search term in the box above. - Bitte geben Sie ihr Suchwort in das Suchfeld ein. - - + Bitte geben Sie ihr Suchwort in das Suchfeld ein. + First - Erste - - + Erste + Previous - Vorherige - - + Vorherige + Next - Nächste - - + Nächste + Last - Letzte - - - Top Results - Top Treffer - - - - Error occured while initializing - Beim Initialisieren ist ein Fehler aufgetreten - - - An error occurred while initializing the index queue: %1$s [%2$d] - Bei der Initialisierung der Index-Queue ist ein Fehler aufgetreten: %1$s [%2$d] - - - - + Letzte + + + Search: Frequent Searches - Suche: Häufige Suchen - - + Suche: Häufige Suchen + Search: Form, Result, Additional Components - Suche: Formular, Ergebnisse, weitere Komponenten - - + Suche: Formular, Ergebnisse, weitere Komponenten + Search: Form only - Suche: Nur Suchformular - - -
+ Suche: Nur Suchformular
+ + diff --git a/Resources/Private/Language/de.locallang_be.xlf b/Resources/Private/Language/de.locallang_be.xlf new file mode 100644 index 0000000000..4dc813cab8 --- /dev/null +++ b/Resources/Private/Language/de.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/de.locallang_csh_pages.xlf b/Resources/Private/Language/de.locallang_csh_pages.xlf index 504757410a..d0ed129c45 100644 --- a/Resources/Private/Language/de.locallang_csh_pages.xlf +++ b/Resources/Private/Language/de.locallang_csh_pages.xlf @@ -1,12 +1,9 @@ - - -
- - - If enabled, this option includes the sub entries of this page in Solr index. (NOTE: Value=0 means enabled in this view.) - Falls aktiviert, werden die Untereinträge dieser Seite bei einer Suche berücksichtigt. (Bitte beachte, dass der Wert=0 wegen Negation in dieser Ansicht "aktiviert" bedeutet.) - + + +
+ + - + diff --git a/Resources/Private/Language/de.locallang_mod.xlf b/Resources/Private/Language/de.locallang_mod.xlf new file mode 100644 index 0000000000..c45bd3e98b --- /dev/null +++ b/Resources/Private/Language/de.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/de.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/de.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..c45bd3e98b --- /dev/null +++ b/Resources/Private/Language/de.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/de.locallang_mod_indexadmin.xlf b/Resources/Private/Language/de.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..c45bd3e98b --- /dev/null +++ b/Resources/Private/Language/de.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/de.locallang_mod_indexqueue.xlf b/Resources/Private/Language/de.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..c45bd3e98b --- /dev/null +++ b/Resources/Private/Language/de.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/de.locallang_mod_info.xlf b/Resources/Private/Language/de.locallang_mod_info.xlf new file mode 100644 index 0000000000..c45bd3e98b --- /dev/null +++ b/Resources/Private/Language/de.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/de.locallang_tca.xlf b/Resources/Private/Language/de.locallang_tca.xlf index 30c7f6d4e3..e847a80333 100644 --- a/Resources/Private/Language/de.locallang_tca.xlf +++ b/Resources/Private/Language/de.locallang_tca.xlf @@ -1,14 +1,13 @@ - + - -
- LFEditor -
- - - Include sub entries in Search - Untereinträge in Indexsuche einbeziehen - + +
+ LFEditor +
+ + + + -
+
diff --git a/Resources/Private/Language/el.locallang.xlf b/Resources/Private/Language/el.locallang.xlf new file mode 100644 index 0000000000..bf8fefefb9 --- /dev/null +++ b/Resources/Private/Language/el.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/el.locallang_be.xlf b/Resources/Private/Language/el.locallang_be.xlf new file mode 100644 index 0000000000..0f5d807a51 --- /dev/null +++ b/Resources/Private/Language/el.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/el.locallang_csh_pages.xlf b/Resources/Private/Language/el.locallang_csh_pages.xlf new file mode 100644 index 0000000000..7ac4050ab4 --- /dev/null +++ b/Resources/Private/Language/el.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/el.locallang_mod.xlf b/Resources/Private/Language/el.locallang_mod.xlf new file mode 100644 index 0000000000..fb5bf9abb3 --- /dev/null +++ b/Resources/Private/Language/el.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/el.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/el.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..fb5bf9abb3 --- /dev/null +++ b/Resources/Private/Language/el.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/el.locallang_mod_indexadmin.xlf b/Resources/Private/Language/el.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..fb5bf9abb3 --- /dev/null +++ b/Resources/Private/Language/el.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/el.locallang_mod_indexqueue.xlf b/Resources/Private/Language/el.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..fb5bf9abb3 --- /dev/null +++ b/Resources/Private/Language/el.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/el.locallang_mod_info.xlf b/Resources/Private/Language/el.locallang_mod_info.xlf new file mode 100644 index 0000000000..fb5bf9abb3 --- /dev/null +++ b/Resources/Private/Language/el.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/el.locallang_tca.xlf b/Resources/Private/Language/el.locallang_tca.xlf new file mode 100644 index 0000000000..702fa0cad1 --- /dev/null +++ b/Resources/Private/Language/el.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/es.locallang.xlf b/Resources/Private/Language/es.locallang.xlf index 112b40f2c7..805148e6c4 100644 --- a/Resources/Private/Language/es.locallang.xlf +++ b/Resources/Private/Language/es.locallang.xlf @@ -1,460 +1,23 @@ - - - -
- LFEditor -
- - - - - The Index Administration Module is responsible for emptying the cores(deleting documents) on Solr Server and index queues in TYPO3 CMS. - El index administration module es el encargado de vaciar los núcleos (borrar documentos) en las colas de servidores e indexación de Solr en CMS TYPO3. - - - - Index emptied for Site "%s" (%s). - Índice vaciado para sitio "%s" (%s). - - - - Index Queue emptied for Site "%s". - Cola de indexación vaciada para sitio "%s". - - - - An error occurred while trying to delete documents from the index: %s - Se ha producido un error al intentar borrar documentos del índice: %s - - - - - - - Search Index Inspector - Buscar inspector de índices - - - Search - Buscar - - - A search form and results list. - Un formulario de búsqueda y una lista de resultados. - - - - - - Successfully switched to Site "%s". - Se ha cambiado correctamente al sitio "%s". - - - - The previously selected Site "%s" does not exist or the indexing for that Site was disabled. Switched to "%s", which was the first available one. - El sitio previamente seleccionado "%s" no existe o la indexación de ese sitio se ha desactivado. Se ha cambiado a "%s", que era el primero disponible. - - - - Couldn't switch to the Site "%s". This site does not exist anymore or the indexing for that Site was disabled. Switched to the first available Site "%s". - No se ha podido cambiar al sitio "%s". Este sitio ya no existe o la indexación de ese sitio se ha desactivado. Se ha cambiado al primer sitio disponible "%s". - - - - - The previously selected core "%s" is not available in "%s" site, therefore switched to default core "%s". - El núcleo previamente seleccionado "%s" no está disponible en el sitio "%s", por lo que se ha cambiado al núcleo por defecto "%s". - - - - Successfully switched to core "%s". - Se ha cambiado correctamente al núcleo "%s". - - - - - - Apache Solr Search Administration - Administración de búsquedas de Apache Solr - - - Allows you to manage Apache Solr from TYPO3.<br /><em>Access for 'admin' users only!</em> - Permite administrar Apache Solr desde TYPO3.<br /><em>¡Acceso únicamente para usuarios 'admin'!</em> - - - Search - Buscar - - - - - Apache Solr Index - Índice de Apache Solr - - - View the number of documents and fields in your index - Visualiza el número de documentos y campos en su índice - - - Apache Solr Statistics - Estadísticas de Apache Solr - - - Provides several Solr usage statistics - Proporciona varias estadísticas de uso de Solr - - - - - Force Re-Indexing of a site - Fuerza la reindexación de un sitio - - - Purges the Solr Index and initializes the Index Queue of a site. - Purga el índice de Solr e inicializa la cola de indexación de un sitio. - - - Index Queue Worker - Asistente de cola de indexación - - - Processes the items in the Index Queue and sends them to Solr. - Procesa los elementos de la cola de indexación y los envía a Solr. - - - Number of documents to index - Número de documentos a indexar - - - Forced webroot (only needed when webroot is not PATH_site) - Webroot forzado (solo necesario si el webroot no es PATH_site) - - - Solr Host - Host de Solr - - - Solr Port - Puerto de Solr - - - Solr Path - Ruta de Solr - - - Solr Server - Servidor de Solr - - - Site - Sitio - - - - - Search is currently not available. - La búsqueda no está disponible actualmente. - - - We're sorry. The request you tried to make could not be processed. - Lo sentimos. La consulta que ha tratado de hacer no ha podido ser procesada. - - - Search Term - Término de búsqueda - - - Did you mean - ¿Quiso decir...? - - - Search - Buscar - - - Sort by - Ordenar por - - - Narrow Search - Restringir búsqueda - - - Search narrowed by - Búsqueda restringida por - - - Show more - Mostrar más - - - Show fewer - Mostrar menos - - - Remove all filters - Quitar todos los filtros - - - Filter - Filter - - - Displaying results @resultsFrom to @resultsTo of @resultsTotal. - Mostrando resultados @resultsFrom a @resultsTo de @resultsTotal. - - - Found @resultsTotal results in @resultsTime milliseconds. - @resultsTotal resultados encontrados en @resultsTime milisegundos. - - - Found 1 result in @resultsTime milliseconds. - Found 1 result in @resultsTime milliseconds. - - - Searched for "@searchWord". - Búsqueda de "@searchWord". - - - Nothing found for "@searchWord". - La búsqueda de "@searchWord" no ha obtenido ningún resultado. - - - Showing results for "@suggestedWord". - Mostrar resultados para "@suggestedWord" - - - Search instead for "@searchWord". - Buscar "@searchWord". - - - Last searches - Últimas búsquedas - - - Frequent searches - Búsquedas frecuentes - - - Relevance - Relevancia - - - - File type - Tipo de archivo - - - Referenced at - Referenciado en - - - Results per page: - Resultados por página: - - - Lamentablemente, se han producido errores: - - - Please enter your search term in the box above. - Introduzca su término de búsqueda en el cuadro de arriba. - - - Primera - - - Anterior - - - Next - Siguiente - - - Last - Última - - - Top Results - Top Results - - - - - The Index Queue manages content indexing. Content enters the Index Queue by initialization below or when new content is created based on configuration. Items in the Index Queue are indexed newest changes first until all items in the queue have been indexed. - La cola de indexación gestiona la indexación del contenido. El contenido entra en la cola de indexación mediante la inicialización de más abajo o cuando se crea un nuevo contenido basándose en la configuración. Los elementos de la cola de indexación se indexan según el principio de 'los últimos cambios primero' hasta haberse indexado todos los elementos de la cola. - - - Reset errors - Suprimir errores - - - Indexing Errors - Indexar errores - - - ID - ID - - - Item Type - Tipo de elemento - - - Item UID - ID único de elemento - - - Show error - Mostrar error - - - An error occurred while indexing manual from the backend. - Se ha producido un error al indexar manualmente desde backend. - - - An error occurred while resetting the error log in the index queue. - Se ha producido un error al suprimir el log de errores en la cola de indexación. - - - Single item was not requeued. - Single item was not requeued. - - - No indexing configurations selected. - No se han seleccionado configuraciones de indexación. - - - - Initialized indexing configurations: %s - Configuraciones de indexación inicializadas: %s - - - Index Queue initialized - Cola de indexación inicializada - - - Index Queue not initialized - Cola de indexación no inicializada - - - All errors have been reset. - Se han suprimido todos los errores. - - - Indexing from the backend was successfully finished. - La indexación desde backend ha finalizado correctamente. - - - Single item was successfully marked for reindexing. - Single item was successfully marked for reindexing. - - - Index Queue - Cola de indexación - - - Manual Indexing - Indexación manual - - - Initializing the Index Queue is the most complete way to force re-indexing, or to build the Index Queue for the first time. The Index Queue Worker scheduler task will then index the items listed in the Index Queue. - La inicialización de la cola de indexación es la forma más efectiva de forzar una reindexación o de crear una cola de indexación por primera vez. El planificador del index queue worker procederá entonces a indexar los elementos listados en la cola de indexación. - - - Errors - Errores - - - Indexing Progress - Progreso de la indexación - - - Indexed - Indexado - - - Pending - Pendiente - - - Index Queue Initialization - Inicialización de la cola de indexación - - - Index Queue Status - Estado de la cola de indexación - - - Clear Index Queue - Limpiar cola de indexación - - - Go back - Regresar - - - No valid queue item passed to show the error information! - ¡No ha pasado ningún elemento válido de la cola para mostrar la información del error! - - - Error details for queue item - Detalles del error del elemento de la cola - - - Index now - Indexar ahora - - - - - Search: Frequent Searches - Buscar: Búsquedas frecuentes - - - Search: Form, Result, Additional Components - Buscar: Formulario, resultado, componentes adicionales - - - Search: Form only - Buscar: Solo formulario - - - - Phrase - Frase - - - Number of Queries - Número de consultas - - - Number of Results (Average) - Número de resultados (promedio) - - - Percentage - Porcentaje - - - No records found. Did you enabled 'plugin.tx_solr.statistics = 1' in the typoscript configuration of your site? - No se han encontrado registros. ¿Ha habilitado 'plugin.tx_solr.statistics = 1' en la configuración de typoscript de su sitio? - - - Top 5 Search Phrases - Las 5 principales frases de búsqueda - - - Top 5 Search Phrases Without Hits - Las 5 principales frases de búsqueda sin resultados - - - Search Phrase Statistics - Estadísticas de frases de búsqueda - - - -
+ + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
diff --git a/Resources/Private/Language/es.locallang_be.xlf b/Resources/Private/Language/es.locallang_be.xlf new file mode 100644 index 0000000000..c713d45323 --- /dev/null +++ b/Resources/Private/Language/es.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/es.locallang_csh_pages.xlf b/Resources/Private/Language/es.locallang_csh_pages.xlf new file mode 100644 index 0000000000..8825cdcd5f --- /dev/null +++ b/Resources/Private/Language/es.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/es.locallang_mod.xlf b/Resources/Private/Language/es.locallang_mod.xlf new file mode 100644 index 0000000000..7bd934461a --- /dev/null +++ b/Resources/Private/Language/es.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/es.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/es.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..7bd934461a --- /dev/null +++ b/Resources/Private/Language/es.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/es.locallang_mod_indexadmin.xlf b/Resources/Private/Language/es.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..7bd934461a --- /dev/null +++ b/Resources/Private/Language/es.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/es.locallang_mod_indexqueue.xlf b/Resources/Private/Language/es.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..7bd934461a --- /dev/null +++ b/Resources/Private/Language/es.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/es.locallang_mod_info.xlf b/Resources/Private/Language/es.locallang_mod_info.xlf new file mode 100644 index 0000000000..7bd934461a --- /dev/null +++ b/Resources/Private/Language/es.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/es.locallang_tca.xlf b/Resources/Private/Language/es.locallang_tca.xlf new file mode 100644 index 0000000000..d2e2792b82 --- /dev/null +++ b/Resources/Private/Language/es.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/fi.locallang.xlf b/Resources/Private/Language/fi.locallang.xlf new file mode 100644 index 0000000000..4c6d8c9eca --- /dev/null +++ b/Resources/Private/Language/fi.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/fi.locallang_be.xlf b/Resources/Private/Language/fi.locallang_be.xlf new file mode 100644 index 0000000000..d27d1489be --- /dev/null +++ b/Resources/Private/Language/fi.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/fi.locallang_csh_pages.xlf b/Resources/Private/Language/fi.locallang_csh_pages.xlf new file mode 100644 index 0000000000..66a63edbcc --- /dev/null +++ b/Resources/Private/Language/fi.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/fi.locallang_mod.xlf b/Resources/Private/Language/fi.locallang_mod.xlf new file mode 100644 index 0000000000..311455f007 --- /dev/null +++ b/Resources/Private/Language/fi.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/fi.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/fi.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..311455f007 --- /dev/null +++ b/Resources/Private/Language/fi.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/fi.locallang_mod_indexadmin.xlf b/Resources/Private/Language/fi.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..311455f007 --- /dev/null +++ b/Resources/Private/Language/fi.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/fi.locallang_mod_indexqueue.xlf b/Resources/Private/Language/fi.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..311455f007 --- /dev/null +++ b/Resources/Private/Language/fi.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/fi.locallang_mod_info.xlf b/Resources/Private/Language/fi.locallang_mod_info.xlf new file mode 100644 index 0000000000..311455f007 --- /dev/null +++ b/Resources/Private/Language/fi.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/fi.locallang_tca.xlf b/Resources/Private/Language/fi.locallang_tca.xlf new file mode 100644 index 0000000000..bae8978106 --- /dev/null +++ b/Resources/Private/Language/fi.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/fr.locallang.xlf b/Resources/Private/Language/fr.locallang.xlf index 28c5d115de..c5d957538b 100644 --- a/Resources/Private/Language/fr.locallang.xlf +++ b/Resources/Private/Language/fr.locallang.xlf @@ -1,467 +1,23 @@ - - - -
- - - - - The Index Administration Module is responsible for emptying the cores(deleting documents) on Solr Server and index queues in TYPO3 CMS. - Le module d'administration d'index est chargé de vider les noyaux (suppression de documents) sur le serveur Solr et les files d'attente d'index dans le CMS TYPO3. - - - - Index emptied for Site "%s" (%s). - Index vidé pour le site « %s » (%s). - - - - Index Queue emptied for Site "%s". - File d'attente d’index vidée pour le site « %s ». - - - - An error occurred while trying to delete documents from the index: %s - Une erreur s'est produite lors de la tentative de suppression de documents de l'index : %s - - - - - - Search Index Inspector - Inspecteur de l'index de recherche - - - Search - - - - A search form and results list. - - - - - - - Successfully switched to Site "%s". - Passage réussi au site « %s ». - - - - The previously selected Site "%s" does not exist or the indexing for that Site was disabled. Switched to "%s", which was the first available one. - Le site « %s » précédemment sélectionné n'existe pas ou l'indexation de ce site a été désactivée. Passage au site « %s », qui était le premier disponible. - - - - Couldn't switch to the Site "%s". This site does not exist anymore or the indexing for that Site was disabled. Switched to the first available Site "%s". - Impossible de passer au site « %s ». Ce site n'existe plus ou l'indexation de ce site a été désactivée. Passage au premier site disponible « %s ». - - - - - The previously selected core "%s" is not available in "%s" site, therefore switched to default core "%s". - Le noyau « %s » sélectionné précédemment n'est pas disponible sur le site « %s », passage au noyau par défaut « %s ». - - - - Successfully switched to core "%s". - Passage réussi au noyau « %s ». - - - - - - Apache Solr Search Administration - Moteur de recherche Apache Solr - - - Allows you to manage Apache Solr from TYPO3.<br /><em>Access for 'admin' users only!</em> - Vous permet d'exécuter Apache Solr depuis TYPO3.<br /><em>Accès réservé aux utilisateurs 'admin' uniquement !</em> - - - Search - Rechercher - - - - - Apache Solr Index - Index d'Apache Solr - - - View the number of documents and fields in your index - Visualisez le nombre de documents et de champs de votre index - - - Apache Solr Statistics - Statistiques d'Apache Solr - - - Provides several Solr usage statistics - Fourni plusieurs statistiques d'usage de Solr - - - - - Optimize index of a site - Optimiser l'index d'un site - - - Optimizes the index of a site. - Optimise l'index d'un site. - - - Force Re-Indexing of a site - Force la réindexation d'un site - - - Purges the Solr Index and initializes the Index Queue of a site. - Purge l'index de Solr et initialise la file d'attente d'indexation d'un site. - - - Index Queue Worker - Tâche de traitement de la file d'indexation. - - - Processes the items in the Index Queue and sends them to Solr. - Traite les élément de la file d'attente et les envoie à Solr. - - - Number of documents to index - Nombre de documents à indexer - - - Forced webroot (only needed when webroot is not PATH_site) - Forced webroot (only needed when webroot is not PATH_site) - - - Solr Host - Hôte Solr - - - Solr Port - Port Solr - - - Solr Path - URI Solr - - - Solr Server - Serveur Solr - - - Site - Site - - - - - Search is currently not available. - La recherche est actuellement indisponible. - - - We're sorry. The request you tried to make could not be processed. - Désolé. Votre demande n'a pas pu être traitée. - - - Search Term - Critère de recherche - - - Did you mean - Pensiez-vous à - - - Search - Recherche - - - Sort by - Trier par - - - Narrow Search - Filtre de résultats - - - Search narrowed by - Filtres actifs - - - Show more - Afficher plus - - - Show fewer - Afficher moins - - - Remove all filters - Retirer tous les filtres - - - Filter - Filter - - - Displaying results @resultsFrom to @resultsTo of @resultsTotal. - Affiche les résultats de @resultsFrom à @resultsTo sur @resultsTotal. - - - Found @resultsTotal results in @resultsTime milliseconds. - @resultsTotal résultats ont été trouvés en @resultsTime millisecondes. - - - Found 1 result in @resultsTime milliseconds. - 1 résultats ont été trouvés en @resultsTime millisecondes. - - - Searched for "@searchWord". - Recherche de "@searchWord". - - - Nothing found for "@searchWord". - Rien trouvé pour "@searchWord". - - - Showing results for "@suggestedWord". - Affichage des résultats pour "@suggestedWord". - - - Search instead for "@searchWord". - Chercher "@searchWord" à la place. - - - Last searches - Dernières recherches - - - Frequent searches - Recherches fréquentes - - - Relevance - Pertinence - - - - File type - Type de fichier - - - Referenced at - Référencé par - - - Results per page: - Résultats par page: - - - We're sorry, there were some errors: - Nous sommes désolés, il y a eu quelques erreurs : - - - Please enter your search term in the box above. - Veuillez remplir les termes de recherche dans le champ ci-dessus. - - - First - Premier - - - Previous - Précédent - - - Next - Suivant - - - Last - Dernier - - - Top Results - Top Results - - - - - The Index Queue manages content indexing. Content enters the Index Queue by initialization below or when new content is created based on configuration. Items in the Index Queue are indexed newest changes first until all items in the queue have been indexed. - La file d’attente de l’index gère l’indexation du contenu. Le contenu entre dans la file d'attente de l'index par l’initialisation ci-dessous ou lors de la création d'un nouveau contenu selon la configuration. Les éléments de la file d'attente de l'index sont indexés en commençant par les changements les plus récents jusqu'à ce que tous les éléments de la file d'attente aient été indexés. - - - Reset errors - Erreurs de réinitialisation - - - Indexing Errors - Erreurs d’indexation - - - ID - ID - - - Item Type - Type d’élément - - - Item UID - Afficher l’erreur - - - Show error - Afficher l’erreur - - - An error occurred while indexing manual from the backend. - Une erreur s'est produite lors de l’indexation manuelle de l’application en arrière-plan. - - - An error occurred while resetting the error log in the index queue. - Une erreur s'est produite lors de la réinitialisation du fichier d’erreurs dans la file d’attente de l'index. - - - Single item was not requeued. - Single item was not requeued. - - - No indexing configurations selected. - Aucune configuration d’indexation sélectionnée. - - - - Initialized indexing configurations: %s - Configurations d’indexation initialisées : %s - - - Index Queue initialized - File d'attente de l’index initialisée - - - Index Queue not initialized - File d'attente de l’index non initialisée - - - All errors have been reset. - Toutes les erreurs ont été réinitialisées. - - - Indexing from the backend was successfully finished. - L'indexation de l’application en arrière-plan s'est terminée avec succès. - - - Single item was successfully marked for reindexing. - Single item was successfully marked for reindexing. - - - Index Queue - File d'attente de l’index - - - Manual Indexing - Indexation manuelle - - - Initializing the Index Queue is the most complete way to force re-indexing, or to build the Index Queue for the first time. The Index Queue Worker scheduler task will then index the items listed in the Index Queue. - L'initialisation de la file d'attente de l'index est le moyen le plus complet de forcer la ré-indexation ou de générer la file d'attente de l'index pour la première fois. La tâche du planificateur de l’exécuteur de file d'attente de l'index indexera alors les éléments énumérés dans la file d'attente de l'index. - - - Errors - Erreurs - - - Indexing Progress - Indexation en cours - - - Indexed - Indexé - - - Pending - En attente - - - Index Queue Initialization - Initialisation de la file d'attente de l’index - - - Index Queue Status - État de la file d'attente de l’index - - - Clear Index Queue - Supprimer la file d'attente de l’index - - - Go back - Retour - - - No valid queue item passed to show the error information! - Aucun élément de file d'attente valide transmis pour afficher les informations d'erreur ! - - - Error details for queue item - Détails de l'erreur pour l’élément de la file d'attente - - - Index now - Indexer maintenant - - - - - Search: Frequent Searches - Rechercher: Recherches fréquentes - - - Search: Form, Result, Additional Components - Rechercher: Formulaire, Résultats, Composants additionnels - - - Search: Form only - Rechercher: Formulaire seul - - - - Phrase - Phrase - - - Number of Queries - Number of Queries - - - Number of Results (Average) - Number of Results (Average) - - - Percentage - Percentage - - - No records found. Did you enabled 'plugin.tx_solr.statistics = 1' in the typoscript configuration of your site? - No records found. Did you enabled 'plugin.tx_solr.statistics = 1' in the typoscript configuration of your site? - - - Top 5 Search Phrases - Top 5 Search Phrases - - - Top 5 Search Phrases Without Hits - Top 5 Search Phrases Without Hits - - - Search Phrase Statistics - Search Phrase Statistics - - - + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
diff --git a/Resources/Private/Language/fr.locallang_be.xlf b/Resources/Private/Language/fr.locallang_be.xlf new file mode 100644 index 0000000000..3372e6fe94 --- /dev/null +++ b/Resources/Private/Language/fr.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/fr.locallang_csh_pages.xlf b/Resources/Private/Language/fr.locallang_csh_pages.xlf new file mode 100644 index 0000000000..26a0d7966b --- /dev/null +++ b/Resources/Private/Language/fr.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/fr.locallang_mod.xlf b/Resources/Private/Language/fr.locallang_mod.xlf new file mode 100644 index 0000000000..8aa1319517 --- /dev/null +++ b/Resources/Private/Language/fr.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/fr.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/fr.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..8aa1319517 --- /dev/null +++ b/Resources/Private/Language/fr.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/fr.locallang_mod_indexadmin.xlf b/Resources/Private/Language/fr.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..8aa1319517 --- /dev/null +++ b/Resources/Private/Language/fr.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/fr.locallang_mod_indexqueue.xlf b/Resources/Private/Language/fr.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..8aa1319517 --- /dev/null +++ b/Resources/Private/Language/fr.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/fr.locallang_mod_info.xlf b/Resources/Private/Language/fr.locallang_mod_info.xlf new file mode 100644 index 0000000000..8aa1319517 --- /dev/null +++ b/Resources/Private/Language/fr.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/fr.locallang_tca.xlf b/Resources/Private/Language/fr.locallang_tca.xlf new file mode 100644 index 0000000000..d68724d332 --- /dev/null +++ b/Resources/Private/Language/fr.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/he.locallang.xlf b/Resources/Private/Language/he.locallang.xlf new file mode 100644 index 0000000000..0d7f2cf5fe --- /dev/null +++ b/Resources/Private/Language/he.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/he.locallang_be.xlf b/Resources/Private/Language/he.locallang_be.xlf new file mode 100644 index 0000000000..a5e49330fa --- /dev/null +++ b/Resources/Private/Language/he.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/he.locallang_csh_pages.xlf b/Resources/Private/Language/he.locallang_csh_pages.xlf new file mode 100644 index 0000000000..f07a6eaa28 --- /dev/null +++ b/Resources/Private/Language/he.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/he.locallang_mod.xlf b/Resources/Private/Language/he.locallang_mod.xlf new file mode 100644 index 0000000000..33cbddcc2e --- /dev/null +++ b/Resources/Private/Language/he.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/he.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/he.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..33cbddcc2e --- /dev/null +++ b/Resources/Private/Language/he.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/he.locallang_mod_indexadmin.xlf b/Resources/Private/Language/he.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..33cbddcc2e --- /dev/null +++ b/Resources/Private/Language/he.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/he.locallang_mod_indexqueue.xlf b/Resources/Private/Language/he.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..33cbddcc2e --- /dev/null +++ b/Resources/Private/Language/he.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/he.locallang_mod_info.xlf b/Resources/Private/Language/he.locallang_mod_info.xlf new file mode 100644 index 0000000000..33cbddcc2e --- /dev/null +++ b/Resources/Private/Language/he.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/he.locallang_tca.xlf b/Resources/Private/Language/he.locallang_tca.xlf new file mode 100644 index 0000000000..71f6be0b3e --- /dev/null +++ b/Resources/Private/Language/he.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/hu.locallang.xlf b/Resources/Private/Language/hu.locallang.xlf new file mode 100644 index 0000000000..4e8eb894b3 --- /dev/null +++ b/Resources/Private/Language/hu.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/hu.locallang_be.xlf b/Resources/Private/Language/hu.locallang_be.xlf new file mode 100644 index 0000000000..44cb262a75 --- /dev/null +++ b/Resources/Private/Language/hu.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/hu.locallang_csh_pages.xlf b/Resources/Private/Language/hu.locallang_csh_pages.xlf new file mode 100644 index 0000000000..90901124ba --- /dev/null +++ b/Resources/Private/Language/hu.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/hu.locallang_mod.xlf b/Resources/Private/Language/hu.locallang_mod.xlf new file mode 100644 index 0000000000..178f422a98 --- /dev/null +++ b/Resources/Private/Language/hu.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/hu.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/hu.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..178f422a98 --- /dev/null +++ b/Resources/Private/Language/hu.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/hu.locallang_mod_indexadmin.xlf b/Resources/Private/Language/hu.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..178f422a98 --- /dev/null +++ b/Resources/Private/Language/hu.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/hu.locallang_mod_indexqueue.xlf b/Resources/Private/Language/hu.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..178f422a98 --- /dev/null +++ b/Resources/Private/Language/hu.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/hu.locallang_mod_info.xlf b/Resources/Private/Language/hu.locallang_mod_info.xlf new file mode 100644 index 0000000000..178f422a98 --- /dev/null +++ b/Resources/Private/Language/hu.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/hu.locallang_tca.xlf b/Resources/Private/Language/hu.locallang_tca.xlf new file mode 100644 index 0000000000..0806318f31 --- /dev/null +++ b/Resources/Private/Language/hu.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/it.locallang.xlf b/Resources/Private/Language/it.locallang.xlf index d1a2b69041..890c9ccfe3 100644 --- a/Resources/Private/Language/it.locallang.xlf +++ b/Resources/Private/Language/it.locallang.xlf @@ -1,134 +1,101 @@ - + - -
- - - - + +
+ LFEditor +
+ + + + + + + + + + + + + Search is currently not available. - La ricerca non è al momento disponibile. - - + La ricerca non è al momento disponibile. + We're sorry. The request you tried to make could not be processed. - Errore. Impossibile elaborare la query di ricerca. - - + Errore. Impossibile elaborare la query di ricerca. + Search Term - Termine di ricerca - - + Termine di ricerca + Did you mean - Forse cercavi: - - + Forse cercavi: + Search - Ricerca - - + Ricerca + Sort by - Ordina - - + Ordina + Narrow Search - Filtro di ricerca - - + Filtro di ricerca + Search narrowed by - Filtro attivo - - + Filtro attivo + Show more - Espandi - - + Espandi + Show fewer - Riduci - - + Riduci + Remove all filters - Rimuovi tutti i filtri - - + Rimuovi tutti i filtri + Displaying results @resultsFrom to @resultsTo of @resultsTotal. - Mostra risultati @resultsFrom a @resultsTo di @resultsTotal. - - + Mostra risultati @resultsFrom a @resultsTo di @resultsTotal. + Found @resultsTotal results in @resultsTime milliseconds. - @resultsTotal risultati trovati in @resultsTime millisecondi. - - + @resultsTotal risultati trovati in @resultsTime millisecondi. + Found 1 result in @resultsTime milliseconds. - 1 risultati trovati in @resultsTime millisecondi. - - + 1 risultati trovati in @resultsTime millisecondi. + Searched for "@searchWord". - Eseguita ricerca di "@searchWord". - - + Eseguita ricerca di "@searchWord". + Nothing found for "@searchWord". - La ricerca di "@searchWord" non ha prodotto risultati in nessun documento. - - - Showing results for "@suggestedWord". - - - - Search instead for "@searchWord". - - - + La ricerca di "@searchWord" non ha prodotto risultati in nessun documento. + Last searches - Ultime ricerche - - + Ultime ricerche + Frequent searches - Ricerche più frequenti - - + Ricerche più frequenti + Relevance - Rilevanza - - - + Rilevanza + File type - Tipo di file - - + Tipo di file + Referenced at - Link a - - + Link a + Results per page: - Risultati per pagina: - - - We're sorry, there were some errors: - - - - Please enter your search term in the box above. - - - + Risultati per pagina: + First - Pagina iniziale - - + Pagina iniziale + Previous - Indietro - - + Indietro + Next - Avanti - - + Avanti + Last - Ultima pagina - - -
- \ No newline at end of file + Ultima pagina
+ + + + + diff --git a/Resources/Private/Language/it.locallang_be.xlf b/Resources/Private/Language/it.locallang_be.xlf new file mode 100644 index 0000000000..c799770861 --- /dev/null +++ b/Resources/Private/Language/it.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/it.locallang_csh_pages.xlf b/Resources/Private/Language/it.locallang_csh_pages.xlf new file mode 100644 index 0000000000..07306375a1 --- /dev/null +++ b/Resources/Private/Language/it.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/it.locallang_mod.xlf b/Resources/Private/Language/it.locallang_mod.xlf new file mode 100644 index 0000000000..3b07ebcf08 --- /dev/null +++ b/Resources/Private/Language/it.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/it.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/it.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..3b07ebcf08 --- /dev/null +++ b/Resources/Private/Language/it.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/it.locallang_mod_indexadmin.xlf b/Resources/Private/Language/it.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..3b07ebcf08 --- /dev/null +++ b/Resources/Private/Language/it.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/it.locallang_mod_indexqueue.xlf b/Resources/Private/Language/it.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..3b07ebcf08 --- /dev/null +++ b/Resources/Private/Language/it.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/it.locallang_mod_info.xlf b/Resources/Private/Language/it.locallang_mod_info.xlf new file mode 100644 index 0000000000..3b07ebcf08 --- /dev/null +++ b/Resources/Private/Language/it.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/it.locallang_tca.xlf b/Resources/Private/Language/it.locallang_tca.xlf new file mode 100644 index 0000000000..fe7c318df8 --- /dev/null +++ b/Resources/Private/Language/it.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/ja.locallang.xlf b/Resources/Private/Language/ja.locallang.xlf index ad8e7d97b1..6c1bd68c0f 100644 --- a/Resources/Private/Language/ja.locallang.xlf +++ b/Resources/Private/Language/ja.locallang.xlf @@ -1,456 +1,23 @@ - - - -
- - - - - The Index Administration Module is responsible for emptying the cores(deleting documents) on Solr Server and index queues in TYPO3 CMS. - Index Administration Module は、Solrサーバーと TYPO3 CMS のインデックス キュー上のコアを空にする (ドキュメントを削除する) 役割を担います。 - - - - Index emptied for Site "%s" (%s). - サイト「%s」 のインデックスを空にしました (%s)。 - - - - Index Queue emptied for Site "%s". - サイト「%s」 のインデックス キューを空にしました。 - - - - An error occurred while trying to delete documents from the index: %s - 次のインデックスからドキュメントを削除する際にエラーが発生しました: %s - - - - - - - Search Index Inspector - を検索 - - - Search - 検索 - - - A search form and results list. - 検索フォームと結果リスト。 - - - - - - Successfully switched to Site "%s". - サイト「%s」に切り替えました。 - - - - The previously selected Site "%s" does not exist or the indexing for that Site was disabled. Switched to "%s", which was the first available one. - 以前選択されたサイト「%s」が存在しないか、そのサイトのインデックス作成が無効になっています。利用可能な最初のサイト「%s」に切り替えました。 - - - - Couldn't switch to the Site "%s". This site does not exist anymore or the indexing for that Site was disabled. Switched to the first available Site "%s". - サイト「%s」に切り替えられませんでした。このサイトが存在しないか、そのサイトのインデックス作成が無効になっています。利用可能な最初のサイト「%s」に切り替えました。 - - - - - The previously selected core "%s" is not available in "%s" site, therefore switched to default core "%s". - 以前に選択されていたコア「%s」がサイト「%s」で利用できませんので、既定のコア「%s」に切り替えました。 - - - - Successfully switched to core "%s". - コア「%s」に切り替えました。 - - - - - - Apache Solr Search Administration - Apache Solr 検索管理 - - - Allows you to manage Apache Solr from TYPO3.<br /><em>Access for 'admin' users only!</em> - TYPO3 から Apache Solr を管理できるようになります。<br /><em>「管理者」ユーザーのみ利用可能です。</em> - - - Search - 検索 - - - - - Apache Solr Index - Apache Solr インデックス - - - View the number of documents and fields in your index - インデックスのドキュメントとフィールドの数を表示 - - - Apache Solr Statistics - Apache Solr Statistics - - - Provides several Solr usage statistics - Solr 使用状況の統計情報数件を提供します - - - - - Force Re-Indexing of a site - サイトのインデックスを強制的に再設定します - - - Purges the Solr Index and initializes the Index Queue of a site. - サイトの Solr インデックスを消去してインデックス キューを初期化します。 - - - Index Queue Worker - Index Queue Worker - - - Processes the items in the Index Queue and sends them to Solr. - インデックス キューの項目を処理して Solr に送信します。 - - - Number of documents to index - インデックスを設定するドキュメントの数 - - - Forced webroot (only needed when webroot is not PATH_site) - 強制 webroot (webroot が PATH_site でない場合のみ必要) - - - Solr Host - Solr ホスト - - - Solr Port - Solr ポート - - - Solr Path - Solr パス - - - Solr Server - Solr サーバー - - - Site - サイト - - - - - Search is currently not available. - 検索は現在使用できません。 - - - We're sorry. The request you tried to make could not be processed. - 申し訳ありません。実行しようとした要求は処理できません。 - - - Search Term - 検索語句 - - - Did you mean - 検索語句の候補 - - - Search - 検索 - - - Sort by - 並び替え項目 - - - Narrow Search - 絞り込み検索 - - - Search narrowed by - 絞り込み結果 - - - Show more - 表示数を増やす - - - Show fewer - 表示数を減らす - - - Remove all filters - フィルタをすべて削除 - - - Filter - Filter - - - Displaying results @resultsFrom to @resultsTo of @resultsTotal. - @resultsTotal の結果のうち、 @resultsFrom から @resultsTo までを表示します。 - - - Found @resultsTotal results in @resultsTime milliseconds. - @resultsTime ミリ秒で @resultsTotal の結果が見つかりました。 - - - Found 1 results in @resultsTime milliseconds. - @resultsTime ミリ秒で 1 の結果が見つかりました。 - - - Searched for "@searchWord". - "@searchWord" を検索しました。 - - - Nothing found for "@searchWord". - "@searchWord" が見つかりません。 - - - Showing results for "@suggestedWord". - - - - Search instead for "@searchWord". - - - - Last searches - 前の検索 - - - Frequent searches - 共通検索 - - - Relevance - 関連 - - - - File type - ファイルの種類 - - - Referenced at - 参照元 - - - Results per page: - ページ毎の結果: - - - We're sorry, there were some errors: - - - - Please enter your search term in the box above. - - - - First - - - - Previous - - - - Next - - - - Last - - - - Top Results - - - - The Index Queue manages content indexing. Content enters the Index Queue by initialization below or when new content is created based on configuration. Items in the Index Queue are indexed newest changes first until all items in the queue have been indexed. - インデックス キューはコンテンツのインデックス設定を管理します。コンテンツは、次の初期化によって、または構成設定に基づいて新規コンテンツが作成された時に、インデックス キューに追加されます。インデックス キュー内の項目は、キュー内の全ての項目がインデックス設定されるまで、最新の変更が最初にインデックス設定されいます。 - - - Reset errors - リセット エラー - - - Indexing Errors - インデックス設定エラー - - - ID - ID - - - Item Type - 項目の種類 - - - Item UID - 項目の UID - - - Show error - - - An error occurred while indexing manual from the backend. - バックエンドから手動でインデックス設定する際にエラーが発生しました。 - - - An error occurred while resetting the error log in the index queue. - インデックス キュー内のエラーログのリセット時にエラーが発生しました: - - - Single item was not requeued. - Single item was not requeued. - - - No indexing configurations selected. - インデックス設定の構成が選択されていません。 - - - - Initialized indexing configurations: %s - インデックス設定の構成が初期化されました: %s - - - Index Queue initialized - インデックス キューが初期化されました - - - Index Queue not initialized - - - All errors have been reset. - 全てのエラーがリセットされました。 - - - Indexing from the backend was successfully finished. - バックエンドからのインデックス設定が完了しました。 - - - Single item was successfully marked for reindexing. - Single item was successfully marked for reindexing. - - - Index Queue - インデックス キュー - - - Manual Indexing - 手動インデックス設定 - - - Initializing the Index Queue is the most complete way to force re-indexing, or to build the Index Queue for the first time. The Index Queue Worker scheduler task will then index the items listed in the Index Queue. - インデックス キューの初期化は、インデックスの強制再設定時やインデックス キューの初回構築時の最も完全な方法です。その後、Index Queue Worker スケジューラーのタスクによりインデックス キューのリスト項目がインデックス設定されます。 - - - Errors - エラー - - - Indexing Progress - インデックス設定の進捗状況 - - - Indexed - インデックス設定済み - - - Pending - 保留中 - - - Index Queue Initialization - インデックス キューの初期化 - - - Index Queue Status - インデックス キューの状態 - - - Clear Index Queue - インデックス キューのクリア - - - Go back - 戻る - - - No valid queue item passed to show the error information! - エラー情報を表示する有効なキュー項目はありませんでした。 - - - Error details for queue item - キュー項目のエラーの詳細 - - - Index now - 今すぐインデックス設定 - - - - - Search: Frequent Searches - 検索: 頻度の高い検索 - - - Search: Form, Result, Additional Components - 検索: フォーム、結果、追加コンポーネント - - - Search: Form only - 検索: フォームのみ - - - - Phrase - フレーズ - - - Number of Queries - 質問件数 - - - Number of Results (Average) - 結果件数 (平均) - - - Percentage - 割合 - - - No records found. Did you enabled 'plugin.tx_solr.statistics = 1' in the typoscript configuration of your site? - レコードが見つかりません。サイトのタイポスクリプト構成設定で「plugin.tx_solr.statistics = 1」を有効化しましたか? - - - Top 5 Search Phrases - トップ 5 検索フレーズ - - - Top 5 Search Phrases Without Hits - 該当の無いトップ 5 検索フレーズ - - - Search Phrase Statistics - 検索フレーズ統計情報 - - - + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
diff --git a/Resources/Private/Language/ja.locallang_be.xlf b/Resources/Private/Language/ja.locallang_be.xlf new file mode 100644 index 0000000000..0704e6de63 --- /dev/null +++ b/Resources/Private/Language/ja.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/ja.locallang_csh_pages.xlf b/Resources/Private/Language/ja.locallang_csh_pages.xlf new file mode 100644 index 0000000000..6324d43985 --- /dev/null +++ b/Resources/Private/Language/ja.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/ja.locallang_mod.xlf b/Resources/Private/Language/ja.locallang_mod.xlf new file mode 100644 index 0000000000..4b474d3c90 --- /dev/null +++ b/Resources/Private/Language/ja.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ja.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/ja.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..4b474d3c90 --- /dev/null +++ b/Resources/Private/Language/ja.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ja.locallang_mod_indexadmin.xlf b/Resources/Private/Language/ja.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..4b474d3c90 --- /dev/null +++ b/Resources/Private/Language/ja.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ja.locallang_mod_indexqueue.xlf b/Resources/Private/Language/ja.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..4b474d3c90 --- /dev/null +++ b/Resources/Private/Language/ja.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ja.locallang_mod_info.xlf b/Resources/Private/Language/ja.locallang_mod_info.xlf new file mode 100644 index 0000000000..4b474d3c90 --- /dev/null +++ b/Resources/Private/Language/ja.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ja.locallang_tca.xlf b/Resources/Private/Language/ja.locallang_tca.xlf new file mode 100644 index 0000000000..99eab3924f --- /dev/null +++ b/Resources/Private/Language/ja.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/ko.locallang.xlf b/Resources/Private/Language/ko.locallang.xlf index 5b6a167c34..8a55cc3935 100644 --- a/Resources/Private/Language/ko.locallang.xlf +++ b/Resources/Private/Language/ko.locallang.xlf @@ -1,456 +1,23 @@ - - - -
- - - - - The Index Administration Module is responsible for emptying the cores(deleting documents) on Solr Server and index queues in TYPO3 CMS. - Index Administration Module은 Solr Server 상의 코어 (문서 삭제)와 TYPO3 CMS 내 인덱스 대기열을 비우는 일을 담당합니다. - - - - Index emptied for Site "%s" (%s). - 사이트 "%s" (%s)용으로 비워진 인덱스. - - - - Index Queue emptied for Site "%s". - 사이트 "%s"용으로 비워진 인덱스 대기열. - - - - An error occurred while trying to delete documents from the index: %s - 인덱스에서 문서를 삭제하는 중에 오류가 발생했습니다. %s - - - - - - - Search Index Inspector - Search Index Inspector - - - Search - 검색 - - - A search form and results list. - 검색 양식과 결과 리스트. - - - - - - Successfully switched to Site "%s". - 성공적으로 “%s” 사이트로 전환했습니다. - - - - The previously selected Site "%s" does not exist or the indexing for that Site was disabled. Switched to "%s", which was the first available one. - 선택하신 “%s” 사이트가 존재하지 않거나 사이트의 인덱스가 비활성화 되었습니다. 첫 번째 사용 가능 사이트였던 "%s"로 전환했습니다. - - - - Couldn't switch to the Site "%s". This site does not exist anymore or the indexing for that Site was disabled. Switched to the first available Site "%s". - ”%s” 사이트로 전환 할 수 없습니다. 사이트가 존재하지 않거나 사이트의 인덱스가 비활성화 되었습니다. 첫 번째 사용 가능 사이트 "%s"로 했습니다. - - - - - The previously selected core "%s" is not available in "%s" site, therefore switched to default core "%s". - 이전에 선택된 코어 “%s”을(를) “%s” 사이트에서 이용할 수 없기 때문에 기본 코어 “%s”로 전환 되었습니다. - - - - Successfully switched to core "%s". - 성공적으로 “%s” 코어로 전환했습니다. - - - - - - Apache Solr Search Administration - Apache Solr 검색 관리 - - - Allows you to manage Apache Solr from TYPO3.<br /><em>Access for 'admin' users only!</em> - TYPO3에서 Apache Solr를 관리하도록 허용합니다.<br /><em>'admin' 사용자 전용 액세스!</em> - - - Search - 검색 - - - - - Apache Solr Index - Apache Solr Index - - - View the number of documents and fields in your index - 인덱스의 문서 수와 필드 보기 - - - Apache Solr Statistics - Apache Solr 통계 - - - Provides several Solr usage statistics - 여러 Solr 이용 통계 제공 - - - - - Force Re-Indexing of a site - 사이트 강제 리인덱싱(Force Re-Indexing) - - - Purges the Solr Index and initializes the Index Queue of a site. - Solr Index를 제거하고 사이트의 인덱스 대기열 초기화. - - - Index Queue Worker - 인덱스 대기열 작업자 - - - Processes the items in the Index Queue and sends them to Solr. - 인덱스 대기열내 아이템을 처리하여 Solr로 전송. - - - Number of documents to index - 인덱스할 문서 개수 - - - Forced webroot (only needed when webroot is not PATH_site) - 강제 webroot (webroot가 PATH_site가 아닐 때만 필요) - - - Solr Host - Solr Host - - - Solr Port - Solr Port - - - Solr Path - Solr Path - - - Solr Server - Solr Server - - - Site - Site - - - - - Search is currently not available. - 지금 검색할 수 없습니다. - - - We're sorry. The request you tried to make could not be processed. - 죄송합니다. 요청한 것을 처리할 수 없습니다. - - - Search Term - 검색어 - - - Did you mean - 로 검색하겠습니까? - - - Search - 검색 - - - Sort by - 분류 - - - Narrow Search - 상세 검색 - - - Search narrowed by - 상세 검색 결과 - - - Show more - 더 많이 보이기 - - - Show fewer - 더 적게 보이기 - - - Remove all filters - 모든 필터 제거 - - - Filter - Filter - - - Displaying results @resultsFrom to @resultsTo of @resultsTotal. - @resultsTotal의 @resultsFrom에서 @resultsTo까지의 결과. - - - Found @resultsTotal results in @resultsTime milliseconds. - @resultsTime 1,000분의 1초 동안에 @resultsTotal 검색 결과 - - - Found 1 results in @resultsTime milliseconds. - @resultsTime 1,000분의 1초 동안에 1 검색 결과 - - - Searched for "@searchWord". - "@searchWord"에 대한 검색내용. - - - Nothing found for "@searchWord". - "@searchWord"에 대한 검색내용 없음. - - - Showing results for "@suggestedWord". - “@suggestedWord”의 검색 결과 - - - Search instead for "@searchWord". - “@searchWord” 대신 검색. - - - Last searches - 이전 검색 - - - Frequent searches - 일반 검색 - - - Relevance - 적합성 - - - - File type - 파일 유형 - - - Referenced at - 에서 참조 - - - Results per page: - 페이지 당 결과: - - - We're sorry, there were some errors: - 죄송합니다, 오류가 있습니다: - - - Please enter your search term in the box above. - 위 박스에 검색 용어를 입력해 주세요. - - - First - 처음 - - - Previous - 이전 - - - Next - 다음 - - - Last - 마지막 - - - - - The Index Queue manages content indexing. Content enters the Index Queue by initialization below or when new content is created based on configuration. Items in the Index Queue are indexed newest changes first until all items in the queue have been indexed. - 인덱스 대기열은 콘텐츠 인덱싱을 관리합니다. 콘텐츠는 아래의 초기 설정에 따르거나 새 콘텐츠가 구성에 따라서 생성되면 인덱스 대기열에 추가됩니다. 인덱스 대기열 내 아이템은 그 대기줄에 있는 모든 아이템이 인덱스될 때까지 먼저 최신 변경사항으로 인덱스됩니다. - - - Reset errors - 오류 재설정 - - - Indexing Errors - 인덱싱 오류 - - - ID - ID - - - Item Type - Item Type - - - Item UID - Item UID - - - Show error - 오류 표시 - - - An error occurred while indexing manual from the backend. - 백엔드에서 매뉴얼 인덱싱 중 오류가 발생했습니다. - - - An error occurred while resetting the error log in the index queue. - 인덱스 대기열의 오류 로그를 재설정하는 동안 오류가 발생했습니다. - - - Single item was not requeued. - Single item was not requeued. - - - No indexing configurations selected. - 인덱스 구성이 선택되지 않았습니다. - - - - Initialized indexing configurations: %s - 초기화된 인덱싱 구성: %s - - - Index Queue initialized - 인덱스 대기열 초기화됨 - - - Index Queue not initialized - 인덱스 대기열 초기화되지 않음 - - - All errors have been reset. - 모든 오류가 재설정되었습니다. - - - Indexing from the backend was successfully finished. - 백엔드로부터의 인덱싱이 성공적으로 끝났습니다. - - - Single item was successfully marked for reindexing. - Single item was successfully marked for reindexing. - - - Index Queue - 인덱스 대기열 - - - Manual Indexing - 매뉴얼 인덱싱 - - - Initializing the Index Queue is the most complete way to force re-indexing, or to build the Index Queue for the first time. The Index Queue Worker scheduler task will then index the items listed in the Index Queue. - 인덱스 대기열 초기화는 강제 리인덱싱 또는 인덱스 대기열의 최초 구축을 위한 가장 완전한 방법입니다. 인덱스 대기열 작업자 스케줄러 작업은 그 다음 인덱스 대기열 내 나열된 아이템을 인덱스합니다. - - - Errors - 오류 - - - Indexing Progress - Indexing Progress - - - Indexed - 인덱스됨 - - - Pending - 보류 중 - - - Index Queue Initialization - 인덱스 대기열 초기화 - - - Index Queue Status - 인덱스 대기열 상태 - - - Clear Index Queue - 인덱스 대기열 정리 - - - Go back - 뒤로 가기 - - - No valid queue item passed to show the error information! - 오류 정보를 보여주는 통과된 유효한 대기열 없음! - - - Error details for queue item - 대기열 아이템의 오류 세부사항 - - - Index now - Index now - - - - - Search: Frequent Searches - 검색: 자주 하는 검색 - - - Search: Form, Result, Additional Components - 검색: 양식, 결과, 추가 구성 - - - Search: Form only - 검색: 양식만 - - - - Phrase - 구문 - - - Number of Queries - 쿼리 수 - - - Number of Results (Average) - 결과 수 (평균) - - - Percentage - 퍼센트 - - - No records found. Did you enabled 'plugin.tx_solr.statistics = 1' in the typoscript configuration of your site? - 기록이 없습니다. 사이트의 타이포스크립트 구성에서 'plugin.tx_solr.statistics = 1'을 활성화시켰습니까? - - - Top 5 Search Phrases - Top 5 검색 구문 - - - Top 5 Search Phrases Without Hits - Top 5 검색 구문(Hit 없음) - - - Search Phrase Statistics - 검색 구문 통계 - - - + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
diff --git a/Resources/Private/Language/ko.locallang_be.xlf b/Resources/Private/Language/ko.locallang_be.xlf new file mode 100644 index 0000000000..d44542f783 --- /dev/null +++ b/Resources/Private/Language/ko.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/ko.locallang_csh_pages.xlf b/Resources/Private/Language/ko.locallang_csh_pages.xlf new file mode 100644 index 0000000000..009f8caf27 --- /dev/null +++ b/Resources/Private/Language/ko.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/ko.locallang_mod.xlf b/Resources/Private/Language/ko.locallang_mod.xlf new file mode 100644 index 0000000000..757264ea7d --- /dev/null +++ b/Resources/Private/Language/ko.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ko.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/ko.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..757264ea7d --- /dev/null +++ b/Resources/Private/Language/ko.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ko.locallang_mod_indexadmin.xlf b/Resources/Private/Language/ko.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..757264ea7d --- /dev/null +++ b/Resources/Private/Language/ko.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ko.locallang_mod_indexqueue.xlf b/Resources/Private/Language/ko.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..757264ea7d --- /dev/null +++ b/Resources/Private/Language/ko.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ko.locallang_mod_info.xlf b/Resources/Private/Language/ko.locallang_mod_info.xlf new file mode 100644 index 0000000000..757264ea7d --- /dev/null +++ b/Resources/Private/Language/ko.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ko.locallang_tca.xlf b/Resources/Private/Language/ko.locallang_tca.xlf new file mode 100644 index 0000000000..95d49c7ac0 --- /dev/null +++ b/Resources/Private/Language/ko.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/nb.locallang.xlf b/Resources/Private/Language/nb.locallang.xlf new file mode 100644 index 0000000000..a42e0f937f --- /dev/null +++ b/Resources/Private/Language/nb.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/nb.locallang_be.xlf b/Resources/Private/Language/nb.locallang_be.xlf new file mode 100644 index 0000000000..5c5895b297 --- /dev/null +++ b/Resources/Private/Language/nb.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/nb.locallang_csh_pages.xlf b/Resources/Private/Language/nb.locallang_csh_pages.xlf new file mode 100644 index 0000000000..c9ddc29379 --- /dev/null +++ b/Resources/Private/Language/nb.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/nb.locallang_mod.xlf b/Resources/Private/Language/nb.locallang_mod.xlf new file mode 100644 index 0000000000..d08007e95d --- /dev/null +++ b/Resources/Private/Language/nb.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/nb.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/nb.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..d08007e95d --- /dev/null +++ b/Resources/Private/Language/nb.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/nb.locallang_mod_indexadmin.xlf b/Resources/Private/Language/nb.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..d08007e95d --- /dev/null +++ b/Resources/Private/Language/nb.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/nb.locallang_mod_indexqueue.xlf b/Resources/Private/Language/nb.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..d08007e95d --- /dev/null +++ b/Resources/Private/Language/nb.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/nb.locallang_mod_info.xlf b/Resources/Private/Language/nb.locallang_mod_info.xlf new file mode 100644 index 0000000000..d08007e95d --- /dev/null +++ b/Resources/Private/Language/nb.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/nb.locallang_tca.xlf b/Resources/Private/Language/nb.locallang_tca.xlf new file mode 100644 index 0000000000..6ee19cef40 --- /dev/null +++ b/Resources/Private/Language/nb.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/nl.locallang.xlf b/Resources/Private/Language/nl.locallang.xlf index 03ec5c58a1..f2f0dc0479 100644 --- a/Resources/Private/Language/nl.locallang.xlf +++ b/Resources/Private/Language/nl.locallang.xlf @@ -1,195 +1,131 @@ - + - -
- - - + +
+ LFEditor +
+ + + + + + + + + + + + Force Re-Indexing of a site - Forceer herindexering van een website - - + Forceer herindexering van een website + Purges the Solr Index and initializes the Index Queue of a site. - Leegt de Solr index en initialiseert de Index Wachtrij van een website. - - + Leegt de Solr index en initialiseert de Index Wachtrij van een website. + Index Queue Worker - Index Wachtrij Taak - - + Index Wachtrij Taak + Processes the items in the Index Queue and sends them to Solr. - Verwerkt de documenten in de Index Wachtrij en verstuurt deze naar Solr. - - + Verwerkt de documenten in de Index Wachtrij en verstuurt deze naar Solr. + Number of documents to index - Aantal te indexeren documenten - - - Forced webroot (only needed when webroot is not PATH_site) - Geforceerde webroot (alleen nodig als de webroot anders is dan PATH_site) - - + Aantal te indexeren documenten + Solr Host - Solr host - - + Solr host + Solr Port - Solr poort - - + Solr poort + Solr Path - Solr pad - - + Solr pad + Solr Server - Solr server - - + Solr server + Site - Website - - - - Optimaliseer Solr index - - - - Voert een OPTIMIZE commando uit op de Solr index. Hoort een keer per dag uitgevoerd te worden voor websites met lage activiteit. Website met hoge activiteit kunnen dit vaker uitvoeren. Pas op, deze taak kan een aantal seconden in beslag nemen bij grote indexes. - - - - Commit Solr index - - - - Voert een COMMIT commando uit op de Solr index. Kan tussen de een keer per minuut en ieder uur uitgevoerd worden. Deze taak hoort korter te duren dan het OPTIMIZE commando welke ook een COMMIT uitvoert voor het OPTIMIZE commando. - - - - + Website + + Search is currently not available. - Zoeken is op dit moment niet beschikbaar. - - + Zoeken is op dit moment niet beschikbaar. + We're sorry. The request you tried to make could not be processed. - Het spijt ons. Uw verzoek kon niet worden verwerkt. - - + Het spijt ons. Uw verzoek kon niet worden verwerkt. + Search Term - Zoekwoord - - + Zoekwoord + Did you mean - Bedoelde u - - + Bedoelde u + Search - Zoek - - + Zoek + Sort by - Sorteer op - - + Sorteer op + Narrow Search - Resultaat verfijnen - - + Resultaat verfijnen + Search narrowed by - Resultaat verfijnd op - - + Resultaat verfijnd op + Show more - Toon meer - - + Toon meer + Show fewer - Toon minder - - + Toon minder + Remove all filters - Verwijder alle filters - - + Verwijder alle filters + Displaying results @resultsFrom to @resultsTo of @resultsTotal. - Resultaat @resultsFrom tot @resultsTo van @resultsTotal. - - + Resultaat @resultsFrom tot @resultsTo van @resultsTotal. + Found @resultsTotal results in @resultsTime milliseconds. - Gevonden: @resultsTotal resultaten in @resultsTime milliseconden. - - - Found 1 results in @resultsTime milliseconds. - Gevonden: 1 resultaten in @resultsTime milliseconden. - - + Gevonden: @resultsTotal resultaten in @resultsTime milliseconden. + + Found 1 result in @resultsTime milliseconds. + Gevonden: 1 resultaten in @resultsTime milliseconden. + Searched for "@searchWord". - Gezocht naar "@searchWord". - - + Gezocht naar "@searchWord". + Nothing found for "@searchWord". - Niets gevonden voor "@searchWord". - - -^ Showing results for "@suggestedWord". - - - - Search instead for "@searchWord". - - - + Niets gevonden voor "@searchWord". + Last searches - Laatste zoekopdrachten - - + Laatste zoekopdrachten + Frequent searches - Vaak gezocht - - + Vaak gezocht + Relevance - Relevantie - - - + Relevantie + File type - Bestandstype - - + Bestandstype + Referenced at - Geplaatst op - - + Geplaatst op + Results per page: - Resultaten per pagina: - - - We're sorry, there were some errors: - - - - Please enter your search term in the box above. - - - + Resultaten per pagina: + First - Eerste - - + Eerste + Previous - Vorige - - + Vorige + Next - Volgende - - + Volgende + Last - Laatste - - -
- \ No newline at end of file + Laatste
+ + + + + diff --git a/Resources/Private/Language/nl.locallang_be.xlf b/Resources/Private/Language/nl.locallang_be.xlf new file mode 100644 index 0000000000..afafd933fd --- /dev/null +++ b/Resources/Private/Language/nl.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/nl.locallang_csh_pages.xlf b/Resources/Private/Language/nl.locallang_csh_pages.xlf new file mode 100644 index 0000000000..418d6813cb --- /dev/null +++ b/Resources/Private/Language/nl.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/nl.locallang_mod.xlf b/Resources/Private/Language/nl.locallang_mod.xlf new file mode 100644 index 0000000000..f05d19ae18 --- /dev/null +++ b/Resources/Private/Language/nl.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/nl.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/nl.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..f05d19ae18 --- /dev/null +++ b/Resources/Private/Language/nl.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/nl.locallang_mod_indexadmin.xlf b/Resources/Private/Language/nl.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..f05d19ae18 --- /dev/null +++ b/Resources/Private/Language/nl.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/nl.locallang_mod_indexqueue.xlf b/Resources/Private/Language/nl.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..f05d19ae18 --- /dev/null +++ b/Resources/Private/Language/nl.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/nl.locallang_mod_info.xlf b/Resources/Private/Language/nl.locallang_mod_info.xlf new file mode 100644 index 0000000000..f05d19ae18 --- /dev/null +++ b/Resources/Private/Language/nl.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/nl.locallang_tca.xlf b/Resources/Private/Language/nl.locallang_tca.xlf new file mode 100644 index 0000000000..da36218ffd --- /dev/null +++ b/Resources/Private/Language/nl.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/no.locallang.xlf b/Resources/Private/Language/no.locallang.xlf new file mode 100644 index 0000000000..ca3112967e --- /dev/null +++ b/Resources/Private/Language/no.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/no.locallang_be.xlf b/Resources/Private/Language/no.locallang_be.xlf new file mode 100644 index 0000000000..1dfa374b19 --- /dev/null +++ b/Resources/Private/Language/no.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/no.locallang_csh_pages.xlf b/Resources/Private/Language/no.locallang_csh_pages.xlf new file mode 100644 index 0000000000..bd6b609079 --- /dev/null +++ b/Resources/Private/Language/no.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/no.locallang_mod.xlf b/Resources/Private/Language/no.locallang_mod.xlf new file mode 100644 index 0000000000..32c7bb57ef --- /dev/null +++ b/Resources/Private/Language/no.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/no.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/no.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..32c7bb57ef --- /dev/null +++ b/Resources/Private/Language/no.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/no.locallang_mod_indexadmin.xlf b/Resources/Private/Language/no.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..32c7bb57ef --- /dev/null +++ b/Resources/Private/Language/no.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/no.locallang_mod_indexqueue.xlf b/Resources/Private/Language/no.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..32c7bb57ef --- /dev/null +++ b/Resources/Private/Language/no.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/no.locallang_mod_info.xlf b/Resources/Private/Language/no.locallang_mod_info.xlf new file mode 100644 index 0000000000..32c7bb57ef --- /dev/null +++ b/Resources/Private/Language/no.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/no.locallang_tca.xlf b/Resources/Private/Language/no.locallang_tca.xlf new file mode 100644 index 0000000000..e59bd65c4e --- /dev/null +++ b/Resources/Private/Language/no.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/pl.locallang.xlf b/Resources/Private/Language/pl.locallang.xlf index 2e0e9fca69..57eb72cc52 100644 --- a/Resources/Private/Language/pl.locallang.xlf +++ b/Resources/Private/Language/pl.locallang.xlf @@ -1,133 +1,95 @@ - + - -
- - - + +
+ LFEditor +
+ + + + + + + + + + + + + Search is currently not available. - Wyszukiwarka nie jest w tej chwili dostępna. - - + Wyszukiwarka nie jest w tej chwili dostępna. + We're sorry. The request you tried to make could not be processed. - Przykro nam bardzo, ale Twoje wyszukiwanie nie może zostać zrealizowane. - - + Przykro nam bardzo, ale Twoje wyszukiwanie nie może zostać zrealizowane. + Search Term - Wyszukiwana treść - - + Wyszukiwana treść + Did you mean - Czy masz na myśli - - + Czy masz na myśli + Search - Szukaj - - + Szukaj + Sort by - Sortuj wg. - - + Sortuj wg. + Narrow Search - Zawęź wyniki - - + Zawęź wyniki + Search narrowed by - Zawężone przez - - + Zawężone przez + Show more - Pokaż więcej - - + Pokaż więcej + Show fewer - Pokaż mniej - - + Pokaż mniej + Remove all filters - Usuń wszystkie filtry - - + Usuń wszystkie filtry + Displaying results @resultsFrom to @resultsTo of @resultsTotal. - Pokazuję wyniki od @resultsFrom do @resultsTo z @resultsTotal. - - + Pokazuję wyniki od @resultsFrom do @resultsTo z @resultsTotal. + Found @resultsTotal results in @resultsTime milliseconds. - Rezultatów: @resultsTotal, czas wyszukiwania @resultsTime milisekund. - - - Found 1 results in @resultsTime milliseconds. - Rezultatów: 1, czas wyszukiwania @resultsTime milisekund. - - + Rezultatów: @resultsTotal, czas wyszukiwania @resultsTime milisekund. + + Found 1 result in @resultsTime milliseconds. + Rezultatów: 1, czas wyszukiwania @resultsTime milisekund. + Searched for "@searchWord". - Szukaliśmy "@searchWord". - - + Szukaliśmy "@searchWord". + Nothing found for "@searchWord". - Nie znaleziono "@searchWord". - - - Showing results for "@suggestedWord". - - - - Search instead for "@searchWord". - - - - Last searches - - - - Frequent searches - - - + Nie znaleziono "@searchWord". + Relevance - Waga - - - - File type - - - - Referenced at - - - + Waga + Results per page: - Wyników na stronę: - - + Wyników na stronę: + We're sorry, there were some errors: - Przykro nam, natknęliśmy się na błędy: - - + Przykro nam, natknęliśmy się na błędy: + Please enter your search term in the box above. - Wpisz słowa kluczowe w polu powyżej. - - + Wpisz słowa kluczowe w polu powyżej. + First - Pierwsza - - + Pierwsza + Previous - Poprzednia - - + Poprzednia + Next - Następna - - + Następna + Last - Ostatnia - - -
- \ No newline at end of file + Ostatnia
+ + + + + diff --git a/Resources/Private/Language/pl.locallang_be.xlf b/Resources/Private/Language/pl.locallang_be.xlf new file mode 100644 index 0000000000..1373ceafbb --- /dev/null +++ b/Resources/Private/Language/pl.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/pl.locallang_csh_pages.xlf b/Resources/Private/Language/pl.locallang_csh_pages.xlf new file mode 100644 index 0000000000..0a7159ab9f --- /dev/null +++ b/Resources/Private/Language/pl.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/pl.locallang_mod.xlf b/Resources/Private/Language/pl.locallang_mod.xlf new file mode 100644 index 0000000000..c91a7bb983 --- /dev/null +++ b/Resources/Private/Language/pl.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/pl.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/pl.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..c91a7bb983 --- /dev/null +++ b/Resources/Private/Language/pl.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/pl.locallang_mod_indexadmin.xlf b/Resources/Private/Language/pl.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..c91a7bb983 --- /dev/null +++ b/Resources/Private/Language/pl.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/pl.locallang_mod_indexqueue.xlf b/Resources/Private/Language/pl.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..c91a7bb983 --- /dev/null +++ b/Resources/Private/Language/pl.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/pl.locallang_mod_info.xlf b/Resources/Private/Language/pl.locallang_mod_info.xlf new file mode 100644 index 0000000000..c91a7bb983 --- /dev/null +++ b/Resources/Private/Language/pl.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/pl.locallang_tca.xlf b/Resources/Private/Language/pl.locallang_tca.xlf new file mode 100644 index 0000000000..00e371a623 --- /dev/null +++ b/Resources/Private/Language/pl.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/pt.locallang.xlf b/Resources/Private/Language/pt.locallang.xlf index bd63cd0fb3..549ac47d21 100644 --- a/Resources/Private/Language/pt.locallang.xlf +++ b/Resources/Private/Language/pt.locallang.xlf @@ -1,459 +1,23 @@ - - - -
- - - - - The Index Administration Module is responsible for emptying the cores(deleting documents) on Solr Server and index queues in TYPO3 CMS. - O Index Administration Module é responsável por esvaziar os núcleos (excluir documentos) no servidor Solr e filas de indexação no TYPO3 CMS. - - - - Index emptied for Site "%s" (%s). - Índice esvaziado para o site "%s" (%s). - - - - Index Queue emptied for Site "%s". - Index Queue esvaziada para o site "%s". - - - - An error occurred while trying to delete documents from the index: %s - Ocorreu um erro ao tentar excluir documentos da indexação: %s - - - - - - Search Index Inspector - Search Index Inspector - - - Search - Pesquisa - - - A search form and results list. - Um formulário de pesquisa e lista de resultados. - - - - - - Successfully switched to Site "%s". - Mudança bem-sucedida para o site "%s". - - - - The previously selected Site "%s" does not exist or the indexing for that Site was disabled. Switched to "%s", which was the first available one. - O site "%s" anteriormente selecionado não existe ou a indexação para esse site foi desativada. Mudado para "%s", o primeiro disponível. - - - - Couldn't switch to the Site "%s". This site does not exist anymore or the indexing for that Site was disabled. Switched to the first available Site "%s". - Não foi possível mudar para o site "%s". Esse site já não existe ou a indexação para esse site foi desativada. Mudança realizada para o primeiro site "%s" disponível. - - - - - - The previously selected core "%s" is not available in "%s" site, therefore switched to default core "%s". - O núcleo "%s" anteriormente selecionado não está disponível no site "%s", por isso foi mudado para o núcleo predefinido "%s". - - - - Successfully switched to core "%s". - Mudança bem-sucedida para o núcleo "%s". - - - - - - Apache Solr Search Administration - Apache Solr Search Administration - - - Allows you to manage Apache Solr from TYPO3.<br /><em>Access for 'admin' users only!</em> - Permite gerenciar o Apache Solr a partir do TYPO3.<br /><em>Acesso apenas para usuários "admin"!</em> - - - Search - Pesquisa - - - - - Apache Solr Index - Apache Solr Index - - - View the number of documents and fields in your index - Ver o número de documentos e campos na sua indexação - - - Apache Solr Statistics - Apache Solr Statistics - - - Provides several Solr usage statistics - Fornece várias estatísticas de uso Solr - - - - - Force Re-Indexing of a site - Force Re-Indexing de um site - - - Purges the Solr Index and initializes the Index Queue of a site. - Limpa o Solr Index e inicializa a Index Queue de um site. - - - Index Queue Worker - Index Queue Worker - - - Processes the items in the Index Queue and sends them to Solr. - Processa os itens na Index Queue e os envia para o Solr. - - - Number of documents to index - Número de documentos a indexar - - - Forced webroot (only needed when webroot is not PATH_site) - Webroot forçado (necessário apenas quando o webroot não é PATH_site) - - - Solr Host - Solr Host - - - Solr Port - Solr Port - - - Solr Path - Solr Path - - - Solr Server - Solr Server - - - Site - Site - - - - - Search is currently not available. - A pesquisa não está disponível no momento. - - - We're sorry. The request you tried to make could not be processed. - Lamentamos. Não foi possível processar o pedido que você tentou realizar. - - - Search Term - Search Term - - - Did you mean - Você quis dizer - - - Search - Pesquisa - - - Sort by - Ordenar por - - - Narrow Search - Restringir pesquisa - - - Search narrowed by - Pesquisa restringida por - - - Show more - Mostrar mais - - - Show fewer - Mostrar menos - - - Remove all filters - Remover todos os filtros - - - Filter - Filter - - - Displaying results @resultsFrom to @resultsTo of @resultsTotal. - Exibindo resultados @resultsFrom a @resultsTo de @resultsTotal. - - - Found @resultsTotal results in @resultsTime milliseconds. - Foram encontrados @resultsTotal resultados em @resultsTime milissegundos. - - - Found 1 result in @resultsTime milliseconds. - Found 1 result in @resultsTime milliseconds. - - - Searched for "@searchWord". - Pesquisado "@searchWord". - - - Nothing found for "@searchWord". - Nada foi encontrado para "@searchWord". - - - Showing results for "@suggestedWord". - Exibindo resultados para "@suggestedWord" - - - Search instead for "@searchWord". - Pesquisar "@searchWord" em vez disso. - - - Last searches - Últimas pesquisas - - - Frequent searches - Pesquisas frequentes - - - Relevance - Relevância - - - - File type - Tipo de arquivo - - - Referenced at - Referenciado em - - - Results per page: - Resultados por página: - - - We're sorry, there were some errors: - Lamentamos, ocorreram alguns erros: - - - Please enter your search term in the box above. - Insira o seu termo de pesquisa na caixa acima. - - - First - Primeiro - - - Previous - Próximo - - - Next - Próximo - - - Last - Último - - - Top Results - Top Results - - - - - The Index Queue manages content indexing. Content enters the Index Queue by initialization below or when new content is created based on configuration. Items in the Index Queue are indexed newest changes first until all items in the queue have been indexed. - A Index Queue gere a indexação de conteúdos. O conteúdo entra na Index Queue através da inicialização abaixo ou quando é criado novo conteúdo com base na configuração. Os itens na Index Queue são indexados primeiro com as alterações mais recentes até todos os itens na fila terem sido indexados. - - - Reset errors - Redefinir erros - - - Indexing Errors - Indexing Errors - - - ID - ID - - - Item Type - Item Type - - - Item UID - Item UID - - - Show error - Exibir erro - - - An error occurred while indexing manual from the backend. - Ocorreu um erro ao realizar a indexação manual a partir do back-end. - - - An error occurred while resetting the error log in the index queue. - Ocorreu um erro ao redefinir o log de erros na fila de indexação. - - - Single item was not requeued. - Single item was not requeued. - - - No indexing configurations selected. - Nenhuma configuração de indexação selecionada. - - - - Initialized indexing configurations: %s - Configurações de indexação inicializadas: %s - - - Index Queue initialized - Index Queue inicializada - - - Index Queue not initialized - Index Queue não inicializada - - - All errors have been reset. - Todos os erros foram redefinidos. - - - Indexing from the backend was successfully finished. - A indexação a partir do back-end foi concluída com sucesso. - - - Single item was successfully marked for reindexing. - - - Index Queue - Index Queue - - - Manual Indexing - Manual Indexing - - - Initializing the Index Queue is the most complete way to force re-indexing, or to build the Index Queue for the first time. The Index Queue Worker scheduler task will then index the items listed in the Index Queue. - Inicializar a Index Queue é a forma mais completa de forçar a reindexação ou de criar a Index Queue pela primeira vez. A tarefa de agendador do Index Queue Worker irá então indexar os itens listados na Index Queue. - - - Errors - Erros - - - Indexing Progress - Indexing Progress - - - Indexed - Indexed - - - Pending - Pending - - - Index Queue Initialization - Index Queue Initialization - - - Index Queue Status - Index Queue Status - - - Clear Index Queue - Clear Index Queue - - - Go back - Voltar - - - No valid queue item passed to show the error information! - Nenhum item válido da fila para exibir as informações de erro! - - - Error details for queue item - Detalhes do erro sobre o item da fila - - - Index now - Indexar agora - - - - - Search: Frequent Searches - Pesquisa: Pesquisas frequentes - - - Search: Form, Result, Additional Components - Pesquisa: Forma, Resultado, Componentes adicionais - - - Search: Form only - Pesquisa: Apenas forma - - - - Phrase - Frase - - - Number of Queries - Número de consultas - - - Number of Results (Average) - Número de resultados (média) - - - Percentage - Percentagem - - - No records found. Did you enabled 'plugin.tx_solr.statistics = 1' in the typoscript configuration of your site? - Nenhum registro encontrado. Você ativou "plugin.tx_solr.statistics = 1" na configuração typoscript do seu site? - - - Top 5 Search Phrases - 5 principais frases pesquisadas - - - Top 5 Search Phrases Without Hits - 5 principais frases pesquisadas sem resultados - - - Search Phrase Statistics - Estatísticas de frases pesquisadas - - - + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
diff --git a/Resources/Private/Language/pt.locallang_be.xlf b/Resources/Private/Language/pt.locallang_be.xlf new file mode 100644 index 0000000000..3e4c8c0cfd --- /dev/null +++ b/Resources/Private/Language/pt.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/pt.locallang_csh_pages.xlf b/Resources/Private/Language/pt.locallang_csh_pages.xlf new file mode 100644 index 0000000000..73a6ad0b8b --- /dev/null +++ b/Resources/Private/Language/pt.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/pt.locallang_mod.xlf b/Resources/Private/Language/pt.locallang_mod.xlf new file mode 100644 index 0000000000..8bfcfc30d8 --- /dev/null +++ b/Resources/Private/Language/pt.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/pt.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/pt.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..8bfcfc30d8 --- /dev/null +++ b/Resources/Private/Language/pt.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/pt.locallang_mod_indexadmin.xlf b/Resources/Private/Language/pt.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..8bfcfc30d8 --- /dev/null +++ b/Resources/Private/Language/pt.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/pt.locallang_mod_indexqueue.xlf b/Resources/Private/Language/pt.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..8bfcfc30d8 --- /dev/null +++ b/Resources/Private/Language/pt.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/pt.locallang_mod_info.xlf b/Resources/Private/Language/pt.locallang_mod_info.xlf new file mode 100644 index 0000000000..8bfcfc30d8 --- /dev/null +++ b/Resources/Private/Language/pt.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/pt.locallang_tca.xlf b/Resources/Private/Language/pt.locallang_tca.xlf new file mode 100644 index 0000000000..eadd1ca321 --- /dev/null +++ b/Resources/Private/Language/pt.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/ro.locallang.xlf b/Resources/Private/Language/ro.locallang.xlf new file mode 100644 index 0000000000..4b5e3fe936 --- /dev/null +++ b/Resources/Private/Language/ro.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/ro.locallang_be.xlf b/Resources/Private/Language/ro.locallang_be.xlf new file mode 100644 index 0000000000..a67a8818d1 --- /dev/null +++ b/Resources/Private/Language/ro.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/ro.locallang_csh_pages.xlf b/Resources/Private/Language/ro.locallang_csh_pages.xlf new file mode 100644 index 0000000000..869a8ae7d2 --- /dev/null +++ b/Resources/Private/Language/ro.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/ro.locallang_mod.xlf b/Resources/Private/Language/ro.locallang_mod.xlf new file mode 100644 index 0000000000..44a661fcf0 --- /dev/null +++ b/Resources/Private/Language/ro.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ro.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/ro.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..44a661fcf0 --- /dev/null +++ b/Resources/Private/Language/ro.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ro.locallang_mod_indexadmin.xlf b/Resources/Private/Language/ro.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..44a661fcf0 --- /dev/null +++ b/Resources/Private/Language/ro.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ro.locallang_mod_indexqueue.xlf b/Resources/Private/Language/ro.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..44a661fcf0 --- /dev/null +++ b/Resources/Private/Language/ro.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ro.locallang_mod_info.xlf b/Resources/Private/Language/ro.locallang_mod_info.xlf new file mode 100644 index 0000000000..44a661fcf0 --- /dev/null +++ b/Resources/Private/Language/ro.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ro.locallang_tca.xlf b/Resources/Private/Language/ro.locallang_tca.xlf new file mode 100644 index 0000000000..74b937d94d --- /dev/null +++ b/Resources/Private/Language/ro.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/ru.locallang.xlf b/Resources/Private/Language/ru.locallang.xlf new file mode 100644 index 0000000000..1db99336d4 --- /dev/null +++ b/Resources/Private/Language/ru.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/ru.locallang_be.xlf b/Resources/Private/Language/ru.locallang_be.xlf new file mode 100644 index 0000000000..2d30bc22e1 --- /dev/null +++ b/Resources/Private/Language/ru.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/ru.locallang_csh_pages.xlf b/Resources/Private/Language/ru.locallang_csh_pages.xlf new file mode 100644 index 0000000000..778936bb7c --- /dev/null +++ b/Resources/Private/Language/ru.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/ru.locallang_mod.xlf b/Resources/Private/Language/ru.locallang_mod.xlf new file mode 100644 index 0000000000..5cfb3918c7 --- /dev/null +++ b/Resources/Private/Language/ru.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ru.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/ru.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..5cfb3918c7 --- /dev/null +++ b/Resources/Private/Language/ru.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ru.locallang_mod_indexadmin.xlf b/Resources/Private/Language/ru.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..5cfb3918c7 --- /dev/null +++ b/Resources/Private/Language/ru.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ru.locallang_mod_indexqueue.xlf b/Resources/Private/Language/ru.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..5cfb3918c7 --- /dev/null +++ b/Resources/Private/Language/ru.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ru.locallang_mod_info.xlf b/Resources/Private/Language/ru.locallang_mod_info.xlf new file mode 100644 index 0000000000..5cfb3918c7 --- /dev/null +++ b/Resources/Private/Language/ru.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/ru.locallang_tca.xlf b/Resources/Private/Language/ru.locallang_tca.xlf new file mode 100644 index 0000000000..447454e2f3 --- /dev/null +++ b/Resources/Private/Language/ru.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/sr.locallang.xlf b/Resources/Private/Language/sr.locallang.xlf new file mode 100644 index 0000000000..f8b2e23547 --- /dev/null +++ b/Resources/Private/Language/sr.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/sr.locallang_be.xlf b/Resources/Private/Language/sr.locallang_be.xlf new file mode 100644 index 0000000000..ca55de198e --- /dev/null +++ b/Resources/Private/Language/sr.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/sr.locallang_csh_pages.xlf b/Resources/Private/Language/sr.locallang_csh_pages.xlf new file mode 100644 index 0000000000..d52976b3c0 --- /dev/null +++ b/Resources/Private/Language/sr.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/sr.locallang_mod.xlf b/Resources/Private/Language/sr.locallang_mod.xlf new file mode 100644 index 0000000000..9609f6a32b --- /dev/null +++ b/Resources/Private/Language/sr.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/sr.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/sr.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..9609f6a32b --- /dev/null +++ b/Resources/Private/Language/sr.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/sr.locallang_mod_indexadmin.xlf b/Resources/Private/Language/sr.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..9609f6a32b --- /dev/null +++ b/Resources/Private/Language/sr.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/sr.locallang_mod_indexqueue.xlf b/Resources/Private/Language/sr.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..9609f6a32b --- /dev/null +++ b/Resources/Private/Language/sr.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/sr.locallang_mod_info.xlf b/Resources/Private/Language/sr.locallang_mod_info.xlf new file mode 100644 index 0000000000..9609f6a32b --- /dev/null +++ b/Resources/Private/Language/sr.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/sr.locallang_tca.xlf b/Resources/Private/Language/sr.locallang_tca.xlf new file mode 100644 index 0000000000..9bd03b661f --- /dev/null +++ b/Resources/Private/Language/sr.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/sv.locallang.xlf b/Resources/Private/Language/sv.locallang.xlf new file mode 100644 index 0000000000..df0ed86d0a --- /dev/null +++ b/Resources/Private/Language/sv.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/sv.locallang_be.xlf b/Resources/Private/Language/sv.locallang_be.xlf new file mode 100644 index 0000000000..e25ac31ec5 --- /dev/null +++ b/Resources/Private/Language/sv.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/sv.locallang_csh_pages.xlf b/Resources/Private/Language/sv.locallang_csh_pages.xlf new file mode 100644 index 0000000000..e0a74123b3 --- /dev/null +++ b/Resources/Private/Language/sv.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/sv.locallang_mod.xlf b/Resources/Private/Language/sv.locallang_mod.xlf new file mode 100644 index 0000000000..1805e51f61 --- /dev/null +++ b/Resources/Private/Language/sv.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/sv.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/sv.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..1805e51f61 --- /dev/null +++ b/Resources/Private/Language/sv.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/sv.locallang_mod_indexadmin.xlf b/Resources/Private/Language/sv.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..1805e51f61 --- /dev/null +++ b/Resources/Private/Language/sv.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/sv.locallang_mod_indexqueue.xlf b/Resources/Private/Language/sv.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..1805e51f61 --- /dev/null +++ b/Resources/Private/Language/sv.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/sv.locallang_mod_info.xlf b/Resources/Private/Language/sv.locallang_mod_info.xlf new file mode 100644 index 0000000000..1805e51f61 --- /dev/null +++ b/Resources/Private/Language/sv.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/sv.locallang_tca.xlf b/Resources/Private/Language/sv.locallang_tca.xlf new file mode 100644 index 0000000000..78dcb8b805 --- /dev/null +++ b/Resources/Private/Language/sv.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/tr.locallang.xlf b/Resources/Private/Language/tr.locallang.xlf new file mode 100644 index 0000000000..91884043ba --- /dev/null +++ b/Resources/Private/Language/tr.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/tr.locallang_be.xlf b/Resources/Private/Language/tr.locallang_be.xlf new file mode 100644 index 0000000000..f21a298172 --- /dev/null +++ b/Resources/Private/Language/tr.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/tr.locallang_csh_pages.xlf b/Resources/Private/Language/tr.locallang_csh_pages.xlf new file mode 100644 index 0000000000..5aa6f30213 --- /dev/null +++ b/Resources/Private/Language/tr.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/tr.locallang_mod.xlf b/Resources/Private/Language/tr.locallang_mod.xlf new file mode 100644 index 0000000000..f9312966b4 --- /dev/null +++ b/Resources/Private/Language/tr.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/tr.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/tr.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..f9312966b4 --- /dev/null +++ b/Resources/Private/Language/tr.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/tr.locallang_mod_indexadmin.xlf b/Resources/Private/Language/tr.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..f9312966b4 --- /dev/null +++ b/Resources/Private/Language/tr.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/tr.locallang_mod_indexqueue.xlf b/Resources/Private/Language/tr.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..f9312966b4 --- /dev/null +++ b/Resources/Private/Language/tr.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/tr.locallang_mod_info.xlf b/Resources/Private/Language/tr.locallang_mod_info.xlf new file mode 100644 index 0000000000..f9312966b4 --- /dev/null +++ b/Resources/Private/Language/tr.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/tr.locallang_tca.xlf b/Resources/Private/Language/tr.locallang_tca.xlf new file mode 100644 index 0000000000..072e1e32d0 --- /dev/null +++ b/Resources/Private/Language/tr.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/uk.locallang.xlf b/Resources/Private/Language/uk.locallang.xlf new file mode 100644 index 0000000000..43f3b0f5bf --- /dev/null +++ b/Resources/Private/Language/uk.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/uk.locallang_be.xlf b/Resources/Private/Language/uk.locallang_be.xlf new file mode 100644 index 0000000000..ba5a5c9a41 --- /dev/null +++ b/Resources/Private/Language/uk.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/uk.locallang_csh_pages.xlf b/Resources/Private/Language/uk.locallang_csh_pages.xlf new file mode 100644 index 0000000000..d27ce985c7 --- /dev/null +++ b/Resources/Private/Language/uk.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/uk.locallang_mod.xlf b/Resources/Private/Language/uk.locallang_mod.xlf new file mode 100644 index 0000000000..a812f2e97d --- /dev/null +++ b/Resources/Private/Language/uk.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/uk.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/uk.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..a812f2e97d --- /dev/null +++ b/Resources/Private/Language/uk.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/uk.locallang_mod_indexadmin.xlf b/Resources/Private/Language/uk.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..a812f2e97d --- /dev/null +++ b/Resources/Private/Language/uk.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/uk.locallang_mod_indexqueue.xlf b/Resources/Private/Language/uk.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..a812f2e97d --- /dev/null +++ b/Resources/Private/Language/uk.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/uk.locallang_mod_info.xlf b/Resources/Private/Language/uk.locallang_mod_info.xlf new file mode 100644 index 0000000000..a812f2e97d --- /dev/null +++ b/Resources/Private/Language/uk.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/uk.locallang_tca.xlf b/Resources/Private/Language/uk.locallang_tca.xlf new file mode 100644 index 0000000000..1a8fafa2fb --- /dev/null +++ b/Resources/Private/Language/uk.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/vi.locallang.xlf b/Resources/Private/Language/vi.locallang.xlf new file mode 100644 index 0000000000..928806015c --- /dev/null +++ b/Resources/Private/Language/vi.locallang.xlf @@ -0,0 +1,23 @@ + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/vi.locallang_be.xlf b/Resources/Private/Language/vi.locallang_be.xlf new file mode 100644 index 0000000000..14af8eb8a2 --- /dev/null +++ b/Resources/Private/Language/vi.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/vi.locallang_csh_pages.xlf b/Resources/Private/Language/vi.locallang_csh_pages.xlf new file mode 100644 index 0000000000..3f6c30e40e --- /dev/null +++ b/Resources/Private/Language/vi.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/vi.locallang_mod.xlf b/Resources/Private/Language/vi.locallang_mod.xlf new file mode 100644 index 0000000000..64894edec5 --- /dev/null +++ b/Resources/Private/Language/vi.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/vi.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/vi.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..64894edec5 --- /dev/null +++ b/Resources/Private/Language/vi.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/vi.locallang_mod_indexadmin.xlf b/Resources/Private/Language/vi.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..64894edec5 --- /dev/null +++ b/Resources/Private/Language/vi.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/vi.locallang_mod_indexqueue.xlf b/Resources/Private/Language/vi.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..64894edec5 --- /dev/null +++ b/Resources/Private/Language/vi.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/vi.locallang_mod_info.xlf b/Resources/Private/Language/vi.locallang_mod_info.xlf new file mode 100644 index 0000000000..64894edec5 --- /dev/null +++ b/Resources/Private/Language/vi.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/vi.locallang_tca.xlf b/Resources/Private/Language/vi.locallang_tca.xlf new file mode 100644 index 0000000000..47b0aba6dd --- /dev/null +++ b/Resources/Private/Language/vi.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
diff --git a/Resources/Private/Language/zh.locallang.xlf b/Resources/Private/Language/zh.locallang.xlf index 261a23094e..ac2015908c 100644 --- a/Resources/Private/Language/zh.locallang.xlf +++ b/Resources/Private/Language/zh.locallang.xlf @@ -1,137 +1,23 @@ - - - -
- - - - Search is currently not available. - 搜索功能目前不可用。 - - - We're sorry. The request you tried to make could not be processed. - 非常抱歉。您尝试的操作请求无法执行。 - - - Search Term - 搜索术语 - - - Did you mean - 您想要 - - - Search - 搜索 - - - Sort by - 排序依据 - - - Narrow Search - 缩小搜索范围 - - - Search narrowed by - 缩小搜索范围根据 - - - Show more - 显示更多 - - - Show fewer - 显示更少 - - - Remove all filters - 删除所有过滤器 - - - Filter - Filter - - - Displaying results @resultsFrom to @resultsTo of @resultsTotal. - 显示搜索结果中的第 @resultsFrom 条到第 @resultsTo 条 (共 @resultsTotal 条)。 - - - Found @resultsTotal results in @resultsTime milliseconds. - 找到相关结果共 @resultsTotal 条,用时 @resultsTime 毫秒。 - - - Found 1 result in @resultsTime milliseconds. - 找到相关结果共 1 条,用时 @resultsTime 毫秒。 - - - Searched for "@searchWord". - 搜索"@searchWord" - - - Nothing found for "@searchWord". - 没有找到任何关于"@searchWord" - - - Showing results for "@suggestedWord". - Showing results for "@suggestedWord". - - - Search instead for "@searchWord". - - - - Last searches - 上次搜索 - - - Frequent searches - 常见搜索 - - - Relevance - 关联内容 - - - - File type - 文件类型 - - - Referenced at - 参考地址 - - - Results per page: - 每页的结果: - - - We're sorry, there were some errors: - We're sorry, there were some errors: - - - Please enter your search term in the box above. - Please enter your search term in the box above. - - - First - First - - - Previous - Previous - - - Next - Next - - - Last - Last - - - - \ No newline at end of file + + + +
+ LFEditor +
+ + + + + + + + + + + + + + + +
+
diff --git a/Resources/Private/Language/zh.locallang_be.xlf b/Resources/Private/Language/zh.locallang_be.xlf new file mode 100644 index 0000000000..d360cef1c8 --- /dev/null +++ b/Resources/Private/Language/zh.locallang_be.xlf @@ -0,0 +1,17 @@ + + + +
+ + + + + + + + + + + + + diff --git a/Resources/Private/Language/zh.locallang_csh_pages.xlf b/Resources/Private/Language/zh.locallang_csh_pages.xlf new file mode 100644 index 0000000000..5baf26bf7c --- /dev/null +++ b/Resources/Private/Language/zh.locallang_csh_pages.xlf @@ -0,0 +1,9 @@ + + + +
+ + + + + diff --git a/Resources/Private/Language/zh.locallang_mod.xlf b/Resources/Private/Language/zh.locallang_mod.xlf new file mode 100644 index 0000000000..b4321fdab9 --- /dev/null +++ b/Resources/Private/Language/zh.locallang_mod.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/zh.locallang_mod_coreoptimize.xlf b/Resources/Private/Language/zh.locallang_mod_coreoptimize.xlf new file mode 100644 index 0000000000..b4321fdab9 --- /dev/null +++ b/Resources/Private/Language/zh.locallang_mod_coreoptimize.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/zh.locallang_mod_indexadmin.xlf b/Resources/Private/Language/zh.locallang_mod_indexadmin.xlf new file mode 100644 index 0000000000..b4321fdab9 --- /dev/null +++ b/Resources/Private/Language/zh.locallang_mod_indexadmin.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/zh.locallang_mod_indexqueue.xlf b/Resources/Private/Language/zh.locallang_mod_indexqueue.xlf new file mode 100644 index 0000000000..b4321fdab9 --- /dev/null +++ b/Resources/Private/Language/zh.locallang_mod_indexqueue.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/zh.locallang_mod_info.xlf b/Resources/Private/Language/zh.locallang_mod_info.xlf new file mode 100644 index 0000000000..b4321fdab9 --- /dev/null +++ b/Resources/Private/Language/zh.locallang_mod_info.xlf @@ -0,0 +1,11 @@ + + + +
+ + + + + + + diff --git a/Resources/Private/Language/zh.locallang_tca.xlf b/Resources/Private/Language/zh.locallang_tca.xlf new file mode 100644 index 0000000000..e279b6e9d6 --- /dev/null +++ b/Resources/Private/Language/zh.locallang_tca.xlf @@ -0,0 +1,13 @@ + + + +
+ LFEditor +
+ + + + + +
+
From a08b0dae946d31e026ee1543bc1228de23953713 Mon Sep 17 00:00:00 2001 From: Torben Hansen Date: Fri, 7 Jun 2024 12:37:19 +0200 Subject: [PATCH 18/21] [BUGFIX] Fix range string calculation in DateRange facet This change fixes the range string calculation, so items for the given date are included until 23:59 of the target end date. Fixes: #4087 Ports: #4090 --- .../Search/ResultSet/Facets/RangeBased/DateRange/DateRange.php | 2 +- .../Facets/RangeBased/DateRange/DateRangeFacetParserTest.php | 2 +- .../ResultSet/Facets/RangeBased/DateRange/DateRangeTest.php | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Classes/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRange.php b/Classes/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRange.php index b242740da8..2f15bc0438 100644 --- a/Classes/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRange.php +++ b/Classes/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRange.php @@ -91,7 +91,7 @@ public function __construct( protected function getRangeString(): string { $from = $this->startRequested === null ? '' : $this->startRequested->format('Ymd') . '0000'; - $till = $this->endRequested === null ? '' : $this->endRequested->format('Ymd') . '0000'; + $till = $this->endRequested === null ? '' : $this->endRequested->format('Ymd') . '2359'; return $from . '-' . $till; } diff --git a/Tests/Unit/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRangeFacetParserTest.php b/Tests/Unit/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRangeFacetParserTest.php index f0b8f81852..8b05c3636b 100644 --- a/Tests/Unit/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRangeFacetParserTest.php +++ b/Tests/Unit/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRangeFacetParserTest.php @@ -53,7 +53,7 @@ public function facetIsCreated() self::assertSame($facet->getConfiguration(), $facetConfiguration['myCreated.'], 'Configuration was not passed to new facets'); self::assertTrue($facet->getIsUsed()); - self::assertEquals('201506020000-201706020000', $facet->getRange()->getLabel()); + self::assertEquals('201506020000-201706022359', $facet->getRange()->getLabel()); self::assertEquals(32, $facet->getRange()->getDocumentCount()); self::assertCount(3, $facet->getRange()->getRangeCounts(), 'We expected that there are three count items attached'); diff --git a/Tests/Unit/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRangeTest.php b/Tests/Unit/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRangeTest.php index 3b7911e28c..7e04fddac8 100644 --- a/Tests/Unit/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRangeTest.php +++ b/Tests/Unit/Domain/Search/ResultSet/Facets/RangeBased/DateRange/DateRangeTest.php @@ -68,7 +68,7 @@ public function canHandleHalfOpenDateRanges() $error->getMessage() . ' in ' . $error->getFile() . ':' . $error->getLine() ); } - self::assertEquals('-202107200000', $dateRangeCollectionKeyOpenStart); + self::assertEquals('-202107202359', $dateRangeCollectionKeyOpenStart); self::assertEquals('202107200000-', $dateRangeCollectionKeyOpenEnd); } } From 8a0857285c089b20c4f339b61e34271ea39a1221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20K=C3=A4hm?= Date: Wed, 10 Jul 2024 17:36:56 +0200 Subject: [PATCH 19/21] [FIX] scheduler task "Optimize index of a site" is not functional Fixes multiple issues within "Optimize index of a site" component. Relates: #4102 Ports: #4104 --- Classes/Backend/CoreSelectorField.php | 37 ++++++++++++++----- .../IndexingConfigurationSelectorField.php | 3 +- 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/Classes/Backend/CoreSelectorField.php b/Classes/Backend/CoreSelectorField.php index dd2151d449..e43316a3cd 100644 --- a/Classes/Backend/CoreSelectorField.php +++ b/Classes/Backend/CoreSelectorField.php @@ -15,6 +15,7 @@ namespace ApacheSolrForTypo3\Solr\Backend; +use ApacheSolrForTypo3\Solr\ConnectionManager; use ApacheSolrForTypo3\Solr\Domain\Site\Site; use TYPO3\CMS\Backend\Form\Exception as BackendFormException; use TYPO3\CMS\Backend\Form\FormResultCompiler; @@ -130,10 +131,9 @@ public function render(): string protected function getLanguageUidCoreMap(): array { $coreTableMap = []; - $cores = $this->site->getAllSolrConnectionConfigurations(); - foreach ($cores as $languageUid => $core) { - $corePath = $core['write']['path']; - $coreTableMap[$languageUid] = $corePath; + $solrServers = GeneralUtility::makeInstance(ConnectionManager::class)->getConnectionsBySite($this->site); + foreach ($solrServers as $languageUid => $solrConnection) { + $coreTableMap[$languageUid] = $solrConnection->getWriteService()->getCorePath(); } return $coreTableMap; } @@ -149,10 +149,13 @@ protected function buildSelectorItems(array $coresToOptimize): array { $selectorItems = []; - foreach ($coresToOptimize as $corePath) { - $icon = 'module-searchbackend_SolrCoreoptimization'; + foreach ($coresToOptimize as $systemLanguageId => $corePath) { $corePath = rtrim($corePath, '/'); - $selectorItems[] = [$corePath, $corePath, $icon]; + $selectorItems[] = [ + $corePath, + $corePath, + $this->getFlagIdentifierForSystemLanguageId($systemLanguageId), + ]; } return $selectorItems; @@ -173,22 +176,36 @@ protected function renderSelectCheckbox(array $items, array $selectedValues): st 'itemFormElValue' => $selectedValues, 'fieldConf' => ['config' => ['items' => $items]], 'fieldTSConfig' => ['noMatchingValue_label' => ''], + 'itemFormElID' => '', ]; $nodeFactory = GeneralUtility::makeInstance(NodeFactory::class); $options = [ + 'type' => 'select', 'renderType' => 'selectCheckBox', - 'table' => 'tx_solr_classes_backend_coreselector', + 'tableName' => 'tx_solr_classes_backend_coreselector', 'fieldName' => 'additionalFields', - 'databaseRow' => [], + 'databaseRow' => ['uid' => 0], 'parameterArray' => $parameterArray, + 'processedTca' => ['columns' => ['additionalFields' => ['config' => ['type' => 'select']]]], ]; - $selectCheckboxResult = $nodeFactory->create($options)->render(); + $selectCheckboxResult = $nodeFactory + ->create($options) + ->render(); $formResultCompiler = GeneralUtility::makeInstance(FormResultCompiler::class); $formResultCompiler->mergeResult($selectCheckboxResult); $formHtml = $selectCheckboxResult['html'] ?? ''; return $formResultCompiler->addCssFiles() . $formHtml . $formResultCompiler->printNeededJSFunctions(); } + + protected function getFlagIdentifierForSystemLanguageId($systemLanguageId): string + { + $flagIdentifier = $this->site->getTypo3SiteObject()->getLanguageById((int)$systemLanguageId)->getFlagIdentifier(); + if (!empty($flagIdentifier)) { + return $flagIdentifier; + } + return 'flags-multiple'; + } } diff --git a/Classes/Backend/IndexingConfigurationSelectorField.php b/Classes/Backend/IndexingConfigurationSelectorField.php index 57cfa7139c..2369e6b5ba 100644 --- a/Classes/Backend/IndexingConfigurationSelectorField.php +++ b/Classes/Backend/IndexingConfigurationSelectorField.php @@ -199,7 +199,8 @@ protected function renderSelectCheckbox(array $items, ?array $selectedValues = [ $nodeFactory = GeneralUtility::makeInstance(NodeFactory::class); $options = [ - 'type' => 'select', 'renderType' => 'selectCheckBox', + 'type' => 'select', + 'renderType' => 'selectCheckBox', 'table' => 'tx_solr_classes_backend_indexingconfigurationselector', 'tableName' => 'tx_solr_classes_backend_indexingconfigurationselector', 'fieldName' => 'additionalFields', From e9814168889f2e3409a66f93b173423be93643c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20K=C3=A4hm?= Date: Wed, 9 Oct 2024 19:01:50 +0200 Subject: [PATCH 20/21] New translations locallang.xlf (German) --- Resources/Private/Language/de.locallang.xlf | 9 --------- 1 file changed, 9 deletions(-) diff --git a/Resources/Private/Language/de.locallang.xlf b/Resources/Private/Language/de.locallang.xlf index 247ec13c87..b121b4b500 100644 --- a/Resources/Private/Language/de.locallang.xlf +++ b/Resources/Private/Language/de.locallang.xlf @@ -132,15 +132,6 @@ Letzte - - Search: Frequent Searches - Suche: Häufige Suchen - - Search: Form, Result, Additional Components - Suche: Formular, Ergebnisse, weitere Komponenten - - Search: Form only - Suche: Nur Suchformular From f4e2b8a9874347be49127d60b66ac7f75046e450 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rafael=20K=C3=A4hm?= Date: Wed, 11 Dec 2024 10:58:06 +0100 Subject: [PATCH 21/21] New translations locallang.xlf (German) --- Resources/Private/Language/de.locallang.xlf | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Resources/Private/Language/de.locallang.xlf b/Resources/Private/Language/de.locallang.xlf index b121b4b500..350abd7431 100644 --- a/Resources/Private/Language/de.locallang.xlf +++ b/Resources/Private/Language/de.locallang.xlf @@ -132,6 +132,9 @@ Letzte + + Filter + Filtern