Smarty Template Engine 27.díl - Funkce XII.

Napsal (») 28. 7. 2009 v kategorii PHP/HTML, přečteno: 1320×
obrazky/smarty.gif

Smarty Template Engine 27.díl - Funkce XI.


Uživatelské funkce

{html_table}

Další z na parametry bohatých funkcí je „html_table“, z mého pohledu jde však o ne tak podstatnou kapitolu. Funkce nám automaticky přiřadí data předané z aplikační logiky do jednotlivých buněk tabulky. Pokud bychom ale rádi vypsali asociatiní pole, musíme využívat řídící funkce „foreach“, či „section“. „html_table“ totiž umí pracovat jen a pouze s lineárními poli, kdy každý další záznam z proměnné vypisuje do následující buňky, dle nastavení parametrů. S takovýmto jednoduchým vypisováním se zas tak často nesetkáváme, proto je z mého pohledu u této funkce mírné zklamání z její funkčnosti.


  • loop – název proměnné z aplikační logiky, jež nám přiřazuje data k výpisu ,defaultně: (povinný)

  • cols – jde o napevno zadaný počet sloupců tabulky, defaultně: 3 (nepovinný)

  • rows – jde o napevno zadaný počet řádků tabulky, defaultně: 3 (nepovinný)

  • inner - určuje, zda si nepřejete procházet proměnnou dovnitř, tedy brát jako směrodatný počet iterací „rows - sloupce“,defaultně: cols(nepovinný)

  • caption – nastavuje element caption tabulky ,defaultně: mpty(nepovinný)

  • table_attr - nastavuje základní parametry HTML tagu „table“, jako border aj. ,defaultně: empty (nepovinný)

  • th_attr – atributy iterovaných tagů „th“ ,defaultně: empty (nepovinný)

  • tr_attr – atributy iterovaných tagů „tr“ ,defaultně: empty (nepovinný)

  • td_attr – atributy iterovaných tagů „td“ ,defaultně: empty (nepovinný)

  • trailpad – nastavuje obsah prázdných buněk na konci tabulky,defaultně: empty (nepovinný)

  • hdir - směr, kterým budou vytvářeny jednotlivé řádky, „right“ pro výchozí směr z leva do prava a „left“ pro směr opačný,defaultně: right (nepovinný)

  • vdir – smětr, kterým budou vytvářeny jednotlivé sloupce, „down“ pro od shora dolů a pro směr opačný „up“ ,defaultně: (nepovinný)



index.php
<?php
require_once("./hlavicka.php");

$user = array('1','5','7','8','2','12','1456','98','5','7');
$smarty->assign('user', $user);

$smarty->display('index.tpl');
?>


index.tpl
{include file='./hlavicka.tpl' hlavicka='Smarty Template Engine'}
<p>
{html_table loop=$user caption='tabulka' cols=5 rows=3 trailpad='X' }
</p>
{include file='./paticka.tpl'}


- Parametrem loop tedy nastavujeme proměnnou, jež si přejeme procházet.
- Caption tabulk udává totožný parametr v HTML.
- Cols nastaví pevně počet buněk v jedno řádku na 5
stejně tak rows pevně počet řádků na 3.
- Parametr trailpad vkládá do buněk bez dat nakonci tabulky znak X.


{math}

Knihovna „math“ umožňuje provádět matematické operace přímo uvnitř té konkrétní tabulky. Možné prostředky funkce vycházejí z PHP knihovny math. V případě použítí parametru assign bude výsledek přiřazen do proměnné v šabloně.
Každopádně je výhodnější používat pro výpočty spíše PHP, hlavně pro jistotu správného ošetření vstupních proměnných a zaručení toho, že budeme počítat to, co doopravdy potřebujeme. I tak se občas výpočtům přímo v šabloně nevyhneme, ale pro lidi znalé PHP by to neměl být problém.


  • equation – zadání k provedení výpočtu, defaultně: (povinný)

  • format – výstup na bázi funkce sprintf ,defaultně: (nepovinný)

  • var - uživatelem definovaná nová proměnná,defaultně: (nepovinný)

  • [var..] - v případě, že je potřeba proměnných víc, mohou se ukládat do pole ,defaultně: (nepovinný)

  • assign – přiřazení výsledku výpočtu samostané proměnné v šabloně ,defaultně: (nepovinný)



index.php
<?php
require_once("./hlavicka.php");


$smarty->assign('row_height', '200');
$smarty->assign('row_width', '75');
$smarty->assign('division', '4');


$smarty->display('index.tpl');
?>


index.tpl
{include file='./hlavicka.tpl' hlavicka='Smarty Template Engine'}
<p>
{math equation="height * width / base" base=$division height=$row_height width=$row_width }
</p>
{include file='./paticka.tpl'}


Do námi definovaných proměnných "base", "height" a "width" uložíme hodnoty předané z aplikační logiky a na obrazovku se následně vypíše výsledek.
Facebook Twitter Topčlánky.cz Linkuj.cz

Komentáře

Zobrazit: standardní | od aktivních | poslední příspěvky | všechno
Článek ještě nebyl okomentován.


Nový komentář

Téma:
Jméno:
Notif. e-mail *:
Komentář:
  [b] [obr]
Odpovězte prosím číslicemi: Součet čísel jedna a šest