From 14109c8affe990f19646d4c039d7debd89578321 Mon Sep 17 00:00:00 2001 From: Daniel Diesenreither Date: Tue, 20 Jan 2026 17:04:52 +0100 Subject: [PATCH 1/2] [BUGFIX] Filter Solr connections based on language fallback settings --- Classes/IndexQueue/PageIndexer.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/Classes/IndexQueue/PageIndexer.php b/Classes/IndexQueue/PageIndexer.php index 6b042a60ab..13b6f1b7ae 100644 --- a/Classes/IndexQueue/PageIndexer.php +++ b/Classes/IndexQueue/PageIndexer.php @@ -28,6 +28,7 @@ use Psr\Log\LogLevel; use RuntimeException; use TYPO3\CMS\Backend\Utility\BackendUtility; +use TYPO3\CMS\Core\Site\SiteFinder; use TYPO3\CMS\Core\Type\Bitmask\PageTranslationVisibility; use TYPO3\CMS\Core\Utility\GeneralUtility; @@ -155,6 +156,19 @@ protected function filterSolrConectionByPage( if ($pageTranslationVisibility->shouldBeHiddenInDefaultLanguage()) { // page is configured to hide the default translation -> remove Solr connection for default language unset($solrConnections[0]); + + $siteFinder = GeneralUtility::makeInstance(SiteFinder::class); + + $site = $siteFinder->getSiteByPageId($page['uid']); + + foreach($solrConnections as $languageId => $solrConnection){ + $language = $site->getLanguageById($languageId); + + if($language->getFallbackLanguageIds() === [0]){ + // this language falls back to default language only -> remove Solr connection + unset($solrConnections[$languageId]); + } + } } if ($forceHideTranslationIfNoTranslatedRecordExists From 8c606f8088aed2a806225255050d58fb643d7a5d Mon Sep 17 00:00:00 2001 From: Daniel Diesenreither Date: Tue, 20 Jan 2026 21:57:36 +0100 Subject: [PATCH 2/2] [BUGFIX] Fix formatting in PageIndexer for Solr connection filtering --- Classes/IndexQueue/PageIndexer.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Classes/IndexQueue/PageIndexer.php b/Classes/IndexQueue/PageIndexer.php index 13b6f1b7ae..065eb8481d 100644 --- a/Classes/IndexQueue/PageIndexer.php +++ b/Classes/IndexQueue/PageIndexer.php @@ -161,10 +161,10 @@ protected function filterSolrConectionByPage( $site = $siteFinder->getSiteByPageId($page['uid']); - foreach($solrConnections as $languageId => $solrConnection){ + foreach ($solrConnections as $languageId => $solrConnection) { $language = $site->getLanguageById($languageId); - if($language->getFallbackLanguageIds() === [0]){ + if ($language->getFallbackLanguageIds() === [0]) { // this language falls back to default language only -> remove Solr connection unset($solrConnections[$languageId]); }