Niezalogowany (Zaloguj się)

Kategorie

Vanilla 1.0.3 jest produktem Lussumo. Więcej informacji: Dokumentacja, Forum.

    • CommentAuthoradmirau
    • CommentTimeDec 27th 2006
     
    Podczas wyświetlania tabeli na stronie,
    dla lepszej czytelności, warto co drugi wiersz wyróźnić innym kolorem.

    Można to łatwo zrobić w PHPTAL.

    Obrazuje to poniższy plik szablonu,
    wyświetlający tablicę $tablica

    ---
    plik: plik_szablonu.html
    <code lang="xml">
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html>
    <head>
    <title tal:content="tytul">
    miejsce na tytuł strony
    </title>

    </head>

    <body>
    <h1 tal:content="tytul">miejsce na tytuł strony</h1>
    <table border="1">
    <thead>
    <tr>
    <th>Nagłówek</th>
    </tr>
    </thead>
    <tbody>
    <tr tal:repeat="wiersz tablica">
    <td tal:content="wiersz" tal:attributes="class php: repeat.wiersz.odd ? 'drugi' : 'pierwszy'">wiersze tabeli</td>
    </tr>
    </tbody>
    </table>
    </body>
    </html>
    </code>

    Kluczowym jest wiersz:

    <code lang="xml">
    <td tal:content="wiersz" tal:attributes="class php: repeat.wiersz.odd ? 'drugi' : 'pierwszy'">wiersze tabeli</td>
    </code>

    w którym definujemy, że zawartość znacznika <td> będzie zamieniona przez wartość zmiennej 'wiersz', a atrybut 'class' będzie - zależnie od tego, czy 'wiersz' jest parzysty czy nie - przyjował wartość 'pierwszy' lub 'drugi'.

    Oczywiście, trzeba dorobić jeszcze osobny plik CSS, w którym definiujemy wygląd klas 'pierwszy' i 'drugi'.

    Powyższe rozwiązanie jest proste, ale niezbyt eleganckie, ponieważ w kodzie szablonu HTML używa wyrażenia PHP.

    Aby ominąć ten problem i zagwarantować rozdzielność warstw logiki od prezentacji, trzeba stworzyć swój własny modyfikator, który będzie sprawdzał czy nr wiersza jest parzysty.