gpt4 book ai didi

templates - 如何在没有 Extbase 的情况下渲染 Fuid View 模板?即 eID 的电子邮件模板

转载 作者:行者123 更新时间:2023-12-01 15:19:09 26 4
gpt4 key购买 nike

我想通过 TYPO3 eID 脚本发送电子邮件,使用 Fluid 模板文件呈现邮件正文。我找不到在正常 MVC Extbase 上下文之外初始化 Fuid View 的简单方法。我发现的所有资源似乎都已过时且非常复杂。

那么渲染流体模板需要什么?

最佳答案

这是我编写的用于呈现模板的简单函数。

/**
* Renders the fluid email template
* @param string $template
* @param array $assign
* @return string
*/
public function renderFluidTemplate($template, Array $assign = array()) {
$templatePath = \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName('EXT:myextension/Resources/Private/Templates/' . $template);

$view = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Fluid\\View\\StandaloneView');
$view->setTemplatePathAndFilename($templatePath);
$view->assignMultiple($assign);

return $view->render();
}

echo renderFluidTemplate('mail.html', array('test' => 'This is a test!'));

typo3conf/ext/mytemplate/Resources/Private/Templates/mail.html 中的流体模板可能如下所示:

Hello
{test}

输出

Hello
This is a test!

您需要布局和局部?

/**
* Returns the rendered fluid email template
* @param string $template
* @param array $assign
* @param string $ressourcePath
* @return string
*/
public function renderFluidTemplate($template, Array $assign = array(), $ressourcePath = NULL) {
$ressourcePath = \TYPO3\CMS\Core\Utility\GeneralUtility::getFileAbsFileName($ressourcePath === NULL ? 'EXT:myextension/Resources/Private/' : $ressourcePath);

/* @var $view \TYPO3\CMS\Fluid\View\StandaloneView */
$view = \TYPO3\CMS\Core\Utility\GeneralUtility::makeInstance('TYPO3\\CMS\\Fluid\\View\\StandaloneView');
$view->setLayoutRootPath($ressourcePath . 'Layouts/');
$view->setPartialRootPath($ressourcePath . 'Partials/');
$view->setTemplatePathAndFilename($ressourcePath . 'Templates/' . $template);
$view->assignMultiple($assign);

return $view->render();
}

关于templates - 如何在没有 Extbase 的情况下渲染 Fuid View 模板?即 eID 的电子邮件模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25772722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com