KategorieProgramowanie

[PHP][Smarty] Jak zmieniać cyklicznie tło wiersza ?

W jaki sposób mogę cyklicznie zmieniać tło wiersza tabeli na jeden z listy kolorów zdefiniowanych prze zemnie.

Smarty ma w sobie wbudowanych wiele przydatnych funkcji, które możemy wykorzystywać przy pisaniu naszych szablonów. Właśnie taką funkcją jest cycle, która cyklicznie przetwarza zbiór wartości i zwraca jedną po drugiej.
Załóżmy że mamy tablicę z danymi:

$users[0]["imie"] = "Jacek";
$users[0]["nazwisko"] = "Jacek";
$users[0]["wiek"] = "32";
$users[0]["email"] = "jacek@kowalski.pl";
$users[1]["imie"] = "Anna";
$users[1]["nazwisko"] = "Tomaszko";
$users[1]["wiek"] = "26";
$users[1]["email"] = "anna@tomaszko.pl";
$users[2]["imie"] = "Jacek";
$users[2]["nazwisko"] = "Wolski";
$users[2]["wiek"] = "29";
$users[2]["email"] = "jacek@wolski.pl";

Nasz skrypt będzie wyglądał w następujący sposób:

require_once'libs/smarty/Smarty.class.php';

$smarty = new  Smarty();

$users[0]["imie"] = "Jacek";
$users[0]["nazwisko"] = "Jacek";
$users[0]["wiek"] = "32";
$users[0]["email"] = "jacek@kowalski.pl";
$users[1]["imie"] = "Anna";
$users[1]["nazwisko"] = "Tomaszko";
$users[1]["wiek"] = "26";
$users[1]["email"] = "anna@tomaszko.pl";
$users[2]["imie"] = "Jacek";
$users[2]["nazwisko"] = "Wolski";
$users[2]["wiek"] = "29";
$users[2]["email"] = "jacek@wolski.pl";

$smarty -> assign('users', $users);
$smarty -> display('index.tpl');

Następnie tworzymy sobie plik szablonu który będzie wyglądał w następujący sposób:

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-2">
</head>
<body>
<table cellpadding="0" border="0" cellspacing="0" width="500">
<tr bgcolor="#808080">
    <th>Imię</th>
    <th>Nazwisko</th>
    <th>Wiek</th>
    <th>E-mail</th>
</tr>
{section name=index loop=$users}
<tr bgcolor="{cycle values="#EBEBEB, #D0D0D0"}">                   
    <td>{$users[index].imie}</td>
    <td>{$users[index].nazwisko}</td>
    <td align="center">{$users[index].wiek}</td>
    <td align="center">{$users[index].email}</td>
</tr>
{/section}
</table>
</body>
</html>

Jak widzimy została tutaj wstawiona funkcja cycle w atrybucie TR odpowiedzialnym za ustawianie tła wiersza, ustawia ona poszczególne elementy znajdujące się na jej liście co przebieg pętli section.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *