我的一些新闻被用在不同的语言上。为了存档,我需要将此新闻的语言设置为ALL (ID: -1
)。当我这样做时,新闻工作,但图像不工作,因为图像是一个sys_file_reference,这不会改变语言。也没有字段来改变后端图像的语言,所以我需要在数据库中这样做。
我找到了这个问题的bug报告:
https://forge.typo3.org/issues/48883
并且我使用bug报告中的"fix",这样至少可以在后端更改语言:
$TCA['sys_file_reference']['palettes']['filePalette']['isHiddenPalette'] = 0;
(这将进入模板的ext_tables.php)。
无论如何,这不是一个好的解决方案,编辑经常会忘记更改(所有)图像的语言。
有人找到/知道一个更好的解决这个问题的方法吗?您可以使用一个自定义函数,将其挂接到DataHandler(将后端表单存储在数据库中的组件)。
这里的棘手之处在于,您需要根据原始记录(tx_news条目)的类型修改相关记录(sys_file_reference)。DataHandler按顺序处理记录,因为它们是由HTML表单发送的。诀窍在于基本(在您的例子中是新闻)记录总是首先出现,因此您可以使用该信息来确定何时需要启动自定义逻辑。
在自定义钩子中,您可以使用基记录中的语言来设置子记录的语言。一个可能的钩是processDatamap_postProcessFieldArray
。在TYPO3核心文档中记录了注册这样的钩子:https://docs.typo3.org/typo3cms/CoreApiReference/ApiOverview/Hooks/Configuration/Index.html