J'ai le nombre de catégories que je veux séparer en rangées, le nombre de catégorie dans une rangée sera base sur $catsInLine
. Les $catsInLine
sont des chiffres de 1 à 12. Chaque catégorie sera enveloppée par DIVs avec la classe de span1 à span 12. Et les catégories seront à nouveau envelopper avec <div class="row-fluid">
pour chaque ligne.Numéros dynamiques de la colonne dans une ligne
J'ai essayé ci-dessous pendant des heures et pas de chance d'obtenir le bon résultat.
<div class="row-fluid">
<xsl:variable name="catsInLine">
<xsl:value-of select="categories_in_line" />
</xsl:variable>
<xsl:variable name="column">
<xsl:value-of select="(12 div $catsInLine)" />
</xsl:variable>
<xsl:for-each select="categories/category">
<xsl:if test="position() mod $catsInLine = 1 or position() = 1">
<xsl:text disable-output-escaping="yes"><div class="row-fluid"></xsl:text>
</xsl:if>
<div class="span{$column}">
<xsl:call-template name="category" />
</div>
<xsl:if test="position() mod $catsInLine = 0 or position() = last()">
<xsl:text disable-output-escaping="yes"></div></xsl:text>
</xsl:if>
</xsl:for-each>
</div>
supposons que le $catsInLine
est 2
, le résultat que je souhaite obtenir est
<div class="row-fluid">
<div class="span6">
<a>Category1</a>
</div>
<div class="span6">
<a>Category2</a>
</div>
</div>
<div class="row-fluid">
<div class="span6">
<a>Category3</a>
</div>
<div class="span6">
<a>Category4</a>
</div>
</div>
si le $catsInLine
est 1
, le résultat devrait être
<div class="row-fluid">
<div class="span12">
<a>Category1</a>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<a>Category2</a>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<a>Category3</a>
</div>
</div>
<div class="row-fluid">
<div class="span12">
<a>Category4</a>
</div>
</div>
la réponse semble ne correspond pas tout à fait à mon code actuel, j'insère tout le code que j'utilisais et espère que vous pouvez réviser votre réponse pour mon – ChongWang87
Pourriez-vous inclure votre XSLT entier si ce n'est pas trop grand? – JLRishe