首页 文章

替换TYPO3 TCA(表配置阵列)中的调色板的正确方法是什么?

提问于
浏览
1

我的情况

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

  • header

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

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

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

我知道在我的theme / sitepackage扩展中可以将子 Headers 字段添加到 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配置中用 headers 字符串替换 header 字符串感觉不太好 .

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

1 回答

  • 0

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

    $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
            ',
        ]
    );
    

相关问题