繁体   English   中英

如何在另一个 sys_file_reference 中创建 sys_file_reference?

[英]How to create a sys_file_reference inside another sys_file_reference?

我需要将一些轨道文件添加到 TYPO3 文件参考中。 所以我扩展了 sys_file_reference 的 TCA 并添加了一些字段。 其中一个字段应该是对另一个文件的引用。 它的工作原理是我可以在后端选择一个文件在此处输入图像描述

不幸的是,如果我添加了曲目,我将无法保存。 TYPO3 给我一个异常。

#1300098528 InvalidArgumentException 对为 FileReference 提供的原始文件的引用不正确。

发生此异常是因为轨道参考的 uid_local 为 0。但我不知道为什么这是 0 以及如何修复它。

这是我的 TCA 配置

'tx_eos_video_tracks' => [
    'exclude' => 1,
    'label' => 'Track files',
    'description' => 'captions, chapters, descriptions, metadata, subtitles',
    'config' => \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig('tx_eos_video_tracks', [
        'appearance' => [
            'createNewRelationLinkTitle' => 'Add Track'
        ],
        'overrideChildTca' => [
            'types' => [
                '0' => [
                    'showitem' => '
                    --palette--;;tx_eos_video_tracks_palette'
                ]
            ],
        ],
    ], 'vtt,srt')
],

好的,我找到了解决方案。 Child TCA 中必须始终存在字段 uid_local、hidden、sys_language_uid、l10n_parent。 有一个预定义的调色板('filePalette'),它添加字段而不向用户显示它们。

如此变化

'overrideChildTca' => [
        'types' => [
            '0' => [
                'showitem' => '
                --palette--;;tx_eos_video_tracks_palette'
            ]
        ],
    ],

'overrideChildTca' => [
        'types' => [
            '0' => [
                'showitem' => '
                --palette--;;tx_eos_video_tracks_palette,
                --palette--;;filePalette'
            ]
        ],
    ],

解决了我的问题

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM