SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
IDZ DO
         PRZYK£ADOWY ROZDZIA£

                           SPIS TREœCI
                                         Smarty PHP.
                                         Leksykon kieszonkowy
           KATALOG KSI¥¯EK               Autor: Daniel Bargie³
                                         ISBN: 83-246-0676-9
                      KATALOG ONLINE     Format: B6, stron: 112

       ZAMÓW DRUKOWANY KATALOG


              TWÓJ KOSZYK
                    DODAJ DO KOSZYKA     Smarty to obiektowa biblioteka dla jêzyka PHP s³u¿¹ca do tworzenia witryn
                                         internetowych z wykorzystaniem szablonów. Dziêki wbudowanemu systemowi
                                         buforowania Smarty jest niezwykle wydajna i szybka, co staje siê szczególnie wa¿ne
         CENNIK I INFORMACJE             przy rozbudowanych witrynach WWW. Wykorzystanie biblioteki Smarty pozwala
                                         twórcom witryn i aplikacji WWW znacznie przyœpieszyæ prace nad warstw¹
                   ZAMÓW INFORMACJE      prezentacyjn¹ i póŸniejszymi modyfikacjami swoich produktów.
                     O NOWOœCIACH        Ksi¹¿ka „Smarty PHP. Leksykon kieszonkowy” to zestawienie najwa¿niejszych
                                         informacji dotycz¹cych tej biblioteki. Znajdziesz w nim wszystko, co mo¿e okazaæ siê
                       ZAMÓW CENNIK      przydatne podczas tworzenia witryny WWW z wykorzystaniem szablonów Smarty.
                                         W kolejnych rozdzia³ach opisano zagadnienia dotycz¹ce konfigurowania Smarty,
                                         pracy ze zmiennymi, obiektów Smarty oraz obs³ugi pamiêci podrêcznej.
                 CZYTELNIA                   • Komentarze w szablonach
                                             • Definiowanie zmiennych
          FRAGMENTY KSI¥¯EK ONLINE           • Konfiguracja
                                             • Przetwarzanie danych
                                             • Metody obiektów klasy Smarty
                                             • Funkcje Smarty
                                             • Korzystanie z mechanizmu buforowania
                                          Jeœli korzystasz z szablonów Smarty, ta ksi¹¿ka powinna znaleŸæ siê w Twojej bibliotece




Wydawnictwo Helion
ul. Koœciuszki 1c
44-100 Gliwice
tel. 032 230 98 63
e-mail: helion@helion.pl
Spis treści


1. Podstawy ....................................................................................... 5
     Renderowanie szablonu                                                                        5
     Komentarze w szablonach                                                                      8
     Zmienne szablonów Smarty                                                                     9
     Stałe                                                                                       13

2. Właściwości konfiguracyjne systemu Smarty ...........................14
     Kompilacja                                                                                  14
     Debuger                                                                                     17
     Pamięć podręczna                                                                            20

3. Modyfikatory zmiennych Smarty .............................................. 24
     Modyfikatory podstawowe                                                                     24
     Kombinacja modyfikatorów                                                                    39

4. Metody obiektów klasy Smarty ..................................................41
     Operacje na zmiennych                                                                       41
     Obsługa szablonów TPL                                                                       47
     Zgłaszanie błędów — metoda trigger_error()                                                  50
     Obsługa plików konfiguracyjnych                                                             51

5. Funkcje Smarty ............................................................................ 53
     Funkcje iteracyjne                                                                          53
     Funkcje warunkowe if                                                                        62
     Funkcje dołączające                                                                         63
     Funkcje HTML i Mail                                                                         68
     Pozostałe funkcje                                                                           77


                                                                                                   3
6. Rozszerzenia systemu szablonów ............................................. 88
         Nazewnictwo rozszerzeń                                                                     88
         Funkcje szablonów                                                                          90
         Funkcje blokowe szablonów                                                                  92
         Modyfikatory                                                                               95

    7. Obsługa pamięci podręcznej .......................................................97
         Włączanie obsługi pamięci podręcznej                                                      97
         Testowanie kopii szablonu w pamięci podręcznej                                            98
         Tworzenie wielu kopii dla jednego szablonu TPL                                           100
         Usuwanie kopii szablonu z pamięci podręcznej                                             101
         Kontrolowanie rozszerzeń Smarty                                                          104

         Skorowidz ..................................................................................105




4    |   Spis treści
Rozdział 4. Metody obiektów klasy Smarty
Obiekty klasy Smarty posiadają szereg metod, dzięki którym
można wykonywać określone operacje dotyczące zmiennych,
szablonów czy też plików konfiguracyjnych.


Operacje na zmiennych
Metoda append() oraz append_by_ref()
Metoda append() (definicja 4.1) umożliwia dodanie nowej warto-
ści do zmiennej Smarty. Metoda dodaje nową zmienną, tworząc
jej kopię.
Definicja 4.1. Metoda append()
 void append(string nazwa_zmiennej, mixed wartosc_zmiennej
 [, bool polaczenie])

Metoda przyjmuje następujące parametry:
   • nazwa_zmiennej (wymagany) — nazwa zmiennej, do której
     ma zostać przypisana wartość. Jeżeli nowa wartość jest
     dodawana do zmiennej typu string, to następuje konwersja
     zmiennej string na tablicę, a następnie dodanie do niej
     kolejnego elementu;
   • wartosc_zmiennej (wymagany) — wartość zmiennej, która
     zostanie dodana do zmiennej istniejącej;
   • polaczenie — jeżeli parametr będzie miał wartość true,
     wartosc_zmiennej zostanie połączona z aktualną zmienną
     nazwa_zmiennej. W przeciwnym wypadku nowa wartość
     zostanie dołączona.




                        Rozdział 4. Metody obiektów klasy Smarty   |   41
Na listingu 4.1 został przedstawiony przykład wykorzystania
metody append().
Listing 4.1. Przykład wykorzystania metody append()
 [Skrypt PHP]
 <?php
 ...
 $smarty_obj->append(array('zmienna_1'=>'zmienna 1a',
 'zmienna_2'=>'zmienna 2a'));
 $smarty_obj->append('zmienna_1', 'zmienna 1b');
 ...
 ?>
 [Szablon TPL]
 {$zmienna_1[1]}

 [Wynik wykonania skompilowanego szablonu TPL]
 zmienna 1b

Metoda append_by_ref() (definicja 4.2) w działaniu jest podobna
do metody append() z tą różnicą, że wartość przekazywana jest
przez referencję, a nie przez wartość, jak w przypadku metody
append().

Definicja 4.2. Metoda append_by_ref()
 void append_by_ref(string nazwa_zmiennej, mixed
 wartosc_zmiennej [, bool polaczenie])

Na listingu 4.2 został przedstawiony przykład wykorzystania
metody append_by_ref().
Listing 4.2. Przykład wykorzystania metody append_by_ref()
 [Skrypt PHP]
 <?php
 ...
 $wartosc = 'Zmienna 1b';
 $smarty_obj->append(array('zmienna_1'=>'zmienna 1a'));
 $smarty_obj->append('zmienna_1', $wartosc);
 $smarty_obj->append_by_ref('zmienna_1', $wartosc);
 $wartosc = 'Zmienna 1c';
 ...
 ?>




