当 sys_language_uid != 0 时,TCA 覆盖 showItem
TCA override on showItem when sys_language_uid != 0
我正在将 TYPO3 v8.7 更新到 TYPO3 10.4 LTS
在 TCA 中,我们有一个带有我们选择的 showitem
的 pageType。在 v8 中,我们使用以下内容为翻译页面创建自定义视图,例如。 pages_language_overlay
$GLOBALS['TCA']['pages_language_overlay']['types'][$doktype] = array_replace_recursive(
$GLOBALS['TCA']['pages_language_overlay']['types'][$doktype],
[
'showitem' => '
myCustomShowItemString
'
]
);
问题:由于 pages_language_overlay 不再存在,再次出现此行为的正确方法是什么?
因为翻译后的 pages
记录也是 pages
记录,您需要此配置用于 table pages
.
要么你已经有了,因为你的新doktype对每种语言的行为都是一样的
或者如果 sys_language_uid
不是 0
,则需要特殊处理。
然后你可能需要 display conditions 那些根据 sys_language_uid
表现不同的字段(这个可见,其他不可见?)
TCA - 必须在自定义字段之后加载的文件
$disableOnLanguageOverlay = [
'my_tca_field',
'my_tca_field',
];
foreach ($disableOnLanguageOverlay as $field) {
if (isset($GLOBALS['TCA']['pages']['columns'][$field])) {
$GLOBALS['TCA']['pages']['columns'][$field] = array_merge($GLOBALS['TCA']['pages']['columns'][$field], ['l10n_mode' => 'exclude']);
}
}
对于 Typoscript
[siteLanguage("languageId") != 0]
TCEFORM {
pages {
myField {
disabled = 0
}
}
}
[global]
上面解决了
我正在将 TYPO3 v8.7 更新到 TYPO3 10.4 LTS
在 TCA 中,我们有一个带有我们选择的 showitem
的 pageType。在 v8 中,我们使用以下内容为翻译页面创建自定义视图,例如。 pages_language_overlay
$GLOBALS['TCA']['pages_language_overlay']['types'][$doktype] = array_replace_recursive(
$GLOBALS['TCA']['pages_language_overlay']['types'][$doktype],
[
'showitem' => '
myCustomShowItemString
'
]
);
问题:由于 pages_language_overlay 不再存在,再次出现此行为的正确方法是什么?
因为翻译后的 pages
记录也是 pages
记录,您需要此配置用于 table pages
.
要么你已经有了,因为你的新doktype对每种语言的行为都是一样的
或者如果 sys_language_uid
不是 0
,则需要特殊处理。
然后你可能需要 display conditions 那些根据 sys_language_uid
表现不同的字段(这个可见,其他不可见?)
TCA - 必须在自定义字段之后加载的文件
$disableOnLanguageOverlay = [
'my_tca_field',
'my_tca_field',
];
foreach ($disableOnLanguageOverlay as $field) {
if (isset($GLOBALS['TCA']['pages']['columns'][$field])) {
$GLOBALS['TCA']['pages']['columns'][$field] = array_merge($GLOBALS['TCA']['pages']['columns'][$field], ['l10n_mode' => 'exclude']);
}
}
对于 Typoscript
[siteLanguage("languageId") != 0]
TCEFORM {
pages {
myField {
disabled = 0
}
}
}
[global]
上面解决了