TYPO3改变模板里面的动作方法

时间:2016-08-03 12:44:03

标签: typo3 typo3-7.6.x

在我的分机中,我有singleAction方法。我想在这个方法中更改模板,因为我有2个模板用于单个操作。可能吗?如果不可能,我该如何解决这个问题?也许会产生另一个动作?

2 个答案:

答案 0 :(得分:3)

设置模板并不那么简单。 setTemplategetTemplate不存在于视图中。 您可以恢复为独立视图实现,该实现支持使用setTemplatePathAndFilename

(从Ludwig复制的示例)

/**
 * 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!'));

您还可以使用typoscript切换到其他模板。

plugin.tx_yourpluginname.view.templateRootPaths = EXT:extension_name/Resources/Private/CustomPath/Templates/

这可以放入你想要的任何打字条件。

答案 1 :(得分:0)

处理此问题的最佳方法是简单地在操作模板中进行切换,以加载不同的部分。这样,整个逻辑流程将保持完整,并且以后需要编辑代码的每个人都可以立即理解。