在我的常规页面设置中,我按如下方式定义模板:page.10.template.file = fileadmin/template.html
有没有办法在这个模板中调用MVC ViewHelper?摘录
{namespace xyz=PATH\TO\MY\ViewHelpers}
<xyz:myhelper argument="abc" />
在上述模板中不起作用,它按原样浮出水面。
答案 0 :(得分:3)
对我来说,这不是100%明确,您使用哪个cObject作为页面模板。如果您想在页面模板中使用Fluid ViewHelpers,我建议您使用FLUIDTEMPLATE作为页面模板。
<强> 1。 FLUIDTEMPLATE 强>
如果您使用FLUIDTEMPLATE作为页面模板,则可以直接在模板中使用任何可用的ViewHelper(来自FLUID或任何其他ExtBase / Fluid扩展)(参见下面的示例)。
的TypoScript
page = PAGE
page.10 = FLUIDTEMPLATE
page.10 {
template = FILE
template.file = fileadmin/templates/template.html
partialRootPath = fileadmin/templates/Partials/
layoutRootPath = fileadmin/templates/Layouts/
variables {
content < styles.content.get
content.select.where = colPos=1
}
}
文件内容:fileadmin / templates / template.html
{namespace xyz=NAMESPACE\EXTENSION\ViewHelpers}
<f:layout name="Main" />
<f:section name="Content">
<xyz:myhelper argument="abc" />
<f:format.html parseFuncTSPath="">{content}</f:format.html>
</f:section>
文件内容:fileadmin / templates / Layouts / Main.html
<f:render section="Content" />
<强> 2。 TEMPLATE 强>
如果您使用TEMPLATE(带标记和子部分),则无法在该模板中直接使用Fluid ViewHelpers。但是你可以定义一个标记来渲染FLUID ViewHelper,如下所示。
的TypoScript
page = PAGE
page.10 = TEMPLATE
page.10 {
template = FILE
template.file = fileadmin/templates/template.html
marks {
CONTENT < styles.content.get
VIEWHELPER = FLUIDTEMPLATE
VIEWHELPER {
template = FILE
template.file = fileadmin/templates/viewhelper.html
partialRootPath = fileadmin/templates/Partials/
layoutRootPath = fileadmin/templates/Layouts/
}
}
workOnSubpart = DOCUMENT
}
文件内容:fileadmin / templates / template.html
<!--###DOCUMENT### Start-->
###VIEWHELPER###
###CONTENT###
<!--###DOCUMENT### end-->
文件内容:fileadmin / templates / viewhelper.html
{namespace xyz=NAMESPACE\EXTENSION\ViewHelpers}
<f:layout name="Main" />
<f:section name="Content">
<xyz:myhelper argument="abc" />
</f:section>
文件内容:fileadmin / templates / Layouts / Main.html
<f:render section="Content" />