Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Własny system szablonów.
Forum PHP.pl > Forum > Gotowe rozwiązania > Systemy szablonów
DirectPL
Witam.
Jestem początkującym programistą PHP. Obecnie pracuje nad pierwszym większym skryptem - sklepu. Skrypt oparłem o programowanie obiektowe.

Obecnie jest na etapie tworzenia szablonu. Nie interesują mnie gotowe rozwiązania.

Jaki jest najprostszy sposób na oddzielenie kodu php od htmla?

Mianowicie. Jakim sposobem można zrobić stronę, która po wywołaniu pliku index.php:
1) ładuje skrypt któremu podaje odpowiednie argumenty.
2) skrypt ładuje sobie szablon w i zależności od obszaru ładuje tam dane.
3) wyświetla stronę.

Stronę www.sk2.pl/odpowiedz znam, ale nie wiem czego dokładnie szukać.

Chcę się dowiedzieć jak to można stworzyć i jakich materiałów mam dokładnie szukać.

Pozdrawiam,
DirectPL
Zyx
W systemach szablonów chodzi bardziej, by odseparować obróbkę danych od sposobu ich wyświetlania. W wielu obecnych frameworkach szablony pisze się właśnie w PHP. Skoro chcesz sposób najprostszy, to skorzystaj z gotowca, a nie bierz się za pisanie czegoś własnego, szczególnie z autorską składnią szablonów. Z doświadczenia powiem Ci, że wygląda to tak:

1. Jak będziesz pisać własny system ot tak, najprawdopodobniej skończysz na zrobieniu kalki niektórych struktur kontrolnych z PHP i najprostszego osadzania zmiennych. W tym kierunku iść nie ma sensu, tylko sobie zamykasz możliwości i już lepiej będzie, jak szablony będziesz pisać w czystym PHP.
2. Jeśli zaś pokusisz się o wymyślenie języka, który w przeciwieństwie do PHP, jest dedykowany do prostej i eleganckiej obróbki (X)HTML-a i osadzania w nim danych ze skryptu, to o swoim sklepie musisz na długi czas zapomnieć smile.gif. Napisanie kompilatora prawdopodobnie jest trudniejszym zadaniem.

Z gotowych rozwiązań:
1. Nie bierz się za Smarty'ego. Projekt jest przestarzały i obecnie w zasadzie w ogóle się nie rozwija. Ponadto moim zdaniem sporo elementów języka jest tak zaprojektowanych, że zamiast ułatwiać, utrudniają życie. Wystarczy np. popatrzeć, ilu ludzi ma problemy ze zrobieniem zagnieżdżonych list, a to przecież jest jedna z bardziej elementarnych rzeczy, które się w szablonach osadza.
2. Z rozwiązań bazujących na czystym PHP możesz sprawdzić Savant.
3. Poleciłbym Ci mój system, Open Power Template, lecz nowa wersja wciąż znajduje się w fazie rozwojowej i używanie jej do czegokolwiek innego, niż testy, to wielkie ryzyko. Stara wersja natomiast ma trochę błędów projektowych i niedorzeczności.
4. Sprawdź sobie PHP-TAL.
DirectPL
Dzięki za odpowiedź.

Ostatnio nad tym myślałem i zrobię to za pomocą oddzielnej klasy, której funkcje będę wywoływał w themie.

Myślę, że będę miał wstępną wersję kodu na początku listopada ;-)
mrok
Cytat
1. Nie bierz się za Smarty'ego. Projekt jest przestarzały i obecnie w zasadzie w ogóle się nie rozwija

to polecam zajrzec na strone http://www.smarty.net/ i zobaczyc jak sie nie rozwija winksmiley.jpg
Zyx
Ooo, faktycznie jest to postęp, ale zauważ, że ta wiadomość ma dopiero 4 dni smile.gif. Natomiast widząc od 2003 roku głównie newsy "Smarty 2.6.x" released z poprawkami jednego, dwóch błędów, ciężko mi to było nazwać dynamicznym rozwojem, zwłaszcza że mimo upływu 4 lat ten projekt wciąż nie został przeportowany na PHP5.

Z dostępnych materiałów wynika, że od strony filozofii użycia nie będzie w tym specjalnej rewolucji - dalej te same klamerki, z tymi samymi kopiami struktur kontrolnych i wyrażeń PHP, a z głównych zmian składniowych dochodzi możliwość pisania szablonów w czystym PHP oraz obecność parsera leksykalnego do kontroli składni wyrażeń (notabene rzecz, którą OPT posiada od trzech lat).
php programmer
najprościej, tworzyc pliki html np
  1. <b>{tytul}</b>
  2. <br>
  3. {tresc}


a w php
  1. <?php
  2. $tablica['{tytul}'] = 'Jakis tytuł';
  3. $tablica['{tresc}'] = 'Bla blabla';
  4.  
  5. $html = file_get_contents('twoj_html');
  6. foreach ($tablica as $nazwa=>$wartosc){
  7. $html = str_replace($nazwa,$wartosc,$html);
  8. }
  9.  
  10. echo $html;
  11. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.