Zebra Striping con PHPTAL?
-
11-07-2019 - |
Domanda
Sto provando PHPTAL e voglio renderizzare un tavolo con strisce zebrate. Sto eseguendo il looping di un semplice array php assoc ($ _SERVER).
Nota che non voglio usare jQuery o qualcosa del genere, sto cercando di imparare a usare PHPTAL!
Attualmente lo faccio funzionare in questo modo (troppo dettagliato per i miei gusti):
<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>
Fondamentalmente voglio una sorta di assegnazione condizionale al volo, ma non sono sicuro della sintassi.
Soluzione
Puoi creare un modificatore di espressione scrivendo la funzione phptal_tales_evenodd ()
(vedi phptal_tales ()
nel manuale):
<td tal:attributes="class evenodd:repeat/item/odd">
Altri suggerimenti
Beh, sembra che io abbia la mia risposta, anche se penso ancora che sia piuttosto brutto:
<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>
Qualcuno ha trovato qualcosa di più grazioso in cerca di PHPTAL?