我想将Fluid中的变量(类别的uid)传递给TypoScript:
.collect(groupingBy(Map.Entry::getKey, summingDouble(Map.Entry::getValue)));
然后我想使用var来获取包含pid 942和类别{setting.myvar}的文件夹中的所有内容元素
<f:cObject typoscriptObjectPath="lib.testFluid" data="{setting.myvar}/>
}
}
这不起作用,它会创建一个MySql语法错误。我也尝试使用current = 1而不是where子句而没有成功。我查看了帖子TYPO3: pass variable to typoscript via cObject?,我可以重新创建它,但它不适用于我的脚本。 (TYPO3 8) 如果我使用
lib.testFluid = COA
lib.testFluid = CONTENT
lib.testFluid {
table = tt_content
select {
pidInList = 942
where = selected_categories = |
该脚将成功显示所有CE类别13.如何使用var?
答案 0 :(得分:2)
<f:cObject typoscriptObjectPath="lib.testFluid" data="{myvar: setting.myvar}/>
lib.testFluid = CONTENT
lib.testFluid {
table = tt_content
select {
pidInList = 942
where.data = field:myvar
where.intval = 1
where.wrap = selected_categories=|
}
}
很难为我测试,但它可能有效...
答案 1 :(得分:0)
我必须用标记解决一次。我找不到另一种更简单的方法。我给你一个非常通用的解决方案,你可以适应你的需求。例如,您可以通过typoscript设置设置pid值,该设置比将其放入代码段代码更优雅。请尝试:
<f:cObject typoscriptObjectPath="lib.testFluid" data="{category: setting.myvar, catPid: 942}" currrentValueKey="category" />
相关的TypoScript代码段:
lib.testFluid = COA
lib.testFluid {
10 = LOAD_REGISTER
10 {
category.cObject = TEXT
category.cObject.value.current = 1
catPid.cObject = TEXT
catPid.cObject.value.dataWrap = { field: catPid }
}
20 = CONTENT
20 {
table = tt_content
select {
pidInList.cObject = TEXT
pidInList.cObject.dataWrap = {REGISTER:catPid}
where = selected_categories=###category###
markers {
category.data = REGISTER:category
}
}
}
30 = RESTORE_REGISTER
}