Smarty Template Engine 6.díl - Proměnné III.
Stejně jako PHP, tak i Smarty Template Engine obsahuje speciální proměnné a také zde můžeme tvořit proměnné vlastní. Tato část bude tedy zaměřená spíše na programátory.
Speciální proměnné
Pomocí speciálních proměnných můžeme přistupovat k datům předávaným metodami POST, GET, k hodnotám uloženým v COOKIES, či SESSION. V případě, že nějaké takové máme definované, můžeme je vypsat, či s nimi přímo v .tpl souborech pracovat zcela jednoduchým způsobem.
- $smarty.get.nazev - pro hodnotu "nazev" předanou metodou GET
- $smarty.post.nazev - pro hodnotu "nazev" předanou metodou POST
- $smarty.cookies.nazev - pro hodnotu "nazev" definovanou jako COOKIES
- $smarty.post.session - pro hodnotu "nazev" definovanou jako SESSION
Speciální proměnné
Stejně jako v PHP můžeme i ve Smarty použít některé speciální proměnné. Pro příklad vypíšu ty, jež by se mohli doopravdy hodit. Ve všech příkladech jde o ekvivalenty php funkcí a proto je u některých potřeba použit modifikátory (o kterých budemem mluvit až příště) pro srozumitelné zobrazení.
$smarty.now - vrací čas ve vteřinách od 1. 1. 1970.
$smarty.template - aktuálně používaná šablona
$smarty.section, $smarty.foreach - slouží pro přístup k hodnotám cyklických funkcí ve Smarty. Popíšeme si v příštích dílech
Definování vlastní proměnné
V některých případech (složítejší výpisy dat z DB, výpočty pro ajax aj.) je potřeba definovat přímo v .tpl souboru vlastní proměnnou a dále s ní pracovat. Smarty tuto možnost má, i když práce s takovou proměnnou je poněkud kostrbatá.
Definování proměnné
{assign var=nazev value='hodnota'} /* deklarace */
{$nazev} /* vypis */
Pokud by jsme do proměnné "nazev" uložili číslo jedna a chtěli ho např. při každém kroku cyklu iterovat, postup by byl následující
{assign var=nazev value=1}
{foreach from=$var item=out}
{assign var=nazev value=$nazev+1}
{$nazev} - {$out}
{/foreach}
Další možnosti předávání proměnných
Možností jak předávat proměnné je více, než několik základních, jež jsme si ukázali ve 4. dílu. Ty jsou samozřejmě omezeny možnostmi php, s některými se ale určitě při své práci se Smarty setkáte, proto uvedu ty nejpoužívanější.
Celý seznam naleznete na oficiálních stránkách projektu Smarty
{$item.$promenna} - odkázání na konkrétní index pole pomocí proměnné
{$item->metoda()} - vrátí hodnotu metody
{#foo#} - zobrazí konfigurační == {$smarty.config.foo}
{$foo[4].baz} - odkázání na konkrétní atribut položky indexované jako "4"