typo3 - 将变量传递给包含 tx_news 插件的内容对象
问题描述
这与我的问题Counter for mask elements in a TYPO3 column非常相似
我需要将一个变量(在我的情况下,其值是cObj:parentRecordNumber
其列中当前项目的计数器)传递给模板。
在主页模板中:
<f:cObject typoscriptObjectPath="lib.content.pageteasers" />
在打字稿中:
lib.content {
pageteasers < styles.content.get
pageteasers {
select {
where = colPos=2
max = 8
}
// this passes the variable elementCounter to the fluid template of the rendered mask content element:
renderObj.mask_teaser {
variables {
elementCounter = TEXT
elementCounter.value = {cObj:parentRecordNumber}
elementCounter.insertData = 1
}
}
// this should pass the same value to a rendered tx_news plugin:
variables {
elementCounter = TEXT
elementCounter.value = {cObj:parentRecordNumber}
elementCounter.insertData = 1
}
// it doesn't. what about these trial & error:
renderObj.list < .variables
renderObj.plugin.tx_news < .variables
renderObj.list.20.news_pi1 < .variables
renderObj.news_pi1 < .variables
// none of these seem to work either
}
}
然后在渲染的 CE 模板 ( News/List.html
)
<f:debug title="" inline="1">{_all}</f:debug>
我在这里看不到上面的变量。将变量从 TS 传递到新闻流体模板的正确方法是什么?
PS 另一个尝试是使用 Good Old Register
pageteasers < styles.content.get
pageteasers {
select {
where = colPos=2
max = 8
}
append = LOAD_REGISTER
append {
elementCounter = TEXT
elementCounter.value = {cObj:parentRecordNumber}
elementCounter.insertData = 1
}
}
在模板中:
{v:variable.register.get(name: 'elementCounter')}
但那是NULL
解决方案
您通过注册的尝试可能会奏效。但你必须关心,你在哪里做什么......
寄存器
LOAD_REGISTER
是string/stdWrap类型,而不是每个定义的cObject 。如果您想使用基于 cObject 的内容,您可以通过stdWrap -property 声明它(如示例中所示):
1 = LOAD_REGISTER
1.param.cObject = TEXT
1.param.cObject.stdWrap.data = GP:the_id
所以,在你的情况下,它应该像:
elementCounter.cObject = TEXT
elementCounter.cObject.data = cObj:parentRecordNumber
在正确的位置添加
您正在尝试将append直接用作pageteasers
(其styles.content.get
类型为CONTENT
.
CONTENT
没有append属性。此外,您会将寄存器放在整个内容的前面,而不是单个内容元素的前面。=> 它需要作为renderObj的一部分,因此它是按 CE 呈现的。
的renderObj是CONTENT
type CASE
,它也没有直接的stdWrap -properties。但它有一个stdWrap
带有stdWrap -properties 的属性...
结论
所以,你可以得到这个片段:
lib.content {
pageteasers {
renderObj {
stdWrap {
append = LOAD_REGISTER
append {
elementCounter.cObject = TEXT
elementCounter.cObject.data = cObj:parentRecordNumber
}
}
}
}
}
推荐阅读
- assembly - 6502 汇编器中的 BCD 十进制分数比较
- python - Python,如何正确设置索引
- loopback4 - 使用 Firebase 登录的 Loopback 4 身份验证
- python - 将返回函数传递给类后出错
- powershell - 使用 powershell 脚本将包推送到 Octopus Deploy
- flutter - SingleChildScrollView 在列中不起作用
- c# - ScrollViewer 中的 WPF DataGrid
- javascript - 更改 ajax 默认警报框样式
- reactjs - 在重新加载由 react-router 呈现的页面以获得刷新时的预期行为时,我需要考虑什么特别的事情吗?
- ios - 在 Swift 中如何插入新的实体对象