如何使用带有 TYPO3 插件的数据处理器

How to use DataProcessors with TYPO3 plugins

将DataProcessor 添加到PAGE 或FLUIDTEMPLATE 的方法经常出现。如何分配给TYPO3插件?

对于 PAGE,您可以这样做:

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
        }
    }

非常感谢!

这目前是不可能的。

这绝对是一个可以让集成商的生活更轻松的功能。

不,这是不可能的,因为数据处理器是 FLUIDTEMPLATE content object 单独的一个功能。

在这种情况下,您可以在控制器操作中手动调用 ConstantsProcessor。您可以通过 $this->configurationManager->getContentObject() 获取当前的 ContentObjectRenderer$processorConfiguration 与 TypoScript 中的相同,但作为数组:

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

// Use $data['myconstants']