Witamy, Gość. Zaloguj się lub zarejestruj.

Autor Wątek: Podstawy Smarty  (Przeczytany 3856 razy)

0 Użytkowników i 1 Gość przegląda ten wątek.

Kaczy

  • *
  • Podziękowania otrzymane: 1
    • Zobacz profil
    • www.Luzzak.pl
Podstawy Smarty
« dnia: Styczeń 29, 2011, 14:05:01 »
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