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 (IMG:http://forum.php.pl/style_emoticons/default/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
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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
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('{', '}');
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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
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..
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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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 (IMG:http://forum.php.pl/style_emoticons/default/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? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Cytat(Ociu @ 23.11.2006, 12:51:10 ) *
To jak będziesz rozwijał, to dodaj obsługę instrukcji warunkowych (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)


Cytat(MajareQ @ 4.02.2008, 00:13:11 ) *


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
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 06:48