我想在我的FluidTemplate中使用MenuProcessor动态。
在TypoScript中配置,我想使用cObject ViewHelper调用它,并将页面的uid传递给它:
{f:cObject(typoscriptObjectPath: 'lib.menuTest', data:{menuId:'28'})}
这是我尝试过的-它应该是一个special = directory
,其中包含给定的uid在special.value = XXXXXX
中。
lib {
menuTest = FLUIDTEMPLATE
menuTest {
templateName = MenuTest
templateRootPaths {
10 = EXT:hatemplate/Resources/Private/Templates/
}
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
special = directory
special.value = XXXXXX
levels = 1
as = menuItems
}
}
}
}
如果直接设置一个uid,它可以工作,但是我不知道如何插入变量。有没有人提示或可行的解决方案?
谢谢
答案 0 :(得分:0)
我已经在TypoScript方面经验丰富的朋友的帮助下解决了这个问题。
我没有我想的那么错误。
这是TypoScript中的代码。我添加了模板模板,布局和部分路径,以供将来复制/粘贴:):
lib {
menuDirectory = FLUIDTEMPLATE
menuDirectory {
templateName = MenuDirectory
layoutRootPaths {
10 = EXT:hatemplate/Resources/Private/Layouts/
}
templateRootPaths {
10 = EXT:hatemplate/Resources/Private/Templates/
}
partialRootPaths {
10 = EXT:hatemplate/Resources/Private/Partials/
}
dataProcessing {
10 = TYPO3\CMS\Frontend\DataProcessing\MenuProcessor
10 {
special = directory
special.value.field = menuId
levels = 1
as = directory
}
}
}
}
使用此配置后,您可以像这样使用f:cObject
ViewHelper:
<f:cObject typoscriptObjectPath="lib.menuDirectory" data="{menuId:1}" />
或内联
{f:cObject(typoscriptObjectPath: 'lib.menuDirectory', data:{menuId:1})}
这会将项目渲染到流体模板中: