TYPO3 Extbase - 在缓存后操纵 TCA(使用信号槽/挂钩) - 可能吗?

TYPO3 Extbase - Manipulating TCA (using Signal Slot / Hook) after it has been cached - possible?

我试图主要操作 TCA 数组(域模型其 "showitem"-值)主要是因为那些可以定义的选项卡 (--div--;locallang) 不能有 displayCond -所以我添加了一个正常条件,它通过 $_POST 参数获取 select-tag 的值,并尝试在 [=12] 的必要部分更改此 "showitem"-value =].

现在的问题是:TCA 缓存在 typo3temp 文件夹的 cache_core-directory 中 - 禁用整个缓存根本不是解决方案。

那么我应该怎么做,因为我通常希望在我的 TCA 中的那些选项卡上有这个 displayCond(注意:使用域模型)。

Used TYPO3 Version: 8.7.29

我希望有解决办法。 问候。

在这个问题上坐了几个小时,并尝试使用信号 slots/hooks 和 TCA 文件本身 - 所有结果都一样:TCA 已缓存。

我希望信号 slot/hook 总是被调用,所以我不知道如何解决这个问题。

2 年后(以及更多使用 TYPO3 的经验)有 2 个已知的解决方案;

  1. 为每个选项卡的所有字段添加一个 displayCond,因为如果没有要显示的字段,TYPO3 将自动隐藏一个选项卡。
  2. 在 TYPO3 10.4.20 中有 AfterTcaCompilationEvent (https://docs.typo3.org/m/typo3/reference-coreapi/master/en-us/ApiOverview/Hooks/Events/Core/Configuration/AfterTcaCompilationEvent.html) 在这种用例中可能很有用。