在TYPO3 TCA(表格配置数组)中更换调色板的正确方法是什么?

时间:2016-10-27 06:12:45

标签: typo3 typo3-7.6.x typo3-8.x

我的情况

默认TCA为tt_content配置两个不同的调色板:

  • header
  • headers(与标题相同,但添加了子标题字段除外)

默认情况下,只有cType header使用headers调色板。所有其他默认内容元素(css_styled_content或fluid_styled_content)都使用header调色板。

我的实际替代解决方案又是解决方法

我知道在我的theme / sitepackage扩展中可以将subheader字段添加到ext:mytheme/Configuration/TCA/Overrides/tt_content.php中的特定CE:

\TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes(
    'tt_content',
    'subheader',
    'textmedia,bullets,table,uploads,menu,shortcut',
    'after:header'
);

更好的解决方案?

在相应的showitem配置中仅用header字符串替换headers字符串感觉不太好。

有没有更好/更正的方法来替换它?

1 个答案:

答案 0 :(得分:0)

您可以重写“showitem”数组并使用这样的标题调色板(但我不知道这是否真的比您的解决方案更好):

$GLOBALS['TCA']['tt_content']['types']['uploads'] = array_replace_recursive(
    $GLOBALS['TCA']['tt_content']['types']['uploads'],
    [
        'showitem' => '
        --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.general;general,
        --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.header;headers,rowDescription,
        --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:media;uploads,
    --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.appearance,
        --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.frames;frames,
        --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.uploads_layout;uploadslayout,
    --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.access,
        --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.visibility;visibility,
        --palette--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:palette.access;access,
    --div--;LLL:EXT:frontend/Resources/Private/Language/locallang_ttc.xlf:tabs.extended
        ',
    ]
);