0

我有多个网站的安装。每个站点都有一个站点包,其中包含特定于该站点的自定义字段和内容元素。

但是自定义字段和内容元素会显示在所有站点上。

在 tt_content.php 中,我将自定义元素添加到类型下拉列表中。如何将其隐藏,然后在 ts config 中为它所使用的页面树启用它?

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addTcaSelectItem(
    'tt_content',
    'CType',
    [
        'Banner',
        'my_extension_banner',
        'EXT:core/Resources/Public/Icons/T3Icons/content/content-image.svg'
    ],
    'textmedia',
    'after'
);

同样,我在现有元素中添加了一些自定义字段。除非该字段的页面的 ts 配置特别启用,否则如何隐藏此字段?

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addFieldsToPalette(
    'tt_content',
    'headers',
    '--linebreak--,my_extension_myfield',
    'after:subheader'
);
4

2 回答 2

1

经过反复试验,我发现我可以通过将其添加到以下内容来全局删除元素和字段ext_localconf.php

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addPageTSConfig('

    #Remove Custom Content Elements
    TCEFORM.tt_content.CType.removeItems := addToList(my_extension_banner)

    #Remove Custom Fields
    TCEFORM.tt_content {
        my_extension_myfield.disabled = 1
    }

');

然后使用我的页面特定的 ts 配置文件再次添加它们PageTSConfig.tsconfig

#Add Custom Content Elements
TCEFORM.tt_content.CType.removeItems := removeFromList(my_extension_banner)

#Add Custom Fields
TCEFORM.tt_content {
    my_extension_myfield.disabled = 0
}
于 2019-11-05T21:31:29.843 回答
0

我不知道我是否正确理解了这个问题,但是您可以将 Page TsConfig 放在任何网页的根页面中,然后相应地隐藏这些字段:

TCEFORM.pages {
   subtitle.disabled = 1
}
于 2019-11-05T15:10:26.040 回答