Na początek odpowiedzmy sobie na pytanie czym jest system szablonów? Aktualnie głośno jest na temat oddzielania kodu HTML od skryptów PHP czy inaczej mówiąc warstwy prezentacji od logiki. To właśnie umożliwia system szablonów. Chciałbym się skupić na jednym konkretnym systemie który według mnie jest najlepszy z obecnie dostępnych w sieci. Oczywiście każdy sam może stworzyć swój własny system co umożliwia PHP, lecz korzystanie z gotowych rozwiązań jest o wiele wygodniejsze.
Zalety systemów szablonów:
Krótko o Smarty
Smarty jest darmowym systemem szablonów (ang. template engine) do pobrania ze strony smarty.net . Aby móc z niego korzystać musimy najpierw odpowiednio się do tego przygotować.
1.Pobieramy ze strony http://www.smarty.net najnowszą wersje systemu Smarty (na dzień 23.03.10 jest to wersja 2.6.26).
2.Do katalogu gdzie będzie znajdować się nasza strona kopiujemy katalog libs.
3. Tworzymy katalogi templates , templastes_c, cache oraz configs.
4.Aby załadować bibliotekę do naszej aplikacji, dołączamy plik Smarty.class.php np.
1 | require './libs/Smarty.class.php'; |
Swoje pliki szablonów będziemy trzymać w katalogu templates natomiast katalog templates_c służy do przechowywania plików cache naszego szablonu. Katalog ten musi mieć uprawnienia 777 na serwerze. Pliki szablonów będą miały rozszerzenie tpl. Na początek prosty szablon pokazujący jak korzystać ze smarty. Utwórzmy trzy pliki w katalogu templates – header.tpl , index.tpl, footer.tpl. Poniżej kody poszczególnych plików:
header.tpl
1 2 3 4 5 6 7 8 |
W tym pliku jak widać mamy cały typowy nagłówek pliku HTML. Umieszczamy tutaj wszystko co chcemy aby znalazło się w znacznikach
tak jak w zwykłej stronie HTML.index.tpl
1 | Hello world! Dzisiaj jest {$data}! |
To jest fragment strony który znajduje się w środku znacznika
. Wyświetli nam tekst Hello World! Dzisiaj jest oraz nasza aktualną datę. {$data} oznacza, że w tym miejscu pojawi się zawartość zmiennej $data którą zadeklarowaliśmy w pliku index.php.footer.tpl
Tutaj chyba nie trzeba opisywać. Zakończenie rozpoczętych znaczników.Teraz przyszła kolej aby utworzyć plik php który powie nam jak korzystać z naszego szablonu. Plik index.php umieszczamy w katalogu głównym naszej strony.
index.php
1 2 3 4 5 6 7 8 | <?php require 'libs/Smarty.class.php'; $smarty = new Smarty; $smarty-> assign('data', date('d.m.Y')); $smarty->display('index.tpl'); ?> |
$smarty-> assign(‘data’, date(‘d.m.Y’)) tym poleceniem utworzyliśmy zmienną $data w której jest przechowywana aktualna data. Składnia tego polecenia to $smarty->assign($tpl_var, $value) gdzie $tpl_var oznacza nazwe zmiennej jaką chcemy przekazać do szablonu a $value to jej wartość.
Tagi: PHP, smarty, system szablonów, templates


Również używam tego systemu szablonów. Jest on domyślnie zintegrowany w skrypcie SocialEngine. Podoba mi się, że logika strony jest oddzielona od warstwy prezentacyjnej. W szablonie umieszczony jest tylko czysty HTML i kilka znaczników SMARTY.
Ciekawy skrypt ten SocialEngine, sam mam w planach napisać system społecznościowy w języku asp.net, lecz do tego jeszcze długa droga.
Wracając do smarty właśnie to jest cały sens stosowania tej biblioteki. Ułatwia bardzo projektowanie większych systemów i ich późniejszą edycje.