42   |   Smarty PHP. Leksykon kieszonkowy
[Szablon TPL]
 {$zmienna_1[0]}
 {$zmienna_1[1]}
 {$zmienna_1[2]}

 [Wynik wykonania skompilowanego szablonu TPL]
 zmienna 1a
 Zmienna 1b
 Zmienna 1c


Metoda assign() oraz assign_by_ref()
Metoda assign() (definicja 4.3) pozwala na utworzenie zmiennej
Smarty dostępnej w szablonie TPL.

Definicja 4.3. Metoda assign()
 void assign(array lista_zmiennych)
 [lub]
 void assign(string nazwa_zmiennej, mixed wartosc_zmiennej)

Jako parametr metody może zostać użyta tablica asocjacyjna,
w której nazwą przyszłej zmiennej jest klucz asocjacyjny elementu
tablicy, a jej wartością — wartość elementu tablicy (listing 4.3).
Listing 4.3. Tablica asocjacyjna zawierająca listę elementów
 [Skrypt PHP]
 <?php
 ...

 //Przypisanie zmiennych
 $smarty_obj->assign(array('zmienna_1'=>'Wartośc zmiennej 1',
 'zmienna_2'=>'Wartośc zmiennej 2'));

 //Rendering szablonu
 $smarty_obj->display('szablon.tpl');
 ?>

 [Szablon TPL]
 Wartość zmiennej 1 to: {$zmienna_1}
 Wartość zmiennej 2 to: {$zmienna_2}

 [Wynik wykonania skompilowanego szablonu TPL]
 Wartość zmiennej 1 to: Wartośc zmiennej 1
 Wartość zmiennej 2 to: Wartośc zmiennej 2



                         Rozdział 4. Metody obiektów klasy Smarty   |   43
Drugim sposobem przypisania zmiennych do szablonu TPL jest
podanie do metody assign() następujących parametrów:
     • nazwa_zmiennej (wymagany) — nazwa, pod którą wartość
       wartosc_zmiennej będzie dostępna w szablonie TPL;

     • wartosc_zmiennej (wymagany) — wartość zmiennej nazwa_
       zmiennej dostępna w szablonie TPL.

Na listingu 4.4 został przedstawiony kod, który przypisuje takie
same zmienne jak kod z listingu 4.3.
Listing 4.4. Inny sposób przypisania zmiennych
 <?php
 ...
 //Przypisanie zmiennych Smarty
 $smarty_obj->assign('zmienna_1', 'Wartośc zmiennej 1');
 $smarty_obj->assign('zmienna_2', 'Wartośc zmiennej 2');

 //Rendering szablonu
 $smarty_obj->display('szablon.tpl');
 ?>

Metoda assign_by_ref() (definicja 4.4) działa w sposób po-
dobny do metody assign() z tą różnicą, że zmienna przypi-
sywana jest przez referencję a nie przez wartość.
Definicja 4.4. Metoda assign_by_ref()
 void assign_by_ref(string nazwa_zmiennej, mixed
 wartosc_zmienej)

Przykład wykorzystania metody assign_by_ref() został przed-
stawiony na listingu 4.5.
Listing 4.5. Przykład wykorzystania metody assign_by_ref()
 [Skrypt PHP]
 <?php
 ...
 $imie = 'Daniel';
 $nazwisko = 'Bargieł';
 $smarty_obj->assign('imie', $imie);
 $smarty_obj->assign_by_ref('nazwisko', $nazwisko);



44   |   Smarty PHP. Leksykon kieszonkowy
$imie = 'Ewa';
 $nazwisko = 'Gelner';

 //Rendering szablonu
 $smarty_obj->display('szablon.tpl');
 ?>

 [Szablon TPL]
 Witaj {$imie} {$nazwisko}

 [Wynik wykonania skompilowanego szablonu TPL]
 Witaj Daniel Gelner


Metoda clear_all_assign() oraz clear_assign()
Metoda clear_all_assign() (definicja 4.5) usuwa wszystkie
zmienne Smarty dostępne w szablonach TPL.
Definicja 4.5. Metoda clear_all_assign()
 void clear_all_assign()

Metoda clear_assign() (definicja 4.6) usuwa określoną zmienną
lub grupę zmiennych.
Definicja 4.6. Metoda clear_assign()
 void clear_assign(mixed zmienne)

Metoda clear_assign() przyjmuje jeden parametr, który zawiera
nazwę zmiennej przeznaczonej do usunięcia lub tablicę zawie-
rającą listę nazw zmiennych do usunięcia. Przykład wykorzysta-
nia metody clear_assign() został przedstawiony na listingu 4.6.
Listing 4.6. Przykład wykorzystania metody clear_assign()
 <?php
 ...
 // Usunięcie pojedynczej zmiennej
 $smarty_obj->clear_assign('Name');

 // Usunięcie listy zmiennych
 $smarty_obj->clear_assign(array('Name', 'Address', 'Zip'));
 ...
 ?>



                         Rozdział 4. Metody obiektów klasy Smarty   |   45
Metoda get_template_vars()
Metoda get_template_vars() (definicja 4.7) obiektów klasy Smarty
zwraca tablicę zawierającą wszystkie zmienne Smarty.
Definicja 4.7. Metoda get_template_vars()
 array get_template_vars([string nazwa_zmiennej])

Jeżeli zostanie podany opcjonalny parametr nazwa_zmiennej,
metoda get_template_vars() zwróci wartość wybranej zmiennej.
W przeciwnym wypadku zostanie zwrócona tablica asocjacyjna,
zawierająca wartość wszystkich zmiennych Smarty. Przykład wy-
korzystania metody get_template_vars() został przedstawiony
na listingu 4.7.
Listing 4.7. Przykład wykorzystania metody get_template_vars()
 [Skrypt PHP]
 <?php
 ...
 $imie = 'Daniel';
 $nazwisko = 'Bargieł';

 $smarty_obj->assign('imie', $imie);
 $smarty_obj->assign('nazwisko', $nazwisko);

 var_dump($smarty_obj->get_template_vars('imie'));
 var_dump($smarty_obj->get_template_vars());
 ?>

 [Wynik wykonania skryptu PHP]
 string(6) "Daniel"
 array(3) {
   ["SCRIPT_NAME"]=>
   string(10) "/index.php"
   ["imie"]=>
   &string(6) "Daniel"
   ["nazwisko"]=>
   string(7) "Bargieł"
 }




46   |   Smarty PHP. Leksykon kieszonkowy
Obsługa szablonów TPL
Obiekty klasy Smarty mają dwie metody, dzięki którym można
zrenderować szablon TPL. Pierwsza z nich to metoda display()
(definicja 4.8), która wysyła treść zrenderowanego szablonu do
bufora wyjściowego. Metoda fetch() (definicja 4.9) zwraca war-
tość typu string zawierającą treść zrenderowanego szablonu TPL.


