1

1 つ以上の 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>

colPos を取得して、Fluid で OR 条件を実行しようと考えました。しかし、私はそれを行う方法がわかりません。次のように1つずつ確認できることを知っています:

<f:if condition="{f:cObject(typoscriptObjectPath: 'lib.dynamicContent', data: '5')}">
   ...HTML for colPos 5 HERE...
</f:if>

しかし、私はそれをしたくありません。私のテンプレートには、ほぼ 50 の異なる colPos があり、それらはブロック (行) で編成されています。colPos のように 1 ~ 5 が 1 つのブロック (行) です。colPos 10 ~ 25 は別のブロック (行) にあります。しかし、一部のページでは colPos の一部のブロック (行) が使用されないため、未使用の colPos のブロック (行) の HTML コードを印刷する理由はありません。

ご協力いただきありがとうございます!

4

2 に答える 2

1

TYPO3 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>
于 2018-03-19T14:45:51.847 に答える