我希望子标题显示在扩展的内容管理器中(Typo3 6.2.11 CMS后端)。因此,我在自定义扩展的ext_tables.php中添加了以下行:
'TYPO3'CMS'Core'Utility'ExtensionManagementUtility::addFieldsToPalette('tt_content','header','--linebreak--,subheader;LLL:EXT:cms/locallang_ttc.xlf:subheader_formlabel','after:header');
这有助于我在扩展中显示子标题,但它现在也显示在默认的内容类型中,这是不需要的。如何使它只显示在我的扩展中而不影响默认内容类型的其他设置?此外,我还需要将副标题重命名为其他内容。如有任何帮助,我们将不胜感激。
您可以用自己的扩展覆盖tt_content的TCA,方法是将tt_content.php放在your_ext/Configuration/TCA/Overrides文件夹中,其中包含以下内容:
$GLOBALS['TCA']['tt_content']['columns']['subheader']['displayCond'] = [
'AND' => [
'FIELD:CType:=:list',
'FIELD:list_type:=:your_ext_signature',
]
只需用真正的签名交换your_ext_signature
,您可以在DB中找到插件内容元素的签名。
阅读有关displayCond 的更多信息
根据@Viktor的指示以及我的一些命中率和试训,我得出了以下对我有效的解决方案:
在my_ext/Configuration/TCA/Overrides/tt_content.php
中,我现在有:
$GLOBALS['TCA']['tt_content']['columns']['subheader']['displayCond'] = [
'AND' => [
'FIELD:CType:=:my_ext_signature',
]];
我在表tt_content
的相应CType
字段中找到了我的my_ext_signature
;所以我在上面的显示Cond中使用了它(但是我的list_type
是空的,所以我没有使用它)。
此外,我还可以在后台通过在页面的Resources属性中添加以下内容来重命名副标题:(Page > Right click globe icon > Edit from the menu > Resources)
:
TCEFORM.tt_content {
subheader.label = My custom title that shows in backend form
}
我不得不重新安装扩展并清除缓存以查看最终结果。