|
Język HTML, choć całkiem bogaty, nie daje wystarczających możliwości do tworzenia dynamicznych treści stron WWW. Z pomocą przyszedł język skryptowy PHP. Można w łatwy sposób wykorzystywać możliwości PHP zakorzeniając skrypty w źródle HTML. Wykorzystanie możliwości programowania i manipulowania kodem html to świetna sprawa. Pod warunkiem, że zajmująca sie tym osoba zna się zarówno na tworzeniu wyglądu strony, jak i na programowaniu. Problem pojawia się wtedy, gdy nad jednym projektem równocześnie pracuje wiele osób. Zazwyczaj dzielą się zadaniami i komptenencjami w taki sposób, że jedni odpowiadają za warstwę prezentacji danych, a inni za tworzenie możliwości dynamicznego zarządzania treścią. W takich przypadkach programiści starają tak pisać skrypty tak, by osoba znająca jedynie HTML nie musiała się przejmować, że coś "zepsuje". To jednak często niemożliwe, a jak wiadomo nie trudno o pomyłkę w kodzie PHP powodującą wyłożenie się całej strony. Rozpatrzmy ten problem na przykładzie: Kod: php
<?php Wygląda całkiem dobrze. Wydaje się, że nic więcej nie trzeba. Ale to prosty przykład. Idźmy dalej. Kod: php
<?php Wygląda całkiem nieźle. A to dlatego, że oddzieliliśmy tagi HTML od poleceń PHP. Ale czy to wystarczający sposób na usprawnienie wspólnej pracy programistów i designerów. Otóż nie. Spróbujemy ułatwić im życie separując PHP i HTML jeszcze bardziej. Spróbujmy kod z drugiego przykładu zmodyfikować i rozdzielić na dwa pliki. Nazwijmy pierwszy z nich przyklad2.php. Oto on: Kod: php
<?php Drugi plik nazwijmy przyklad2.tpl.php i wsadźmy go do katalogu templates. Kod: php
<html> To wygląda już znacznie lepiej. Teraz designer nie musi nawet zaglądać do pliku z kodem php. Nie naraża się więc na to, że edytując plik naruszy tak starannie napisany przez programistę kod php. Inną przewagą szablonów jest to, że mogą one być dołączane wiele razy do tego samego pliku. Nie musimy wtedy dla różnych stron powtarzać tego samego kodu. Możemy dodatkowo oddzielić główkę i stopkę i podzielić je na dwa pliki, a następnie dołączyć te pliki do pliku przyklad2.tpl.php. Rozdzielenie warstwy prezentecji od warstwy programowej może stać się jeszcze bardziej efektywne, gdy zastosujemy specjalnie do tego celu stworzony system szablonów zwany: SMARTY TEMPLATE ENGINE. Nie wszyscy są do tego rozwiązania przekonani, jednak ja poznając głębiej jego możliwości, muszę stwierdzić, że jest on bardzo przydatny w kontekście oddzielenia funkcji programisty i designera. W następnym przykładzie pokażę jak przykład2 przystosować do współpracy ze smartami. Na początek zainstaluj najnowszą wersję Smarty. Po ściągnięciu na dysk rozpakuj pliki do tymczasowego folderu. Następnie zajmij się konfiguracją wszystkich katalogów i plików. Potrzebne będą następujące katalogi: templates, templates_c, cache oraz config. Katalog templates ma służyć umieszczaniu nowo stworzonych szablonów - templatów. Katalog templates_c służy skompilowaniu templatów, cache do "keszowania", config do konfiguracji. Możesz katalogi nazwać jak chcesz, jednak musisz to skonfigurować, aby Smasty o tym wiedziały:). Stworzyłem jeszcze jeden katalog o nazwie smarty, gdzie powinno się skopiować katalog libs. W tym momencie struktura Twoich katalogów powinna wyglądać tak: [cache] Upewnij się, że katalogi templates_c i templates są zapisywalne przez serwer. Można jeszcze stworzyć dodatkowy katalog do przechowywania podstawowej konfiguracji dla bazy danych i smartów. Poniżej plik config.php Kod: php
<?php Jeżeli zechcesz zmienić nazwy katalogów, dodaj koniecznie taki kod: Kod: php
$smarty->template_dir = "path_to_your_template_dir"; Teraz zmodyfikujmy nasz ostatni przykład tak by działał ze Smarty. Oto przyklad.php: Kod: php
<?php Pewnie zauważyłeś, że jedyną różnicą są 3 ostatnie linie kodu. Pierwsza przypisuje do zmiennej "title" (pod taką nazwą będzie rozpoznawana w pliku szablonu czyli .tpl) jakiś ciąg znaków (Przykład zastosowania Smarty). Druga do zmiennej "uzytkownik" przypisuje tablicę "$uzytkownik". Trzecia wskazuje plik szablonu do wyświetlenia po wykonaniu całego kodu z pliku przyklad.php. Plik przyklad.tpl.htm, który mówimy powinien wyglądać tak: Kod: php
{include file="glowka.tpl.htm"} W pierwszej linii dołączyłem plik glowka.tpl.htm, a w ostatniej stopka.tpl.htm. Polecenie {inlcude} podobnie jak w kodzie php dołączą inne pliki do obecnego. Wszystkie zmienne, które są dostępne w naszym obecnym szablonie - templejcie :) będą również dostępne dla dołączanych szablonów. Poniższy przykład zademonstruje to ze zmienną $title. Plik glowka.tpl.htm wygląda tak: Kod: php
<html> a stopka.tpl.htm: Kod: php
</body> W pliku przyklad.tpl.htm mamy pętlę: Kod: php
{section name=c loop=$uzytkownik} Tag {section} zajmuje się wykonaniem pętli po tablicy z danymi pobranymi z bazy danych i musi być zamknięty tagiem {/section}. Element {section} potrzebuje dwa atrybuty: name i loop. Atrybut name jest nazwą sekcji, a atrybut loop jest wartością wskazującą ile razy ma wykonać się pętla. {section} posiada jeszcze inne dodatkowe atrybuty takie jak: start, step, max, show. Możesz potestować ich działanie. Element {section} posiada również swoje własne zmienne określające jego własności. Jedną z nich jest pokazującą liczbę iteracji w pętli jest {$smarty.section.c.iteration}. Przedstawione tutaj zagadnienia są podstawowym opsiem możliwości technologii Smarty. A możliwości tego narzędzia są bardzo duże i zapewniają, moim zdaniem, wielke ułatwienie w tworzeniu systemów internetowych. Opracowanie: Adam Suchowski
Skomentuj
|
|




