Rozpocząłem zmianę struktury szablonów dla poszczególnych modułów (art, news, plik...), by nie zawierał kodu PHP, lecz zmienne {title}, {date}... Redaktor pewnej popularnej witryny zaprotestował, ponieważ w tych plikach stosuje modyfikacje danych dla własnych potrzeb. 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...
+ Szybkość
- 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}...
+ Duża przejrzystość
+ Ułatwienie dla osób nieznających PHP
+ Łatwość modyfikacji (o ile nie trzeba dodać innej zmiennej)
- Ograniczenie swobody modyfikacji
- Być może sposób trochę wolniejszy (maks. o 2-3 ms.)*
- Prawdopodobnie większe zużycie RAM-u
Sposób 1 + interpreter
Podział skórek na sp. I i II spowodowałby większy bałagan w kodzie tych modułów. Jest jeszcze inne rozwiązanie - utworzenie wtyczki, która zapisze zmodyfikowany kod plików .tpl do .php.
+ Zalety rozwiązania 1 i 2
+ Kto umie PHP, modyfikuje od razu .php, a kto nie - .tpl i używa wtyczki
+ Interpretowanie stylów AutoTheme (?)
- Wady rozwiązania 1 i 2
- Po modyfikacji kodu trzeba go zapisać, używając wtyczki
Głosujcie i wypowiadajcie się na ten temat.
[CMS] Szablony - <?=$var?> czy {var}
Re: [CMS] Szablony - <?=$var?> czy {var}
Brak słów...
Od modyfikacji danych są aplikacje typu CMS, a szablon jest tylko uzupełniany danymi. Za bardzo nie rozumiem protestu Redaktora. Jeśli chce mieć możliwość edycji pewnych rzeczy do trzeba taką opcję dopisać do cms'a. W kodzie nikt nie powinien grzebać... jedynie co do wygladu zmiany w templatkach.
Od modyfikacji danych są aplikacje typu CMS, a szablon jest tylko uzupełniany danymi. Za bardzo nie rozumiem protestu Redaktora. Jeśli chce mieć możliwość edycji pewnych rzeczy do trzeba taką opcję dopisać do cms'a. W kodzie nikt nie powinien grzebać... jedynie co do wygladu zmiany w templatkach.

