将 Fluid 变量传递给 TypoScript
Pass Fluid variable to TypoScript
我想将 Fluid 中的变量(类别的 uid)传递给 TypoScript :
<f:cObject typoscriptObjectPath="lib.testFluid" data="{setting.myvar}/>
然后我想使用 var 获取 pid 942 和类别 {setting.myvar}
的文件夹中的所有内容元素
lib.testFluid = COA
lib.testFluid = CONTENT
lib.testFluid {
table = tt_content
select {
pidInList = 942
where = selected_categories = |
}
}
这不起作用,它会产生 MySql 语法错误。我也尝试使用 current = 1 而不是 where 子句但没有成功。我查看了 post ,我可以重新创建它,但它不适用于我的脚本。 (打字错误3 8)
如果我使用
...
where = selected_categories = 13
....
该脚本将成功显示类别为 13 的所有 CE。我如何使其与 var 一起使用?
你能试试这个吗:
<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=|
}
}
对我来说很难测试,但它可能有用...
我不得不用马克笔解决了一次。我找不到另一种更简单的方法。我给你一个非常通用的解决方案,你可以根据自己的需要进行调整。例如,您可以通过拼写错误设置来设置 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
}
我想将 Fluid 中的变量(类别的 uid)传递给 TypoScript :
<f:cObject typoscriptObjectPath="lib.testFluid" data="{setting.myvar}/>
然后我想使用 var 获取 pid 942 和类别 {setting.myvar}
的文件夹中的所有内容元素lib.testFluid = COA
lib.testFluid = CONTENT
lib.testFluid {
table = tt_content
select {
pidInList = 942
where = selected_categories = |
}
}
这不起作用,它会产生 MySql 语法错误。我也尝试使用 current = 1 而不是 where 子句但没有成功。我查看了 post
...
where = selected_categories = 13
....
该脚本将成功显示类别为 13 的所有 CE。我如何使其与 var 一起使用?
你能试试这个吗:
<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=|
}
}
对我来说很难测试,但它可能有用...
我不得不用马克笔解决了一次。我找不到另一种更简单的方法。我给你一个非常通用的解决方案,你可以根据自己的需要进行调整。例如,您可以通过拼写错误设置来设置 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
}