Rozpocząłem zmianę struktury szablonów w systemie portalowym dla poszczególnych modułów (art, news, plik...), by nie zawierał kodu PHP, lecz zmienne {title}, {date}... Webmaster popularnej witryny zaprotestował, ponieważ w tych plikach stosuje modyfikacje danych dla własnych potrzeb (aby uzyskać inny wygląd niż narzucony). Scharakteryzuję 3 możliwe opcje.

Skórki z kodem PHP
Aby zachować przejrzystość, zmienne będą wyświetlane tak: <?= $zmienna ?>, choć nie zawsze. W przypadku modułu nowości (jest ich więcej na 1 stronie) w skórce raczej musi znajdować się FUNKCJA (bo nie będzie się kilka razy dołączać tego samego pliku, nie?).

+ Swoboda modyfikacji
+ Dostęp do innych zmiennych, funkcji, stałych...
+ Szybsze w niektórych przypadkach

- Mniejsza przejrzystość
- Utrudnienie dla osób nieznających PHP

Skórki ze zmiennymi {var}
Użycie funkcji file_get_contents() i str_replace(). Należy wywoływać str_replace() kilkakrotnie bądź utworzyć tablicę i przekazać ją jako argument. Zmienne to np. {name}, {title}, {lang.desc}... Uprzedzam, że systemy szablonów odpadają.

+ Duża przejrzystość
+ Ułatwienie dla osób nieznających PHP
+ Łatwość modyfikacji (o ile nie trzeba dodać innej zmiennej)

- Ograniczenie swobody modyfikacji oraz ilości użytych zmiennych
- Prawdopodobnie większe zużycie RAM-u

Sposób 1 + interpreter
Jest jeszcze inne rozwiązanie - utworzenie wtyczki lub wbudowanego modułu, który zapisze zmodyfikowany kod plików .tpl do .php. Wtedy prawdopodobnie skórki do pobrania będą rozpowszechniane w postaci bez kodu PHP (mniej problemów z kompatybilnością między różnymi wersjami skryptu) - trzeba będzie je "kompilować" w panelu administracyjnym.

+ Zalety rozwiązania 1 i 2
+ Kto umie PHP, modyfikuje od razu .php, a kto nie - .tpl i używa wtyczki
+ Interpretowanie stylów innych systemów (?)
+ Możliwość użycia większej ilości zmiennych (w tym językowych), instrukcji warunkowych... w skórkach prostych

- Zapis może nie przebiec poprawnie
- Po modyfikacji kodu trzeba go zapisać, używając wtyczki

Głosujcie. smile.gif Uargumentujcie też swoje głosy.