typo3流体 - 如何检查两个或更多Colpos是否具有内容,然后打印HTML
-
20-12-2019 - |
题
我只有在其中一个或多个Colpos内容中才能打印以下HTML。如果没有内容元素,那么我不想打印HTML的这个块(整个“行”)。
<div class="row">
<div class="col-sm-4">
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="5" />
</div>
<div class="col-sm-4">
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="6" />
</div>
<div class="col-sm-4">
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="7" />
</div>
</div>
.
我想了解彩色,并尝试在流体上做或条件。但我不知道如何做到这一点。我知道我可以逐一检查:
<f:if condition="{f:cObject(typoscriptObjectPath: 'lib.dynamicContent', data: '5')}">
...HTML for colPos 5 HERE...
</f:if>
.
但我不想这样做。在我的模板中,我有几个不同的Colpos,它们由块(行)组织。像Colpos 1到5是一个块(行)。在另一个块(行)中的CLPOS 10至25。但是一些页面不会使用Colpos的一些块(行),因此没有理由打印Colpos未使用的那些块(行)的HTML代码。
谢谢你的帮助!
解决方案
仅流体解决方案是将每个变量的<f:cObject>
-Viewhelpers的结果分配给变量,然后在条件下使用这些变量的串联。V: - 示例中的v:扩展VHS的命名空间:
<v:variable.set name="col-5" value="{f:cObject(typoscriptObjectPath: 'lib.dynamicContent', data: '5')}"/>
<v:variable.set name="col-6" value="{f:cObject(typoscriptObjectPath: 'lib.dynamicContent', data: '6')}"/>
<v:variable.set name="col-7" value="{f:cObject(typoscriptObjectPath: 'lib.dynamicContent', data: '7')}"/>
<f:if condition="{col-5}{col-6}{col-7}">
<div class="row">
<div class="col-sm-4">{col-5}</div>
<div class="col-sm-4">{col-6}</div>
<div class="col-sm-4">{col-7}</div>
</div>
</f:if>
.
当然应该将此内容移动到部分,从而获取列的数组以作为参数打印。然后你只需要写一次逻辑。
此外,如果您真的需要25列,则应再次考虑。
其他提示
自拼写错误8.6,这是可能的,没有延伸“VHS”:
<f:variable name="col-5">
<f:cObject typoscriptObjectPath="lib.dynamicContent" data="5" />
</f:variable>
<f:if condition="{col-5}">
<f:format.raw>{col-5}</f:format.raw>
</f:if>
. 不隶属于 StackOverflow