If you don't set 'startingpoints_recursive' but only 'single_pages' then the indexer cannot index the translations.
On closer inspection, it becomes apparent that 'startingpoints_recursive' must be set for the search indexing of the translation pages.
But that cannot always be wanted. I recommend paying attention to 'single_pages' when recognizing the page translations.
// The original code only works with 'startingpoints_recursive'
// EXT:ke_search\Classes\Indexer\Types\Page.php:207-221
// get all available sys_language_uid records
/** @var TranslationConfigurationProvider $translationProvider */
$translationProvider = GeneralUtility::makeInstance(TranslationConfigurationProvider::class);
if (\TYPO3\CMS\Core\Utility\VersionNumberUtility::convertVersionNumberToInteger(TYPO3_branch) >=
\TYPO3\CMS\Core\Utility\VersionNumberUtility::convertVersionNumberToInteger('10.0')
) {
$startingPoints = GeneralUtility::trimExplode(',', $this->indexerConfig['startingpoints_recursive'], true);
foreach ($startingPoints as $startingPoint) {
foreach ($translationProvider->getSystemLanguages($startingPoint) as $key => $lang) {
$this->sysLanguages[$key] = $lang;
}
}
} else {
$this->sysLanguages = $translationProvider->getSystemLanguages();
}
It should be right like that
// This also recognizes translations only with 'single_pages'
// EXT:ke_search\Classes\Indexer\Types\Page.php:207
// get all available sys_language_uid records
/** @var TranslationConfigurationProvider $translationProvider */
$translationProvider = GeneralUtility::makeInstance(TranslationConfigurationProvider::class);
if (\TYPO3\CMS\Core\Utility\VersionNumberUtility::convertVersionNumberToInteger(TYPO3_branch) >=
\TYPO3\CMS\Core\Utility\VersionNumberUtility::convertVersionNumberToInteger('10.0')
) {
// FIX: Beginn
$startingPoints = [];
$startingPoints += GeneralUtility::trimExplode(',', $this->indexerConfig['startingpoints_recursive'], true);
$startingPoints += GeneralUtility::trimExplode(',', $this->indexerConfig['single_pages'], true);
// FIX: End
foreach ($startingPoints as $startingPoint) {
foreach ($translationProvider->getSystemLanguages($startingPoint) as $key => $lang) {
$this->sysLanguages[$key] = $lang;
}
}
} else {
$this->sysLanguages = $translationProvider->getSystemLanguages();
}
Thanks for the support you have made a great product.
If you don't set 'startingpoints_recursive' but only 'single_pages' then the indexer cannot index the translations.
On closer inspection, it becomes apparent that 'startingpoints_recursive' must be set for the search indexing of the translation pages.
But that cannot always be wanted. I recommend paying attention to 'single_pages' when recognizing the page translations.
It should be right like that
Thanks for the support you have made a great product.