Smarty dają duże ułatwienie, nie trzeba mieszać pliku php z html, co często szkodzi skryptowi, skrypty są czytelniejsze, mniejsza objętość skryptów, łatwa zmiana styli ;)
po I ściągamy to: http://www.smarty.net/do_download.php?download_file=Smarty-2.6.19.zip
II. Wypakowujemy tylko folder "libs"
III. Otwieramy folder "libs" i szukamy "Smarty.class.php"
IV. otwieramy "Smarty.class.php" i w pliku szukamy dwóch rzeczy:
var $template_dir = 'templates';
oraz
var $compile_dir = 'templates_c';
V. Dla ułatwienia zamieniamy var $template_dir = 'templates'; na var $template_dir = 'szablony'; a var $compile_dir = 'templates_c'; na var $compile_dir = 'cashe';
Zapisujemy i zamykamy "Smarty.class.php"
VI. Tworzymy w głownym folderze 2 katalogi: "szablony" i "cashe". Folder "cashe" pozostaje pusty, a w folderze "szablony" będziemy wrzucać pliki tpl
VII. Otwieramy plik config.php (albo inny, który jest zaincludowany na każdej podstronie), w pliku config.php na końcu tuż przed ?> (lub w innym pliku na początku po <?php) dodajemy:
define('ROOT', dirname(__FILE__));
define('SMARTY_DIR', ROOT.'/libs/');
define('SMARTY_TEMPLATES', ROOT.'/szablony/');
define('SMARTY_CACHE', ROOT.'/cache/');
define('SMARTY_TEMPLATE_C', ROOT.'/cache/');
require_once(SMARTY_DIR.'Smarty.class.php');
$smarty=new smarty();
Od tej pory w plikach php nie będzie ŻADNYCH echo, print, print_f i tym podobnych
VIII. tworzymy jakiś plik html z layoutem, tam gdzie ma się pokazywać jakaś zmienna dodajemy {$zmienna}, w pliku .php wpisujemy $smarty->assign('zmienna','treść zmiennej');
Po wypełnieniu wszystkich zmiennych, na końcu dodajemy: $smarty->display('TYLKO NAZWA NASZEGO PLIKU TPL'); i nasz pierwszy smart gotowy ;)
Przydatne komendy:
Includowanie różnych tpl (np zależnych od strony):
{include file:$plik}
w pliku php dodajemy: $smarty->assign('plik','nazwe pliku tpl');
{$smarty.get.klucz} - wywołujemy tablicę $_GET z kluczek klucz, podobnie działa $_POST oraz $_SESSION, oczywiście po odpowiedniej zmianie ({$smarty.post.klucz}, {$smarty.session.klucz})
To by było na tyle ;) w razie pytań proszę odpowiadać w tym temacie