2017-05-30 100 views
1

我目前正試圖在前端建立一個帶有自舉的傳送帶。TYPO3:在流體內計數

生成幻燈片效果很好。

<f:if condition="{gallery.rows}"> 
    <f:for each="{gallery.rows}" as="row"> 
     <f:for each="{row.columns}" as="column"> 
      <f:if condition="{column.media}"> 
       <div class="item"> 
        <f:media 
         file="{column.media}" 
         width="{column.dimensions.width}" 
         height="{column.dimensions.height}" 
         alt="{column.media.alternative}" 
         title="{column.media.title}" 
        /> 
        <div class="carouselText"> 
         <div class="container"> 
          <h1>{column.media.title}</h1> 
          <f:if condition="{column.media.description}"> 
          <p> 
           {column.media.description} 
           <f:if condition="{column.media.link}"> 
            <a href="" class="btn btn-xs">read more</a> 
           </f:if> 
          </p> 
          </f:if> 
         </div> 
        </div> 
       </div> 
      </f:if> 
     </f:for> 
    </f:for> 
</f:if> 

現在我需要控制點的小點。
的問題是,他們需要計數是這樣的:因爲我沒有生成與iteration屬性組合的幻燈片,因爲它嵌套行不行

<li data-target="#carousel" data-slide-to="0"></li> 
<li data-target="#carousel" data-slide-to="1"></li> 
<li data-target="#carousel" data-slide-to="2"></li> 

使用相同f:for循環,列。
<f:for each="{row.columns}" as="column" iteration='i'>以下輸出:

<li data-target="#carousel" data-slide-to="0"></li> 
<li data-target="#carousel" data-slide-to="1"></li> 
<li data-target="#carousel" data-slide-to="0"></li> 

幸運的是gallery陣列還具有其中圖像的量存儲{gallery.count.files} = 3的整數。

必須有一個簡單的方法來使用for循環或類似的計數只有一個整數,沒有一個數組,對嗎?

回答

1

在TYPO3v8及以上:

{f:variable(name: 'count', value: 0)} 
<!-- perform iteration to any depth, recursive or reverse or whatever --> 
<li data-slide-to="{count}">..</li> 
{f:variable(name: 'count', value: '{count + 1}')} 

在TYPO3v7和更早的版本,你需要的VHS庫並替換爲f:variablev:variable.set{count + 1}{count -> v:iterator.sum(b: 1)}