PHP/Open Power Template: Różnice pomiędzy wersjami

Usunięta treść Dodana treść
Zyx (dyskusja | edycje)
rozpoczęcie oraz ogólny schemat
 
Zyx (dyskusja | edycje)
m parę poprawek i dopisków
Linia 30:
 
=== Pierwszy skrypt ===
Zanim rozpoczniemy, konieczne będzie pewne wyjaśnienie. OPT używa nieco innej terminologii, niż Smarty. To, co w poprzednim systemie zwaliśmy zmienną szablonową, tutaj będzie blokiem (zmienne też istnieją, lecz rozpoczynają się znakiem małpy i są tworzone przez szablon, a nie przez programistę). Podobnych różnic jest nieco więcej i będziemy je stopniowo wyjaśniać.
 
Napiszemy teraz pierwszy skrypt korzystający z OPT do przetwarzania szablonów:
 
Linia 53 ⟶ 55:
}
?></nowiki>
Jak widać, skrypt startowy jest znacznie bardziej rozbudowany, aniżeli ten ze Smarty'ego. Wynika to ze specyfiki nowego systemu. Oto opis działania:
Opis skryptu:
# Ustawiamy stałą ''OPT_DIR'' ze ścieżką do plików biblioteki.
# Ładujemy główny plik biblioteki.
Linia 62 ⟶ 64:
# Wysyłamy żądanie parsowania szablonu ''szablon1.tpl''. Wygenerowany kod zostanie automatycznie wysłany do przeglądarki.
# W OPT wszystkie błędy obsługiwane są przez mechanizm wyjątków, które musimy przechwycić. Możemy sami napisać sobie ich obsługę, lub skorzystać z gotowej, zawartej w funkcji ''optErrorHandler()''.
 
 
Nasz szablon (''szablon1.tpl'') wygląda następująco:
Linia 115 ⟶ 118:
}
?></nowiki>
W skrypcie definiujemy dwa bloki: ''active_users'' oraz ''inactive_users'', zatem te informacje może wyświetlić szablon. Załóżmy teraz, że szef chce widzieć także łączną liczbę użytkowników, ponieważ ma trudności z (szybkim) sumowaniem liczb większych, niż 10. Niektóre aplikacje mogą być tak złożone, że odnalezienie tych dwóch linijek w setkach kilobajtów kodu może być ciężkie - w końcu najpierw trzeba poprawić szablon, a potem zmodyfikować skrypt, by przesyłał także i trzeci blok. Jeśli zadania są podzielone między webmastera i programistę, trzeba nawet zaangażować cały zespół do poszukiwań. Jednak jak wspomnieliśmy, wykorzystamy tutaj coś więcej, niż tylko zwykłe osadzanie bloków, po prostu wykonując niezbędne sumowanie po stronie szablonu (dodajmy, że podobną rzecz można zrealizować też w Smarty):
 
<nowiki><html>