TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes()TYPO3 具有向记录的 BE 形式添加或替换一个或多个字段的功能。
我们如何删除字段?
(替换为''不起作用)
说明:它是关于仅在某些s
中隐藏某些字段。
过去我们通过覆盖完整值来做到这一点。但随着从 6.2LTS 升级到 8LTS,我们遇到了问题,因为默认标签已更改(语言文件的路径),因此一些标签在 BE 中丢失,这一点很晚才注意到。
现在我想要一种干净的方法来删除单个字段,以便剩余字段的定义与核心(或其他扩展)中的默认值保持干净。tt_contentCType
如果使用静态字符串设置值,则添加自己字段的其他扩展也会出现问题:这些字段也会被删除。
由于确实无法插入空字符串,因此您可以创建一个空调色板。这样您仍然会得到一个要插入的非空字符串,但它不会在表单中创建任何输出。
addToAllTCAtypes('table', '--palette--;;empty', '', 'replace:fieldname')
Run Code Online (Sandbox Code Playgroud)
并且您应该提出一个功能请求,以便在即将推出的 TYPO3 版本中至少可以替换为空字符串。
小智 0
在代码中这样做:
foreach ($GLOBALS['TCA']['yourtablenamehere']['types'] as &$definition) {
$definition['showitems'] = '';
}
Run Code Online (Sandbox Code Playgroud)
如果您只需要重置特定类型('0'例如):
$GLOBALS['TCA']['yourtablenamehere']['types']['0']['showitems'] = '';
Run Code Online (Sandbox Code Playgroud)
如果您想完全覆盖类型而不是清除它们(无论如何,仅清除没有多大意义):
$GLOBALS['TCA']['yourtablenamehere']['types']['0']['showitems'] = 'title, bodytext';
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1981 次 |
| 最近记录: |