Ocena użytkowników: 2 / 5

Gwiazdka aktywnaGwiazdka aktywnaGwiazdka nieaktywnaGwiazdka nieaktywnaGwiazdka nieaktywna
 

Spis treści

Obecnie projekty stron internetowych piszemy w oparciu o szablony (np. Smarty), które mają za zadanie oddzielić stronę programowania od strony projektowania. W dużych zespołach programistycznych można uniknąć większości błędów jakie powstają bez możliwości pracy na szablonach. Główna strona projektu znajduje się pod adresem www.smarty.net.

Do prawidłowej pracy z szablonami potrzebne są biblioteki, które można pobrać ze strony www.smarty.net/download.php. Instalacja pakietu może być przeprowadzona na kilka sposobów np.: rozpakowane biblioteki trzeba skopiować do katalogu głównego strony internetowej i dodać dokładną ścieżkę do tej biblioteki. Można również korzystać z dostępu do pliku php.ini.

W XAMPP plik php.ini znajduje się na c:\xampp\apache\bin\. Linia odpowiedzialna za informowanie serwera, gdzie znajdują się biblioteki dla programu to: include_path = ".;c:\xampp\php\pear\", tam też należy wgrać biblioteki szablonu Smarty.

Obrazek przedstawia plik php.ini


1. Wyświetlanie tekstu w szablonach

Pierwszym przykładem jest wyświetlenie napisu „Wiedza na plus”. W tym celu
potrzebny będzie plik sterujący .php i szablon z rozszerzeniem .tpl.
Przykład:
Kod pliku przyklad1.php
<?php
require_once('libs/Smarty.class.php');
$objSmarty = new Smarty();
$objSmarty->assign('tekst', 'Wiedza na ');
$objSmarty->display('przyklad1.tpl');
?>
Plik szablonu: przyklad1.tpl
{$tekst} plus
Na ekranie zostanie wyświetlone:
Wiedza na plus
W pierwszym przykładzie w pliku przyklad1.php dodano biblioteki, pobierane dzięki ustawieniu ścieżki include_path, Następnie jest tworzony obiekt objSmarty dzięki czemu można za pomocą metody assign() przekazać zmienną do szablonu przyklad1.tpl. Szablon wyświetlany jest za pomocą metody display().
Szablony Smarty mają bardzo duże możliwości. Dzięki nim można modyfikować np.: zmienne, wyświetlać tablice liniowe, asocjacyjne. Bardzo często korzysta się z instrukcji warunkowych, można wykrywać błędy występujące w kodzie php i dołączać inne szablony wewnątrz szablonu Smarty.
 

2. Modyfikatory

W kolejnym przykładzie pokazano modyfikację zmiennej przekazywanej do szablonu. Smarty posiadają zestaw modyfikatorów, dzięki którym można np.: modyfikować ciągi znaków (string_format), zliczać słowa (count_words), łączyć ciągi znaków (cat), zmieniać pierwszą literę na dużą (capitalize),
obcinać ciąg znaków (truncate). Więcej informacji na temat modyfikatorów można znaleźć na stronie www.smarty.net/manual/en/.
Przykład:
Kod pliku: przyklad2.php
<?php
require_once('libs/Smarty.class.php');
$objSmarty = new Smarty();
$objSmarty->assign('tekst', 'Galeria');
$objSmarty->display('przyklad2.tpl');
?>
Plik szablonu: przyklad2.tpl
data{$tekst|truncate:1:''|lower}.php
Na ekranie zostanie wyświetlone:
datag.php
Zmienna tekst o zawartości 'Galeria' zostaje przesłana do szablonu, następnie dzięki modyfikatorowi lower została zmieniona na małe litery a dzięki truncate zostawiono pierwszą literę, reszta została usunięta. Po dodaniu powstałej zmiennej do tekstu uzyskano pełną nazwę w szablonie.

3. Tablice asocjacyjne

Bardzo często przy wyświetlaniu danych w szablonach stosuje się tablice asocjacyjne. Najczęściej dane są pobierane z bazy danych i potem za pomocą odpowiednich tablic są przenoszone do szablonów. Do odczytywania takich danych stosowane są pętle section i foreach. Poniższy przykład pokazuje tablicę asocjacyjną utworzoną w skrypcie php i odczytaną dzięki szablonowi.
Przykład:
Kod pliku: przyklad3.php
<?php
require_once('libs/Smarty.class.php');
$objSmarty = new Smarty();
$tablica['imie'] = 'Piotr';
$tablica['wiek'] = '20';
$objSmarty->assign('tablica', $tablica);
$objSmarty->display('przyklad3.tpl');
?>
Plik szablonu: przyklad3.tpl
Autorem programu jest {$tablica.imie}. Obecnie ma {$tablica.wiek} lat.
Na ekranie zostanie wyświetlone:
Autorem programu jest Piotr. Obecnie ma 20 lat.

4. Instrukcje warunkowe

Instrukcje warunkowe są bardzo często wykorzystywane w szablonach. Dzięki niej można kontrolować informacje pojawiające się na stronie jak i uaktywniać czy blokować części lub całe formularze.
Przykład:
Kod pliku: przyklad4.php
<?php
require_once('libs/Smarty.class.php');
$objSmarty = new Smarty();
$objSmarty->assign('komunikat', 'ERROR');
$objSmarty->display('przyklad4.tpl');
?>
Plik szablonu: przyklad4.tpl
{if $komunikat eq 'ERROR'}
Przykro mi wystąpił błąd.
Na ekranie zostanie wyświetlone:
Przykro mi wystąpił błąd.
Przykład nie jest skomplikowany, ale pokazuje podstawowe działanie instrukcji warunkowych. Można zastosować {else} lub {elseif} zależnie od potrzeby. Opis i wskazówki dla {if} można znaleźć na stronie http://smarty.net/manual/en/language.function.if.php.

5. Dołączanie innych szablonów

Smarty umożliwia dołączanie innych szablonów do głównego. Stosuje się to w przypadku podziału strony na kilka części np.: nagłówek, menu, stopka.
Przykład:
Kod pliku: przyklad5.php
<?php
require_once('libs/Smarty.class.php');
$objSmarty = new Smarty();
$objSmarty->display('przyklad5.tpl');
?>
Plik szablonu: przyklad5.tpl
Witamy w pracy inżynierskiej. <br />
{include file='przyklad5a.tpl'}
Plik szablonu: przyklad5a.tpl
Temat pracy: Obiektowe technologie internetowe.
Na ekranie zostanie wyświetlone:
Witamy w pracy inżynierskiej.
Temat pracy: Obiektowe technologie internetowe.

6. Podsumowanie

Dodatkowe informacje na temat szablonów Smarty można znaleźć w książce "Smarty. Szablony w aplikacjach PHP"
 
Wybrane książki:

Książki Helion