Smarty template engine

Hogyan működik?

Hogyan működik?
A Smarty-sablonok szintaxisa a következő: HTML kódba ágyazva {$valtozo}, illetve vezérlési szerkezetek (pl.: elágazások, ciklusok) esetén {if [feltétel]} [kódrész] {/if}. Az értelmezés úgy történik, hogy egy adott PHP fájl példányosítja a Smarty osztályt, majd legenerálja az adott oldalon megjelenítendő dinamikus tartalmakat, amiket az assign() metódussal átad a Smarty osztály objektumpéldányának, majd a display() metódust meghívva beilleszti azokat a paraméterben megadott sablonba.

Smarty-sablon (index.tpl):
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <html> <head> <title>{$title_text|escape}</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <body> {* Smarty komment *} {$body_html} </body> </html>

PHP fájl:
define('SMARTY_DIR', 'smarty-2.6.22/'); require_once(SMARTY_DIR . 'Smarty.class.php'); $smarty = new Smarty(); //példányosítás $smarty->template_dir = './templates/'; //itt találhatóak a tpl-ek $smarty->compile_dir = './templates/compile/'; //ide kerülnek a lefordított php fájlok $smarty->assign('title_text', 'TITLE: This is the Smarty basic example ...'); $smarty->assign('body_html', 'BODY: This is the message set using assign()'); $smarty->display('index.tpl');

Telepítése:
Smarty-ban és PHP-ban fejleszthetünk Windows vagy Linux alatt is.
Ez a leírás egy leheséges telepítést ír le, melynek végrehajtása után működni fog a letölthető példa program, és sikeresen próbálkozhatunk saját program írásával is.

A csomagok telepítésére Synaptic csomagkezelőt a legegyszerűbb használni, de aki parancssorból apt-vel szeretné, annak sincs semmi akadálya.
Ezeken a csomagokon kívül még érdemes feltenni, a phpmyadmin-t is, ez adatbázis kezelésre ideális, telepítés után a "localhost/phpmyadmin" címen érhetjük el.

A smarty használatához szükség van egy tamplate könyvtárra, ahol a tpl-eket tároljuk és egy compile könyvtárra, ahol a lefordított kódot tároljuk. Az utóbbira ne feleljtsünk el megfelelő jogot adni, hogy a smarty tudja frissíteni a kódot. A könyvtárak neve tetszőleges lehet, a php kódban, ahol használjuk, paraméterként kell megadni a smartynak (ahogy a fenti példában is látszik).