Можно ли изменить TCV cropVariants типа = 'imageManipulation' на основе других столбцов TCA? - PullRequest
0 голосов
/ 31 мая 2019

Я хотел бы изменить настройку cropVariants для coverAreas на основе выбора, сделанного в других столбцах TCA того же элемента содержимого.

Пользователь должен сначала определить горизонтальное положение изображенияв пределах внутреннего поля tx_maskproject_position_horizontal.Который может быть left или right.Исходя из решения, coverAreas должен покрывать другую часть изображения в мастере «Обработка изображений».

Переопределение TCA для изображения выглядит следующим образом:

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

(function ($vendor, $extKey, $table) {
    /**
     * Content modifications
     */
    if (is_array($GLOBALS['TCA']['tt_content']['types']['maskproject_teaser'])) {
        $GLOBALS['TCA'][$table]['types']['maskproject_teaser']['columnsOverrides'] = [
            'tx_maskproject_image_required' => [
                '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' => '991:557',
                                            'allowedAspectRatios' => [
                                                '539:657' => [
                                                    'title' => '991:557',
                                                    'value' => 991 / 557
                                                ],
                                            ],
                                            'coverAreas' => [
                                                [
                                                    'x' => 0.0,
                                                    'y' => 0.86,
                                                    'width' => 1.0,
                                                    'height' => 0.14,
                                                ]
                                            ],

                                        ],
                                        'desktop' => [
                                            'title' => 'Desktop',
                                            'selectedRatio' => '884:498',
                                            'allowedAspectRatios' => [
                                                '884:498' => [
                                                    'title' => '884:498',
                                                    'value' => 884 / 498
                                                ],
                                            ],
                                            'coverAreas' => [
                                                [
                                                    'x' => 0.0,
                                                    'y' => 0.0,
                                                    'width' => 0.5,
                                                    'height' => 1.0,
                                                ]
                                            ],
                                        ],
                                    ]
                                ],
                            ],
                        ],
                    ],
                ],
            ]
        ];
    }
})('Vendor', 'project', 'tt_content');

Isв этом месте что-то возможно?Что-то похожее на условия отображения (displayCond)?

...