Smarty Template Engine 7.díl - Modifikátory I.
Pod pojmem modifikátory si můžeme představit PHP funkce pro úpravu výstupu dat. Výstupní data je často potřeba editovat nejrůznějšími způsoby a pro co nejlepší oddělení aplikační a prezenční logiky nabízí Smarty Template Engine práci s těmi nejdůležitejšími funkcemi.
Jejich zápis je velice jednoduchý a používá se vždy stejně. Modifikátor vyvoláme svislou čarou "|", za níž vložíme název modifikátoru. Parametry pak voláme za dvojtečkami ":".
Modifikátory samozřejmě můžeme kombinovat vložením dalšího svislítka atd.
Pokud existuje možnost vyvolat parametr celé proměnné, provedeme to vložením znaku „@“ před modifikátor.
Je důležité zdůraznit, že modifikátory nemohou naplno nahradit PHP funkce. Z pohledu programátora nejde totiž o nic jiného, než volání souvisejícího modifikátoru, prezentovaného v PHP. Přesto se pro výstup obecně doporučuje editovat výstup až v prezenční logice. Výhoda je opět jasná. XHTML kodér má možnost jednoduše a přehledně pracovat a upravovat data bez potřeby znalosti skriptovacího jazyka, bez nutnosti přijít si za programátorem pro pomoc.
Jednoduchá ukázka výstupu času
V následujícím příkladu si ukážeme modifikaci speciální Smarty proměnné "now" (ukázali jsme si minulém díle). Běžně je však třeba upravovat časový výstup vložení článků, příspěvku do fóra apod.
index.tpl
{$smarty.now|date_format:"%d. %m. %Y"}
Upraví výstup na standartní vzhled pro ČR. Tedy den. Měsíc. Rok
index.tpl
{$smarty.now|date_format:"%d. %m. %Y"}
<br/>
{$smarty.now|date_format:"%d. %m. %Y %H :%M :%S"}
Takovýto výstup navíc přidá k datu Hodinu, minutu a sekundu. Opět podle českých standartů (tedy 24 – hodinový formát).
Procento „%“ uvozuje parametr. Hodnota bez otazníků se obyčejně vepíše mezi datum. Proto můžeme místo teček napsat např.
index.tpl
{$smarty.now|date_format:"%d. %m. %Y"}
<br/>
{$smarty.now|date_format:"%d. %m. %Y %H :%M :%S"}
<br/>
{$smarty.now|date_format:"dne %d mesice %m , roku %Y v hodine %H minute %M a sekunde %S"}
Pro čtenáře, znalé PHP, je jasný menší rozdíl v syntaxi. V PHP se jako modifikátor u funkce „date“ používá „i“, pro sekundy malé „s“ (v PHP je velké „S“ ekvivalentem pro zkratku dne v měsíci). Smarty zavádí menší škálu možnosti a jak je zřejmě, i mírně jinou syntaxi.
Nejznámějšá parametry modifikátoru date_format jsou tyto:
- d – pro den číselnou reprezentaci dne v měsící
- H – 0 – 23 reprezentace hodiny dne
- I – 0 – 11 reprezentace hodiny dne
- m – číselná reprezentace měsíce v roce
- M – číselná reprezentace minuty 0 – 59
- p – am/pm dle času
- R – zkrácený výpis 24 – hodinového formátu času a minuty (ekvivalent pro %H:%M)
- S – sekundy jako číslo
- w – den týdne jako číšlo – pondělí začíná jako „0“
- T – zkrácený výpis 24 – hodinového formátu času a minuty (ekvivalent pro %H:%M:%S)
- y – rok bez století
- Y – rok včetně století
Vše naleznete zde: http://smarty.net/manual/en/language.modifier.date.format.php