我已在站点配置中将语言后备设置为“严格”:
fallbackType: strict
但是我需要针对特定记录类型(例如“新闻”类型的记录)的语言后备(
fallbackType: fallback
)。
这可能吗?
TYPO3扩展的PHP代码可以得到增强。接口 QueryInterface 的 $query 可以有自己的 LanguageAspect。
例如扩展新闻中的文件“AbstractDemandedRepository.php”。
use TYPO3\CMS\Core\Context\LanguageAspect;
...
$query = $this->createQuery();
....
$formerLanguageAspect = $query->getQuerySettings()->getLanguageAspect();
$fallbackChain = [];
$fallbackChain[] = 'fallback'; // 'free', 'strict'
$newLanguageAspect =
new LanguageAspect(
$formerLanguageAspect->getId(),
$formerLanguageAspect->getContentId(),
$formerLanguageAspect->getOverlayType(),
$fallbackChain
);
$query->getQuerySettings()->setLanguageAspect($newLanguageAspect);
这可以通过增强此扩展的设置并使用它代替此硬编码常量来改进。