Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [klasa]Prosty system szablonow (PHP4/5)
mokry
post
Post #1





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Witam,
Dzisiaj postanowilem do potrzeb wlasnych napisac mala klase do obslugi szablonow...
Klasa jest baaardzo prosta w sam raz dla malych i srednich stron www.
Dziala zarowno w PHP4 jak i PHP5.
Jest to moja pierwsza klasa, dlatego udokumentowanie nie jest dobre, nawet go zabardzo nie ma jak na razie winksmiley.jpg
Co do mozliwosci klasy... Zadnych ifow, catchow czy dodatkowych bajerkow...
Klase prawdopodobnie bede rozwijal pozniej, jednak jak na razie to mi wystarcza i zadnych wiekszych zmian nie przewiduje...

Klasa:
  1. <?php
  2.  
  3. class NowySzablon {
  4.  
  5. var $toChange;
  6. var $str;
  7.  
  8. function Template()
  9. {
  10. $this -> toChange = array();
  11. $this -> str = '';
  12. }
  13.  
  14. function setTemplate($ATemplate)
  15. {  
  16. $this -> str = $ATemplate;
  17. }  
  18.  
  19. function Szablon($AFileName)
  20. {  
  21. $this -> str = file_get_contents($AFileName);
  22. }  
  23.  
  24. function zmienna($AKey, $AValue)
  25. {  
  26. $AKey = '{'.$AKey.'}'; //mozna usunac, jesli wolisz bez obslugi znakow { }
  27. $this -> toChange[$AKey] = $AValue;
  28. }
  29.  
  30. function Parsuj()
  31. {  
  32. if (count($this -> toChange) > 0) {
  33. $tmpKeys = array_keys($this -> toChange);  
  34.  
  35. foreach ($tmpKeys as $currentKey) {
  36. $this -> str = str_replace($currentKey, 
  37.  $this -> toChange[$currentKey],
  38.  $this -> str);
  39. }
  40. }
  41. return $this -> str;  
  42. }
  43.  
  44. }
  45.  
  46. ?>


Sposob uzycia:
  1. <?php
  2. $st = new NowySzablon; //Definiujemy nowy Szablon
  3. $st -> Szablon('szablon.tpl'); //Sciezka do pliku z szablonem
  4. $st -> zmienna('tytul', 'Przykladowy tytul...'); //Definiowanie zmiennej szablonowej, w zaleznosci od zmiennej $AKey = '{'.$AKey.'}' - jesli zostawisz to wstawiasz bez { } jesli wymazesz zmienna, musisz dodawac {} 
    przy definiowaniu zmiennych szablonowych
  5. echo $st -> Parsuj(); //Sparsowanie szablonu do wyswietlenia tresci
  6. // ewentualnie:
  7. // $zmienna = $st -> executeChanges();
  8. ?>


Jak widac, przy definiowaniu zmiennych szablonowych trzeba rowniez dodawac znaki zmiennych "{}". Dlaczego?
Z zalozenia chcialem aby mozna bylo sparsowac jeden plik szablonu kilka razy przez np dwukrotne uzycie klasy... I tak w jednym dajemy sobie zmienne pomiedzy {} a potem np. pomiedzy ###zmienna###.

Ten post edytował mokry 22.10.2006, 20:25:02


--------------------
Pomogłem? Podziękuj proszę klikając poniżej "POMÓGŁ" ;)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 13)
Adrian Staniszew...
post
Post #2





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 17.10.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Odnosnie twojego pomyslu z tymi {} i ######... to po prostu dodaj jakas zmienna w ktorej bedziesz trzymal znak poczatku i konca wyrazenia.. szybciej, latwiej, przyjemniej winksmiley.jpg


