如何在不要求前端的情况下以编程方式在TYPO3中创建控制器上下文?

时间:2019-07-03 10:20:52

标签: typo3 translation extbase

我必须以多种语言生成大量的数据表,并将其保存到文件系统中。对于这个问题,我不想模拟成千上万个站点请求,在这里我要求进行特定的dataSheet操作(尽管可以通过routeEnhancers轻松配置)。

我要在独立视图中呈现局部视图,并且需要每种语言的语言覆盖域模型对象,模板标签的翻译(简而言之:如果我在前端执行的话,流体引擎将自动处理的所有操作)。为此,我将控制器上下文从控制器传递到PdfService。

/**
     * Render a template
     * @param string $extension gridelements
     * @param string $path Resources/Private/Templates/Mytemplate.html
     * @param array $variables
     * @param null $controllerContext In your controller action use $this->controllerContext, important for using translation
     * @return string
     */
    public function render($extension, $path, $variables = [], $controllerContext = null)
    {
        /** @var StandaloneView $standaloneView */
        $standaloneView = GeneralUtility::makeInstance(StandaloneView::class);
        $templatePathAndFilename = $this->getFileExtPath($extension, $path);
        $standaloneView->setFormat('html');

        if ($controllerContext != null) {
            $standaloneView->setControllerContext($controllerContext);
        } // I don't have this, if not called from frontend !!!

        $standaloneView->setTemplatePathAndFilename($templatePathAndFilename);
        $standaloneView->assignMultiple($variables);
        return $standaloneView->render();
    }

预期结果:正在翻译领域模型对象,正在翻译标签,正在渲染翻译的图像等。 实际结果:全部使用默认语言

0 个答案:

没有答案