gpt4 book ai didi

localization - Typo3 7.6 extbase 存储库匹配仅影响非本地化记录

转载 作者:行者123 更新时间:2023-12-01 06:07:49 30 4
gpt4 key购买 nike

我想为 TYPO3 CMS 7.6 创建一个自己的 extbase 扩展。扩展必须以不同的语言运行。我发现,存储库匹配仅适用于非本地化记录。

我的存储库功能如下所示:

public function findNew() {
$query = $this->createQuery();
$query->getQuerySettings()->setRespectSysLanguage(true);
$query->matching($query->equals('new', 1));
return $query->execute();
}

这个函数说:显示所有的记录,new = 1

例子:
我有一个未激活复选框“新建”的默认记录。现在我创建此记录的本地化版本并将“新建”复选框设置为激活。

如果我以默认语言执行 findNew() 函数,则不会显示该记录。如果我用另一种语言执行该函数,即使设置了"new"标志,记录也不会显示!

换句话说:匹配只影响默认/父记录。

我正在使用以下配置设置:
config {
sys_language_mode = strict
sys_language_overlay = hideNonTranslated
}

[编辑:]
这是完整的生成的 SQL 查询:
SELECT tx_extension_domain_model_table.*
FROM
tx_extension_domain_model_table
WHERE
tx_extension_domain_model_table.new = '1'
AND (
tx_extension_domain_model_table.sys_language_uid = -1
OR (
tx_extension_domain_model_table.sys_language_uid = 1
AND tx_extension_domain_model_table.l10n_parent = 0
)
OR (
tx_extension_domain_model_table.sys_language_uid = 0
AND tx_extension_domain_model_table.uid IN (
SELECT tx_extension_domain_model_table.l10n_parent
FROM tx_extension_domain_model_table
WHERE tx_extension_domain_model_table.l10n_parent > 0
AND tx_extension_domain_model_table.sys_language_uid = 1
AND tx_extension_domain_model_table.deleted = 0
)
)
)
AND tx_extension_domain_model_table.deleted = 0
AND tx_extension_domain_model_table.t3ver_state <= 0
AND tx_extension_domain_model_table.pid <> -1
AND tx_extension_domain_model_table.hidden = 0
AND tx_extension_domain_model_table.starttime <= 1459780380
AND (tx_extension_domain_model_table.endtime = 0 OR tx_extension_domain_model_table.endtime > 1459780380)
ORDER BY tx_extension_domain_model_table.sorting ASC

...以及重要的部分:
    AND (
tx_extension_domain_model_table.sys_language_uid = -1
OR (
tx_extension_domain_model_table.sys_language_uid = 1
AND tx_extension_domain_model_table.l10n_parent = 0
)
OR (
tx_extension_domain_model_table.sys_language_uid = 0
AND tx_extension_domain_model_table.uid IN (
SELECT tx_extension_domain_model_table.l10n_parent
FROM tx_extension_domain_model_table
WHERE tx_extension_domain_model_table.l10n_parent > 0
AND tx_extension_domain_model_table.sys_language_uid = 1
AND tx_extension_domain_model_table.deleted = 0
)
)
)

这解释了我的问题。 TYPO3 在本地化时不会在 sys_language_uid = 1 中寻找 new = 1 ......但为什么呢?

问题:这是一个错误还是一个功能?

最佳答案

这是 extbase 中的一个错误,请参阅此处了解更多信息:https://forge.typo3.org/issues/57272

关于localization - Typo3 7.6 extbase 存储库匹配仅影响非本地化记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36396978/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com