--------------------
Programy antywirusowe
Komputery, internet
Twój Słownik OnLine
Go to the top of the page
+Quote Post
mokry
post
Post #3





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Okey, ale moze sie zdarzyc sytuacja, ze jeden plik szablonu parsujemy dwa razy na strone... W tym momencie mozemy albo dodac pomiedzy {} jakis prefix, albo calkowicie zmienic postac zmiennej szablonowej... Osobiscie wole wybrac druga wersje ze wzgledu na lepsza przejrzystosc pliku szablonu (przynajmniej mi sie lepiej zarzadza takim szablonem winksmiley.jpg


--------------------
Pomogłem? Podziękuj proszę klikając poniżej "POMÓGŁ" ;)
Go to the top of the page
+Quote Post
Adrian Staniszew...
post
Post #4





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 17.10.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Widać ze nie zrozumiales mnie.. szablon pozostaje bez zmian, zmienia sie tylko to ze nie musisz podawac znakow {} przy deklarowaniu zmiennych. Po co uzywac zbednych znakow, marnowac czas przy pisaniu jak mozna dac np. setZnak('{', '}');


--------------------
Programy antywirusowe
Komputery, internet
Twój Słownik OnLine
Go to the top of the page
+Quote Post
mokry
post
Post #5





Grupa: Zarejestrowani
Postów: 374
Pomógł: 23
Dołączył: 3.06.2006
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Okey, w takim razie zmienilem.
Jest po Twojemu winksmiley.jpg


--------------------
Pomogłem? Podziękuj proszę klikając poniżej "POMÓGŁ" ;)
Go to the top of the page
+Quote Post
Adrian Staniszew...
post
Post #6





Grupa: Zarejestrowani
Postów: 94
Pomógł: 0
Dołączył: 17.10.2006
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Ale teraz twoje klasa nie spelnia kryteriow jakie miala.. ;] ehh..


--------------------
Programy antywirusowe
Komputery, internet
Twój Słownik OnLine
Go to the top of the page
+Quote Post
pikey
post
Post #7





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 15.10.2006

Ostrzeżenie: (0%)
-----


a jezeli tam gdzie mam "{tytul}" chciał zrobic include jakiegos pliku to jak?
Go to the top of the page
+Quote Post
PiratNowegoPokol...
post
Post #8





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 12.10.2006

Ostrzeżenie: (0%)
-----


dodaj jeszcze podstawową obsługę bloków i będzie loozik smile.gif
Go to the top of the page
+Quote Post
Ociu
post
Post #9





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




To jak będziesz rozwijał, to dodaj obsługę instrukcji warunkowych smile.gif
Go to the top of the page
+Quote Post
MajareQ
post
Post #10





Grupa: Zarejestrowani
Postów: 382
Pomógł: 22
Dołączył: 21.05.2007
Skąd: Elbląg

Ostrzeżenie: (0%)
-----


i obsługę java haha.gif
Go to the top of the page
+Quote Post
Moli
post
Post #11





Grupa: Zarejestrowani
Postów: 662
Pomógł: 45
Dołączył: 26.03.2007
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


@MajareQ - Po co tak odkopujesz te stare tematy :/ Daj sobie spokój z tym i pisz w aktualnie prowadzonych.
Go to the top of the page
+Quote Post
mike
post
Post #12





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


~MajareQ j.w. a dodatkowo pisz na temat. Co tu robi wpis o Java? Jak to ma się do prowadzonego wątku?
Zaliczam tego posta jako nabijanie
Go to the top of the page
+Quote Post
MajareQ
post
Post #13





Grupa: Zarejestrowani
Postów: 382
Pomógł: 22
Dołączył: 21.05.2007
Skąd: Elbląg

Ostrzeżenie: (0%)
-----


Drogi Mike, kpisz sobie? tongue.gif

Cytat(Ociu @ 23.11.2006, 12:51:10 ) *
To jak będziesz rozwijał, to dodaj obsługę instrukcji warunkowych smile.gif


Cytat(MajareQ @ 4.02.2008, 00:13:11 ) *
i obsługę java haha.gif


Teraz już kojarzysz...?
Go to the top of the page
+Quote Post
mike
post
Post #14





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

Ostrzeżenie: (0%)
-----


Taaaa, głupia emotikona mówi wszystko....
Tylko widzisz, obsługę instrukcji warunkowych ma każdy system szablonów jaki znam i nie ma w tym nic dziwnego więc do czego nawiązujesz komentarzem z Javą? Jeszcze pewnie myląc ją z JavaScriptem.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:17