Смарти
![]() |
|
| Развој | Monte Ohrt, Messju Mohr |
|---|---|
| Најновија верзија | 2.6.19 / 11. фебруар 2008. |
| Врста | Систем за креирање веб шаблона |
| Лиценца | LPGL |
| Веб адреса | www.smarty.net |
Смарти је систем за креирање шаблона веб страница написаних у PHP-у. Као такав, он служи за раздвајање имплементације дотичне веб странице од њене презентације, што олакшава одржавање и њеног изгледа и њене функционалности, као и паралелан рад програмера и дизајнера. Чињеница да омогућава проширивање скупа команди, као и коришћење PHP кода када је то неизбјежно, чини Смарти врло флексибилним алатом за одржавање шаблона веб страница.
Смартијев код се у основи састоји од обичног HTML кода, у који се умећу Смартијеве команде. Након обраде PHP-овог преводиоца, резултујући код је обичан HTML спреман за приказ у веб прегледачу.
Команде Смартија се означавају витичастим заградама; то могу бити команде за приказ садржаја промјенљивих, команде за контролу тока, тј. петље и гранања, и функције, које могу бити уграђене у Смартију и дефинисане од стране програмера.
Примјер[уреди]
Слиједи примјер једне скрипте написане у PHP-у и одговарајућег шаблона написаног у Смартију.
<?php // Датотека "tablicaMnozenja.php" // У односу на локацију скинутог пакета, у код се укључује дефиниција Смартија define("SMARTY_DIR", "smarty-2.6.9/" ); require_once(SMARTY_DIR. "Smarty.class.php"); // Формира се објекат Смартија, помоћу којег се извршава сва даља „комуникација“ // PHP-а и Смартија. $smarti = new Smarty(); $tablicaMnozenja = Array(); // Смарти ће видјети само оне промјенљиве које се припреме помоћу метода „assign“ $smarti->assign("naslov", „Таблица множења: " ); for ($i = 1; $i <= 10; $i++ ) { $tablicaMnozenja[$i] = Array(); for ($j = 1; $j <= 10; $j++ ) $tablicaMnozenja[$i][] = $j; } $smarti->assign("tablicaMnozenja", $tablicaMnozenja ); // Када су све промјенљиве спремне, може се позвати метода „display“ да би се // приказао наш шаблон $smarti->display("tablicaMnozenja.tpl" ); ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html> <head> <title>{$naslov|escape}</title> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <body> {* Штампа се наслов странице, из промјенљиве „naslov“, чија је вриједност била додијељена Смартијевом командом „assign“ *} <h1>{$naslov|escape}</h1> <table border="1"> {* Двоструком петљом штампају се производи елемената дводимензионалног низа *} {foreach from="$tablicaMnozenja" key="y" item="yOsa"} <tr> {foreach from="$yOsa" item="x"} <td>{$y * $x}</td> {/foreach} </tr> {/foreach} </body> </html>
