Как создать контексты контроллера в TYPO3 программно без запроса во внешнем интерфейсе? - PullRequest
0 голосов
/ 03 июля 2019

Я должен создать тонны таблиц на нескольких языках и сохранить их в файловой системе.Для этой проблемы я не хочу моделировать тысячи запросов сайтов, где я запрашиваю конкретное действие 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();
    }

Ожидаемые результаты: объекты модели домена переводятся, переводятся метки, переводятся изображения и т. Д. Фактический результат: все вязык по умолчанию

...