5

在我的模型中的 TYPO3 6.2 中,我有一个名为 的文件的公共字段,documents这没什么不寻常的 :)ObjectStorage\TYPO3\CMS\Extbase\Domain\Model\FileReference

问题出在本地化页面上,就在我创建我的 obj 的本地化版本时,它的所有字段都已正确本地化,但不是documents- 它总是使用默认语言的文件引用:/ 我读到了未解决的错误,但是有没有指出可行的解决方法...有人可以建议我该怎么做吗?

如果没有任何帮助,我将编写自己的FileRef模型,但最好避免这种情况,因为有几个地方需要更改。

我在模型中的领域(getter 和 setter 是标准的)

/**
 * Documents
 *
 * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\TYPO3\CMS\Extbase\Domain\Model\FileReference>
 * @cascade remove
 */
protected $documents = NULL;

在 TCA 中:

'documents' => array(
    'exclude' => 1,
    'label' => 'Documents',
    'config' =>
        \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::getFileFieldTCAConfig(
            'documents',
            array('maxitems' => 999)
        ),
),
4

1 回答 1

2

TYPO3 的前端有两个错误,如果它是关于覆盖pages. 原因是,该表使用专用表pages_language_overlay来保存这些翻译。

翻译页面时,不会将子记录(文件引用)复制到新的本地化记录。如果与翻译内容元素相比,行为应该是相同的。修复此行为将仅集成在 TYPO3 CMS 7 和 CMS 8 中,请参阅问题 #78743了解未来几天/几周的进展。

如果您在原始语言记录和翻译记录之间共享文件引用,这意味着翻译记录没有定义单独的文件引用,那么您可以通过修改 TCA 在前端显示翻译页面时解决这些空文件引用。

// put that to some TCA Overrides file, e.g.
// typo3conf/ext/my_ext/Configuration/TCA/Overrides/pages_language_overlay.php
$GLOBALS['TCA']['pages_language_overlay']['columns']['documents']['l10n_mode'] = 'exclude';

使用该模式指示 TYPO3在前端渲染过程中exclude跳过对字段的覆盖。当模型从存储中重构时,Extbase 也会调用documents覆盖过程。PageRepositoryPage

于 2016-11-21T15:32:45.580 回答