我只有在其中一个或多个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>
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top