2017-05-30 5 views
1

Ich versuche gerade ein Karussell mit Bootstrap im Frontend zu bauen.TYPO3: Zähle in Flüssigkeit

Die Erzeugung der Dias funktioniert großartig.

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

Jetzt brauche ich die kleinen Punkte für die Kontrollen.
Das Problem ist, dass sie sich wie diese zählen müssen:

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

die gleiche f:for Schleife verwenden, wie ich die Folien in Kombination mit dem iteration Attribut zu erzeugen, hat nicht funktioniert, weil es in der Reihe verschachtelt ist und Säulen.
darauf folgender Ausgang mit <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> 

Zum Glück ist der gallery Array hat auch eine ganze Zahl in dem die Menge der Bilder {gallery.count.files} = 3 gespeichert ist.

Es muss eine einfache Möglichkeit geben, for-loops oder ähnliches zu verwenden, um mit nur einer Ganzzahl zu zählen und kein Array zu haben, oder?

Antwort

1

In TYPO3v8 und oben:

{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}')} 

In TYPO3v7 und früher finden Sie die VHS-Bibliothek benötigen und f:variable für v:variable.set und {count + 1} für {count -> v:iterator.sum(b: 1)} ersetzen.