Smarty Template Engine 23.díl - Funkce VIII.
Popis uživatelských funkcí implementovaných ve Smarty.
html_checkboxes
Velmi vhodnou funkcí, který kodérům ušetří práci, je právě funkce tato, a funkce následující. Slouží k jednoduchému vytváření html formulářů přímo přes rozhraní Smarty. Hlavní předností je hlavně jednoduché přiřazení hodnot čerpaných z aplikační logiky. V případě, že tedy předáváme např. data z databáze, jež potřebujeme použít pro následnou interakci od uživatele, vystačíme si bez cyklu „foreach“, či „section“. Stylování se pak provádí přidáním našeho vlastního, nového parametru. Všechny formuláře pak splňují podmínky pro validitu XHTML.Tento příklad je pro html_checkboxes
- name – jméno checkboxu defaultně:checkbox (nepovinný)
- values - hodnoty, předané jako jednorozměrný array == pole, v html mají ekvivalent v hodnotě „value“ defaultně: --- (povinný)
- output - hodnoty, předávě jako jednorozměrný array == pole. V HTML mají ekvivalent popisku checkboxu. defaultně: ---(povinný)
- selected - zatrhnutý checkbox defaultně: (nepovinný)
- options – výstup checkboxu, v případě, že používáme asociativní pole defaultně: empty(nepovinný)
- separator – oddělovač, vložený mezi jednotlivé checkboxy defaultně: ---(nepovinný)
- assign - přiřazení checkboxu do proměnné v šabloně defaultně: ---(nepovinný)
- label – přidá tag labelu defaultně: true(nepovinný)
- - defaultně: (nepovinný)
Ukázka s acosiativním polem
index.php
<?php
require_once("./hlavicka.php");
$user = array(1 => 'Tom osm',
2 => 'Jan pet',
3 => 'Tonda Sedesat Tri',
4 => 'Milan Banan');
$smarty->assign('is_checked' , '2');
$smarty->assign('style', 'width:150px;');
$smarty->assign('user', $user);
$smarty->display('index.tpl');
?>
index.tpl
{include file='./hlavicka.tpl' hlavicka='Smarty Template Engine'}
<p>
{assign var=id value=1}
{html_checkboxes name='mujcheckbox' selected=$is_checked style=$style options=$user separator='<br/>'}
</p>
{include file='./paticka.tpl'}
V této ukázce jsme si ukázali jak přiřadit proměnné pomocí asociativního pole. Jako hodnoty se předávají data v proměnné „$user“. Proměnnou „style“ nastavujeme styl checkboxu a pomocí proměnné „is_checked“ nastavíme hodnotu, jež má být defalutně zatrhnutal
Pro příklad ještě ukázka s použítím pole obyčejného.
index.php
<?php
require_once("./hlavicka.php");
$user_id= array('1','5','2','15');
$user_name = array('Jan Postulka', 'Honza Koblika', 'Tomas Jeseter', 'Jindra Banan');
$smarty->assign('is_checked' , '2');
$smarty->assign('style', 'width:150px;');
$smarty->assign('user_id', $user_id);
$smarty->assign('user_name', $user_name);
$smarty->display('index.tpl');
?>
index.tpl
{include file='./hlavicka.tpl' hlavicka='Smarty Template Engine'}
<p>
{assign var=id value=1}
{html_checkboxes name='mujcheckbox' selected=$is_checked style=$style values=$user_id output=$user_name separator='<br/>'}
</p>
{include file='./paticka.tpl'}
html_image
Podobně jako „html_“ tato funkce umožňuje generování obrázků tagem „img“ v prostředí Smarty Template Engine. Parametry height/width můžete nastavovat velikost obrázku. V případě, že tyto parametry nevyplníte, obrázek si nastaví vlastní velikost dle té originální.Důležité je, že v případě zakázaného cachování je funkce náročná na znovunačítání obrázků, proto v takovém případě volte raději klasické vkládání pomocí tagu „img“.
Důležitým parametrem je také „basedir“, který je defaultně nastaven na root. Zadává se pro případy, kdy cesta není zadána relativně.
Vítanou vlastností je možné nastavit parametr „href“ na URL obrázku, který automaticky obali obrázek tagem „a_href“.
Jakýmkoliv jiným parametrem máme opět možnost nastavit např. Kaskádové styly.
- file – cesta k obrázku, defaultně: true(povinný)
- height – v případě, že si přejete nastavit výšku defaultně: předaná výška obrázku, true(nepovinný)
- width – v případě, že si přejete nastavit šířku obrázku, defaultně: předaná šířka obrázku, true(nepovinný)
- basedir – nastavení kořenového adresáře defaultně: roottrue(nepovinný)
- alt – alternativní text, doporučuje se vyplňovat pro validní img defaultně: „“(nepovinný)
- path_prefix – defaultně: true(nepovinný)
index.tpl
{include file='./hlavicka.tpl' hlavicka='Smarty Template Engine'}
<p>
{assign var=id value=1}
{html_image name='muj_image' href="http://banan.cz" file="http://banery.banan.cz/banan_250_250.gif" alt="Banan.cz"}
</p>
{include file='./paticka.tpl'}