使用 TYPO3 中的数据处理器 8
Using the Dataprocessor from TYPO3 8
我尝试使用 TYPO3 8 的数据处理器来制作我的菜单。
我的 TypoScript 脚本中有这段代码:
page = PAGE
page{
10 = FLUIDTEMPLATE
10 {
file = fileadmin/abis/templates/BootstrapTmpl.html
partialRootPath = fileadmin/abis/Partials/
layoutRootPath = fileadmin/abis/Layouts/
}
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
entryLevel= 0
excludeUidList = 27,30,31
levels = 5
#includeSpacer = 1
titleField = nav_title // title
as = huhu
}
}
...
}
这是一个部分:
<f:section name="myMenu" >
<f:debug title="title">{huhu}</f:debug>
<f:cObject typoscriptObjectPath="obj.logo" />
<ul class="nav navbar-nav navbar-left">
<f:for each="{huhu}" as="menuItem">
<li>
{menuItem.text}
<f:if condition="menuItem.subItems">
<f:render section="myMenu" arguments="{myMenu: menuItem.subItems}" />
</f:if>
</li>
</f:for>
</ul>
</f:section>
我的 HTML 输出是空的。变量 {huhu} 为空。我不知道为什么。有人有想法吗?
尝试把你的dataProcessing放到page.10
:
page = PAGE
page {
10 = FLUIDTEMPLATE
10 {
file = fileadmin/abis/templates/BootstrapTmpl.html
partialRootPath = fileadmin/abis/Partials/
layoutRootPath = fileadmin/abis/Layouts/
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
entryLevel= 0
excludeUidList = 27,30,31
levels = 5
#includeSpacer = 1
titleField = nav_title // title
as = huhu
}
}
}
}
首先,"dataProcessing" 必须在 page.10 内完成。其次,您必须将您的论点交给 "f:render" 标签中的部分。不知道您是否这样做,因为您的示例代码中缺少该部分。
我遇到了类似的问题,我的错字代码是正确的。但是,我忘了添加
arguments="{_all}"
调用时
<f:render partial="header" arguments="{_all}" />
在我的布局中。
您还可以在 Partial 中使用 <f:debug>{huhu}</f:debug>
,如果 huhu 为空,您可能忘记了 arguments="{_all}"
.
我尝试使用 TYPO3 8 的数据处理器来制作我的菜单。
我的 TypoScript 脚本中有这段代码:
page = PAGE
page{
10 = FLUIDTEMPLATE
10 {
file = fileadmin/abis/templates/BootstrapTmpl.html
partialRootPath = fileadmin/abis/Partials/
layoutRootPath = fileadmin/abis/Layouts/
}
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
entryLevel= 0
excludeUidList = 27,30,31
levels = 5
#includeSpacer = 1
titleField = nav_title // title
as = huhu
}
}
...
}
这是一个部分:
<f:section name="myMenu" >
<f:debug title="title">{huhu}</f:debug>
<f:cObject typoscriptObjectPath="obj.logo" />
<ul class="nav navbar-nav navbar-left">
<f:for each="{huhu}" as="menuItem">
<li>
{menuItem.text}
<f:if condition="menuItem.subItems">
<f:render section="myMenu" arguments="{myMenu: menuItem.subItems}" />
</f:if>
</li>
</f:for>
</ul>
</f:section>
我的 HTML 输出是空的。变量 {huhu} 为空。我不知道为什么。有人有想法吗?
尝试把你的dataProcessing放到page.10
:
page = PAGE
page {
10 = FLUIDTEMPLATE
10 {
file = fileadmin/abis/templates/BootstrapTmpl.html
partialRootPath = fileadmin/abis/Partials/
layoutRootPath = fileadmin/abis/Layouts/
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
entryLevel= 0
excludeUidList = 27,30,31
levels = 5
#includeSpacer = 1
titleField = nav_title // title
as = huhu
}
}
}
}
首先,"dataProcessing" 必须在 page.10 内完成。其次,您必须将您的论点交给 "f:render" 标签中的部分。不知道您是否这样做,因为您的示例代码中缺少该部分。
我遇到了类似的问题,我的错字代码是正确的。但是,我忘了添加
arguments="{_all}"
调用时
<f:render partial="header" arguments="{_all}" />
在我的布局中。
您还可以在 Partial 中使用 <f:debug>{huhu}</f:debug>
,如果 huhu 为空,您可能忘记了 arguments="{_all}"
.