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

标签 typo3 typoscript extbase typo3-9.x

通常会显示将 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 的一项功能一个人。

在这种情况下,您可以在 Controller 操作中手动调用 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']

关于typo3 - 如何使用带有 TYPO3 插件的数据处理器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56238503/

相关文章:

typo3 - 如何使 extbase 扩展从插件中识别存储页面?

php - 如何在 intelephense 中定义一个未定义的函数(在 VSCode 中)?

typo3 - 在我的 TYPO3 6.2.9 中找不到 class.tslib_pibase.php

php - Typo3 +TV 不渲染内容元素

TYPO3新闻扩展名、图片上传大小

extbase - 保存 ExtBase 模型后如何获取 ID?

TYPO3 数据库查询处理器 : Multiple Outputs of same UIDs

typo3 - 插入特定的 tt_content 元素作为 ('type' => 'inline' )

sql - TYPO3-typolink中标题的父页面字段

typo3 - 使用 Fluid 显示 Extbase FileReference