仅对页面 table 禁用 sys_file_reference_field

Disable sys_file_reference_field only for pages table

我在 sys_file_reference 中添加了一个复选框,并利用它来覆盖一些响应式流体渲染。工作正常。现在我想在页面媒体字段中禁用此复选框。通常禁用字段很容易通过页面错别字

TCEFORM.TABLENAME.FIELDNAME.disabled = 1

然而,由于 sys_file_reference 在两个页面中都使用了 tt_content 这将不起作用,因为它会全局禁用它:

TCEFORM.sys_file_reference.myfield.disabled = 1

我知道我可以使用以下语法禁用某些 CType 的字段:

TCEFORM.tt_content.myfield.types.textmedia.disabled = 1

是否有类似表而不是类型的东西?我尝试失败

TCEFORM.sys_file_reference.myfield.tables.pages.disabled = 1

TCEFORM.pages.myfield.disabled = 1

TCEFORM.pages.tables.sys_file_reference.myfield.disabled = 1

TCEFORM.pages.myfield.tables.sys_file_reference.disabled = 1

TCEFORM.pages.myfield.types.sys_file_reference.disabled = 1

或者我是否需要在 PHP TCA 覆盖中执行此操作?

谢谢

在 TCA 配置中,您可以覆盖特定字段的子配置。因此,您可以将媒体的子 TCA (sys_file_reference) 设置为类型 passthrough 以使其隐藏:

$GLOBALS['TCA']['pages']['columns']['media']['config']['overrideChildTca']['columns']['myfield'] = [
    'config' => [
        'type' => 'passthrough'
    ]
];

有关详细信息,请参阅 TCA Reference