OPT (Open Power Template)

2007-12-10 20:29

Od dłuższego czasu przymierzałem się do zastąpienia Smarty innym systemem szablonów (głównie z uwagi na brak informacji o przejściu na PHP5). Pobieżnie przejrzałem listę dostępnych systemów w internecie i postanowiłem sprawdzić nasz rodzinny produkt OPT (Open Power Template).

Pomimo dość podobnej składni do Smarty przerobienie szablonów na Open Power Template trochę trwało i postanowiłem podzielić się z Wami napotkanymi przeze mnie problemami i uwagami. Koniecznie muszę dodać, że istnieje dodatek do pomocy OPT, który zatytułowany jest "Migracja ze Smarty", ale tak szczerze powiedziawszy bardziej skupiono się na nazewnictwie i jakiś szczegółach technicznych, w które na początku nie zamierzałem się zagłębiać. Interesowały mnie głównie różnice, co muszę zmienić by to działało, ale ich nie znalazłem.

Pierwszy mój błąd pojawił się przy instrukcji include.

{include file="incTop.tpl"}
Unexpected token: OPCODE_OPERATOR (/) in expression ...

W dokumentacji jest napisane, że nie można użyć cudzysłowu bo nazwa pliku jest wyrażeniem (cokolwiek twórcy mieli na myśli, przykładu, wyjaśnienia brak) i trzeba użyć dodatkowo apostrofu.

{include file="`incTop.tpl`"}

Dalej chciałem sprawdzić w jaki sposób Open Power Template reaguje na niezdefiniowane zmienne - nie reaguje. Powoduje to trudności z głupimi błędami typu literówki, czy zostawiona niepotrzebna zmienna, której nie sposób w prosty sposób wyłapać. Padłem ofiarą tego podejścia bardzo szybko przy foreach i zamieszaniu ze zmiennym zewnętrznymi i wewnętrznym, o których wspomnę dalej. Coś się nie wyświetla, a błędu nie ma, sytuacja lekko deprymująca.

Kolejny problem był przy funkcji in_array(), która w Smarty jest domyślnie dozwolona, w OPT trzeba ją zarejestrować.

Zmienne zdeklarowane w szablonie mają zamiast '$' na początku '@'. Jest to podyktowane troską, aby użytkownik w szablonie nie nadpisał zmiennej wcześniej do niego przesłanej. Osobiście mnie to nie przekonuje dla mnie to wprowadzenie niepotrzebnych dodatkowych znaczników.

Domyślnie w OPT nie ma żadnych wbudowanych funkcji, które możemy znaleźć w Smarty jak date_format czy nl2br. Napisanie tego nie stanowi żadnego problemu za to nie rozumiem koncepcji, która wymusza by katalog, który wskażemy by zawierał wtyczki (plugins), posiadał prawa do zapisu. Jeśli ma być jakiś cache to wolałbym by to się zapisywało tam gdzie kompilacja szablonów. Im mniej miejsc z prawami zapisu tym lepiej.

Ostatnią rzeczą, do której się przyczepię to dokumentacja. Niestety nie ma pełnej polskiej dokumentacji. Poza tym bardzo przyzwyczaiłem się, że poszczególne podstrony w PHP czy Smarty posiadają na dole linki do tematów powiązanych. Niestety tutaj tego zabrakło.

Trochę ponarzekałem, ale co na plus? Oczywiście PHP5. Zrezygnowanie z modyfikatorów i bloków, które występowały w Smarty. Wbudowane wsparcie dla wielojęzycznych stron. Coś jeszcze? Okażę się w przyszłości.

Słowa kluczowe: Szablony, Techblog, open power template, opt, smarty, szablony, artykuł, blog

Projektowanie i tworzenie stron www w PHP5. Opisy i recenzje oprogramowania typu cms, blog, wiki, open source.
Wszelkie prawa zastrzeżone.