2008-11-25 6 views
4

J'essaye PHPTAL et je veux rendre une table avec des rayures de zèbre. Je suis en boucle à travers un simple tableau assoc php ($ _SERVER).Zebra Striping avec PHPTAL?

Notez que je ne veux pas utiliser jQuery ou quelque chose comme ça, j'essaie d'apprendre l'utilisation de PHPTAL!

Actuellement je l'ai travailler comme ça (trop bavard à mon goût):

<tr tal:repeat="item server"> 
    <td tal:condition="repeat/item/odd" tal:content="repeat/item/key" class="odd">item key</td> 
    <td tal:condition="repeat/item/even" tal:content="repeat/item/key" class="even">item key</td> 
    <td tal:condition="repeat/item/odd" tal:content="item" class="odd">item value</td> 
    <td tal:condition="repeat/item/even" tal:content="item" class="even">item value</td> 
</tr> 

Fondamentalement, je veux une sorte d'affectation conditionnelle à la volée, mais je ne suis pas sûr de la syntaxe.

+0

J'aime le nom _zebra striping_. Jamais entendu auparavant et fait parfaitement sens. – Pindatjuh

+0

Notez que vous pouvez gérer cela dans CSS3, ce qui est avantageux car il laisse la conception aux concepteurs: tr: nth-child (impaire) { background-color: # 99ff99; } – starmonkey

Répondre

3

Vous pouvez créer modificateur d'expression en écrivant la fonction phptal_tales_evenodd() (voir phptal_tales() dans le manuel):

<td tal:attributes="class evenodd:repeat/item/odd"> 
2

Eh bien, il semble que j'ai ma propre réponse, mais je pense toujours que c'est assez laid:

<tr tal:repeat="item server"> 
    <td tal:content="repeat/item/key" tal:attributes="class php: repeat.item.odd ? 'odd' : 'even'">item key</td> 
    <td tal:content="item" tal:attributes="class php: repeat.item.odd ? 'odd' : 'even'">item value</td> 
</tr> 

Quelqu'un at-il quelque chose de plus gracieux à la recherche de PHPTAL?

Questions connexes