TYPO3 FLUME - 두 개 이상의 COLPOS가 콘텐츠가 있는지 확인하고 HTML을 인쇄하는지 확인하려면 어떻게해야합니까?

StackOverflow https://stackoverflow.com//questions/25006224

문제

하나 이상의 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를 얻고 유체에 대한 또는 조건을하려고 노력하는 것에 대해 생각했습니다.그러나 나는 그것을하는 방법에 대해 전혀 모른다.나는 이렇게 하나씩 하나씩 확인할 수 있다는 것을 알고 있습니다 :

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

그러나 나는 그것을하고 싶지 않습니다.내 템플릿에서 나는 거의 50 개의 다른 colpos를 가지고 있으며 블록 (행)으로 구성됩니다.colpos 1 ~ 5는 하나의 블록 (행)입니다.다른 블록 (행)의 colpos 10에서 25.그러나 일부 페이지는 colpos의 일부 블록 (행)을 사용하지 않으므로 colpos 미사용의 해당 블록 (행)에 대한 HTML 코드를 인쇄하는 데 아무런 이유가 없습니다.

도움을 주셔서 감사합니다!

도움이 되었습니까?

해결책

유체 전용 솔루션은 <f:cObject>-ViewHelpers의 결과를 변수에 할당 한 다음 조건에서 이러한 변수의 연결을 사용하는 것입니다.예제의 v : namespace는 확장 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>
.

물론이 물건을 부분적으로 이동하여 매개 변수로 인쇄 할 열의 배열을 가져옵니다.그런 다음 논리를 한 번만 쓸 필요가 있습니다.

또한 정말로 이 필요하면 다시 생각해야합니다.

다른 팁

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>
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top