Как использовать DataProcessors с плагинами TYPO3

Часто показан способ добавления DataProcessor на СТРАНИЦУ или FLUIDTEMPLATE. Как его можно связать с плагином TYPO3?

Для СТРАНИЦЫ это можно сделать так:

page {
    10 {
        dataProcessing {
            1558428437 = BK2K\BootstrapPackage\DataProcessing\ConstantsProcessor
            1558428437 {
                as = myconstants
                key = settings.constants
            }
        }
   }
}

Но можно ли сделать что-то вроде этого:

config.tx_extbase {
    dataProcessing {
        1558428437 = BK2K\BootstrapPackage\DataProcessing\ConstantsProcessor
        1558428437 {
            as = myconstants
            key = settings.constants
        }
    }

Большое спасибо!


person Jonas    schedule 21.05.2019    source источник


Ответы (2)


Нет, это невозможно, поскольку обработчики данных являются функцией FLUIDTEMPLATE контентный объект в одиночку.

В этом случае вы можете вызвать ConstantsProcessor вручную в действии вашего контроллера. Вы можете получить текущий ContentObjectRenderer через $this->configurationManager->getContentObject(). $processorConfiguration такой же, как в TypoScript, но как массив:

$constantsProcessor = GeneralUtility::makeInstance(ConstantsProcessor::class);
$data = $constantsProcessor->process(
    $this->configurationManager->getContentObject(),
    [],
    [
        'key' => 'settings.constants',
        'as' => 'myconstants',
    ],
    []
);

// Use $data['myconstants']
person Mathias Brodala    schedule 21.05.2019
comment
Конфигурация мне кажется неправильной, по какой-то причине вам всегда нужно добавлять dataProcessing. = ›[] Уровень в массиве конфигурации. - person Daniel; 04.01.2021
comment
Не уверен, что вы имеете в виду. В таком вложении нет необходимости, поскольку процессор напрямую использует данный ключ и as. См. github.com/benjaminkott/bootstrap_package/blob /11.0.2/Classes/ - person Mathias Brodala; 04.01.2021
comment
По моей вине, я предпочитаю использовать ContentDataProcessor.php, которому нужен дополнительный уровень. Что, конечно, неверно при прямом использовании процессоров. - person Daniel; 04.01.2021

В настоящее время это невозможно.

Это определенно будет функцией, которая значительно упростит жизнь интеграторам.

person Daniel    schedule 21.05.2019
comment
Есть ли уже какие-нибудь подделки? - person JKB; 15.01.2021
comment
Мне не известны какие-либо существующие проблемы, доказательства концепции или что-то еще. Некоторые расширения, такие как EXT: news, пытаются обойти это с помощью настраиваемых сигналов, позволяющих изменять переменные. - person Daniel; 14.06.2021