Metoda display()
Metoda display() (definicja 4.8) wyświetla zrenderowany szablon
(wysyła jego treść do bufora wyjściowego)
Definicja 4.8. Metoda display()
 void display(string nazwa_szablonu [, string
 identyfikator_cache [,string identyfikator_kompilacji]])

Metoda przyjmuje następujące parametry:
   • nazwa_szablonu (wymagany) — ścieżka dostępu do sza-
     blonu TPL, który ma zostać wyświetlony;
   • identyfikator_cache — parametr opcjonalny, pozwalający
     na określenie identyfikatora kopii szablonu w pamięci pod-
     ręcznej. Więcej informacji na ten temat w rozdziale „Obsługa
     pamięci podręcznej”;
   • identyfikator_kompilacji — parametr ten pozwala na
     utworzenie kilku skompilowanych wersji jednego szablonu
     TPL. Może to być przydatne np. wtedy, gdy szablon po-
     winien być skompilowany oddzielnie dla każdej z wersji
     językowych obsługiwanych w aplikacji.
Przykład wykorzystania metody display() został przedstawiony
na listingu 4.8.




                         Rozdział 4. Metody obiektów klasy Smarty   |   47
Listing 4.8. Przykład wykorzystania metody display()
 <?php
 ...
 // Ścieżka absolutna
 $smarty->display('/usr/local/include/templates/header.tpl');
 $smarty->display('file:/usr/local/include/templates/
 header.tpl');

 // Ścieżka absolutna w systemie Windows
 $smarty->display('file:c:/www/pub/templates/header.tpl');

 // Ładowanie szablonu z zasobu o nazwie db
 $smarty->display('db:header.tpl');
 ?>


Metoda fetch()
Metoda fetch() (definicja 4.9) obiektów klasy Smarty działa bar-
dzo podobnie do metody display(), z tym że nie wysyła zren-
derowanego szablonu do bufora wyjściowego, lecz zwraca go
w postaci łańcucha tekstowego.
Definicja 4.9. Metoda fetch()
 string fetch(string nazwa_szablonu[, string
 identyfikator_cache [, string identyfikator kompilacji]])

Znaczenie parametrów metody fetch() jest identyczne jak
w przypadku metody display() (definicja 4.8).
Na listingu 4.9 został przedstawiony przykład wykorzystania
metody fetch() obiektu klasy Smarty.
Listing 4.9. Przykład wykorzystania metody fetch()
 <?php
 ...
 echo $smarty_obj->fetch('szablon.tpl');
 ?>




48   |   Smarty PHP. Leksykon kieszonkowy
Metoda template_exists()
Metoda template_exists() (definicja 4.10) sprawdza, czy okre-
ślony szablon TPL istnieje.
Definicja 4.10. Metoda template_exists()
 bool template_exists(string nazwa_szablonu)

Jeżeli szablon nazwa_szablonu istnieje, metoda zwraca wartość
true. W przeciwnym wypadku zwracana jest wartość false.
Przykład wykorzystania metody template_exists() został przed-
stawiony na listingu 4.10.
Listing 4.10. Przykład wykorzystania metody template_exists()
 <?php
 ...
 $szablon_tpl = basename($_GET['strona']).'.tpl';
 if ($smarty_obj->template_exists($szablon_tpl)) {
     $smarty_obj->display($szablon_tpl);
 } else $smarty_obj->display('strona_nie_istnieje.tpl');
 ?>


Metoda clear_compiled_tpl()
Metoda clear_compiled_tpl() (definicja 4.11) czyści skompilo-
waną wersję szablonu TPL lub cały katalog kompilacji.
Definicja 4.11. Metoda clear_compiled_tpl()
 void clear_compiled_tpl([string nazwa_szablonu [, string
 identyfikator_kompilacji [, int czas_zycia]]])

Metoda przyjmuje następujące parametry:
   • nazwa_szablonu — nazwa pliku szablonu TPL, którego
     skompilowana kopia powinna zostać usunięta;
   • identyfikator_kompilacji — podanie identyfikatora kom-
     pilacji spowoduje, że zostaną usunięte tylko te kopie szablo-
     nu TPL, które posiadają określony identyfikator kompilacji;


                        Rozdział 4. Metody obiektów klasy Smarty   |   49
• czas_zycia — podanie czasu życia skompilowanych kopii
       szablonów TPL spowoduje, że metoda clear_compiled_tpl()
       usunie tylko te kopie, które są starsze niż podany czas życia.
Na listingu 4.11 został podany przykład wykorzystania metody
clear_compiled_tpl().

Listing 4.11. Przykład wykorzystania metody clear_compiled_tpl()
 <?php
 ...
 //Usunięcie wszystkich kopii kompilacji szablonu TPL
 $smarty_obj->clear_compiled_tpl('szablon.tpl');

 //Wyczyszczenie całego katalogu kompilacji
 $smarty_obj->clear_compiled_tpl();
 ?>



Zgłaszanie błędów — metoda trigger_error()
Metoda trigger_error() (definicja 4.12) umożliwia zgłoszenie
błędu przez obiekt klasy Smarty. Metoda ta jest najczęściej wy-
korzystywana w kodzie funkcji rozszerzających możliwości Smarty
(patrz rozdział „Rozszerzenia systemu szablonów”).
Definicja 4.12. Metoda trigger_error()
 void trigger_error(string tresc_bledu [, int poziom_bledu])

Metoda przyjmuje następujące parametry:
     • tresc_bledu (wymagany) — komunikat błędu;
     • poziom_bledu — możliwe poziomy błędu są takie same
       jak dla funkcji PHP trigger_error(). Domyślną wartością
       parametru jest E_USER_WARNING.
Przykład wykorzystania metody trigger_error() został przed-
stawiony na listingu 4.12.




50    |   Smarty PHP. Leksykon kieszonkowy
Listing 4.12. Przykład wykorzystania metody trigger_error()
 [Skrypt PHP]
 <?php
 ...
 $smarty_obj->trigger_error('Zgłaszam błąd obiektu klasy
 Smarty', E_USER_WARNING);
 ?>

 [Wynik wykonania skryptu PHP]
 <b>Warning</b>: Smarty error: Zgłaszam błąd obiektu klasy
 Smarty in <b>c:document_roothelion_smartysmarty
 Smarty.class.php</b> on line <b>1095</b>



Obsługa plików konfiguracyjnych
Pliki zawierające zmienne konfiguracyjne Smarty mogą być ob-
sługiwane z poziomu kodu PHP oraz szablonów TPL.


Metoda config_load()
Metoda config_load() (definicja 4.13) obiektu klasy Smarty ła-
duje plik konfiguracyjny i przypisuje zawarte w nim zmienne
do szablonów.
Definicja 4.13. Metoda config_load()
 void config_load(string nazwa_pliku [, string nazwa_sekcji])

Metoda przyjmuje następujące parametry:
   • nazwa_pliku (wymagany) — nazwa pliku konfiguracyjnego,
     który ma zostać załadowany;
   • nazwa_sekcji — nazwa sekcji w pliku konfiguracyjnym,
     z którego powinny zostać załadowane zmienne.
Działanie metody jest identyczne z działaniem funkcji config_load
(patrz rozdział „Funkcje Smarty”), przy czym załadowane zmienne
zawsze posiadają zasięg globalny, czyli są dostępne w każdym
szablonie TPL.


                        Rozdział 4. Metody obiektów klasy Smarty   |   51
Metoda clear_config()
Metoda clear_config() (definicja 4.14) usuwa z szablonów przy-
pisane zmienne konfiguracyjne.
Definicja 4.14. Metoda clear_config()
 void clear_config([string nazwa_zmiennej])

Jeżeli podany zostanie opcjonalny parametr nazwa_zmiennej,
metoda usunie tylko podaną zmienną.


Metoda get_config_vars()
Metoda get_config_vars() (definicja 4.15) zwraca listę zmien-
nych konfiguracyjnych przypisanych do szablonu TPL.
Definicja 4.15. Metoda get_config_vars()
 array get_config_vars([string nazwa_zmiennej])

Jeżeli podany zostanie opcjonalny parametr nazwa_zmiennej,
metoda zwróci jedynie wartość podanej zmiennej.




52   |   Smarty PHP. Leksykon kieszonkowy

Más contenido relacionado

Destacado

Prezentacja metody badań
Prezentacja   metody badańPrezentacja   metody badań
Prezentacja metody badań
aniaa0891
 
Budowa Jednostki Centralnej Komputera
Budowa Jednostki Centralnej KomputeraBudowa Jednostki Centralnej Komputera
Budowa Jednostki Centralnej Komputera
wandzia
 
A05 Wskazniki i rezultaty
A05 Wskazniki i rezultatyA05 Wskazniki i rezultaty
A05 Wskazniki i rezultaty
UM Łódzkie
 

Destacado (9)

Philippe Rahm, W stronę urbanistyki termodynamicznej
Philippe Rahm, W stronę urbanistyki termodynamicznejPhilippe Rahm, W stronę urbanistyki termodynamicznej
Philippe Rahm, W stronę urbanistyki termodynamicznej
 
Prezentacja metody badań
Prezentacja   metody badańPrezentacja   metody badań
Prezentacja metody badań
 
Dr. inż. Mateusz Zając (Politechnika Wrocławska): Tiry na tory – to już rzecz...
Dr. inż. Mateusz Zając (Politechnika Wrocławska): Tiry na tory – to już rzecz...Dr. inż. Mateusz Zając (Politechnika Wrocławska): Tiry na tory – to już rzecz...
Dr. inż. Mateusz Zając (Politechnika Wrocławska): Tiry na tory – to już rzecz...
 
Budowa Jednostki Centralnej Komputera
Budowa Jednostki Centralnej KomputeraBudowa Jednostki Centralnej Komputera
Budowa Jednostki Centralnej Komputera
 
Militec 1 - 100% syntetyczny dodatek do oleju
Militec 1 - 100% syntetyczny dodatek do olejuMilitec 1 - 100% syntetyczny dodatek do oleju
Militec 1 - 100% syntetyczny dodatek do oleju
 
Wyklad 161718
Wyklad 161718Wyklad 161718
Wyklad 161718
 
Handel spożywczy w polsce w latach 2010 2020
Handel spożywczy w polsce w latach 2010 2020Handel spożywczy w polsce w latach 2010 2020
Handel spożywczy w polsce w latach 2010 2020
 
A05 Wskazniki i rezultaty
A05 Wskazniki i rezultatyA05 Wskazniki i rezultaty
A05 Wskazniki i rezultaty
 
Metodologia badań
Metodologia badańMetodologia badań
Metodologia badań
 

Similar a Smarty PHP. Leksykon kieszonkowy

PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie IIPHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
Wydawnictwo Helion
 
CATIA V5. Podstawy budowy modeli autogenerujących
CATIA V5. Podstawy budowy modeli autogenerującychCATIA V5. Podstawy budowy modeli autogenerujących
CATIA V5. Podstawy budowy modeli autogenerujących
Wydawnictwo Helion
 
Smarty. Szablony w aplikacjach PHP
Smarty. Szablony w aplikacjach PHPSmarty. Szablony w aplikacjach PHP
Smarty. Szablony w aplikacjach PHP
Wydawnictwo Helion
 
PHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowaniePHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowanie
Wydawnictwo Helion
 
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązańWyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań
Wydawnictwo Helion
 
Język C++. Gotowe rozwiązania dla programistów
Język C++. Gotowe rozwiązania dla programistówJęzyk C++. Gotowe rozwiązania dla programistów
Język C++. Gotowe rozwiązania dla programistów
Wydawnictwo Helion
 
PHP i MySQL. Wprowadzenie. Wydanie II
PHP i MySQL. Wprowadzenie. Wydanie IIPHP i MySQL. Wprowadzenie. Wydanie II
PHP i MySQL. Wprowadzenie. Wydanie II
Wydawnictwo Helion
 
PHP w mgnieniu oka
PHP w mgnieniu okaPHP w mgnieniu oka
PHP w mgnieniu oka
Wydawnictwo Helion
 
Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu
Java. Obsługa wyjątków, usuwanie błędów i testowanie koduJava. Obsługa wyjątków, usuwanie błędów i testowanie kodu
Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu
Wydawnictwo Helion
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIPHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
Wydawnictwo Helion
 
PHP5. Obiekty, wzorce, narzędzia
PHP5. Obiekty, wzorce, narzędziaPHP5. Obiekty, wzorce, narzędzia
PHP5. Obiekty, wzorce, narzędzia
Wydawnictwo Helion
 
STL w praktyce. 50 sposobów efektywnego wykorzystania
STL w praktyce. 50 sposobów efektywnego wykorzystaniaSTL w praktyce. 50 sposobów efektywnego wykorzystania
STL w praktyce. 50 sposobów efektywnego wykorzystania
Wydawnictwo Helion
 
.NET Framework 2.0. Zaawansowane programowanie
.NET Framework 2.0. Zaawansowane programowanie.NET Framework 2.0. Zaawansowane programowanie
.NET Framework 2.0. Zaawansowane programowanie
Wydawnictwo Helion
 
Java. Współbieżność dla praktyków
Java. Współbieżność dla praktykówJava. Współbieżność dla praktyków
Java. Współbieżność dla praktyków
Wydawnictwo Helion
 
Uczta programistów
Uczta programistówUczta programistów
Uczta programistów
Wydawnictwo Helion
 
Algorytmy, struktury danych i techniki programowania. Wydanie III
Algorytmy, struktury danych i techniki programowania. Wydanie IIIAlgorytmy, struktury danych i techniki programowania. Wydanie III
Algorytmy, struktury danych i techniki programowania. Wydanie III
Wydawnictwo Helion
 
PHP5. Profesjonalne tworzenie oprogramowania
PHP5. Profesjonalne tworzenie oprogramowaniaPHP5. Profesjonalne tworzenie oprogramowania
PHP5. Profesjonalne tworzenie oprogramowania
Wydawnictwo Helion
 
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Wydawnictwo Helion
 

Similar a Smarty PHP. Leksykon kieszonkowy (20)

PHP5. Praktyczny kurs
PHP5. Praktyczny kursPHP5. Praktyczny kurs
PHP5. Praktyczny kurs
 
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie IIPHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
PHP i MySQL. Tworzenie sklepów internetowych. Wydanie II
 
CATIA V5. Podstawy budowy modeli autogenerujących
CATIA V5. Podstawy budowy modeli autogenerującychCATIA V5. Podstawy budowy modeli autogenerujących
CATIA V5. Podstawy budowy modeli autogenerujących
 
Smarty. Szablony w aplikacjach PHP
Smarty. Szablony w aplikacjach PHPSmarty. Szablony w aplikacjach PHP
Smarty. Szablony w aplikacjach PHP
 
PHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowaniePHP5. Zaawansowane programowanie
PHP5. Zaawansowane programowanie
 
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązańWyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań
Wyjątkowy język C++. 40 nowych łamigłówek, zadań programistycznych i rozwiązań
 
Język C++. Gotowe rozwiązania dla programistów
Język C++. Gotowe rozwiązania dla programistówJęzyk C++. Gotowe rozwiązania dla programistów
Język C++. Gotowe rozwiązania dla programistów
 
PHP i MySQL. Wprowadzenie. Wydanie II
PHP i MySQL. Wprowadzenie. Wydanie IIPHP i MySQL. Wprowadzenie. Wydanie II
PHP i MySQL. Wprowadzenie. Wydanie II
 
PHP w mgnieniu oka
PHP w mgnieniu okaPHP w mgnieniu oka
PHP w mgnieniu oka
 
Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu
Java. Obsługa wyjątków, usuwanie błędów i testowanie koduJava. Obsługa wyjątków, usuwanie błędów i testowanie kodu
Java. Obsługa wyjątków, usuwanie błędów i testowanie kodu
 
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie IIPHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
PHP i MySQL. Dynamiczne strony WWW. Szybki start. Wydanie II
 
PHP5. Obiekty, wzorce, narzędzia
PHP5. Obiekty, wzorce, narzędziaPHP5. Obiekty, wzorce, narzędzia
PHP5. Obiekty, wzorce, narzędzia
 
STL w praktyce. 50 sposobów efektywnego wykorzystania
STL w praktyce. 50 sposobów efektywnego wykorzystaniaSTL w praktyce. 50 sposobów efektywnego wykorzystania
STL w praktyce. 50 sposobów efektywnego wykorzystania
 
.NET Framework 2.0. Zaawansowane programowanie
.NET Framework 2.0. Zaawansowane programowanie.NET Framework 2.0. Zaawansowane programowanie
.NET Framework 2.0. Zaawansowane programowanie
 
Java. Współbieżność dla praktyków
Java. Współbieżność dla praktykówJava. Współbieżność dla praktyków
Java. Współbieżność dla praktyków
 
Uczta programistów
Uczta programistówUczta programistów
Uczta programistów
 
Algorytmy, struktury danych i techniki programowania. Wydanie III
Algorytmy, struktury danych i techniki programowania. Wydanie IIIAlgorytmy, struktury danych i techniki programowania. Wydanie III
Algorytmy, struktury danych i techniki programowania. Wydanie III
 
PHP5. Profesjonalne tworzenie oprogramowania
PHP5. Profesjonalne tworzenie oprogramowaniaPHP5. Profesjonalne tworzenie oprogramowania
PHP5. Profesjonalne tworzenie oprogramowania
 
Po prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowanePo prostu PHP. Techniki zaawansowane
Po prostu PHP. Techniki zaawansowane
 
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0Struktury danych i techniki obiektowe na przykładzie Javy 5.0
Struktury danych i techniki obiektowe na przykładzie Javy 5.0
 

Más de Wydawnictwo Helion

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
Wydawnictwo Helion
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
Wydawnictwo Helion
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
Wydawnictwo Helion
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Wydawnictwo Helion
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
Wydawnictwo Helion
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Wydawnictwo Helion
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Wydawnictwo Helion
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
Wydawnictwo Helion
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
Wydawnictwo Helion
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
Wydawnictwo Helion
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
Wydawnictwo Helion
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
Wydawnictwo Helion
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
Wydawnictwo Helion
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
Wydawnictwo Helion
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
Wydawnictwo Helion
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
Wydawnictwo Helion
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
Wydawnictwo Helion
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
Wydawnictwo Helion
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanie
Wydawnictwo Helion
 

Más de Wydawnictwo Helion (20)

Tworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. ProjektyTworzenie filmów w Windows XP. Projekty
Tworzenie filmów w Windows XP. Projekty
 
Blog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnikBlog, więcej niż internetowy pamiętnik
Blog, więcej niż internetowy pamiętnik
 
Access w biurze i nie tylko
Access w biurze i nie tylkoAccess w biurze i nie tylko
Access w biurze i nie tylko
 
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktycznePozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
Pozycjonowanie i optymalizacja stron WWW. Ćwiczenia praktyczne
 
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesieE-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
E-wizerunek. Internet jako narzędzie kreowania image&#39;u w biznesie
 
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla WindowsMicrosoft Visual C++ 2008. Tworzenie aplikacji dla Windows
Microsoft Visual C++ 2008. Tworzenie aplikacji dla Windows
 
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie IICo potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
Co potrafi Twój iPhone? Podręcznik użytkownika. Wydanie II
 
Makrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółuMakrofotografia. Magia szczegółu
Makrofotografia. Magia szczegółu
 
Windows PowerShell. Podstawy
Windows PowerShell. PodstawyWindows PowerShell. Podstawy
Windows PowerShell. Podstawy
 
JavaScript. Pierwsze starcie
JavaScript. Pierwsze starcieJavaScript. Pierwsze starcie
JavaScript. Pierwsze starcie
 
Ajax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny treningAjax, JavaScript i PHP. Intensywny trening
Ajax, JavaScript i PHP. Intensywny trening
 
PowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktykPowerPoint 2007 PL. Seria praktyk
PowerPoint 2007 PL. Seria praktyk
 
Excel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktykExcel 2007 PL. Seria praktyk
Excel 2007 PL. Seria praktyk
 
Access 2007 PL. Seria praktyk
Access 2007 PL. Seria praktykAccess 2007 PL. Seria praktyk
Access 2007 PL. Seria praktyk
 
Word 2007 PL. Seria praktyk
Word 2007 PL. Seria praktykWord 2007 PL. Seria praktyk
Word 2007 PL. Seria praktyk
 
Serwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacjaSerwisy społecznościowe. Budowa, administracja i moderacja
Serwisy społecznościowe. Budowa, administracja i moderacja
 
AutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PLAutoCAD 2008 i 2008 PL
AutoCAD 2008 i 2008 PL
 
Bazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcieBazy danych. Pierwsze starcie
Bazy danych. Pierwsze starcie
 
Inventor. Pierwsze kroki
Inventor. Pierwsze krokiInventor. Pierwsze kroki
Inventor. Pierwsze kroki
 
Serwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanieSerwer SQL 2008. Administracja i programowanie
Serwer SQL 2008. Administracja i programowanie
 

Smarty PHP. Leksykon kieszonkowy

  • 1. IDZ DO PRZYK£ADOWY ROZDZIA£ SPIS TREœCI Smarty PHP. Leksykon kieszonkowy KATALOG KSI¥¯EK Autor: Daniel Bargie³ ISBN: 83-246-0676-9 KATALOG ONLINE Format: B6, stron: 112 ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK DODAJ DO KOSZYKA Smarty to obiektowa biblioteka dla jêzyka PHP s³u¿¹ca do tworzenia witryn internetowych z wykorzystaniem szablonów. Dziêki wbudowanemu systemowi buforowania Smarty jest niezwykle wydajna i szybka, co staje siê szczególnie wa¿ne CENNIK I INFORMACJE przy rozbudowanych witrynach WWW. Wykorzystanie biblioteki Smarty pozwala twórcom witryn i aplikacji WWW znacznie przyœpieszyæ prace nad warstw¹ ZAMÓW INFORMACJE prezentacyjn¹ i póŸniejszymi modyfikacjami swoich produktów. O NOWOœCIACH Ksi¹¿ka „Smarty PHP. Leksykon kieszonkowy” to zestawienie najwa¿niejszych informacji dotycz¹cych tej biblioteki. Znajdziesz w nim wszystko, co mo¿e okazaæ siê ZAMÓW CENNIK przydatne podczas tworzenia witryny WWW z wykorzystaniem szablonów Smarty. W kolejnych rozdzia³ach opisano zagadnienia dotycz¹ce konfigurowania Smarty, pracy ze zmiennymi, obiektów Smarty oraz obs³ugi pamiêci podrêcznej. CZYTELNIA • Komentarze w szablonach • Definiowanie zmiennych FRAGMENTY KSI¥¯EK ONLINE • Konfiguracja • Przetwarzanie danych • Metody obiektów klasy Smarty • Funkcje Smarty • Korzystanie z mechanizmu buforowania Jeœli korzystasz z szablonów Smarty, ta ksi¹¿ka powinna znaleŸæ siê w Twojej bibliotece Wydawnictwo Helion ul. Koœciuszki 1c 44-100 Gliwice tel. 032 230 98 63 e-mail: helion@helion.pl
  • 2. Spis treści 1. Podstawy ....................................................................................... 5 Renderowanie szablonu 5 Komentarze w szablonach 8 Zmienne szablonów Smarty 9 Stałe 13 2. Właściwości konfiguracyjne systemu Smarty ...........................14 Kompilacja 14 Debuger 17 Pamięć podręczna 20 3. Modyfikatory zmiennych Smarty .............................................. 24 Modyfikatory podstawowe 24 Kombinacja modyfikatorów 39 4. Metody obiektów klasy Smarty ..................................................41 Operacje na zmiennych 41 Obsługa szablonów TPL 47 Zgłaszanie błędów — metoda trigger_error() 50 Obsługa plików konfiguracyjnych 51 5. Funkcje Smarty ............................................................................ 53 Funkcje iteracyjne 53 Funkcje warunkowe if 62 Funkcje dołączające 63 Funkcje HTML i Mail 68 Pozostałe funkcje 77 3
  • 3. 6. Rozszerzenia systemu szablonów ............................................. 88 Nazewnictwo rozszerzeń 88 Funkcje szablonów 90 Funkcje blokowe szablonów 92 Modyfikatory 95 7. Obsługa pamięci podręcznej .......................................................97 Włączanie obsługi pamięci podręcznej 97 Testowanie kopii szablonu w pamięci podręcznej 98 Tworzenie wielu kopii dla jednego szablonu TPL 100 Usuwanie kopii szablonu z pamięci podręcznej 101 Kontrolowanie rozszerzeń Smarty 104 Skorowidz ..................................................................................105 4 | Spis treści
  • 4. Rozdział 4. Metody obiektów klasy Smarty Obiekty klasy Smarty posiadają szereg metod, dzięki którym można wykonywać określone operacje dotyczące zmiennych, szablonów czy też plików konfiguracyjnych. Operacje na zmiennych Metoda append() oraz append_by_ref() Metoda append() (definicja 4.1) umożliwia dodanie nowej warto- ści do zmiennej Smarty. Metoda dodaje nową zmienną, tworząc jej kopię. Definicja 4.1. Metoda append() void append(string nazwa_zmiennej, mixed wartosc_zmiennej [, bool polaczenie]) Metoda przyjmuje następujące parametry: • nazwa_zmiennej (wymagany) — nazwa zmiennej, do której ma zostać przypisana wartość. Jeżeli nowa wartość jest dodawana do zmiennej typu string, to następuje konwersja zmiennej string na tablicę, a następnie dodanie do niej kolejnego elementu; • wartosc_zmiennej (wymagany) — wartość zmiennej, która zostanie dodana do zmiennej istniejącej; • polaczenie — jeżeli parametr będzie miał wartość true, wartosc_zmiennej zostanie połączona z aktualną zmienną nazwa_zmiennej. W przeciwnym wypadku nowa wartość zostanie dołączona. Rozdział 4. Metody obiektów klasy Smarty | 41
  • 5. Na listingu 4.1 został przedstawiony przykład wykorzystania metody append(). Listing 4.1. Przykład wykorzystania metody append() [Skrypt PHP] <?php ... $smarty_obj->append(array('zmienna_1'=>'zmienna 1a', 'zmienna_2'=>'zmienna 2a')); $smarty_obj->append('zmienna_1', 'zmienna 1b'); ... ?> [Szablon TPL] {$zmienna_1[1]} [Wynik wykonania skompilowanego szablonu TPL] zmienna 1b Metoda append_by_ref() (definicja 4.2) w działaniu jest podobna do metody append() z tą różnicą, że wartość przekazywana jest przez referencję, a nie przez wartość, jak w przypadku metody append(). Definicja 4.2. Metoda append_by_ref() void append_by_ref(string nazwa_zmiennej, mixed wartosc_zmiennej [, bool polaczenie]) Na listingu 4.2 został przedstawiony przykład wykorzystania metody append_by_ref(). Listing 4.2. Przykład wykorzystania metody append_by_ref() [Skrypt PHP] <?php ... $wartosc = 'Zmienna 1b'; $smarty_obj->append(array('zmienna_1'=>'zmienna 1a')); $smarty_obj->append('zmienna_1', $wartosc); $smarty_obj->append_by_ref('zmienna_1', $wartosc); $wartosc = 'Zmienna 1c'; ... ?> 42 | Smarty PHP. Leksykon kieszonkowy
  • 6. [Szablon TPL] {$zmienna_1[0]} {$zmienna_1[1]} {$zmienna_1[2]} [Wynik wykonania skompilowanego szablonu TPL] zmienna 1a Zmienna 1b Zmienna 1c Metoda assign() oraz assign_by_ref() Metoda assign() (definicja 4.3) pozwala na utworzenie zmiennej Smarty dostępnej w szablonie TPL. Definicja 4.3. Metoda assign() void assign(array lista_zmiennych) [lub] void assign(string nazwa_zmiennej, mixed wartosc_zmiennej) Jako parametr metody może zostać użyta tablica asocjacyjna, w której nazwą przyszłej zmiennej jest klucz asocjacyjny elementu tablicy, a jej wartością — wartość elementu tablicy (listing 4.3). Listing 4.3. Tablica asocjacyjna zawierająca listę elementów [Skrypt PHP] <?php ... //Przypisanie zmiennych $smarty_obj->assign(array('zmienna_1'=>'Wartośc zmiennej 1', 'zmienna_2'=>'Wartośc zmiennej 2')); //Rendering szablonu $smarty_obj->display('szablon.tpl'); ?> [Szablon TPL] Wartość zmiennej 1 to: {$zmienna_1} Wartość zmiennej 2 to: {$zmienna_2} [Wynik wykonania skompilowanego szablonu TPL] Wartość zmiennej 1 to: Wartośc zmiennej 1 Wartość zmiennej 2 to: Wartośc zmiennej 2 Rozdział 4. Metody obiektów klasy Smarty | 43
  • 7. Drugim sposobem przypisania zmiennych do szablonu TPL jest podanie do metody assign() następujących parametrów: • nazwa_zmiennej (wymagany) — nazwa, pod którą wartość wartosc_zmiennej będzie dostępna w szablonie TPL; • wartosc_zmiennej (wymagany) — wartość zmiennej nazwa_ zmiennej dostępna w szablonie TPL. Na listingu 4.4 został przedstawiony kod, który przypisuje takie same zmienne jak kod z listingu 4.3. Listing 4.4. Inny sposób przypisania zmiennych <?php ... //Przypisanie zmiennych Smarty $smarty_obj->assign('zmienna_1', 'Wartośc zmiennej 1'); $smarty_obj->assign('zmienna_2', 'Wartośc zmiennej 2'); //Rendering szablonu $smarty_obj->display('szablon.tpl'); ?> Metoda assign_by_ref() (definicja 4.4) działa w sposób po- dobny do metody assign() z tą różnicą, że zmienna przypi- sywana jest przez referencję a nie przez wartość. Definicja 4.4. Metoda assign_by_ref() void assign_by_ref(string nazwa_zmiennej, mixed wartosc_zmienej) Przykład wykorzystania metody assign_by_ref() został przed- stawiony na listingu 4.5. Listing 4.5. Przykład wykorzystania metody assign_by_ref() [Skrypt PHP] <?php ... $imie = 'Daniel'; $nazwisko = 'Bargieł'; $smarty_obj->assign('imie', $imie); $smarty_obj->assign_by_ref('nazwisko', $nazwisko); 44 | Smarty PHP. Leksykon kieszonkowy
  • 8. $imie = 'Ewa'; $nazwisko = 'Gelner'; //Rendering szablonu $smarty_obj->display('szablon.tpl'); ?> [Szablon TPL] Witaj {$imie} {$nazwisko} [Wynik wykonania skompilowanego szablonu TPL] Witaj Daniel Gelner Metoda clear_all_assign() oraz clear_assign() Metoda clear_all_assign() (definicja 4.5) usuwa wszystkie zmienne Smarty dostępne w szablonach TPL. Definicja 4.5. Metoda clear_all_assign() void clear_all_assign() Metoda clear_assign() (definicja 4.6) usuwa określoną zmienną lub grupę zmiennych. Definicja 4.6. Metoda clear_assign() void clear_assign(mixed zmienne) Metoda clear_assign() przyjmuje jeden parametr, który zawiera nazwę zmiennej przeznaczonej do usunięcia lub tablicę zawie- rającą listę nazw zmiennych do usunięcia. Przykład wykorzysta- nia metody clear_assign() został przedstawiony na listingu 4.6. Listing 4.6. Przykład wykorzystania metody clear_assign() <?php ... // Usunięcie pojedynczej zmiennej $smarty_obj->clear_assign('Name'); // Usunięcie listy zmiennych $smarty_obj->clear_assign(array('Name', 'Address', 'Zip')); ... ?> Rozdział 4. Metody obiektów klasy Smarty | 45
  • 9. Metoda get_template_vars() Metoda get_template_vars() (definicja 4.7) obiektów klasy Smarty zwraca tablicę zawierającą wszystkie zmienne Smarty. Definicja 4.7. Metoda get_template_vars() array get_template_vars([string nazwa_zmiennej]) Jeżeli zostanie podany opcjonalny parametr nazwa_zmiennej, metoda get_template_vars() zwróci wartość wybranej zmiennej. W przeciwnym wypadku zostanie zwrócona tablica asocjacyjna, zawierająca wartość wszystkich zmiennych Smarty. Przykład wy- korzystania metody get_template_vars() został przedstawiony na listingu 4.7. Listing 4.7. Przykład wykorzystania metody get_template_vars() [Skrypt PHP] <?php ... $imie = 'Daniel'; $nazwisko = 'Bargieł'; $smarty_obj->assign('imie', $imie); $smarty_obj->assign('nazwisko', $nazwisko); var_dump($smarty_obj->get_template_vars('imie')); var_dump($smarty_obj->get_template_vars()); ?> [Wynik wykonania skryptu PHP] string(6) "Daniel" array(3) { ["SCRIPT_NAME"]=> string(10) "/index.php" ["imie"]=> &string(6) "Daniel" ["nazwisko"]=> string(7) "Bargieł" } 46 | Smarty PHP. Leksykon kieszonkowy
  • 10. Obsługa szablonów TPL Obiekty klasy Smarty mają dwie metody, dzięki którym można zrenderować szablon TPL. Pierwsza z nich to metoda display() (definicja 4.8), która wysyła treść zrenderowanego szablonu do bufora wyjściowego. Metoda fetch() (definicja 4.9) zwraca war- tość typu string zawierającą treść zrenderowanego szablonu TPL. Metoda display() Metoda display() (definicja 4.8) wyświetla zrenderowany szablon (wysyła jego treść do bufora wyjściowego) Definicja 4.8. Metoda display() void display(string nazwa_szablonu [, string identyfikator_cache [,string identyfikator_kompilacji]]) Metoda przyjmuje następujące parametry: • nazwa_szablonu (wymagany) — ścieżka dostępu do sza- blonu TPL, który ma zostać wyświetlony; • identyfikator_cache — parametr opcjonalny, pozwalający na określenie identyfikatora kopii szablonu w pamięci pod- ręcznej. Więcej informacji na ten temat w rozdziale „Obsługa pamięci podręcznej”; • identyfikator_kompilacji — parametr ten pozwala na utworzenie kilku skompilowanych wersji jednego szablonu TPL. Może to być przydatne np. wtedy, gdy szablon po- winien być skompilowany oddzielnie dla każdej z wersji językowych obsługiwanych w aplikacji. Przykład wykorzystania metody display() został przedstawiony na listingu 4.8. Rozdział 4. Metody obiektów klasy Smarty | 47
  • 11. Listing 4.8. Przykład wykorzystania metody display() <?php ... // Ścieżka absolutna $smarty->display('/usr/local/include/templates/header.tpl'); $smarty->display('file:/usr/local/include/templates/ header.tpl'); // Ścieżka absolutna w systemie Windows $smarty->display('file:c:/www/pub/templates/header.tpl'); // Ładowanie szablonu z zasobu o nazwie db $smarty->display('db:header.tpl'); ?> Metoda fetch() Metoda fetch() (definicja 4.9) obiektów klasy Smarty działa bar- dzo podobnie do metody display(), z tym że nie wysyła zren- derowanego szablonu do bufora wyjściowego, lecz zwraca go w postaci łańcucha tekstowego. Definicja 4.9. Metoda fetch() string fetch(string nazwa_szablonu[, string identyfikator_cache [, string identyfikator kompilacji]]) Znaczenie parametrów metody fetch() jest identyczne jak w przypadku metody display() (definicja 4.8). Na listingu 4.9 został przedstawiony przykład wykorzystania metody fetch() obiektu klasy Smarty. Listing 4.9. Przykład wykorzystania metody fetch() <?php ... echo $smarty_obj->fetch('szablon.tpl'); ?> 48 | Smarty PHP. Leksykon kieszonkowy
  • 12. Metoda template_exists() Metoda template_exists() (definicja 4.10) sprawdza, czy okre- ślony szablon TPL istnieje. Definicja 4.10. Metoda template_exists() bool template_exists(string nazwa_szablonu) Jeżeli szablon nazwa_szablonu istnieje, metoda zwraca wartość true. W przeciwnym wypadku zwracana jest wartość false. Przykład wykorzystania metody template_exists() został przed- stawiony na listingu 4.10. Listing 4.10. Przykład wykorzystania metody template_exists() <?php ... $szablon_tpl = basename($_GET['strona']).'.tpl'; if ($smarty_obj->template_exists($szablon_tpl)) { $smarty_obj->display($szablon_tpl); } else $smarty_obj->display('strona_nie_istnieje.tpl'); ?> Metoda clear_compiled_tpl() Metoda clear_compiled_tpl() (definicja 4.11) czyści skompilo- waną wersję szablonu TPL lub cały katalog kompilacji. Definicja 4.11. Metoda clear_compiled_tpl() void clear_compiled_tpl([string nazwa_szablonu [, string identyfikator_kompilacji [, int czas_zycia]]]) Metoda przyjmuje następujące parametry: • nazwa_szablonu — nazwa pliku szablonu TPL, którego skompilowana kopia powinna zostać usunięta; • identyfikator_kompilacji — podanie identyfikatora kom- pilacji spowoduje, że zostaną usunięte tylko te kopie szablo- nu TPL, które posiadają określony identyfikator kompilacji; Rozdział 4. Metody obiektów klasy Smarty | 49
  • 13. • czas_zycia — podanie czasu życia skompilowanych kopii szablonów TPL spowoduje, że metoda clear_compiled_tpl() usunie tylko te kopie, które są starsze niż podany czas życia. Na listingu 4.11 został podany przykład wykorzystania metody clear_compiled_tpl(). Listing 4.11. Przykład wykorzystania metody clear_compiled_tpl() <?php ... //Usunięcie wszystkich kopii kompilacji szablonu TPL $smarty_obj->clear_compiled_tpl('szablon.tpl'); //Wyczyszczenie całego katalogu kompilacji $smarty_obj->clear_compiled_tpl(); ?> Zgłaszanie błędów — metoda trigger_error() Metoda trigger_error() (definicja 4.12) umożliwia zgłoszenie błędu przez obiekt klasy Smarty. Metoda ta jest najczęściej wy- korzystywana w kodzie funkcji rozszerzających możliwości Smarty (patrz rozdział „Rozszerzenia systemu szablonów”). Definicja 4.12. Metoda trigger_error() void trigger_error(string tresc_bledu [, int poziom_bledu]) Metoda przyjmuje następujące parametry: • tresc_bledu (wymagany) — komunikat błędu; • poziom_bledu — możliwe poziomy błędu są takie same jak dla funkcji PHP trigger_error(). Domyślną wartością parametru jest E_USER_WARNING. Przykład wykorzystania metody trigger_error() został przed- stawiony na listingu 4.12. 50 | Smarty PHP. Leksykon kieszonkowy
  • 14. Listing 4.12. Przykład wykorzystania metody trigger_error() [Skrypt PHP] <?php ... $smarty_obj->trigger_error('Zgłaszam błąd obiektu klasy Smarty', E_USER_WARNING); ?> [Wynik wykonania skryptu PHP] <b>Warning</b>: Smarty error: Zgłaszam błąd obiektu klasy Smarty in <b>c:document_roothelion_smartysmarty Smarty.class.php</b> on line <b>1095</b> Obsługa plików konfiguracyjnych Pliki zawierające zmienne konfiguracyjne Smarty mogą być ob- sługiwane z poziomu kodu PHP oraz szablonów TPL. Metoda config_load() Metoda config_load() (definicja 4.13) obiektu klasy Smarty ła- duje plik konfiguracyjny i przypisuje zawarte w nim zmienne do szablonów. Definicja 4.13. Metoda config_load() void config_load(string nazwa_pliku [, string nazwa_sekcji]) Metoda przyjmuje następujące parametry: • nazwa_pliku (wymagany) — nazwa pliku konfiguracyjnego, który ma zostać załadowany; • nazwa_sekcji — nazwa sekcji w pliku konfiguracyjnym, z którego powinny zostać załadowane zmienne. Działanie metody jest identyczne z działaniem funkcji config_load (patrz rozdział „Funkcje Smarty”), przy czym załadowane zmienne zawsze posiadają zasięg globalny, czyli są dostępne w każdym szablonie TPL. Rozdział 4. Metody obiektów klasy Smarty | 51
  • 15. Metoda clear_config() Metoda clear_config() (definicja 4.14) usuwa z szablonów przy- pisane zmienne konfiguracyjne. Definicja 4.14. Metoda clear_config() void clear_config([string nazwa_zmiennej]) Jeżeli podany zostanie opcjonalny parametr nazwa_zmiennej, metoda usunie tylko podaną zmienną. Metoda get_config_vars() Metoda get_config_vars() (definicja 4.15) zwraca listę zmien- nych konfiguracyjnych przypisanych do szablonu TPL. Definicja 4.15. Metoda get_config_vars() array get_config_vars([string nazwa_zmiennej]) Jeżeli podany zostanie opcjonalny parametr nazwa_zmiennej, metoda zwróci jedynie wartość podanej zmiennej. 52 | Smarty PHP. Leksykon kieszonkowy