TYPO3 V11 t3d 导入保留 crdate 和 tstamp 值

问题描述 投票:0回答:1

我正在从 t3d 导入从另一个实例导出的typo3自定义扩展记录。比如说它的一个事件记录。导入后,事件记录 crdate 和 tstamp 值将更改为当前日期和时间。但对我来说,保留这些时间戳以查看它的创建时间非常重要。我检查了一下,页面和 tt_content 记录也发生了同样的情况。是否有任何设置或解决方法可以解决此问题?

谢谢你。

typo3
1个回答
0
投票

T3D 导入使用 TYPO3 DataHandler 创建记录。这样做的好处是可以使用正常数据编辑和插入所使用的中央逻辑。

DataHandler 实际上总是将 tstamp 和 crdate 设置为当前时间:

DataHandler::processRemapStack():

if ($GLOBALS['TCA'][$table]['ctrl']['tstamp'] ?? false) {
    $fieldArray[$GLOBALS['TCA'][$table]['ctrl']['tstamp']] = $GLOBALS['EXEC_TIME'];
}

对于 DataHandler::process_datamap():

if ($status === 'new') {
    if ($GLOBALS['TCA'][$table]['ctrl']['crdate'] ?? false) {
        $fieldArray[$GLOBALS['TCA'][$table]['ctrl']['crdate']] = $GLOBALS['EXEC_TIME'];
    }
}

这意味着只要定义了表的 TCA,就会填写当前日期。

如果在导入时取消设置这些特定字段的扩展的 TCA 选项(暂时仅在导入期间),您可以规避这一点,但是这相当脏,并且如果在导入期间处理您的实例,则会产生副作用。

我会尝试调查为什么要执行此操作,如果我发现了,请告诉您:-)。

© www.soinside.com 2019 - 2024. All rights reserved.