在带有ext:mask的TYPO3 7LTS中,我想将页面模板中的一个值传递到通过掩码扩展呈现的FLUIDTEMPLATE中。
下面是我想要实现的一个例子:
内容元素包含描述汽车的内容:一辆沃尔沃,一辆四轮驱动...
在页面模板中,我想用不同的颜色显示“汽车”。因此,页面模板将能够命令:“获取第一辆汽车,并将其显示为绿色。然后,第二辆汽车,将其显示为黄色”。(不,它与css没有任何关系。)
如果必须在整个页面上执行一次,我可以使用
`tt_content.default.mask_car.settings.color = green`
或者(根据记录)如果该变量的目的是修改演示文稿,我可以使用:
`tt_content.default.mask_car.settings.file = path/to/Mask/Content/Templates/car_green.html`
但是如果页面上有同一个content元素的多个实例,那么这种方法就不好用。
如何将不同的值传递到页面上同一CE的不同实例中?
发布于 2017-03-11 07:53:38
您可以添加以下TypoScript:
lib.set_register = LOAD_REGISTER
lib.set_register.color = TEXT
lib.set_register.color.current = 1
lib.get_register.color = TEXT
lib.get_register.color.data = register:color
lib.mask_car < styles.content.get
lib.mask_car.select.where = colPos=123
在您的页面模板中,您可以使用Fluid设置颜色
<f:cObject typoscriptObjectPath="lib.set_register.color" data="green"/>
使用Fluid获取内容元素
<f:cObject typoscriptObjectPath="lib.mask_car"/>
并使用Fluid在掩码模板中切换内容元素的输出
<f:if condition="{f:cObject(typoscriptObjectPath: 'lib.get_register.color')} == 'green'">
<f:then>
green
</f:then>
<f:else>
not green
</f:else>
</f:if>
我希望这能帮助你解决你的问题。
发布于 2017-04-29 05:02:48
我遇到了一个类似的问题:一个掩码内容元素的集合;同一个页面上同一元素的两个不同的渲染:
我的解决方案:
渲染随机引导器:
lib.qa_random_teaser_community < styles.content.get
lib.qa_random_teaser_community.select{
where = colPos=12
pidInList = {$pidCommunityQAStorage}
max = 1
orderBy = rand()
}
详细信息列表的呈现:
lib.qa_list_community < styles.content.get
lib.qa_list_community{
renderObj < tt_content
renderObj.default.mask_qa_community.settings.renderListItems = 1
select {
where = colPos=12
pidInList = {$pidCommunityQAStorage}
}
}
我将掩码复制到renderObj,然后我可以修改它,为tt_content元素添加一个专门用于此内容呈现的设置:
renderObj.default.mask_qa_community.settings.renderListItems = 1
在掩码模板中,我只需检查设置并触发相应的渲染:
<f:if condition="{settings.renderListItems}">
<f:then>
<f:render section="qa-detail" arguments="{data:data}"/>
</f:then>
<f:else>
<f:render section="qa-teaser" arguments="{data:data}"/>
</f:else>
</f:if>
另一种方法是选择专用的流体模板,而不是仅仅提供设置:
renderObj.default.mask_qa_community.settings.file = .......
在带有TYPO3 8的掩码3.0.1中...
renderObj.mask_qa_community.settings.file = .......
希望对其他人有用。
发布于 2019-05-27 03:44:33
在TYPO3 9掩码为4.x的情况下,我重新考虑了这个问题,这是可行的:
lib.my_content_element {
renderObj.mask_content_text.settings.test = 123
}
https://stackoverflow.com/questions/42728116
复制相似问题