PHP knihovny - Smarty V

V tomto díle o Smarty šablonovacím systému budou ukázány především vestavěné funkce pro formátování dat, tvoření formulářů a vytvážení tabulek.

31.3.2005 15:00 | MaReK Olšavský | přečteno 14253×

Formuláře pomocí Smart

Šablonovací systém Smarty nabízí několik funkcí, které autorovi ušetří značné množství práce, ale především času, při vytváření formulářů. (Formuláře jsou jednou z nejdůležitějších součástí interaktivních WWW stránek, neřkuli internetových obchodů.) Jména všech těchto funkcí začínají řetězcem html_ (včetně koncového podtržíka). Bohužel možnosti tvorby formulářů pomocí Smarty šablon nejsou úplné a je výhodnější použít Smarty plugin, který bude popsán v pozdějších dílech.

html_checkboxes

Příkaz html_checkboxes slouží k vytvoření zaškrtávacích boxů. Korektní název by mohl být pole spínačů, protože každý lze nastavit bez ovlinění ostatních, výjimkou může být ovládání pomocí javascriptu. Vyžadovaná pole mohou být naplněna ještě na straně PHP scriptu, nebo dle aktuální situace na straně šablony. Výstup do zobrazované šablony je kompatibilní s požadavky normy XHTML. Parametry funkce jsou následující:

html_radios

Tento příkaz slouží vytvoření přepínačů, na rozdíl od checkboxů může být vybrána pouze jedna hodnota.  Opět mohou být vyžadovaná pole naplněna jak na straně PHP scriptu, tak přímo v šabloně. Výstup je opět generován kompatibilní s normou XHTML. Parametry funkce jsou stejné jako u html_checkboxes, se dvěma vyjímkami:

html_options

Příkaz ke generování rozbalovací nabídky select (option), který je opět generován 100% kompatibilní s XHML  standardem. Automaticky je řešen předvýběr zvolené hodnoty, případně více hodnot. Jestliže je místo kterékoliv ze vstupních hodnot v poli values vnořené pole, je udělán podvýběr (stejně jako při použití <optgroup> při ruční tvorbě). Parametry funkce jsou stejné jako v případě html_checkboxes, s několika výjimkami:

html_select_date

Funkce, která generuje do formuláře na www stránce výběr datumu. Funce má velké množství nepovinných parametrů, které definují pojmenování proměnných, rozsah zadávání, ... Parametry jsou následující:

html_select_time

Funkce ekvivalentí předchozí, ale sloužící pro vytvoření select boxů pro výběr času. Počáteční nastavení předvybraného času může být provedeno v několika formátech. může se jednat o Unixový timestamp, nebo jako řetězec obsahující i Y-M-D. Je podporovýn formát YYYY-MM-DD, ale je správně rozkódován i datum s jednociferným číslem pro měsíc a den, Pokud jedna z hodnot Y-M-D není nastavena, nebude proveden předvýběr hodnoty.  Funkce nemá žádné povinné paramety, které jsou následující:

Další důležité funkce

Smarty poskytují funkce pro vložení obrázku (html_image) a tabulky (html_table).

html_image

Funkce pro vložení obrázku do stránky.  Pokud nejsou zadány v šabloně výška a šířka, jsou tyto automaticky vypočítány při kompilování šablony. Pokud je použita tato funkce je k obrázku přistupováno při kažbém načítání šablony. Pokud nepoužíváte cacheování (bude probráno v příštím díle), je výhodnější nepoužívat tuto funkci a zadat tag pro vložení obrázku staticky. Při použití parametru href je tag pro vložení obrázku automaticky obalen odkazem (tag <a href="...">obrazek</a>. Cesta k obrázku může být zadána relativně, pokud tak není učiněno, je použita hodnota DOCUMENT_ROOT jako základ. Jestliže je použito zabezpečení, cesta musí vést mimo zabezpečený adresář. Parametry funkce jsou následující:

html_table

Funkce pro vygenerování tabulky a její naplnění daty hodnotami ve vstupním poli. Parametry tr_attr a td_attr jsou používány cyklicky. Parametry funkce jsou následující:

mailto

Funkce pro automatizované vytváření odkazů na emailovou adresu se všemi možnými parametry tohoto odkazu. Samozřejmostí je možnost "schování" emailové adresy do hexadecimálního zápisu adresy, nebo do javascriptu. Parametry funkce jsou tyto:

cycle

Funkce funguje pro cyklické procházení hodnot, používá se například pro cyklické změny barev či stylů v buňkách, či řádcích tabulek.  Procházení několika různých polí tabulky je realizovatejné pomocí několika cyklů, přičemž každý z nich má unikátní jméno. Lze vynutit zakázání zobrazení některého z výstupů tabulky, kdy se nastaví parametr print='false'.  Parametry funkce jsou následující:

counter

Counter je počítadlo pro zobrazení. Pamatuje si hodnotu poslední hodnotu iterace, lze určit směr a krokování cyklu. Lze použít několik počítadel, ale každé z nich musí mít unikátní pojmenování. Žádný parametr není povinný a pro tuto funkci jsou to tyto:

math

Funkce math slouží ke zobrazení hodnoty výpočtu, případně k jejímu přiřazení do proměnné šablony k dalšímu použití. Podporované funkce jsou +, -, /, *,  abs, ceil, cos,  exp, floor, log, log10, max, min, pi, pow, rand, round, sin, sqrt,  srans a tan, které se používají stejným způsobem, jako jejich ekvivalenty v PHP.  Použití funkce math je mnohem náročnější, než zpracování výpočtu na straně PHP kódu a posléze pouze zobrazení hodnoty v šabloně! Parametry funkce jsou tyto:

Závěr

V tomto díle byly představeny funkce, které jsou použitelné při tvorbě šablon. Balíček s příklady za poslední 2 díly je ke stažení zde. Příští díl bude zaměřen na práci s cache, konfigurační soubory šablon a možnosti ladění, poté budou díly zaměřené na dosud nevysvětlené metody Smarty šablon na straně PHP scriptu,  tipy, triky, rozšířené funkce a možnosti použití hotových, případně tvorby vlastních pliginů.
Online verze článku: http://www.linuxsoft.cz/article.php?id_article=775