如何启用子标题,但仅适用于typo3 6.x后端的自定义扩展?

时间:2015-06-23 13:12:21

标签: php content-management-system typo3 backend typo3-6.2.x

我希望子标题显示在我的扩展程序的内容管理器中(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');

这有助于我在扩展程序中显示子标题,但它现在也显示在默认的内容类型中,这是不受欢迎的。如何才能使其仅显示在我的扩展程序中而不影响默认内容类型的其他设置?此外,我仍然需要将副标题重命名为其他内容。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

您可以将 tt_content.php 放在 your_ext / Configuration / TCA / Overrides 文件夹中,并使用以下内容覆盖tt_content的TCA和您自己的扩展程序:

$GLOBALS['TCA']['tt_content']['columns']['subheader']['displayCond'] = [
  'AND' => [
    'FIELD:CType:=:list',
    'FIELD:list_type:=:your_ext_signature',
]

只需与真实签名交换your_ext_signature,您可以在数据库中找到插件内容元素。

Read more关于displayCond

答案 1 :(得分:0)

根据@Viktor和我的一些命中试验的指示,我找到了以下对我有用的解决方案:

my_ext/Configuration/TCA/Overrides/tt_content.php,我现在有:

$GLOBALS['TCA']['tt_content']['columns']['subheader']['displayCond'] = [
    'AND' => [
        'FIELD:CType:=:my_ext_signature',
]];

我在表my_ext_signature的相应CType字段中找到了我的tt_content;所以我把它用于上面的displayCond(我的list_type然后是空的,所以我没有使用它。)

此外,我可以通过在Page:(Page > Right click globe icon > Edit from the menu > Resources)的Resources属性中添加以下内容来重命名后端的子标题

TCEFORM.tt_content {
    subheader.label = My custom title that shows in backend form
}

我必须重新安装扩展程序并清除缓存以查看最终结果。