仅针对一种内容类型(CType)覆盖imageManipulation / crop的TCA配置

时间:2019-04-17 14:53:21

标签: typo3 typo3-9.x

我有三种类型的内容元素(tt_content | types),它们全部使用一个image列以及一个图像的每个FAL关系。

我想将具有{strong> 2种不同配置的type = 'imageManipulation'Docs)用于2个内容元素,并仅使用一个图像。

由于type = 'imageManipulation'通常是为sys_file_reference定义的,因此对于所有用法都是如此。

使用TCA替代功能可以为不同的内容元素归档不同的配置吗?

我尝试了columnsOverridesoverrideChildTca的组合,但这暂时不起作用:

<?php
defined('TYPO3_MODE') or die();

(function () {
    if (is_array($GLOBALS['TCA']['tt_content']['types']['mask_teaser_hero'])) {
        $GLOBALS['TCA']['tt_content']['types']['mask_teaser_hero']['columnsOverrides'] = [
            'tx_maskproject_teaserimage' => [
                'config' => [
                    'overrideChildTca' => [
                        'columns' => [
                            'crop' => [
                                'label' => 'LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.crop',
                                'config' => [
                                    'type' => 'imageManipulation',
                                    'cropVariants' => [
                                        'mobile' => [
                                            'title' => 'Mobile',
                                            'selectedRatio' => '4:3',
                                            'allowedAspectRatios' => [
                                                '4:3' => [
                                                    'title' => 'LLL:EXT:lang/Resources/Private/Language/locallang_wizards.xlf:imwizard.ratio.4_3',
                                                    'value' => 4 / 3
                                                ],
                                            ],
                                        ],
                                        'desktop' => [
                                            'title' => 'Desktop',
                                            'selectedRatio' => '16:9',
                                            'allowedAspectRatios' => [
                                                '16:9' => [
                                                    'title' => 'LLL:EXT:lang/Resources/Private/Language/locallang_wizards.xlf:imwizard.ratio.16_9',
                                                    'value' => 16 / 9
                                                ],
                                            ],
                                        ],
                                    ]
                                ],
                            ],
                        ]
                    ],
                ]
            ]
        ];
    }

})();

我首先想到了Typoscript TCEFORM: https://metinyilmaz.de/artikel/typo3-image-cropvariants/

但这也会出现在每个内容元素中。

1 个答案:

答案 0 :(得分:1)

我发现了错误。 TCA覆盖正确。但是类型不是。

我将EXT:mask_export用于内容元素。在问题的示例中,我覆盖了EXT:mask添加的内容元素。但是导出的内容元素是不同的内容元素。

正确的是:

<?php
defined('TYPO3_MODE') or die();

(function () {
    if (is_array($GLOBALS['TCA']['tt_content']['types']['myextname_teaser_hero'])) {
        $GLOBALS['TCA']['tt_content']['types']['myextname_teaser_hero']['columnsOverrides'] = [
            'tx_myextname_teaserimage' => [
                'config' => [
                    'overrideChildTca' => [
                        'columns' => [
                            'crop' => [
                                'label' => 'LLL:EXT:lang/Resources/Private/Language/locallang_tca.xlf:sys_file_reference.crop',
                                'config' => [
                                    'type' => 'imageManipulation',
                                    'cropVariants' => [
                                        'mobile' => [
                                            'title' => 'Mobile',
                                            'selectedRatio' => '4:3',
                                            'allowedAspectRatios' => [
                                                '4:3' => [
                                                    'title' => 'LLL:EXT:lang/Resources/Private/Language/locallang_wizards.xlf:imwizard.ratio.4_3',
                                                    'value' => 4 / 3
                                                ],
                                            ],
                                        ],
                                        'desktop' => [
                                            'title' => 'Desktop',
                                            'selectedRatio' => '16:9',
                                            'allowedAspectRatios' => [
                                                '16:9' => [
                                                    'title' => 'LLL:EXT:lang/Resources/Private/Language/locallang_wizards.xlf:imwizard.ratio.16_9',
                                                    'value' => 16 / 9
                                                ],
                                            ],
                                        ],
                                    ]
                                ],
                            ],
                        ]
                    ],
                ]
            ]
        ];
    }

})();