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.
- Operációs rendszer: Ubuntu (bármilyen verzió)
- Szükséges csomagok:
- apache2
- libapache2-mod-php5
- php5
- php5-mysql
- smarty
- mysql-server
- mysql-client
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).