Manual
2.7. tal:attributes
Atrybut zmienia wartość atrybutu znacznika.
<a href="http://www.foo.com" title="some foo link" tal:attributes="href somelink/href; title somelink/title" tal:content="somelink/text" >sample link</a>
Z definicją atrybutów :
$somelink->href = "http://www.google.com"; $somelink->title = "google search engine"; $somelink->text = "the google search engine";
Spowoduje wyświetlenie :
<a href="http://www.google.com" title="google search engine">the google search engine</a>
Bardziej skomplikowany przykład z tal:repeat powodujący naprzemienne kolorowanie wierszy tabeli :
<tr tal:repeat="ranking playerRankings" tal:attribute="class php: repeat.ranking.odd ? 'odd' : false"> ... </tr>
Modyfikator php: z powyższego przykładu będzie opisany później, jeśli linia będzie parzysta wiersz tr otrzyma atrybut class z wartością odd, w przeciwnym wypadku (jeśli linia będzie nieparzysta) nie otrzyma atrybutu klasy.
Składnia "warunek ? then : else" jest standardowym wygodnym wyrażeniem PHP.
Lepszym sposobem otrzymania tego samego wyniku jest użycie własnego modyfikatora, który może być użyty w następujący sposób :
<tr tal:repeat="ranking playerRankings" tal:attribute="class css-odd:repeat/ranking/odd"> ... </tr>
Modyfikator zwróci odd jeśli repeat/ranking/odd będzie miało wartość true, w przeciwnym wypadku zwróci false.