Smarty
Smarty | |
Fejlesztő | Monte Ohrt, Messju Mohr |
Legfrissebb stabil kiadás | 3.0.7 (2011-02-11) |
Programozási nyelv | PHP |
Kategória | Sablonkezelés |
Licenc | NGPL |
A Smarty weboldala |
A Smarty egy PHP alapú webes sablonrendszer. Fő feladata, hogy szétválassza az alkalmazás logikáját, illetve a megjelenítési réteget. A Smarty modell-nézet-vezérlő szerűen sablonfájlokat használ, melyekben speciális Smarty „tagek” segítségével határozható meg a generált HTML, vagy XML kód.
Értelmezés
[szerkesztés]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/';
$smarty->compile_dir = './templates/compile/';
$smarty->assign('title_text', 'TITLE: This is the Smarty basic example ...');
$smarty->assign('body_html', '<p>BODY: This is the message set using assign()</p>');
$smarty->display('index.tpl');
Extra szolgáltatások
[szerkesztés]- Gyorsítótárazás
- Egyedi konfigurációs fájlok
- Változó-modifikáció
- Sablonfüggvények (PHP függvény futtatása Smarty változón; pl.: {$valtozo|nl2br}
- Bővítmények
Külső hivatkozások
[szerkesztés]- Hivatalos honlap (angolul)
- Tutorial.hu: Smarty cikkek (magyarul)
- Ingyenesen letölthető Smarty segédlet (magyarul)