W kolejnych dwóch częściach mini kursu o SMARTY postaram się przybliżyć sposób działania na tablicach (nieasocjacyjnych oraz asocjacyjnych). Przykłady nie będą obejmowały wywołania bibliotek smarty. Jak tego dokonać opisałem w pierwszej części mini kursu.
Ta część będzie poświęcona tablicom nieasocjacyjnym.
Na początek coś łatwego czyli najprostsza tablica, przekazanie jej do szablonu o nazwie przyklad.tpl oraz jego wyświetlenie.
$tablica = array('element 1', 'element 2', 'element 3', 'element 4');
$smarty->assign('tablica', $tablica);
$smarty->display('przyklad.tpl');
W szablonie (przyklad.tpl) możemy zarówno odwołać się do konkretnego elementu tablicy oraz wyświetlić je w pętli.
Odwołanie się do konkretnego elementu możemy uzyskać dzięki wskazaniu jego indeksu.
{$tablica[0]}, {$tablica[1]}, {$tablica[2]}, {$tablica[3]}
Efektem tego będzie wyświetlenie na stronie tekstu:
element 1, element 2, element 3, element 4
W celu dokonania przejścia przez wszystkie elementy tablicy można skorzystać z funkcji section. Każdy znacznik musi być zamknięty. Przyjmuje kilka parametrów, z których 2 są obowiązkowe - name oraz loop.
Sekcje mają swoje zmienne do określania własności. Aby się do nich “dostać” używamy składni:
{$smarty.section.nazwa_sekcji.wlasnosc}
Lista własności: index, index_prev, index_next, iteration, first, last, rownum, loop, show, total.
Zbierając wszystko do kupy przykładowy kod będzie wyglądał tak:
{section name=nazwa_petli loop=$tablica}
indeks: {$smarty.section.nazwa_petli.index}, wartość: {$tablica[nazwa_petli]}<br />
{/section}
Co w wyniku pokaże:
indeks: 0, wartość: element 1 indeks: 1, wartość: element 2 indeks: 2, wartość: element 3 indeks: 3, wartość: element 4
Możliwe jest również użycie tagu
{sectionelse}
Dzięki niemu można zmienić działanie pętli w wypadku, gdy aktualna jej wartość jest pusta.
Szybki przykład:
{section name=nazwa_petli loop=$tablica}
wartość: {$tablica[nazwa_petli]}<br />
{sectionelse}
Brak wartości
{/section}
Mam nadzieję, że powyższy artykuł pomoże Wam lepiej zrozumieć pętle w SMARTY.
W kolejnej części opiszę sposób operowania na tablicach asocjacyjnych.