Wysłany: 2007-05-30, 22:32 [CMS] Szablony - <?=$var?> czy {var}
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
Możesz pisać nowe tematy Możesz odpowiadać w tematach Nie możesz zmieniać swoich postów Nie możesz usuwać swoich postów Nie możesz głosować w ankietach Nie możesz załączać plików na tym forum Możesz ściągać załączniki na tym forum