在后端的tt_content
(无翻译/ sys_language_uid = 2
)中创建l10n_parent = 0
记录并在type => 'inline'
列tx_foo_slider_slides
中插入字段时(以下定义) ,则tx_foo_domain_model_slide
中在sys_language_uid = 0
中新创建的记录。将图像添加到幻灯片的图像字段会使用sys_file_reference
创建一个sys_language_uid = 2
。 这正确吗?如果没有,该如何更改?我希望使用tt_content
创建所有记录(tx_foo_slider_slides
,sys_file_reference
,sys_language_uid = 2
)。似乎在更新之前创建的记录确实将sys_language_uid
设置为2,但是我不确定8到9之间发生了什么变化:这是核心变化吗?还是我的网站/语言配置? sys_language_uid
在TCA中的默认值为0,但删除该默认值并创建其他记录不会显示任何不同的行为。
当试图通过ExtBase存储库加载记录时,我似乎不得不使用setRespectSysLanguage(false)
:
setLanguageOverlayMode(false)
的结果setLanguageOverlayMode(true)
的结果,但是图像字段是NULL
。
tx_foo_domain_model_slide.sys_language_uid
更改为2,则在BE和FE / ExtBase(image
是有效的FileReference
)中看起来还不错可能出了什么问题?可能需要更改什么?我认为以非默认语言创建记录是受支持的情况吗?对我来说,根本原因似乎是使用错误的语言集创建的记录。
我的配置:
config.tx_extbase.features.consistentTranslationOverlayHandling = 1
(但也测试过0
)config.sys_language_overlay = 0
(我认为1
或hideNonTranslated
不会改变任何行为)languageId: '0'
)已禁用。languageId: '2'
)已启用; fallbackType: strict
tx_foo_domain_model_slide
列的自定义表image
:'image' => [
'label' => $ll.'tx_foo_domain_model_slide.image',
'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
'image',
[
'appearance' => [
'createNewRelationLinkTitle' => 'LLL:EXT:cms/locallang_ttc.xlf:images.addFileReference',
],
'overrideChildTca' => [
// types ...
],
'minitems' => 1,
'maxitems' => 1,
],
$GLOBALS['TYPO3_CONF_VARS']['GFX']['imagefile_ext'] .',m4v,mp4v,mp4'
),
],
tx_foo_slider_slides
中的列tt_content
:[
'label' => $ll . 'slider.slides',
'config' => [
'type' => 'inline',
'appearance' => [
'collapseAll' => true,
'expandSingle' => true,
],
'foreign_field' => 'slider',
'foreign_sortby' => 'sorting',
'foreign_table' => 'tx_foo_domain_model_slide',
'maxitems' => 100,
'minitems' => 0,
],
],
答案 0 :(得分:2)
在这种情况下,问题是tx_foo_domain_model_slide.sys_language_uid
被定义为:
'sys_language_uid' => [
'config' => [
'type' => 'passthrough',
'default' => '',
],
],
根据TCA docs:
- FormEngine默认情况下不呈现任何传递类型。但可以将其与自定义renderType组合以使其呈现某些内容。不过,用户类型更适合此类用例。
- 类型传递字段的值通常也不会在后端的其他位置呈现。
这导致未设置sys_language_uid
(并保持为0)。因此,sys_language_uid
必须定义为'type
=>'select'`或类似名称。要隐藏它,可以将其放入hidden palette中,如here所述。