Вызовите ViewHelper из шаблона Fluid
В моей общей настройке страницы я определяю шаблон следующим образом: page.10.template.file = fileadmin/template.html
Есть ли способ вызвать MVC ViewHelper в этом шаблоне? Фрагмент
{namespace xyz=PATH\TO\MY\ViewHelpers}
<xyz:myhelper argument="abc" />
не работает в приведенном выше шаблоне, он отображается как есть.
1 ответ
Мне не совсем понятно, какой объект вы используете для шаблона своей страницы. Если вы хотите использовать Fluid ViewHelpers в своем шаблоне страницы, я бы порекомендовал использовать FLUIDTEMPLATE для вашего шаблона страницы.
1. ШАБЛОН
Если вы используете 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 (с маркерами и подчастями), вы не можете напрямую использовать 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" />