Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> System szablonów i parsowanie kodu php, Prawie działa, ale nie do końca
Simson
post
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 25.05.2010

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


Witam serdecznie wszystkich użytkowników! Jest to mój pierwszy post, więc mam nadzieję, że wybrałem dobry dział. Mój problem polega na tym, iż korzystam z "innego" systemu szablonów - mam na myśli, że nie są to smarty, czy OPT, tylko mniej skomplikowany, a za razem zaawansowany system. I próbuję uruchomić na nim kod php, który includuje system newsów na stronie głównej. Obecnie wygląda to tak: http://irex-gliwice.pl/ Jak widać kod działa poprawnie, ale nie wyświetla się na przewidzianym dla niego miejscu oraz tle. Dosyć długo już próbuję rozwiązać ten problem, niestety bezskutecznie, dlatego też zwracam się do was z prośbą o pomoc. Załączam też plik z mojej www.

1) Klasa do obsługi szablonów
  1. <?
  2. class CTemplate
  3. {
  4. var $content;
  5. var $keywords;
  6. var $url;
  7.  
  8. function CTemplate($url='')
  9. {
  10. $this->url = $url;
  11. $this->keywords = array();
  12. if ($url)
  13. $this->code=file_get_contents($url);
  14.  
  15. }
  16.  
  17. function Load($url)
  18. {
  19. $this->code=file_get_contents($url);
  20. }
  21.  
  22. function Clear()
  23. {
  24. unset($this->keywords);
  25. $this->keywords = array();
  26. }
  27.  
  28. function Add($keyword, $text)
  29. {
  30. $this->keywords[$keyword] = $text;
  31. }
  32.  
  33. function Get()
  34. {
  35. reset($this->keywords);
  36. while (list ($key, $val) = each ($this->keywords))
  37. $this->code = str_replace($key, $val, $this->code);
  38. return $this->code;
  39. }
  40. }
  41. ?>


2)Plik index.php, dodałem w nim funkcję eval
  1. <?
  2. include('library/ctemplate.php');
  3.  
  4. $strona = new CTemplate('template/CSite.html');
  5.  
  6. switch($HTTP_GET_VARS['site'])
  7. {
  8. default:
  9. case 'start':
  10. $strona->Add('{SRODEK}', eval('?>' . file_get_contents('template/CSiteStronaGlowna.html'). '<?'));
  11. break;
  12. case 'galeria':
  13. $strona->Add('{SRODEK}', file_get_contents('template/CSiteGaleria.html'));
  14. break;
  15. case 'o_nas':
  16. $strona->Add('{SRODEK}', file_get_contents('template/CSiteONas.html'));
  17. break;
  18. case 'kontakt':
  19. $strona->Add('{SRODEK}', file_get_contents('template/CSiteKontakt.html'));
  20. break;
  21. }
  22. $strona->Add('{MENU}', file_get_contents('template/CSiteMenu.html'));
  23. $strona->Add('{INFO}', file_get_contents('template/CSiteInfo.html'));
  24.  
  25. echo $strona->Get();
  26. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Zyx
post
Post #2





Grupa: Zarejestrowani
Postów: 952
Pomógł: 154
Dołączył: 20.01.2007
Skąd: /dev/oracle

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


Simson -> właśnie od tego są gotowe systemy szablonów, byś nie musiał wynajdować koła od zera tym bardziej, że nie radzisz sobie z tym. Po pierwsze, dlaczego piszesz pod PHP4, kiedy od 6 lat jest PHP5, po drugie szablony z samym podstawianiem bloków na wartości nie mają absolutnie żadnego sensu, po trzecie bardziej wykonanie bardziej zaawansowanych rzeczy umożliwia kompilacja szablonów do postaci kodu PHP i uruchamianie tego kodu, ale żeby pisanie kompilatora miało sens, to trzeba naprawdę wiedzieć, co się robi. Inaczej nic nie polepszysz, a jedynie pogorszysz sprawę, ponieważ zaprojektowanie sensownego języka szablonów nie jest takie proste, jak się większości ludzi wydaje. Z obiektówką u Ciebie średnio, z tego co widzę, więc może na początek pobaw się jakimś systemem z PHP jako językiem szablonów, a później czymś przyzwoitym, np. OPT lub PHPTAL.
Go to the top of the page
+Quote Post

Posty w temacie


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: 8.10.2025 - 12:30