1. Pobierz archiwum z odpowiednią wersją Smarty: http://www.smarty.net/download, bezpośredni link: https://github.com/smarty-php/smarty/archive/v3.1.34.tar.gz albo https://github.com/smarty-php/smarty/archive/v3.1.34.zip
2. Rozpakuj archiwum w swoim domowym katalogu w wybranym podkatalogu w public_html
np: ~/public_html/smarty
(~
oznacza katalog domowy).
Podkatalog ten będzie dalej nazywany roboczym.
Przy rozpakowywaniu powstanie katalog zawierający Smarty np.: smarty-3.1.34
, zwany dalej katalogiem smarty.
Upewnij się, że rozpakowane pliki i katalogi są dostępne dla serwera WWW.
3. Utwórz odpowiednie katalogi wymagane przez Smarty w katalogu roboczym:
cache/ configs/ templates/ templates_c/
Nadaj im odpowiednie prawa dostępu tak, aby serwer WWW mógł:
configs
, templates
,templates_c
, cache
.4. Przetestuj, czy instalacja działa poprawnie.
Utwórz skrypt test.php
, który przetestuje Twoją instalację Smarty:
<?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); require('./smarty-3.1.34/libs/Smarty.class.php'); $smarty = new Smarty(); $smarty->testInstall(); ?>
Uwaga, powyższy skrypt nie generuje poprawnego dokumentu (X)HTML! Co zrobić, żeby generował?
Uwaga, powyższy skrypt zakłada, że nazwą katalogu smarty jest Smarty-3.1.34
. Jeżeli nazwa ta jest inna należy odpowiednio zmienić wywołanie require()
.
Dostarczona jest struktura danych (np. pochodząca z odczytu z bazy danych) przechowująca informacje o flocie samochodów:
// dane: marka samochodu, kolor, nr rej., przebieg, stan techniczny $dane = array( array('VW Passat','srebrny', 'DW5789', 98000, 'dobry'), array('Syrena','żółty', 'WA4389', 60000, 'zły'), array('Ford Focus','czarny', 'KR1243', 21000, 'dobry'), array('Honda Civic','zielony', 'KR9834', 8000, 'dobry') );
Napisz program w PHP implementujący model (np. auto.php
), który umożliwi wyświetlanie w/w informacji w dwóch postaciach reprezentowanych przez osobne widoki tab.tpl
oraz form.tpl
, tj.:
samochod
przekazującą w/w dane (wszystkie dane!),tab
,…/auto.php?tab
) uruchomi szablon tab.tpl
,…/auto.php
) szablon form.tpl
.
Zaprogramuj dwa widoki w oparciu o szablony: tab.tpl
oraz form.tpl
.
Oba szablony używają zmiennej (atrybutu) samochod
i prezentują te same informacje w inny sposób.
Szablon tab.tpl
powinien wyświetlać dane o samochdach w postaci tabeli, tak aby
marka samochodu musi być pisana dużymi literami (zdefiniuj to odpowienio w szablonie).
Szablon form.tpl
powinien generować formularz zawierający:
Zaimplementuj szablon tabcsv.tpl
podobny do tab.tpl
, ale udostępniający dane w innej formie np. CSV.
Szablon będzie użyty gdy parametr tab
będzie mieć wartość csv
, czyli:
…/auto.php?tab=csv
) uruchomi szablon tabcsv.tpl
,…/auto.php?tab
) uruchomi szablon tab.tpl
,…/auto.php
) szablon form.tpl
.W ten sposób dane będą dostępne zarówno jako dokument HTML jak również w postaci łatwej do automatycznego przetwarzania celem integracji z innymi systemami.